EAを動かした人が最初にぶつかる壁がこれです。

「バックテストの成績と、実際に動かした成績が全然違う」

これを「相場が変わったから」で片付けると、何も学べずに次のEAでも同じことが起きます。実は原因の大半は、相場ではなく検証と本番の"条件のズレ"です。当ラボの経験上、ズレの原因はほぼ次の5つに絞れます。

理由1: スプレッド(一番多い)

バックテストは一定のスプレッドで回りがちですが、本番のスプレッドは深夜・指標発表・週明けに何倍にも広がります。1回あたり数pipsを取りにいく型のEAほど、この差がそのまま命取りになります。

潰し方: 実ティック検証+スプレッド2倍の再テスト。2倍で利益が消えるEAは本番でも消えます。

理由2: スリッページ(注文のズレ)

バックテストの注文は狙った価格で必ず約定しますが、本番は注文がすべって不利な価格で約定します。動きが速い瞬間を狙うEAほど、すべりも大きくなります。

潰し方: テスターの「遅延」をゼロにしない。当ラボは実遅延を入れた上で、それでも成立する手法しか残しません。

理由3: スワップ(持ち越しコスト)

日をまたぐEAの隠れコストです。バックテストのグラフがきれいでも、スワップ込みで再計算すると利益が大きく目減りすることがあります。当ラボの5通貨合成システムも、スワップ込みで計算し直すと成績が目減りすることを確認済みで、だから月1回のスワップ点検をルール化しています。スワップは業者の都合で変わるので、「一度検証したら終わり」にできないんです。

潰し方: レポートのスワップ合計を確認+運用中も定期点検。

理由4: サーバー時間のズレ

「毎日◯時に仕掛ける」「特定の曜日だけ動く」型のEAは、ブローカーのサーバー時間が前提です。バックテストしたサーバーと本番のサーバーで時差の扱い(夏時間など)が違うと、そもそも狙った時間に動いていないことがあります。時間依存のEAを動かす前に、サーバー時差の確認は必須です。

潰し方: 本番口座のサーバー時間と検証時の時間設定を突き合わせる。1時間ズレたら別のEAになると思ってください。

理由5: 約定方式と口座条件の違い

同じEAでも、口座タイプ(スプレッド広め手数料なし/スプレッド狭め手数料あり)やストップレベルの制限で挙動が変わります。検証した口座と違う条件の口座で動かせば、違う結果になるのは当然です。

潰し方: 検証と同じ業者・同じ口座タイプで動かす。業者ごとの違いはこちらにまとめています

当ラボの照合実例: 独立2系統で「91%一致」を確認してから進む

「そこまでやる必要ある?」と思うかもしれないので、当ラボが実際にやっている照合を1つ紹介します。

ある自作EAを検証したとき、当ラボは同じ手法を2つの別システムで独立に再現しました。

この2つの取引履歴を1件ずつ突き合わせて、一致率91%を確認してから次の段階(デモ並走)に進みました。逆に言うと、9%はズレました。同じ手法・同じデータのつもりでも、実装の細部でこれだけズレるのが現実です。

1つの検証結果だけを見て「勝てる」と断定するのが、どれだけ危ないか分かると思います。

まとめ

「バックテスト◯◯%」だけを根拠に売られているEAを見たら、この記事の5つを売り手に質問してみてください。まともな検証をしていれば、全部即答できるはずです。