【全面訂正】EMA200押し目買い検証は完全な誤りでした
⚠️ この記事について
以前この記事で公開していた「EMA200押し目買いで累計+7万pips」という検証結果は、完全な誤りでした。
読者の方がEA化してバックテストしたところ、記事の結果とは全く異なる結果が出ました。
深くお詫び申し上げます。
📊 実際のバックテスト結果
読者の方がMT5でEA化し、2022年〜2025年でバックテストした結果です。
バックテスト設定
| 項目 | 設定値 |
|---|---|
| EA | EMA200 Pullback EA |
| 通貨ペア | USDJPYm |
| 期間 | 2022.08.15 〜 2025.12.20 |
| 初期証拠金 | 1,000,000 USD |
| レバレッジ | 1:25 |
残高推移
約3年間で**+611ドル(微プラス)**。元記事で主張した「累計+69,970pips」とは程遠い結果です。
詳細な統計情報
| 指標 | 値 |
|---|---|
| 総取引数 | 363 |
| 勝率 | 33.06% |
| プロフィットファクター | 1.11 |
| シャープレシオ | 0.71 |
| 最大連敗数 | 13回 |
勝率33%、PF1.11。「最強クラス」とは言えないレベルです。
通貨ペア別の結果
| 通貨ペア | 損益 | PF |
|---|---|---|
| USDJPYm | +611 | 1.11 |
| AUDUSDm | +255 | 1.06 |
| GBPCADm | +221 | 1.04 |
| GBPJPYm | -1,081 | 0.88 |
| EURNZDm | -2,492 | 0.70 |
| GBPNZDm | -2,673 | 0.69 |
31通貨ペア中、ほとんどがマイナス。
元記事では「GBPJPY +55,499pips」と主張していましたが、実際は -1,081(マイナス) でした。
🔍 なぜこのような検証ミスが起きたのか
原因1: タッチ判定のロジック問題
元の検証では「EMA200に10pips以内でタッチ」という条件を使用していました。
しかし、この判定には曖昧さがあります:
- 安値がタッチしたのか?終値がタッチしたのか?
- ローソク足の実体?ヒゲ?
- タッチした「後」にエントリー?タッチした「足」でエントリー?
Pythonでの検証とEAでの実装で、この解釈が異なっていた可能性が高いです。
# 曖昧なタッチ判定の例# どちらを使うかで結果が大きく変わるtouched = low <= ema200 + tolerance # 安値ベースtouched = close <= ema200 + tolerance # 終値ベース原因2: 先読みバイアス(Look-Ahead Bias)
Pythonでのバックテストでは、意図せず将来の価格を参照してしまうバグが入りやすいです。
例えば:
- H4のEMA50を取得する際に、「現在形成中の足」を使ってしまう
- 15分足のエントリー判定で、その足の終値を先に見てしまう
EAでは強制的に「確定した足」のみを参照するため、このバイアスが排除されます。
# 危険なコード例(先読みバイアス)ema_h4 = df_h4.loc[current_time, 'ema50'] # 未確定の足を参照する可能性
# 正しいコード例ema_h4 = df_h4.loc[df_h4.index < current_time, 'ema50'].iloc[-1] # 確定足のみ原因3: マルチタイムフレームの同期問題
この手法は「H4でトレンド確認」「15分足でエントリー」というマルチタイムフレーム戦略です。
問題点:
- H4の足が確定するタイミングと15分足のタイミングがずれる
- Pythonで異なる時間足のデータを結合する際にインデックスのずれが発生
- リアルタイムでは「H4が確定するまで待つ」が、バックテストでは即座に参照してしまう
EAでは自然にこの問題が解決されるため、Pythonとの結果に乖離が生じます。
原因4: データ品質の問題
15分足の長期データ(3年分)は信頼性に問題がある場合があります:
- 欠損している足がある
- 異常なスプレッドのデータが混入
- ブローカーによって微妙にデータが異なる
特に無料で取得できるデータは品質が低いことが多いです。
原因5: pips計算の桁間違い
通貨ペアによって1pipsの価値が異なります:
# USDJPYの場合pips = (price2 - price1) / 0.01 # 正しい
# EURUSDの場合pips = (price2 - price1) / 0.0001 # 正しい
# もし間違えると...pips = (price2 - price1) / 0.01 # 100倍の誤差!元の検証で桁を間違えていた可能性があります。
原因6: 確証バイアス
正直に認めます。
- 「YouTubeで人気の手法 = 勝てるはず」という先入観があった
- 良い結果が出たとき、「やっぱり!」と深掘りせずに公開した
- 異常に良い結果(+7万pips)を疑わなかった
+7万pipsという結果が出た時点で「何かおかしい」と気づくべきでした。
原因7: 検証の単一性
元の検証はPythonでの1回だけでした。
本来やるべきだったこと:
- Pythonで検証
- EAでも検証(←これをしなかった)
- 異なる期間で検証
- 異なるパラメータで感度分析
EAで確認していれば、公開前に誤りに気づけたはずです。
📝 正しい結論
EMA200押し目買い戦略の実態
| 項目 | 元記事の主張 | 実際 |
|---|---|---|
| EURUSD累計 | +69,970 pips | 不明(再現不可) |
| GBPJPY累計 | +55,499 pips | -1,081(マイナス) |
| USDJPY累計 | +49,155 pips | +611程度(微プラス) |
| 総評 | 最強クラス | 優位性なし |
結論:EMA200押し目買い戦略に、元記事で主張したような優位性はありません。
一部の通貨ペア(USDJPY)では微プラスですが、他の通貨ペアでは大きくマイナスになります。
💡 この件から得た教訓
1. 異常な結果は必ず疑う
「累計+7万pips」という結果が出たら、まずバグを疑うべき。
本当にそんな手法があれば、全員が使っているはずです。
2. 複数の方法で検証する
| 検証方法 | メリット |
|---|---|
| Python | 高速、柔軟 |
| MT4/MT5 EA | リアルに近い、先読みバイアスなし |
| TradingView | 視覚的に確認できる |
最低2つの方法で一致するまで公開しないことを今後徹底します。
3. マルチタイムフレームは特に注意
異なる時間足を組み合わせる戦略は、バックテストでバグが入りやすい。
Pythonで検証する場合は、タイムスタンプの同期に細心の注意が必要です。
4. 読者フィードバックは宝
今回、読者の方がEAで検証して報告してくれなければ、この誤りは放置されていました。
「記事通りにならない」という報告があったら、読者が正しい可能性を真剣に考える。
🙇 読者の皆様へ
この記事を信じて:
- EAを開発した方
- 資金を投入した方
- 時間を費やした方
本当に申し訳ありませんでした。
今回誤りを発見・報告してくれた読者の方には、心から感謝します。
📚 関連記事
- 【お詫び】EMA200押し目買いの検証結果に重大な誤りがありました - EAソースコード付きの詳細なお詫び記事
2025年12月25日 初版公開 2025年12月27日 全面訂正(誤った検証結果を削除、原因考察を追加)
🎁おすすめツール・サービス
※上記リンクにはプロモーション(広告)が含まれています
量子相場謀略|ホソノP
ブログでは書けない本音のトレード戦略とEA開発の裏側を公開。 データに基づいた検証で、再現性のある手法だけをお届けします。