取引の量で「勢い」を見つける作戦!イーサリアムで試してみたけど…?
この作戦は、イーサリアムという仮想通貨の5分ごとの値段のグラフを見ながら、値段の勢いと、どれだけたくさんの人が売り買いしたか(これを「出来高」といいます)をヒントに、売り買いのチャンスを見つけようとするものです。でも、やってみたら残念ながらうまくいきませんでした。なぜ失敗しちゃったのか、これからどうしたら良さそうか、分かりやすくお話ししますね。
導入と前提条件
この作戦は、イーサリアムという仮想通貨の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)
- Python/依存(ccxt, pandas, ta)をインストール
- ccxtでETH/USDTのOHLCVを取得して前処理
- 『ROC Volume Filter』に必要な指標を算出(ta 等)
- 閾値・クロス条件から売買シグナルを生成
- 手数料・スリッページを加味して検証・評価
【結果】パフォーマンス
価格の推移
資産の推移
パフォーマンス指標
指標 | 値 |
---|---|
総トレード数 | 1831回 |
勝率 | 20.48% |
平均利益 | 1.24% |
平均損失 | -0.77% |
期待値 | -0.36% |
プロフィットファクター | 0.31 |
最大ドローダウン | 99.89% |
最終リターン | -99.88% |
シャープレシオ | -0.64 |
HODL(Buy&Hold) | 79.58% |
HODL戦略との比較
実装コード(Python)
"""
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この作戦を昔のデータで試してみたら、残念ながら全然もうかりませんでした。勝つ確率がすごく低くて、取引するたびに少しずつお金が減っていって、最後にはほとんどなくなってしまったんです。
- 2特に、「取引の量が多いから勢いが続くはず!」と思って買ったり売ったりしても、その直後に値段が反対に動いてしまうことがよくありました。みんなが盛り上がっている時が、実はピークで、そこから逆に行ってしまうパターンが多かったみたいです。
- 3仮想通貨の世界は、突然のニュースとか、世界のできごととか、色々な理由で値段が急に大きく動くことがあります。だから、「値段の勢いと取引の量」というシンプルなルールだけでは、今の複雑な動きについていけなかったのかもしれません。
この結果から学べる3つの教訓
- 1どんなすごい作戦でも、必ずうまくいくわけじゃないんだな、と分かりました。特に、仮想通貨みたいに値段が激しく動くものでは、簡単なルールだけじゃ通用しないことがあるんですね。
- 2「たくさんの人が取引しているから、勢いは本物だ!」とは、単純に言えないことが分かりました。みんなが盛り上がっている時こそ、逆に注意が必要で、他のヒントも探さないといけないんですね。
- 3もうけるためには、何回勝つか(勝率)だけじゃなくて、1回勝った時にどれだけ大きくもうけて、1回負けた時にどれだけ損を小さくできるか、というバランスがすごく大事だと分かりました。この作戦は、そのバランスが良くなかったみたいです。
リスク管理の具体的手法
取引量の決め方
1回の取引で使うお金は、自分が持っているお金のほんの少しだけ(例えば100分の1とか)にします。こうすれば、もし負けても、一度に全部のお金を失うことはありません。
損失が大きくなったときの対処法
もし損が続いて、持っているお金がある程度減ってしまったら、いったん全部ストップします。そして、「なんで負けちゃったんだろう?」と作戦をじっくり考え直します。もっと良い方法が見つかったら、またチャレンジします。
資金管理の方法
投資に使うお金と、ふだんの生活で使うお小遣いは、ちゃんと別のものとして分けます。そして、もしなくなっても大丈夫なお金だけで、無理のないようにやることが大切です。
改良案の具体的提案
- 「いつもより取引量がすごく多い」というルールを、もっと細かく変えてみたり、取引量に関する他のヒントと組み合わせたりすると、もっと良いチャンスが見つかるかもしれません。
- 値段の勢いをチェックする期間も、見直す必要がありそうです。短すぎると小さな動きにだまされちゃうし、長すぎるとチャンスに乗り遅れちゃう。ちょうどいい長さを見つけるのが大事です。
- この作戦一つに頼るんじゃなくて、他の作戦(例えば、値段の平均線を見る方法とか)や、世の中のニュースも一緒に見るようにすると、もっとうまくいくかもしれません。あとは、「これ以上損したら絶対やめる!」という損切りのルールを、もっと厳しくするのも良い方法です。
実用性の向上(運用上の注意)
- この作戦は、昔のデータで試したらうまくいかなかったので、このままマネして使うのは危ないかもしれません。もし試してみたいなら、ほんの少しのお金でやるか、本物のお金を使わない練習用の取引(デモ取引)で、本当にうまくいくか何度もテストしてからにしましょう。
- 5分ごとみたいな短い時間のグラフは、値段の動きがすごく速くて、次にどうなるか当てるのが難しいです。1時間ごととか、1日ごとみたいな、もっと長い時間のグラフで全体の大きな流れを見ながらやると、うまくいく可能性が上がるかもしれません。
- この作戦の結果は、あくまでも「過去にはこうだった」というだけのお話です。未来も同じように動くとは限りません。だから、いつも今の状況をしっかり見て、作戦をどんどんパワーアップさせていくことが大事です。
検証の透明性と信頼性
- データの出所: この作戦をテストするために使ったのは、イーサリアムという仮想通貨の、ある取引所の5分ごとの値段や取引量のデータです。
- 検証のやり方: 昔のデータ(約1年分)を使って、「もしこの作戦で取引していたら、どうなっていたかな?」というのをコンピューターでシミュレーション(これをバックテストと言います)して、成績を調べました。
- コード: この作戦の計算をするためのプログラムは、みんなが見られるように公開されています。なので、誰でも同じようにテストしてみることができます。
- 注意事項: このお話は、あくまで勉強のための参考にするものです。「こうすれば絶対もうかるよ!」と約束するものではありません。もし実際にやってみて損をしてしまっても、ごめんなさい、責任はとれません。投資は、自分の判断と責任でお願いしますね。