# バックテストでは正常なのに実運用でEAが動かない原因|確認すべき7項目
「バックテストでは正常にエントリーするのに、実口座ではまったく動かない」
「デモ口座では問題なかったのに、別のFX会社では注文されない」
「EAは稼働しているように見えるが、シグナルが発生してもエントリーしない」
MT4・MT5のEAでは、このようなご相談が少なくありません。
バックテストが正常でも、実運用で同じように動作するとは限りません。ストラテジーテスターと実際の取引環境では、価格、スプレッド、注文条件、通信状態などに違いがあるためです。
今回は、実運用でEAが動かない場合に確認したい7つの項目をご紹介します。
1.自動売買が許可されているか
最初に確認したいのが、MT4・MT5側の自動売買設定です。
主に以下の状態を確認します。
・MT4の「自動売買」、またはMT5の「アルゴリズム取引」が有効になっている
・EAの設定画面で自動売買が許可されている
・チャート上にEAが正常にセットされている
・口座へのログインが「閲覧専用」になっていない
・EAが初期化エラーを起こしていない
EAをチャートへ設定できていても、自動売買が許可されていなければ注文は実行されません。
まずはチャート上の表示と、Experts・Journalログにエラーが出ていないか確認してください。
2.スプレッド制限によりエントリーが停止していないか
EAに最大スプレッドの制限がある場合、現在のスプレッドが設定値を超えるとエントリーしません。
バックテストでは固定スプレッドを使用していても、実運用では市場状況によってスプレッドが変動します。
特に以下の時間帯では、スプレッドが拡大しやすくなります。
・早朝やロールオーバー前後
・重要経済指標の発表前後
・市場の流動性が低い時間帯
・週明けや週末の取引時間
「シグナルは出ているのに注文されない」という場合は、最大スプレッドの設定値と、発生時点の実際のスプレッドを比較する必要があります。
3.FX会社や銘柄の仕様が異なっていないか
同じ通貨ペアでも、FX会社によって取引条件が異なります。
例えば、以下の違いがあります。
・通貨ペア名の末尾に記号が付いている
・最小ロット、最大ロット、ロット刻みが異なる
・最小ストップレベルが異なる
・価格の桁数が異なる
・注文方式や約定条件が異なる
・両建ての可否や証拠金計算方法が異なる
「USDJPY」を前提として作られたEAが、実口座では「USDJPY.a」などの名称になっている場合、銘柄名の判定方法によっては正常に動作しないことがあります。
ゴールド、株価指数、仮想通貨CFDなどは、FX通貨ペアよりもFX会社ごとの差が大きいため、さらに注意が必要です。
4.ロット、SL、TPなどの注文条件が拒否されていないか
エントリー条件が成立していても、送信した注文内容がFX会社の条件を満たしていなければ、注文は拒否されます。
代表的な原因は以下のとおりです。
・ロット数が最小ロット未満または最大ロット超過
・ロット刻みと一致していない
・SLまたはTPが現在価格に近すぎる
・必要証拠金が不足している
・価格が更新され、許容スリッページを超えた
・取引時間外の銘柄へ注文した
・注文方式が口座仕様に対応していない
この場合、EAがエラーを画面に表示しない設計だと、利用者からは「何も起きなかった」ように見えます。
注文結果とエラーコードをログへ記録することが重要です。
5.時間設定がサーバー時間に対応しているか
EAの稼働時間を日本時間で設定したつもりでも、内部ではFX会社のサーバー時間を基準に判定していることがあります。
日本時間とサーバー時間の差は、FX会社や夏時間・冬時間によって変わる場合があります。
その結果、
・指定時間になってもEAが動かない
・予定より1時間早い、または遅い
・特定の曜日だけ取引しない
・日付変更付近で日次制限が正しく解除されない
といった現象が発生します。
時間制限のあるEAでは、設定値だけでなく、EAがどの時間を基準としているか確認する必要があります。
6.参照しているインジケーターが実運用で取得できているか
カスタムインジケーターを参照するEAでは、インジケーターファイルの配置や名称が一致していないと、売買判定を取得できません。
以下の点を確認します。
・必要なインジケーターがIndicatorsフォルダーに入っている
・ファイル名とフォルダー構成が開発時と一致している
・インジケーターの入力パラメーターが正しい
・EAとインジケーターのMT4/MT5バージョンが一致している
・インジケーターが初期化エラーを起こしていない
・確定足と未確定足の参照位置が正しい
また、リペイントするインジケーターでは、バックテスト上の表示と実時間のシグナルが異なる場合があります。
「チャートには後から矢印が表示されたが、EAはエントリーしていない」という現象では、シグナルが実際にいつ確定したのかを確認する必要があります。
## 7.通信、VPS、外部接続に問題がないか
実運用では、MT4・MT5と取引サーバーが常に通信できる状態でなければなりません。
以下のような問題も考えられます。
・MT4/MT5が取引サーバーから切断されていた
・VPSが再起動またはスリープしていた
・Windows Update後にMT4/MT5が停止していた
・EAを設定したチャートが閉じられていた
・DLLの使用が許可されていない
・WebRequestの許可URLが登録されていない
・外部APIや認証サーバーへ接続できていない
・ライセンス認証が失敗している
TradingView、Python、LINE通知、外部API、ライセンス認証などを使用するEAでは、MT4・MT5本体だけでなく外部システムのログも確認する必要があります。
バックテストの結果だけでは実運用を保証できない
バックテストは、EAの売買ロジックや過去データ上の動作を確認するために重要です。
ただし、実運用では以下の影響を受けます。
・変動スプレッド
・スリッページ
・通信遅延
・注文拒否
・約定価格の差
・FX会社ごとの銘柄仕様
・サーバー時間
・外部サービスの接続状態
そのため、「バックテストが正常だった」という事実だけで、実口座でも正常に動くと断定することはできません。
バックテスト結果と実運用結果の差を調査するときは、同じ期間や同じエントリーだけを見るのではなく、EAが各段階でどの条件を判定したか確認できるログが必要です。
調査を依頼する前に準備したい情報
不具合調査では、次の情報があると原因を切り分けやすくなります。
1. MT4またはMT5のどちらを使用しているか
2. FX会社名、サーバー名、口座種類
3. 対象の通貨ペアと時間足
4. EAとインジケーターのファイル形式
5. 使用しているパラメーター設定
6. 問題が発生した日時
7. Experts・Journalのログ
8. 発生時のチャート画像
9. バックテスト時の設定と結果
10. 本来期待していた動作と実際の動作
口座番号、パスワードなどの重要情報を送る必要はありません。
まずは、再現条件とログを整理することが重要です。
まとめ
バックテストでは正常なのに実運用でEAが動かない場合、EAの売買ロジックだけが原因とは限りません。
・自動売買の許可設定
・スプレッド制限
・FX会社や銘柄の仕様
・ロット、SL、TPの注文条件
・サーバー時間
・参照インジケーター
・通信、VPS、外部接続
これらを順番に切り分ける必要があります。
原因を確認せずにパラメーターやコードを変更すると、本来正常だった処理に別の不具合を発生させる可能性があります。
Power Labでは、MT4・MT5のEAについて、実運用で動かない原因の調査、既存EAの修正、機能追加、MT4/MT5移植、外部システム連携などに対応しております。
ご相談の際は、以下の3点をお知らせください。
・バックテストではどのように動作したか
・実運用では何が起きたか
・ExpertsまたはJournalに表示された内容
確認後、調査方法、対応可否、概算費用をご案内いたします。
同様の現象でお困りの場合は、ココナラの見積り相談よりお気軽にお問い合わせください。