同じEA・同じ設定でPF1.65と1.10|バックテストの数字が信用できない3つの理由

本記事は自作EAの検証記録であり、特定の金融商品や手法の推奨ではありません。詳しくは免責事項をご覧ください。

ゴールド(ドル建て)向けにボリンジャーバンドの逆張りEAを自作し、MT5のストラテジーテスターで検証していたときのことです。同じEA・同じパラメータなのに、プロフィットファクター(PF)が1.10と表示されることも、1.65と表示されることもあるという現象に遭遇しました。

差は3〜4割。この差の原因を追いかけた結果、「バックテストの数字をそのまま信じてはいけない理由」が3つに整理できたので記録します。EAを自作する方はもちろん、「PF2.0!」のような数字付きでEAを販売・配布しているページを見る側にとっても、判断材料になるはずです。

検証対象のEA(前提)

  • 対象:ゴールド(GOLD/USD建て)、M1足
  • ロジック:ボリンジャーバンド(期間25, 偏差2.5)タッチ後の反発確定でエントリー、ロングのみ
  • 決済:SL500pip+トレーリングストップ500pip(固定TPなし)
  • 検証期間:直近約1年半、リアルティック品質99%

罠①:ティックモデルで PF1.10 → 1.65 に変わる

MT5のテスターには複数のティック生成モデルがあります。同一条件で比較した結果がこれです。

ティックモデル PF
1分足OHLC(始値・高値・安値・終値の4点) 1.10
Every tick based on real ticks(実ティック) 1.65

原因は決済方法にあります。このEAはトレーリングストップが主役です。OHLCモデルはバー内の値動きを4点でしか再現しないため、トレーリングの追従が粗くなり、成績が実際より悪く出ました。

教訓:トレーリングやバー内での細かい決済を使うEAは「Every tick based on real ticks」での検証が必須。逆に言えば、どのモデルで検証したか書いていないバックテスト結果は、この時点で3〜4割の誤差を含みうるということです。

罠②:期間の切り取りで PF1.65 → 1.10 に戻る

「実ティックならPF1.65」と喜んだのも束の間でした。検証期間を全期間に広げると、こうなりました。

項目 全期間・実ティックの結果
トレード数 308回
PF 1.10
純益 +2,666ドル
勝率 34.7%

1.65は成績の良い区間を切り取った数字に過ぎず、全期間の実力はPF1.10。1トレードあたりの期待値は約8.7ドルで、エッジは「ある」が「薄い」というのが実態でした。

教訓:検証期間の始点と終点を動かして、数字がどれだけ動くかを必ず確認する。良い区間だけを見せることは(意図的でなくても)簡単にできてしまいます。

罠③:PFの裏に隠れる「口座破壊級」の数字

PF1.10は「一応プラス」に見えます。しかし同じレポートの他の統計を見ると印象が一変します。

項目
最大ドローダウン 53〜64%
最大連敗 12回(-1,620ドル)
リカバリーファクター 0.74

資金が半分以下になる局面に耐えて、ようやくPF1.10。これは実運用に耐えません。PF・勝率・純益だけが載っていて、ドローダウンと連敗が載っていない成績表は、一番重要な情報が隠れていると考えるべきです。

対策として実装したリスク管理(途中経過)

ロジック自体をいじる前に、まず生存性の改善としてEAに以下を実装しました。

  • リスク%ベースの自動ロット(1トレードのリスクを資金の0.5%に固定)
  • 連敗ブレーカー(4連敗で当日の取引停止)
  • 資金ドローダウンストップ(25%で停止)

バー単位のシミュレーションでは、最大ドローダウンが31%→18%に圧縮され、興味深いことに連敗ブレーカーは純益もわずかに改善しました(悪い地合いの連敗クラスタをまとめて回避できるため)。ただしこの改良版の実ティック再検証とデモフォワードはこれからで、結果は追って記事にします。

追記(2026-07-07):同条件で再実行したら、また違う数字が出た

この記事の公開にあたり損益曲線を掲載しようと、同じEA・同じ設定・同じ「Every tick based on real ticks」で全期間を再実行しました。結果がこれです。

項目 初回計測 再実行(2025/01〜2026/07)
PF 1.10 1.23
トレード数 308回 342回
最大ドローダウン(金額) 約1,700ドル規模 4,478ドル(証拠金1万ドル比21.1%)
BB25逆張りEAのリアルティック再検証による累積損益曲線。最大ドローダウン区間を赤で表示
再実行時の累積損益曲線(0.05ロット固定)。赤帯が最大ドローダウン区間(確定損益ベースで-4,036ドル。含み損まで含むテスター統計では-4,478ドル)

検証期間の端が少し違うこと、ブローカーのティックデータが日々更新されることだけで、PFは1.10にも1.23にもなりました。罠②で書いた「期間で数字が動く」は、意図的な切り取りをしなくても起きるということです。バックテストの数字は「点」ではなく、条件次第で揺れる「幅」として見るべきだ、という結論がさらに補強されたので、そのまま追記として残します。

まとめ:バックテスト結果を見るときのチェックリスト

今回の検証で得た教訓を、自分用のチェックリストにしておきます。

  1. ティックモデルは何か?(トレーリング系EAで実ティック以外なら信用しない)
  2. 検証期間は全期間か?(良い区間の切り取りではないか)
  3. 最大ドローダウンと最大連敗は載っているか?
  4. トレード数は十分か?(数十回では統計にならない)
  5. フォワードテストはあるか?(バックテストだけなら「まだ仮説」)

自作EAですらこれだけ数字が動くのだから、販売ページの一枚のスクリーンショットで判断するのは危険だ、というのが正直な感想です。当サイトでは今後も、うまくいかない結果も含めてそのまま記録していきます。

関連:当サイトの運営方針 / 免責事項

タイトルとURLをコピーしました