MT4で注文が失敗したときは、「無効な取引です」という表示だけから原因を決めず、操作履歴・エキスパートログのエラー番号を確認します。価格、ストップ距離、ロット数、取引時間、口座やEAの権限では、対処が異なります。原因を確認する前に、実口座で注文を連打しないでください。
こんにちは。trade-engineer.com 運営者のHです。
最初に、失敗した操作とログをそろえる
手動注文なのかEAからの注文なのかを分け、発生日時、銘柄、売買方向、成行・指値・逆指値の別、ロット数、指定価格、SL・TPを記録します。口座番号や個人情報を公開する必要はありません。ログを問い合わせに送るときは、必要な行に絞ります。
手動操作はターミナルの操作履歴、EAはエキスパート側のログも確認します。画面の訳語とMQL4の実行時エラー名が完全に同じとは限らないため、番号と直前の操作を基に切り分けるのが出発点です。
代表的なエラー番号と確認先
| 番号 | 公式の意味 | 確認すること |
|---|---|---|
| 129 | Invalid price | 注文種別に合う価格、最新のBid・Ask、桁数 |
| 130 | Invalid stops | SL・TPや予約注文価格の距離、銘柄の制限 |
| 131 | Invalid trade volume | 最小・最大ロットとロット刻み |
| 132 | Market is closed | 銘柄の取引時間とサーバー時刻 |
| 133 | Trade is disabled | 銘柄・口座の取引可否と業者の案内 |
| 134 | Not enough money | 注文に必要な証拠金と余力 |
| 64・65 | Account disabled / Invalid account | 口座の状態、ログイン情報とサーバー |
| 4109 | Trade is not allowed | EAの取引許可など、取引権限の設定 |
表は全エラーを網羅するものではありません。通信、価格更新、取引サーバーの処理状況に関するエラーもあります。原文と番号の対応はMQL4公式の実行時エラー一覧で照合してください。
価格・SL・TP・ロットを別々に確認する
129と130は、同じ「価格の問題」でも確認対象が違う
成行の買いはAsk、売りはBidを基に注文します。価格の更新や銘柄の桁数を確認し、129では注文価格、130ではSL・TPや予約注文の価格条件を調べます。スプレッドだけを見て「これより離せば必ず通る」と判断しないでください。
最小ストップ距離を示すStopLevelは銘柄条件です。値が0でも、サーバー側の動的な制御により130が発生する場合があると公式資料に説明されています。業者の仕様も併せて確認します。詳細はMQL4公式「OrderSend」を参照してください。
131では、希望数量をそのまま入れない
ロット数は最小・最大と刻み幅に従う必要があります。ある銘柄で使えた数量が、別の銘柄でも使えるとは限りません。証拠金不足の134とは区別し、131を「入金すれば直る」と考えないようにします。
権限・時間・口座の状態を確認する
EAで取引が許可されていない場合は、自動売買の全体設定とEAごとの設定を確認します。閲覧用のログイン、口座の停止、銘柄の取引停止などは、設定を一つ変えるだけでは解消できません。休眠までの日数も業者ごとの条件であり、全業者に共通する「90日」を前提にしないでください。
時間の確認にはMT4のサーバー時刻と日本時間の確認が役立ちます。FXTFの接続先や対応商品を調べる場合は、FXTF MT4の導入と接続確認も参照してください。
再試行前に、注文が成立していないかを確認
- ログと注文条件を保存し、該当番号を公式資料と照合する。
- 取引一覧・口座履歴で、同じ注文が成立していないか確認する。
- 銘柄条件と権限を確認し、EAの変更はデモ口座で確認する。
- 原因が不明なら、日時・銘柄・番号を添えて取引業者に問い合わせる。
通信失敗と注文未成立は同じ意味ではありません。状況不明のまま再送すると、意図しない重複注文につながります。この記事はエラーの切り分けガイドであり、注文を自動再送するコードや取引成果を保証するものではありません。
取引画面のイメージ画像(実際のMT4画面ではありません)









