エラー10004とは
MT4でエラーコード10004(メッセージ:ERR_NO_RESULT)は、トレードサーバーに注文を送信した後、サーバーからの応答(約定結果)が返ってこない場合に発生します。手動注文でも発生しますが、EA(自動売買)使用時に多く報告されるエラーです。
重要な点として、このエラーが出ても注文自体は約定済みの場合があります。エラーが出たからといって即座に再注文すると、二重注文になるリスクがあるため注意が必要です。
原因
- サーバー側の高負荷:重要指標発表時(米雇用統計、FOMC等)やマーケットオープン直後はサーバーに大量の注文が集中し、応答が遅延します。
- ネットワーク遅延・不安定:インターネット接続が不安定な場合、サーバーからの応答パケットがロストし、MT4側でタイムアウトと判定されます。
- EA側のタイムアウト設定:EAのコード内で設定されている応答待ち時間が短すぎると、サーバーが正常に処理しているにもかかわらずタイムアウトエラーとして扱われます。
- サーバーメンテナンス中:FX業者のサーバーメンテナンス中に注文を送信した場合、応答が返りません。
解決手順
取引履歴で注文状況を確認する
MT4の「ターミナル」→「取引」タブで、注文が約定していないか確認します。エラーが出ても注文が通っている場合があるため、再注文の前に必ず確認してください。「口座履歴」タブも合わせて確認することを推奨します。
ネットワーク接続を確認する
MT4右下のステータスバーで通信状況を確認します。数値が表示されていれば接続中、「回線不通」であれば接続が切れています。Wi-Fiの場合は有線LANに切り替えることで安定性が向上します。
サーバーを変更して再接続する
「ファイル」→「デモ口座の申請」からサーバーリストをスキャンし、Pingが最も小さいサーバーを選択して再接続します。サーバーの応答が安定する場合があります。
EA使用時:リトライロジックを実装する
EAのコード内で注文結果がERR_NO_RESULTだった場合に、一定時間待機してからポジション状態を確認し、未約定であれば再送する「リトライ処理」を実装します。安易な再注文は二重注文のリスクがあるため、必ずポジション確認を挟んでください。
ERR_NO_RESULTが出た後に注文が実は約定していたケースは少なくありません。エラー後すぐに同じ注文を再送すると、意図しない二重ポジションを抱えるリスクがあります。再注文前に必ず「取引」タブと「口座履歴」を確認してください。
米雇用統計、FOMC、ECB政策金利発表など重要経済指標の発表前後は、サーバー負荷が急増するためERR_NO_RESULTの発生頻度が上がります。指標発表の30分前〜発表後15分程度はEAの稼働を一時停止するのも有効な対策です。
よくある質問
MT4/MT5のエラーが頻発する場合、サーバー環境や口座設定に問題がある可能性があります。XMは日本語サポート完備で、口座開設ボーナス15,000円を使えばリスクなしで取引環境をテストできます。
XM公式サイトで口座開設(無料)※ XMは日本の金融庁に未登録の海外FX業者です。取引にはリスクが伴います。
FX(外国為替証拠金取引)は元本保証のない金融商品です。レバレッジにより、預けた証拠金以上の損失が発生する可能性があります。余剰資金の範囲で取引を行ってください。当サイトで紹介する海外FX業者は日本の金融庁に未登録であり、日本の投資者保護基金の対象外です。当サイトの情報は一般的な情報提供を目的としたものであり、特定の業者の利用を推奨するものでも、個別の売買助言でもありません。