EAのバックテストとリアルが乖離する7つの原因と差の埋め方の手順
バックテストで勝っていたEAがリアルで崩れる原因を、スリッページ・約定拒否・遅延・スプレッド・スワップ・データ品質・過剰最適化の7つに分解し、乖離を自分の口座で実測して定数化する手順まで解説します。
PR当ページにはプロモーション(アフィリエイト広告)が含まれます。順位・評価は公開の評価基準に基づき編集部が独立して決定しています。EAの成績はすべて過去の検証結果であり、将来の利益を保証するものではありません。海外FX業者は金融庁未登録です。
この記事の目次
バックテストでプロフィットファクター1.8だったEAが、リアルでは1.1を切る。この落差の原因は「運が悪かった」ではなく、ほとんどの場合は構造的なものです。MT4/MT5のストラテジーテスターが再現していない要素が、実運用では必ず発生するからです。この記事では乖離の原因を7つに分解し、それぞれをどう埋めるか、あるいはどう見積もるかを整理します。
結論:テスターが再現していないものを、数字で見積もる
✅ 結論
乖離の原因は大きく「コストの過小評価」「約定の理想化」「データの不一致」「検証手続きの欠陥」の4系統に分かれます。このうち完全に消せるものはありません。実務的な対応は、1トレードあたり何pipsのコスト悪化を織り込めば実運用と整合するかを、自分の口座で実測して定数化することです。その定数を入れてもプラスが残るEAだけが、運用の候補になります。
乖離の7つの原因
| # | 原因 | テスターでの扱い | 実運用での影響 |
|---|---|---|---|
| 1 | スリッページ | 一切シミュレートしない。常に要求価格で約定 | 片道0.2〜1.0pips(業者・銘柄・時間帯による) |
| 2 | 約定拒否・リクオート | 発生しない | エントリーできないトレードが出る |
| 3 | 注文遅延 | 遅延なし(MT5は設定可能) | 条件検知から送信まで時間がかかる |
| 4 | スプレッドの想定違い | MT4は固定、MT5はデータ由来 | 指標時・早朝の拡大が反映されない |
| 5 | 手数料とスワップ | MT4は手数料欄なし。スワップは実行時点の値を全期間に適用 | ECN口座・長期保有で大きくずれる |
| 6 | データの出所の違い | 業者フィードか第三者データか | 業者ごとに値動きも値飛びも違う |
| 7 | 過剰最適化 | 検出されない | 未知の期間で成績が崩れる |
以下、それぞれを詳しく見ます。
原因1:スリッページ
MT4/MT5の標準テスターは、スリッページを一切シミュレートしません。 常に要求価格で約定します。実運用では、成行注文は必ず多少なりとも滑ります。
実務的な織り込み方の目安です。
| EAのタイプ | 見込むべきスリッページ |
|---|---|
| 成行エントリーが主体 | 片道0.2〜1.0pips |
| 経済指標発表時に発注 | 数pips〜十数pips |
| 指値エントリーが主体 | エントリー側は小さい。ただし損切りヒット時は不利方向に滑る |
💡 ポイント
簡易的な評価方法があります。「1トレードあたり X pips のコストを追加した場合に、EAの期待利得がプラスを保てるか」を X = 0.5 / 1.0 / 2.0 で確認する。 これで壊れるEAは、どんなにバックテストが美しくても実運用に耐えません。外部ツールを使わなくても、スプレッド設定にXを上乗せするだけで近似できます。
Tick Data Suiteにはスリッページを生成する複数の方式があり、各方式に設定オプションがあります。詳細は Tick Data Suiteの使い方と価格 を参照してください。
原因2:約定拒否とリクオート
テスターでは、注文は必ず通ります。実運用では通らないことがあります。
- オフクォート(MT4: 136 / MT5: 10021「There are no quotes to process the request」)。価格が急変しているときに発生します。
- リクオート。提示価格が変わり、再確認を求められます。EAは通常、リトライするか発注を諦めます。
- ストップレベル違反(MT4: 130 / MT5: 10016)。現在価格に近すぎる損切り・利確を設定すると拒否されます。ストップレベルは業者と口座タイプで異なり、テスターでは0として扱われることがあります。
⚠️ 注意
損切り幅の狭いEAは、ストップレベルの影響を直接受けます。バックテストでは10pipsの損切りが設定できていても、実口座のストップレベルが15pipsなら注文自体が拒否されます。EAを導入する前に、想定業者のストップレベルを確認してください。 業者ごとの条件は業者のEA関連規制の比較で整理しています。
エラーコード別の対処は 注文エラーの原因と対処 にまとめています。
原因3:注文遅延
EAが条件を検知してから、サーバーに注文が届くまでには時間がかかります。テスターではこれがゼロです。
- MT5のテスターには遅延(Delay)設定があります。 「遅延なし」のほか、固定ミリ秒のプリセットやランダム遅延を選べます。本番想定なら「遅延なし」以外を選んでください。ただしランダム遅延は「Open prices only」モードでは使えません。
- MT4の標準テスターには遅延設定がありません。
実運用での遅延は、VPSの場所と業者サーバーの場所の距離に大きく影響されます。数十ミリ秒の差が損益に効くEAなら、 VPSのレイテンシ の検討が必要になります。
原因4:スプレッドの想定違い
最も影響の大きい原因です。EURUSDで平均スプレッドを0.5pips過小評価していると、年間1,000トレードのEAでは年間500pips分の誤差になります。1ロット運用なら年間約50万円です。
MT4の標準テスターは固定スプレッドのみで、指標時や早朝の拡大は一切反映されません。MT5は公式ヘルプに「ストラテジーテスターでは、スプレッドは常に変動として扱われる」と記載があり、実ティックモードなら自動的に可変になります(出典: MT5 Help - Testing Features 、2026年9月24日確認)。
対応方法は 可変スプレッドでバックテストする方法 にまとめています。
原因5:手数料とスワップ
手数料:RAW/ECN系口座はスプレッドが狭い代わりに往復手数料が発生します。MT4の標準テスターには入力欄がありません。
| 往復手数料(1ロット) | pips換算(1pip=$10の通貨ペア) |
|---|---|
| $2.0 | 0.2 pips |
| $4.0 | 0.4 pips |
| $6.0 | 0.6 pips |
| $10.0 | 1.0 pips |
スワップ:MT4のバックテストは、テスト実行時点のスワップ値を全期間に適用します。過去の金利環境は反映されません。数年のバックテストで、実際とは数百pips分ずれることがあります。
🚨 危険
日をまたぐポジションを持つEA(スイング系、ナンピン系)は、この点で構造的に過大評価されやすくなります。本メディアの調査でも、あるEAの購入者が「Overnight fees are also a killer(スワップが致命的)」とコメント欄で指摘している例が確認されています(編集部調査、2026年9月24日時点)。水曜3倍スワップも、日跨ぎ回数の多いEAでは効きます。
対処としては、①スワップの影響を分離して集計する、②日跨ぎしないEAなら無視する、③長期保有EAでは現在のスワップで再計算した保守的なシナリオも併記する、の3つが実務的です。
原因6:データの出所の違い
バックテストに使ったデータが、自分の業者のフィードとは限りません。
- Dukascopyのデータ(TickstoryやTDSで取得)は、スイスの銀行系ブローカーのフィードです。スプレッド水準も値飛びも自分の業者とは違います。
- MT5の実ティックは自分の業者のデータですが、業者が保持している期間しか遡れず、実ティックが無い区間は生成ティックにフォールバックします。
- MT4の標準M1データは業者が配信したもので、欠損が多いのが普通です。
同じEAでも、A社のデータとB社のデータで結果が変わります。これは誤差ではなく、そもそも別の市場をテストしているということです。詳細は MT5のリアルティックと疑似ティック へ。
原因7:過剰最適化
ここまでの6つをすべて埋めても、パラメータが過去データに合わせ込まれていれば、未知の期間では崩れます。
判定の基本は「最適化に使っていない期間で成績が保たれるか」です。OOSのプロフィットファクターがISの70%を下回るなら、そのパラメータは採用できません。9つの判定基準は カーブフィッティングとは 、手順は ウォークフォワード分析のやり方 にまとめています。
数字で見る乖離のインパクト
7つの原因がどの程度効くのかを、1トレードあたりのコストに換算して並べます。EURUSD・1ロット・1pip=約1,000円として計算した場合の目安です。
| 原因 | 1トレードあたりの悪化(目安) | 年間1,000トレードでの影響 |
|---|---|---|
| スプレッドの過小評価 0.5pips | 0.5 pips | 約50万円 |
| 片道スリッページ 0.3pips × 2 | 0.6 pips | 約60万円 |
| 往復手数料の計上漏れ $6 | 0.6 pips | 約60万円 |
| 約定拒否による機会損失(仮に3%) | — | トレード数が3%減少 |
※ 金額はあくまで換算上の目安であり、実際の損益を示すものではありません。通貨ペア・ロット・為替水準で変わります。
この表が示すのは、3つの見落としが重なると1トレードあたり1.7pips前後の差になるということです。期待利得が2pipsのEAなら、利益の大半が消えます。逆に期待利得が30pipsのスイングEAなら、影響は相対的に小さくなります。
💡 ポイント
自分のEAの期待利得(1トレードあたり平均損益)をpipsで把握しておくと、乖離の影響度が一目で分かります。期待利得がコスト悪化の想定値の3倍を下回るEAは、実運用で安定させるのが難しいと考えてください。期待利得はバックテストレポートに「Expected Payoff」として表示されます。EA成績指標チェッカーでも確認できます。
乖離が小さいEA・大きいEAの特徴
| 特徴 | 乖離しにくい | 乖離しやすい |
|---|---|---|
| 1トレードの値幅 | 数十pips以上 | 数pips |
| エントリー方法 | 指値中心 | 成行中心 |
| 取引時間帯 | 流動性の高い時間帯 | 早朝・指標発表時 |
| 損切り幅 | 広い(ストップレベルの影響を受けない) | 狭い |
| ポジション保有時間 | 数時間〜数日 | 数秒〜数分 |
| 損切りの有無 | 全トレードにハードな損切りあり | 損切りなし・ナンピンで回復 |
最後の行は特に重要です。損切りを置かないナンピン・マーチンゲール系EAは、バックテストでは残高ベースのドローダウンが小さく見えますが、含み損は有効証拠金にしか現れません。 実運用では証拠金維持率に直結します。挙動の確認には ナンピンマーチン破綻シミュレーター 、リスクの整理は マーチンゲールEAのリスク を参照してください。
乖離を実測して定数化する手順
原因を推測するより、自分の口座で測るほうが確実です。
- 同じ期間・同じパラメータで、バックテストとリアル(またはデモ)の約定履歴を用意する。 MT4/MT5の口座履歴をCSVで書き出します。
- 1トレードずつ突き合わせる。 同じシグナルで発生したトレードを対応付けます。
- エントリー価格の差を集計する。 これがスリッページです。平均と最悪値を出します。
- エントリー時刻の差を集計する。 これが遅延です。
- バックテストにあってリアルに無いトレードを数える。 これが約定拒否・ストップレベル違反です。
- 1トレードあたりの総コスト悪化をpipsで算出する。 「(3)の平均 + (5)による機会損失の按分」で概算します。
- その値をバックテストのスプレッドに上乗せして再実行する。 リアルの成績と整合するなら、その定数が自分の環境のコストです。
- 以後、すべてのEA評価にその定数を適用する。
💡 ポイント
この定数は業者・口座タイプ・VPSの組み合わせごとに違います。一度測っておけば、以後のEA評価が格段に速くなります。新しいEAを検討するたびに「この環境では1トレードあたり0.8pips余分にかかる」と分かっていれば、バックテストの期待利得がそれを下回る時点で検討から外せます。
デモとリアルでも差が出る
⚠️ 注意
デモサーバーは約定を常に通すため、オフクォート・リクオート・スリッページがほぼ発生しません。スキャルピングEAではデモとリアルで成績が半分になることも珍しくありません。 デモフォワードが良好でも、少額リアルでの検証段階を省略しないでください。
段階的な進め方は フォワードテストの設計 にまとめています。
乖離の方向で原因を絞り込む
| 乖離のパターン | 疑うべき原因 |
|---|---|
| リアルの平均利益だけが小さい | スリッページ、スプレッド(原因1・4) |
| リアルの勝率だけが低い | ストップレベル、損切りの滑り(原因2) |
| リアルのトレード数が少ない | 約定拒否、遅延によるシグナル取り逃し(原因2・3) |
| リアルのトレード数が多い | パラメータや時間設定の相違、サーバー時間のずれ |
| 最初は合っていたが徐々に乖離 | 過剰最適化、相場環境の変化(原因7) |
| 特定の時間帯だけ乖離 | スプレッド拡大時間帯、サーバー時間のずれ(原因4) |
サーバー時間のずれは見落とされやすい原因です。確認方法は サーバー時間の確認 、夏時間の扱いは 夏時間切り替えの影響 を参照してください。
よくある失敗
- 「リアルが悪いのは相場が悪いから」で片付ける。 実測すれば原因は特定できます。
- 乖離を見てEAのパラメータを変える。 原因がコストなら、パラメータ変更では解決しません。
- バックテストを回し直して良い結果が出るまで条件を変える。 それは検証ではなく選別です。
- 1か月で判断する。 30トレード程度では、乖離なのか通常のばらつきなのか区別できません。必要なトレード数は バックテストの期間は何年必要か を参照してください。
- VPSとローカルPCで環境が違うまま比較する。 遅延条件が変われば結果も変わります。
まとめ
バックテストとリアルの乖離は、消すものではなく見積もるものです。スリッページ・約定拒否・遅延・スプレッド・手数料とスワップ・データの出所・過剰最適化。この7つのうち、テスターが扱えるのは一部だけです。
最も実務的な対応は、自分の口座で1トレードあたりのコスト悪化をpipsで実測し、定数として持っておくことです。その定数を入れてもプラスが残るEAだけを候補にする。この基準を持てば、販売ページの数字に振り回される機会は大きく減ります。
次は フォワードテストの設計 で実運用への進め方を、 Myfxbookの数字は信用できるか で公開実績の読み方を確認してください。指標の判定は EA成績指標チェッカー 、資金設計は 必要資金・許容DD計算機 が使えます。
よくある質問
Q.バックテストとリアルで成績が違うのは当たり前ですか?
Q.デモ口座で検証すればリアルとの差は分かりますか?
Q.乖離の原因はどうやって特定しますか?
Q.業者を変えれば乖離は小さくなりますか?
関連記事
MT4/MT5バックテストのやり方|つまずきポイント別の完全手順
更新: 2026年9月24日
検証・バックテストカーブフィッティングとは|EAの過剰最適化を見抜く9つの判定基準
更新: 2026年9月24日
検証・バックテストEAフォワードテストの設計|デモから少額リアルへ進める3段階の手順
更新: 2026年9月24日
検証・バックテストバックテストの期間は何年分必要か|取引回数と統計から逆算する手順
更新: 2026年9月24日
検証・バックテストモデリング品質90%と99.9%は何が違うのか|MT4検証の限界
更新: 2026年9月24日
検証・バックテストMyfxbookの数字は信用できるか|確認すべき7項目とその限界
更新: 2026年9月24日