シェア:

取引の量で「勢い」を見つける作戦!イーサリアムで試してみたけど…?

この作戦は、イーサリアムという仮想通貨の5分ごとの値段のグラフを見ながら、値段の勢いと、どれだけたくさんの人が売り買いしたか(これを「出来高」といいます)をヒントに、売り買いのチャンスを見つけようとするものです。でも、やってみたら残念ながらうまくいきませんでした。なぜ失敗しちゃったのか、これからどうしたら良さそうか、分かりやすくお話ししますね。

取引数
1831
勝率
20.48%
最終リターン
-99.88%
最大DD
99.89%

導入と前提条件

この作戦は、イーサリアムという仮想通貨の5分ごとの値段のグラフを見ながら、値段の勢いと、どれだけたくさんの人が売り買いしたか(これを「出来高」といいます)をヒントに、売り買いのチャンスを見つけようとするものです。でも、やってみたら残念ながらうまくいきませんでした。なぜ失敗しちゃったのか、これからどうしたら良さそうか、分かりやすくお話ししますね。

【検証】戦略のバックテスト概要

  • 戦略名: ROC Volume Filter を使用したトレンド追従戦略
  • 対象銘柄: ETH/USDT
  • 時間足: 5m
  • 期間: 2024-08-10〜2025-08-25(379日間)
  • 初期資金: $10,000
  • 手数料・スリッページ: 0.1% / 0.1%
  • 取引所: binance

ROC Volume Filter の理論的背景

この作戦の根っこにある考え方は、「値段に勢いがあって、しかもたくさんの人がそれに乗っかっているなら、その勢いはまだまだ続くかも!」というものです。例えば、値段がぐんぐん上がっている時に、みんなが「もっと上がるぞ!」ってたくさん買っていたら、本当にさらに上がるかもしれませんよね。逆に、値段が下がっている時に、みんなが「危ない!」ってたくさん売っていたら、もっと下がるかもしれません。この作戦では、最近の値段の動きと、いつもより取引の量がすごく多い時を「本当の勢いだ!」と判断するようにルールを決めました。

具体的な売買ルール(今回の検証)

エントリー条件

  • 値段が上がる勢いがあって、取引の量がいつもよりすごく多くなった時に買う
  • 値段が下がる勢いがあって、取引の量がいつもよりすごく多くなった時に売る

エグジット条件

  • ちょっとでももうかったら、勢いがなくなりそうだと感じた時に売って、利益を自分のものにする(利益確定)
  • もし予想がはずれて損しちゃったら、これ以上損が大きくならないうちに売って、傷が浅いうちにやめる(損切り)

リスク管理

この作戦では、大きな損をしないための大事なルールも決めています。例えば、予想と反対に値段が動いちゃったら、「ここまで下がったらやめる」と決めておいたところで、すぐに取引を終わらせます。それと、一度に使うお金を少しだけにして、もし負けても持っているお金全部がなくならないように工夫します。

再現手順(HowTo)

  1. Python/依存(ccxt, pandas, ta)をインストール
  2. ccxtでETH/USDTのOHLCVを取得して前処理
  3. 『ROC Volume Filter』に必要な指標を算出(ta 等)
  4. 閾値・クロス条件から売買シグナルを生成
  5. 手数料・スリッページを加味して検証・評価

【結果】パフォーマンス

価格の推移

価格推移

資産の推移

資産推移

パフォーマンス指標

指標
総トレード数1831回
勝率20.48%
平均利益1.24%
平均損失-0.77%
期待値-0.36%
プロフィットファクター0.31
最大ドローダウン99.89%
最終リターン-99.88%
シャープレシオ-0.64
HODL(Buy&Hold)79.58%

HODL戦略との比較

HODL戦略との比較

実装コード(Python)

strategy.py
"""
ROC with Volume Filter
ROCと出来高フィルターで判定するのだ。
"""
import pandas as pd


