同じEAなのに結果が変わる原因:サーバー時間・スリッページ・約定遅延の影響

バックテストでは安定していたEAが、実運用で突然パフォーマンスを崩すことがあります。

ロジックやパラメータを変えていないにもかかわらず、エントリータイミングや損益がズレる場合、その原因は戦略そのものではなく、実行環境にあるかもしれません。

特にMT5では、ブローカーのサーバー時間、夏時間、約定遅延、スリッページなどが、EAの結果に大きく影響します。

本稿では、EA運用で見落とされやすい Server Time DriftExecution品質 の問題を整理します。


EAの不調はロジックだけが原因ではない

EAの成績が悪化すると、多くの場合、まずロジックやパラメータが疑われます。

しかし実運用では、以下のような環境要因でも結果は変わります。

  • ブローカーごとのサーバー時間の違い
  • DST、つまり夏時間による時間ズレ
  • 約定遅延
  • スリッページ拡大
  • リクオートの増加
  • 高ボラティリティ時のスプレッド拡大

特に時間帯を使うEAでは、サーバー時間のズレが大きな問題になります。

例えば、ロンドン時間の開始付近を狙うロジックであっても、MT5上のサーバー時間がズレていれば、本来想定していた市場時間とは異なるタイミングでエントリーしてしまう可能性があります。

つまり、EAは市場価格だけでなく、ブローカーの時間設定や約定環境にも依存しているということです。


Server Time Driftとは何か

Server Time Driftとは、EAが参照しているMT5サーバー時間と、実際に基準としたい市場時間とのズレです。

MT5では、ブローカーごとにサーバー時間が異なります。

そのため、同じEAを使っていても、以下のような差が発生します。

  • A社では想定通りにエントリー
  • B社では1時間ズレてエントリー
  • 夏時間切り替え後に条件判定がズレる
  • バックテストと実運用で時間帯条件が一致しない

特に、時間帯フィルターを使うEAでは注意が必要です。

「何時に取引するか」という条件が、実際にはブローカーのサーバー時間に依存しているためです。


Execution品質の変化もEAの結果を変える

もう一つ重要なのが、Execution品質です。

バックテストでは、指定した価格に近い水準で約定した前提になりがちです。しかし実運用では、常に理想通りに約定するわけではありません。

特に以下の局面では、Execution品質が悪化しやすくなります。

  • 経済指標発表時
  • 要人発言
  • 地政学リスク発生時
  • 流動性が薄い時間帯
  • 急騰・急落局面
  • ロールオーバー前後

このような場面では、約定遅延やスリッページが増えます。

その結果、バックテスト上では利益が出ていたロジックでも、実運用では期待値が削られることがあります。

特にスキャルピングや短期EAでは、数ポイントのズレでも成績に大きく影響します。


解決策:Execution Layerを追加する

実務上は、EAの売買ロジックとは別に、Execution Layer を持つことが重要です。

Execution Layerとは、売買判断そのものではなく、注文を出してよい環境かを判定する管理レイヤーです。

主な監視項目は以下です。

  • サーバー時間とUTCのズレ
  • 夏時間の切り替え
  • スプレッド
  • 約定遅延
  • スリッページ
  • リクオート率
  • 指標発表前後の取引可否
  • 流動性が薄い時間帯

例えば、以下のような制御が考えられます。

if latency > threshold:
    エントリー停止

if spread > max_spread:
    エントリー停止

if server_time_shift_detected:
    時間条件を補正

if slippage_avg > limit:
    ロットを縮小、または停止

重要なのは、EAを「売買ロジックだけ」で完結させないことです。

実運用では、売買判断よりも前に、その環境で注文を出してよいかを判定する必要があります。


バックテストにも実運用のズレを織り込む

バックテストと実運用の乖離を減らすには、テスト段階でもExecution品質を意識する必要があります。

具体的には、以下を確認します。

  • 固定スプレッドではなく変動スプレッドを使う
  • スリッページを想定する
  • 指標発表時のデータを分けて検証する
  • 時間帯別の成績を確認する
  • ブローカーごとのサーバー時間を確認する
  • 夏時間切り替え前後の挙動を確認する

バックテストが良くても、実運用で約定品質が悪ければ、成績は再現されません。

EAの検証では、ロジックの優位性だけでなく、その優位性が実際の約定環境で残るかを見る必要があります。


まとめ

EAが突然機能しなくなる原因は、ロジックやパラメータだけではありません。

MT5では、ブローカーのサーバー時間、夏時間、約定遅延、スリッページ、スプレッド拡大などが、EAの結果に直接影響します。

特に時間帯条件や短期売買を使うEAでは、Server Time DriftとExecution品質の管理が重要です。

実務上は、売買ロジックとは別にExecution Layerを設け、注文前に環境チェックを行う設計が有効です。

EA運用では、「勝てるロジック」だけでなく、そのロジックを安定して実行できる環境設計まで含めて考える必要があります。

ABOUTこの記事をかいた人

当サイトは、システムトレードに関する専門的な知識、技術、経験を皆様と共有することで、真剣なトレーダーの方々にインスピレーション(アイデアの源泉)の供給をいたします。トレーダーの競争力強化に焦点をあて、トレーディングシステムの構築を目的としてその普及に貢献します。 詳細は「概要とサービス内容」をご覧下さい。 ご要望はこちらで承ります。