MT5のバックテストで好成績だったEAが実運用で機能しない理由を解説。スリッページ、スプレッド変動、流動性、約定品質を考慮した実践的な検証方法を整理します。近年のアルゴリズムトレードでは、売買ロジックそのものよりもExecution(執行品質)がパフォーマンスを左右するケースが増えています。
SNSやコミュニティでは『バックテストでは利益が出るのに本番では負ける』という悩みが頻繁に見られます。
特にFXやCFD市場では、スプレッド変動やスリッページ、流動性不足が実運用成績へ大きな影響を与えています。
本記事では、MT5を利用したEA開発においてバックテストと実運用の差が生じる理由と、その対策を整理します。
なぜバックテストは利益が出るのか
バックテストは過去データを用いて売買ロジックを検証する手法です。
同一条件で大量の検証を行えるため、戦略開発に欠かせないプロセスです。
しかし多くの場合、バックテスト環境は理想的な約定条件を前提としています。
そのため実際の市場環境との差異が存在します。
特に短期売買や高頻度売買では、この差が収益性へ大きく影響します。
バックテストと実運用の主な違い
MT5ストラテジーテスターでは過去データに基づいて注文を再現します。
しかし実際の市場では以下の要素が存在します。
スリッページ
注文価格と実際の約定価格に差が発生する現象です。
特に指標発表時や急変動時には大きく発生します。
スプレッド変動
バックテストでは固定スプレッドを利用するケースがあります。
しかし実市場ではスプレッドは常に変動しています。
経済指標や市場オープン直後には急拡大することがあります。
流動性不足
十分な反対注文が存在しない場合、想定価格で約定できないことがあります。
特にマイナー通貨ペアや夜間時間帯で顕著です。
約定遅延
サーバー処理や通信環境によって注文執行が遅れる場合があります。
短期売買では数百ミリ秒の差でも結果が変わります。
市場レジームの変化
バックテストは過去環境で最適化されています。
しかし市場環境は常に変化しています。
例えば、
- ボラティリティ上昇
- 金利政策変更
- 地政学リスク
- 流動性環境の変化
などによって戦略の優位性が失われる場合があります。
過剰最適化されたEAほどこの影響を受けやすくなります。
過剰最適化の問題
バックテスト成績を改善しようとしてパラメータを調整し続けると、過去データ専用の戦略が完成することがあります。
これはカーブフィッティングと呼ばれます。
過剰最適化されたEAは将来データに対して脆弱です。
本番環境では期待した成績を再現できないことがあります。
Executionを考慮した検証方法
実運用に近い条件で検証することが重要です。
可変スプレッドを利用する
固定スプレッドではなく実市場に近いスプレッドデータを利用します。
スリッページを考慮する
バックテスト段階で数ポイント程度の不利な約定を想定します。
リアルティックデータを利用する
実際のティックデータを用いることで検証精度を高められます。
複数期間で検証する
上昇相場、下落相場、レンジ相場を含めて評価します。
フォワードテストの重要性
バックテストだけでは十分ではありません。
デモ口座や少額資金を利用してフォワードテストを行います。
フォワードテストでは、
- 実際のスプレッド
- 実際のスリッページ
- 実際の約定速度
を確認できます。
バックテスト結果との乖離を把握するために重要です。
評価すべき指標
利益額だけでなく以下も確認します。
- Profit Factor
- Sharpe Ratio
- 最大ドローダウン
- 平均保有時間
- 勝率
- リスクリワード比率
収益性だけでなく安定性を評価することが重要です。
実運用前のチェックリスト
EAを本番運用する前に以下を確認します。
- 過剰最適化されていないか
- フォワードテストを実施したか
- 可変スプレッドで検証したか
- スリッページを考慮したか
- 最大ドローダウンを把握しているか
- 異なる市場環境で検証したか
これらを確認することで実運用時のリスクを低減できます。
まとめ
バックテストで利益が出るEAでも、本番環境ではExecutionの影響によって結果が大きく変化します。
特にスリッページ、スプレッド変動、流動性不足、約定遅延は無視できません。
また市場レジームの変化や過剰最適化も成績悪化の主要因となります。
MT5によるEA開発では、バックテストだけではなくフォワードテストやExecutionを考慮した検証を行うことで、実運用に耐えうる戦略を構築できます。







