Expert Advisorが取引しない場合は、インストール、権限、戦略条件、ブローカーからの正確な応答の順に切り分けます。入力値を無作為に変更すると本当の原因が隠れ、新たなリスクを生むことがあります。
MT4 EAが動作しないときの最初の確認
- ナビゲーター → Expert AdvisorにEAが表示され、対象チャートに設定されていることを確認する。
- 全体のAutoTradingとEA個別の「自動売買を許可」の両方が有効であることを確認する。
- 口座、通貨ペアの接尾辞、時間足、Magic Number、市場時間、入力値を確認する。
- ターミナル → Expertsと操作履歴を開き、メッセージ全文と数値コードを記録する。
- 原因候補は1つずつ変更し、その都度ログを再確認する。
エラー → 意味 → 原因 → 解決策
| エラー | 意味/発生理由 | 解決方法 |
|---|---|---|
| EAがナビゲーターに表示されない | ファイルが別のターミナルまたは誤ったフォルダにある | そのMT4からデータフォルダを開き、.ex4をMQL4/Expertsへ移動してナビゲーターを更新する。 |
| AutoTradingが無効 | 全体設定またはEA個別の権限がオフ | ツールバーのAutoTradingとEAプロパティの「自動売買を許可」を有効化する。 |
| 無効な口座/ライセンス | ログイン、口座タイプ、紐づけ済みライセンスが一致しない | ブローカーサーバーとライセンス条件を確認し、販売元へ連絡する。ライセンスを回避しない。 |
| DLLが許可されていない | EAが許可なく外部ライブラリを呼び出した | 信頼でき、必要と明記されたDLLだけを有効化する。MetaTrader仮想ホスティングではDLLを実行できない。 |
| 取引が許可されていない · 133 | ブローカー、通貨ペア、ターミナルのいずれかが取引を許可していない | 口座権限、市場状態、通貨ペアの取引モード、AutoTradingを確認する。 |
| 市場が閉まっている · 132 | 対象銘柄が取引時間外 | ブローカーのセッション開始を待ち、祝日と銘柄の取引時間を確認する。 |
| 証拠金不足 · 134 | 余剰証拠金が注文ポジションに足りない | リスクまたはロットを下げ、レバレッジ、証拠金、既存エクスポージャーを確認する。 |
| 無効なストップ · 130 | SL/TPまたは指値価格がブローカーの最小距離に違反 | StopLevel/FreezeLevelを確認し、価格を桁数に合わせて、Stop Lossをさらに離す。 |
| 無効な取引量 · 131 | ロットが最小未満、最大超過、またはロット刻みに不一致 | ブローカーの最小・最大・ロット刻みに合わせて注文量を調整する。 |
| 取引処理中 · 146 | 別の取引処理がまだ進行中 | 注文処理を直列化し、短く待って上限付きで再試行する。無制限の短いループは使わない。 |
| 価格情報なし · 136/リクオート · 138 | 約定可能なレートがない、または価格が動いた | 接続とスプレッドを確認し、価格を更新して、妥当なスリッページ処理を使う。 |
| 接続エラー · 6 | ターミナルとブローカーの接続が切れた | サーバー、インターネット、ログイン、ファイアウォール、VPS状態を確認し、復旧まで注文を繰り返さない。 |
EAは正常に読み込まれるが取引しない
必ずしもエラーではありません。多くのEAは新しい足、特定セッション、最大スプレッド条件、複数インジケーターの一致を待ちます。指定通貨ペアと時間足を確認し、スプレッドフィルター、取引時間帯、最大注文数、ニュースフィルターなどのログを探してください。Entryを無理に発生させるため、すべてのフィルターを緩めないでください。
「セットアップなし」は戦略上の動作です。エラー133や無効な権限は約定を妨げる問題であり、対処法が異なります。
Invalid AccountとInvalid License
市販EAでは、キーが口座番号、ブローカー、プラットフォーム、最大有効化回数に紐づく場合があります。入力した口座が販売元に登録されたものか、ライセンスサーバーへ接続できるかを確認してください。改変ファイルをダウンロードしたりセキュリティ機能を無効にせず、販売元へ正規のリセットまたは有効化を依頼します。
DLLが許可されていない
ライセンス認証や追加機能に外部ライブラリを使うEAがあります。信頼できる提供元のファイルで、公式マニュアルに必要と明記されている場合だけDLLを許可してください。MetaTrader内蔵仮想ホスティングはDLLを使用できないため、そのようなEAは販売元が承認した互換性のある一般的なVPSへ移行します。
Stop Loss、ロット、証拠金、約定のエラー
エラー130 — Invalid stops
Stop Loss、Take Profit、指値注文が現在価格に近すぎる、方向が誤っている、またはブローカーのFreezeLevel内にある可能性があります。銘柄仕様を確認し、桁数に合わせて計算してください。保護注文を外して解決しないでください。
エラー131 — Invalid trade volume
ロットをブローカーの最小値、最大値、刻みに合わせます。刻みが0.01なら計算結果0.013 lotは正しく丸めない限り無効で、切り上げると予定リスクを超える場合があります。
エラー136と138 — Off quotesとrequote
通常はレートが利用できない、または変化したことを示します。接続とスプレッドを確認し、レートを更新して、回数上限のある再試行処理を使います。即時の連続送信は問題を悪化させる可能性があります。
エラー146 — Trade context busy
MT4は取引処理を順番に実行します。2つのチャートや処理が競合することがあります。EAは前の処理を待ち、市場を再確認し、設定した上限で再試行を停止する必要があります。
VPS同期とインスタンス重複の問題
MetaTrader仮想ホスティングへ移行後、設定変更は自動では再移行されません。チャートや入力値を変更したら再同期します。Windows VPSではターミナルが開き、ログイン済みで、再起動後に自動起動する設定か確認します。どちらの場合も、同じ口座・EA・Magic Numberをローカルとリモートで同時に取引しないでください。
サポートへ送る情報
スクリーンショットやログを共有する前に、パスワード、ライセンスキー、個人を特定できる情報を削除してください。
公式エラーリファレンス
数値コードの説明は MQL4公式エラーコードリファレンスに基づいています。ブローカー実装やEA固有のメッセージにより追加条件がある場合があります。