def calculate_roc_volume_signals(df: pd.DataFrame, roc_period: int = 12, vol_period: int = 20, vol_mult: float = 1.5) -> pd.DataFrame:
    out = df.copy()
    roc = out['close'].pct_change(roc_period)
    vol_ma = out['volume'].rolling(vol_period).mean()
    high_vol = out['volume'] > (vol_ma * vol_mult)
    out['is_buy'] = (roc > 0) & high_vol
    out['is_sell'] = (roc < 0) & high_vol
    return out

なぜこの結果になったのか(3つの理由)

  1. 1この作戦を昔のデータで試してみたら、残念ながら全然もうかりませんでした。勝つ確率がすごく低くて、取引するたびに少しずつお金が減っていって、最後にはほとんどなくなってしまったんです。
  2. 2特に、「取引の量が多いから勢いが続くはず!」と思って買ったり売ったりしても、その直後に値段が反対に動いてしまうことがよくありました。みんなが盛り上がっている時が、実はピークで、そこから逆に行ってしまうパターンが多かったみたいです。
  3. 3仮想通貨の世界は、突然のニュースとか、世界のできごととか、色々な理由で値段が急に大きく動くことがあります。だから、「値段の勢いと取引の量」というシンプルなルールだけでは、今の複雑な動きについていけなかったのかもしれません。

この結果から学べる3つの教訓

  1. 1どんなすごい作戦でも、必ずうまくいくわけじゃないんだな、と分かりました。特に、仮想通貨みたいに値段が激しく動くものでは、簡単なルールだけじゃ通用しないことがあるんですね。
  2. 2「たくさんの人が取引しているから、勢いは本物だ!」とは、単純に言えないことが分かりました。みんなが盛り上がっている時こそ、逆に注意が必要で、他のヒントも探さないといけないんですね。
  3. 3もうけるためには、何回勝つか(勝率)だけじゃなくて、1回勝った時にどれだけ大きくもうけて、1回負けた時にどれだけ損を小さくできるか、というバランスがすごく大事だと分かりました。この作戦は、そのバランスが良くなかったみたいです。

リスク管理の具体的手法

取引量の決め方

1回の取引で使うお金は、自分が持っているお金のほんの少しだけ(例えば100分の1とか)にします。こうすれば、もし負けても、一度に全部のお金を失うことはありません。

損失が大きくなったときの対処法

もし損が続いて、持っているお金がある程度減ってしまったら、いったん全部ストップします。そして、「なんで負けちゃったんだろう?」と作戦をじっくり考え直します。もっと良い方法が見つかったら、またチャレンジします。

資金管理の方法

投資に使うお金と、ふだんの生活で使うお小遣いは、ちゃんと別のものとして分けます。そして、もしなくなっても大丈夫なお金だけで、無理のないようにやることが大切です。

改良案の具体的提案

  • 「いつもより取引量がすごく多い」というルールを、もっと細かく変えてみたり、取引量に関する他のヒントと組み合わせたりすると、もっと良いチャンスが見つかるかもしれません。
  • 値段の勢いをチェックする期間も、見直す必要がありそうです。短すぎると小さな動きにだまされちゃうし、長すぎるとチャンスに乗り遅れちゃう。ちょうどいい長さを見つけるのが大事です。
  • この作戦一つに頼るんじゃなくて、他の作戦(例えば、値段の平均線を見る方法とか)や、世の中のニュースも一緒に見るようにすると、もっとうまくいくかもしれません。あとは、「これ以上損したら絶対やめる!」という損切りのルールを、もっと厳しくするのも良い方法です。

実用性の向上(運用上の注意)

  • この作戦は、昔のデータで試したらうまくいかなかったので、このままマネして使うのは危ないかもしれません。もし試してみたいなら、ほんの少しのお金でやるか、本物のお金を使わない練習用の取引(デモ取引)で、本当にうまくいくか何度もテストしてからにしましょう。
  • 5分ごとみたいな短い時間のグラフは、値段の動きがすごく速くて、次にどうなるか当てるのが難しいです。1時間ごととか、1日ごとみたいな、もっと長い時間のグラフで全体の大きな流れを見ながらやると、うまくいく可能性が上がるかもしれません。
  • この作戦の結果は、あくまでも「過去にはこうだった」というだけのお話です。未来も同じように動くとは限りません。だから、いつも今の状況をしっかり見て、作戦をどんどんパワーアップさせていくことが大事です。

