MT4/MT5の注文エラー一覧と原因|Invalid stopsからNo connectionまで
MT4のエラーコードとMT5のリターンコードを公式原文つきで一覧化しました。131の無効なロット、130のInvalid stops、10030、10031など頻出エラーを症状・原因・対処の順に解説します。
PR当ページにはプロモーション(アフィリエイト広告)が含まれます。順位・評価は公開の評価基準に基づき編集部が独立して決定しています。EAの成績はすべて過去の検証結果であり、将来の利益を保証するものではありません。海外FX業者は金融庁未登録です。
この記事の目次
- 結論:MT4とMT5はコード体系が別物
- MT4の注文エラーコード一覧(公式)
- MT5のトレードサーバー・リターンコード一覧(公式)
- 131 / 10014:無効なロット(Invalid trade volume)
- 130 / 10016:Invalid stops(ストップレベル)
- 136 / 10021:オフクォート(Off quotes)
- 132 / 10018:Market is closed
- 10031:No connection(接続できない)
- 146:Trade context is busy(MT4固有)
- 10030:Invalid order filling type(MT5固有)
- 148 / 10033・10034・10040:数量と件数の上限
- よくある失敗
- まとめ
EAのログに残る数字は、「どこで、誰に、何を拒否されたか」を示す手がかりです。ただしMT4とMT5では番号の体系そのものが違い、同じ意味でもコードが一致しません。この記事では、MQL4とMQL5の公式リファレンスに定義された主要コードを、定数名と公式説明の原文つきで一覧にしました。そのうえで、EA導入時に特に頻出する131・130・136・10030・10031などを、症状・原因・対処の順に個別に解説します。
結論:MT4とMT5はコード体系が別物
✅ 結論
MT4で表示されるのは「エラーコード」(129〜150、4000番台)、MT5で注文時に返るのは「トレードサーバーのリターンコード」(10004〜10046)です。番号は一致しません。検索する前に、自分が使っているのがどちらかを必ず確認してください。
| 項目 | MT4 | MT5 |
|---|---|---|
| 番号の呼び方 | エラーコード | トレードサーバーのリターンコード |
| 主な番号の範囲 | 129〜150、4051、4107〜4111 | 10004〜10046 |
| 注文APIの構造 |
|
|
| 部分約定ポリシー | 概念として未実装 | FOK / IOC / RETURN を注文ごとに指定 |
| 公式リファレンス | MQL4 Error Codes | MQL5 Trade Server Return Codes |
MQL4とMQL5は相互に非互換で、注文APIが根本的に異なります。そのため「同じEA」を名乗るMT4版とMT5版は、別々に書かれた別プログラムです。両者の違いは MT4とMT5の違い で整理しています。
以下のコード表と公式説明(原文)は、次の一次情報から引用しています。
- MQL4 Error Codes (確認日 2026年9月24日)
- MQL5 Trade Server Return Codes (確認日 2026年9月24日)
一覧にないコードが出た場合は、上記の公式リファレンスで確認してください。本記事では確認できたコードのみを掲載しています。
MT4の注文エラーコード一覧(公式)
| コード | 定数 | 公式説明(原文) | 日本語での意味 |
|---|---|---|---|
| 129 |
| "Invalid price" | 無効な価格 |
| 130 |
| "Invalid stops" | 無効なストップ(SL/TPがストップレベル以内) |
| 131 |
| "Invalid trade volume" | 無効なロット |
| 132 |
| "Market is closed" | 市場が閉まっている |
| 133 |
| "Trade is disabled" | 取引が無効 |
| 134 |
| "Not enough money" | 証拠金不足 |
| 135 |
| "Price changed" | 価格が変動した |
| 136 |
| "Off quotes" | オフクォート(提示価格なし) |
| 137 |
| "Broker is busy" | ブローカーがビジー |
| 138 |
| "Requote" | リクオート |
| 139 |
| "Order is locked" | 注文がロックされている |
| 140 |
| "Buy orders only allowed" | 買い注文のみ許可 |
| 141 |
| "Too many requests" | リクエストが多すぎる |
| 145 |
| "Modification denied because order is too close to market" | 現在値に近すぎて変更が拒否された |
| 146 |
| "Trade context is busy" | トレードコンテキストがビジー |
| 147 |
| "Expirations are denied by broker" | 有効期限指定が業者に拒否された |
| 148 |
| "The amount of open and pending orders has reached the limit" | 保有・待機注文数が上限に達した |
| 149 |
| "Attempt to open order opposite to existing one when hedging disabled" | 両建て禁止環境での反対注文 |
| 150 |
| "Attempt to close order contravening the FIFO rule" | FIFOルール違反の決済 |
| 4051 |
| "Invalid function parameter value" | 関数引数が不正 |
| 4107 |
| "Invalid price" | 価格パラメータが不正 |
| 4109 |
| "Trade is not allowed. Enable checkbox 'Allow live trading'" | 自動売買が許可されていない |
| 4110 |
| "Longs are not allowed. Check the Expert Advisor properties" | 買いが許可されていない |
| 4111 |
| "Shorts are not allowed. Check the Expert Advisor properties" | 売りが許可されていない |
太字のコードが、EA導入時に特に多く報告されるものです。4109が出ている場合は発注以前の問題なので、 EAが動かない原因25項目チェックリスト の自動売買設定から確認してください。
MT5のトレードサーバー・リターンコード一覧(公式)
| コード | 定数 | 公式説明(原文) | 日本語での意味 |
|---|---|---|---|
| 10004 |
| "Requote" | リクオート(価格の再提示) |
| 10006 |
| "Request rejected" | リクエストが拒否された |
| 10009 |
| "Request completed" | リクエストが完了した(正常) |
| 10010 |
| "Only part of the request was completed" | 一部だけが約定した |
| 10013 |
| "Invalid request" | リクエストの内容が不正 |
| 10014 |
| "Invalid volume in the request" | ロット数が不正 |
| 10015 |
| "Invalid price in the request" | 価格が不正 |
| 10016 |
| "Invalid stops in the request" | ストップの指定が不正 |
| 10017 |
| "Trade is disabled" | 取引が無効 |
| 10018 |
| "Market is closed" | 市場が閉まっている |
| 10019 |
| "There is not enough money to complete the request" | 資金が不足している |
| 10020 |
| "Prices changed" | 価格が変動した |
| 10021 |
| "There are no quotes to process the request" | 処理できる気配値がない(MT4のオフクォート相当) |
| 10024 |
| "Too frequent requests" | リクエストが頻繁すぎる |
| 10026 |
| "Autotrading disabled by server" | サーバー側で自動売買が無効 |
| 10027 |
| "Autotrading disabled by client terminal" | ターミナル側で自動売買が無効 |
| 10029 |
| "Order or position frozen" | 注文またはポジションが凍結されている |
| 10030 |
| "Invalid order filling type" | 約定ポリシーの指定が不正 |
| 10031 |
| "No connection with the trade server" | 取引サーバーに接続できない |
| 10033 |
| "The number of pending orders has reached the limit" | 待機注文数が上限に達した |
| 10034 |
| "The volume of orders and positions for the symbol has reached the limit" | 銘柄の注文・ポジション合計数量が上限に達した |
| 10040 |
| "The number of open positions simultaneously present on an account has reached its limit" | 同時保有ポジション数が上限に達した |
| 10045 |
| "The request is rejected, because position closing is allowed only by FIFO rule" | FIFOルールでのみ決済が許可されているため拒否 |
| 10046 |
| "The request is rejected, because opposite positions on a single symbol are disabled" | 同一銘柄の反対ポジションが無効のため拒否 |
10009が返っていれば注文は通っています。それ以外が返り続ける場合は、以下の個別解説を確認してください。
131 / 10014:無効なロット(Invalid trade volume)
症状:発注のたびに131または10014が返り、一度もポジションが建たない状態です。EA導入直後にもっとも多く報告されます。
原因:要求したロット数が、銘柄の仕様に合っていないためです。確認すべき値は4つあります。
| 確認項目 | 銘柄プロパティ(公式説明の原文) | 典型値 |
|---|---|---|
| 最小ロット |
| 0.01 |
| 最大ロット |
| 50〜100 |
| ロット刻み |
| 0.01 |
| 同方向の合計上限 |
| 業者による |
対処:
- ロットの丸め処理を入れます。
NormalizeDouble(lot, 2)だけでは足りません。lot = MathFloor(lot / step) * stepで刻みに合わせ、最小値と最大値でクリップします。 - 浮動小数点誤差に注意します。0.1が内部で0.09999999になっていると弾かれます。刻みに合わせたあと、必ず正規化を適用します。
- 口座タイプごとの1ロットの通貨数を確認します。1ロット=1,000通貨のマイクロ口座では、標準口座前提のEAのロット計算が100倍ずれます。XMのスタンダード口座は「1スタンダードロット=100,000通貨」と明記されています(出典: XMTrading 口座タイプ 、2026年9月24日確認)。
- リスク率からロットを自動計算するEAで、資金が少なすぎて計算結果が最小ロット未満になっているケースが非常に多く見られます。初心者の「EAが動かない」の大半がこれです。
💡 ポイント
まず計算後のロット値をログに出力してください。0.003のような値が出ていれば、原因は資金かリスク率の設定です。想定ロットに必要な証拠金はロット・必要証拠金計算機で確認できます。
130 / 10016:Invalid stops(ストップレベル)
症状:SL(損切り)やTP(利確)をつけた注文だけが弾かれます。SL・TPなしなら通る場合は、ほぼこれです。
原因:注文に指定したSL/TPや指値・逆指値が、現在値に近すぎるためです。2つの銘柄プロパティが関係します(出典: MQL5 Symbol Properties 、2026年9月24日確認)。
SYMBOL_TRADE_STOPS_LEVEL:"Minimal indention in points from the current close price to place Stop orders"。現在値から最低これだけ離さないと、SL/TPや指値・逆指値を置けないというポイント数です。SYMBOL_TRADE_FREEZE_LEVEL:"Distance to freeze trade operations in points"。現在値からこの距離以内にある注文は、変更も取消もできなくなります。
対処:
- EAのSL/TPがストップレベルより内側になっていないか確認します。SL 3pipsのようなスキャルピングEAで頻発します。
SymbolInfoInteger(_Symbol, SYMBOL_TRADE_STOPS_LEVEL)で値を取得し、MathMax(希望SL, ストップレベル + 余裕)でクリップする実装にします。- 5桁業者と3桁・4桁業者のpoint/pip換算ミスでも同じエラーになります。小数点以下が5桁または3桁の銘柄では、1pip=10ポイントです。MT4向けの古いEAには4桁前提のものがあるため注意してください。
- 指標発表直後にストップレベルが動的に拡大する業者があります。平常時0でも、発表時だけ広がることがあります。
- 根本解決はストップレベル0の業者・口座タイプを選ぶことです。ただし同じ業者でも口座タイプで異なる場合があります。 EAの制限を業者別に比較 で確認の観点を整理しています。
136 / 10021:オフクォート(Off quotes)
症状:普段は通るのに、特定の時間帯だけ発注が弾かれます。
原因:発注しようとした瞬間に、業者がその価格で約定できる相手を見つけられなかった状態です。MT5では10021が"There are no quotes to process the request"として返ります。
- 指標発表時・要人発言時に頻発します。流動性が瞬間的に消えるためです。
- スプレッドが異常拡大しているときに、狭いスリッページ許容値で発注している場合。
- ロットが大きすぎて流動性が足りない場合。
- 週明け(月曜早朝)のギャップ時。
対処:EA側でリトライ処理を実装するのが標準です。数百ミリ秒待って再送し、3回までにとどめます。
⚠️ 注意
無制限にリトライするEAは危険です。連続再送すると141("Too many requests")やMT5の10024("Too frequent requests")に引っかかります。リトライ間隔は最低でも100〜500ミリ秒空けてください。頻発する場合は約定品質そのものの問題なので、業者や口座タイプの変更を検討します。
132 / 10018:Market is closed
症状:ログに「Market is closed」や「マーケットが休止中です」と出ます。
原因と対処:
- 単純な取引時間外です。銘柄ごとの取引時間は、気配値表示で銘柄を右クリックして「仕様(Specification)」から確認できます。
- ロールオーバー(日跨ぎ)の数分間は、多くの業者でスプレッドが極端に開くか、一時的に約定を受け付けません。
- 祝日です。ゴールド・指数・株式CFDは為替と休場日が異なります。
- 年末年始・クリスマスは取引時間が大幅に短縮されます。EAは停止させるのが安全です。
- 銘柄の
SYMBOL_TRADE_MODEが取引不可または決済専用になっていないか確認します。
時間帯フィルタ型のEAでは、サーバー時刻のずれが「取引時間外」を生むこともあります。 MT4/MT5のサーバー時間とGMTオフセット もあわせて確認してください。
10031:No connection(接続できない)
症状:MT5で10031が返り、右下のステータスバーが「回線不通」になっています。
原因と対処:
- ログイン情報を再確認します。サーバー名は完全一致が必要です。たとえば
XMTrading-Real 3とXMTrading-Real 30は別サーバーです。似た名前が並ぶため、選択ミスが起きやすい箇所です。 - VPSやPCのファイアウォールが、MetaTraderの通信を遮断していないか確認します。
- 週末はサーバーを停止している業者があります。土日の切断は正常な場合があります。
- 口座が凍結・休眠していないか確認します。長期間ログインしていない口座で起きます。
- 「ツール→オプション→サーバー」のプロキシ設定が誤っていないか確認します。
- VPSのネットワーク障害の可能性もあります。業者のステータスページとVPS事業者の障害情報を、両方確認してください。
146:Trade context is busy(MT4固有)
症状:複数のEAを1つのMT4で動かしているときだけ、断続的に発注が失敗します。
原因:MT4のトレードコンテキストはプロセス全体で1つしかありません。複数のEAが同時に発注しようとすると衝突します。MT5はマルチスレッドで動作するため、この問題は発生しません。
対処:
- EA側で
IsTradeContextBusy()をチェックし、Sleep()で待つループを入れます(セマフォ実装)。 - 根本的な対処は、MT4のインスタンスを分けることです。EAごとに別フォルダへMT4をインストールし、別プロセスで起動します。手順は MT4を複数インストールする方法 にまとめています。
- 同じMT4で複数EAを動かす場合、注文の取り違えを防ぐためにマジックナンバーの重複も確認してください( マジックナンバーの設定 )。
10030:Invalid order filling type(MT5固有)
症状:MT5でのみ発注が全て失敗します。MT4版の同じEAは動いています。
原因:MT5は注文ごとに約定ポリシーを指定します。業者が許可していないポリシーを指定すると、必ず弾かれます。海外FX業者のMT5でEAが動かない原因として最頻出です。
| 定数 | 意味 | 挙動 |
|---|---|---|
|
| Fill or Kill | 指定数量が全量約定できなければ注文自体が破棄される |
|
| Immediate or Cancel | 約定可能な数量だけ約定し、残りはキャンセル |
|
| — | 部分約定後、残数量の注文が板に残り続ける |
出典: MQL5 Reference - Order Properties (確認日 2026年9月24日)
対処:銘柄ごとに許可されるポリシーは SYMBOL_FILLING_MODE("Flags of allowed order filling modes")で定義されています。このフラグを読み、許可されているポリシーを動的に選ぶ実装が理想です。EAにパラメータとしてFilling Typeの選択肢があれば、FOK→IOC→RETURNの順に試してください。
148 / 10033・10034・10040:数量と件数の上限
症状:しばらくは動いていたEAが、ポジションが増えた時点から発注しなくなります。
原因:業者が定める上限に達しています。MT5では上限の種類ごとにコードが分かれます。
| コード | 何の上限か |
|---|---|
| MT4: 148 | 保有ポジションと待機注文の合計件数 |
| MT5: 10033 | 待機注文の件数 |
| MT5: 10034 | その銘柄の注文・ポジション合計数量 |
| MT5: 10040 | 口座の同時保有ポジション件数 |
対処:
- ナンピン・グリッド系のEAを複数通貨ペアで動かすと、簡単に上限へ到達します。導入前に「EA数 × 想定最大ポジション数」を計算し、上限内に収めてください。
- 上限値は業者・口座タイプによって異なります。編集部でも公式ページ本文での確認に至らなかった業者があるため、数値は必ず利用する業者の公式FAQで確認してください。
- 銘柄あたりの合計数量上限(10034)は、ロットを増やした局面で先に当たることがあります。
⚠️ 注意
上限に達したEAは「新規は建たないが決済は動く」という中途半端な状態になります。ロジックが崩れたまま運用が続くため、ログを見ずに放置するのが最も危険です。ナンピン系を複数運用する場合は、想定最大ポジション数を事前に把握してください。
よくある失敗
- エラーコードを見ずに再起動だけ繰り返す。ターミナル(Ctrl+T)の「エキスパート」タブと「操作履歴」タブにコードが残っています。まずそこを読みます。
- MT4のコードでMT5の情報を検索する。番号体系が違うため、無関係な情報にたどり着きます。
- リトライ回数を制限しない。オフクォート対策のつもりが、141や10024を誘発します。
- デモで確認して終わりにする。デモサーバーは約定を常に通すため、オフクォートやリクオートがほぼ発生しません。口座タイプ固有のエラーも出ません。
- そもそも発注に到達していない。笑顔マークが出ていない場合、エラーコード以前の問題です。 スマイルマークが出ないときの直し方 を先に確認してください。
- ファイルの置き場所が違う。データフォルダ以外に置いたEAは読み込まれません( EAの入れ方 )。
まとめ
MT4は「エラーコード」、MT5は「トレードサーバーのリターンコード」で、番号は一致しません。まずプラットフォームを特定し、本記事の一覧で意味を確認してください。頻出するのは131/10014(ロット)、130/10016(ストップレベル)、10030(約定ポリシー)の3つです。いずれも銘柄の「仕様」を開けば原因の当たりがつきます。掲載のないコードは公式リファレンスで確認してください。
発注以前の段階でつまずいている場合は EAが動かない原因25項目チェックリスト を、バックテストが実行できない場合は バックテストが動かない・結果がおかしいときの確認項目 を参照してください。
よくある質問
Q.MT4のエラーコードとMT5のリターンコードは同じものですか?
Q.「OrderSend error 130」が消えません。どうすればいいですか?
Q.エラー131(無効なロット)が資金を入れても直りません。
Q.MT5でだけ10030が出ます。MT4では同じEAが動いていました。
Q.「Trade context is busy」はMT5でも起きますか?
関連記事
EAが動かない原因25項目チェックリスト|MT4/MT5の症状別対処法
更新: 2026年9月24日
トラブル解決MT4/MT5のバックテストができない原因|結果がおかしいときの確認項目
更新: 2026年9月24日
トラブル解決EAで口座凍結される典型パターン|規約違反になる行為を原文で確認
更新: 2026年9月24日
トラブル解決GEMFOREX問題のその後|Galaxy DAO運営停止までの経緯を時系列で整理
更新: 2026年9月24日
トラブル解決スマイルマークが出ない・自動売買ボタンが押せないときの直し方【MT4/MT5】
更新: 2026年9月24日
トラブル解決EA詐欺の見分け方15項目|公的窓口への相談手順と一次情報の確認方法
更新: 2026年9月24日