本記事は自作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%) |

検証期間の端が少し違うこと、ブローカーのティックデータが日々更新されることだけで、PFは1.10にも1.23にもなりました。罠②で書いた「期間で数字が動く」は、意図的な切り取りをしなくても起きるということです。バックテストの数字は「点」ではなく、条件次第で揺れる「幅」として見るべきだ、という結論がさらに補強されたので、そのまま追記として残します。
まとめ:バックテスト結果を見るときのチェックリスト
今回の検証で得た教訓を、自分用のチェックリストにしておきます。
- ティックモデルは何か?(トレーリング系EAで実ティック以外なら信用しない)
- 検証期間は全期間か?(良い区間の切り取りではないか)
- 最大ドローダウンと最大連敗は載っているか?
- トレード数は十分か?(数十回では統計にならない)
- フォワードテストはあるか?(バックテストだけなら「まだ仮説」)
自作EAですらこれだけ数字が動くのだから、販売ページの一枚のスクリーンショットで判断するのは危険だ、というのが正直な感想です。当サイトでは今後も、うまくいかない結果も含めてそのまま記録していきます。