検証の透明性と信頼性

  • データの出所: この作戦をテストするために使ったのは、イーサリアムという仮想通貨の、ある取引所の5分ごとの値段や取引量のデータです。
  • 検証のやり方: 昔のデータ(約1年分)を使って、「もしこの作戦で取引していたら、どうなっていたかな?」というのをコンピューターでシミュレーション(これをバックテストと言います)して、成績を調べました。
  • コード: この作戦の計算をするためのプログラムは、みんなが見られるように公開されています。なので、誰でも同じようにテストしてみることができます。
  • 注意事項: このお話は、あくまで勉強のための参考にするものです。「こうすれば絶対もうかるよ!」と約束するものではありません。もし実際にやってみて損をしてしまっても、ごめんなさい、責任はとれません。投資は、自分の判断と責任でお願いしますね。

よくある質問

Q.この作戦は、いくらから始められますか?

A.理屈の上ではいくらからでもできますが、なくなっても困らないくらい少しのお金から始めるのが一番です。まずはお金を使わない練習用の取引(デモ取引)で試してみるのがおすすめですよ。

Q.イーサリアム以外でも使えますか?

A.はい、この考え方はビットコインとか、他の仮想通貨にも使えるかもしれません。でも、仮想通貨の種類によってクセが違うので、同じようにうまくいくとは限りません。

Q.勝つ確率が低いのに、どうしてやるんですか?

A.良い質問ですね!勝つ確率は低くても、1回勝った時にすごく大きくもうかれば、全部合わせるとプラスになる作戦もあります。でも、この作戦は、勝った時にもうかる額も小さくて、負けた時の損が大きかったので、結局マイナスになっちゃったんです。

Q.「最大DDが99.89%」ってどういう意味ですか?

A.これは「最大ドローダウン」といって、持っていたお金が一番減っちゃった時の割合のことです。つまり、この作戦を続けていたら、途中で持っていたお金がほとんどゼロになりかけた、という意味で、すごく危なかったということですね。

Q.HODL(ホドル)というのは何ですか?

A.HODL(ホドル)は、仮想通貨を売ったり買ったりしないで、ずーっと「ガチで持ち続ける(ホールドする)」という意味のネット用語です。この作戦を試している間、ただイーサリアムを持っていただけの場合と比べて、成績がどうだったかを表しています。この作戦の場合は、何もしないで持っているだけの方が、結果が良かったみたいです。

Q.検証に使用した期間と時間足は?

A.5m足で検証しました。期間は記事内の概要をご確認ください。

Q.最終リターンと最大ドローダウンは?

A.最終リターンは-99.88%、最大DDは99.89%です。

Q.勝率やPFはどの程度?

A.勝率は20.48%、プロフィットファクターは0.31です。

Q.HODLとの比較結果は?

A.HODLは79.58%でした。記事内の比較表をご覧ください。

Q.手数料やスリッページは考慮済み?

A.はい。バックテスト設定の手数料・スリッページを損益に反映しています。

Q.市場環境はトレンド/レンジどちらに近かった?

A.期間中はトレンド優勢と推測されます。

Q.この戦略は初心者でも扱える?

A.基礎的な指標と検証環境の知識があれば扱えます。まずは少額・デモから。

Q.推奨のリスク管理は?

A.最大DDを踏まえた損切り・ポジションサイジングと、システム停止基準の設定を推奨します。

Q.将来の結果は期待できる?

A.過去の結果は将来を保証しません。市場環境やパラメータ適合性に大きく依存します。

Q.改良の方向性は?

A.トレンド・ボラティリティのフィルター併用、パラメータの再最適化、取引頻度の制御を検討してください。

著者情報