当サイトはアフィリエイト広告を含みます(PR)

MT5「Invalid request」が表示される場合の確認手順

✅ 結論(解決策)

Invalid requestとは

MT5で「Invalid request」(リターンコード:TRADE_RETCODE_INVALID、数値10013)は、送信した取引リクエストの形式や内容が不正であることを示します。MT5はMT4よりも注文パラメータの検証が厳格なため、MT4では通った注文がMT5でInvalid requestになることがあります。

原因

  1. 注文タイプとパラメータの不一致:成行注文に価格を指定した、指値注文に価格を指定しなかった、など。
  2. ロット数の不正:最小ロット未満、最大ロット超過、ステップ値に合わない値。
  3. SL/TPの設定不正:ストップレベル内の値、または方向が逆。
  4. シンボル名の不一致:EAでハードコードしたシンボル名が、業者のシンボル名と異なる(例:「EURUSD」と「EURUSD.」)。
  5. 口座タイプの制限:デモ口座で本番サーバーのシンボルを指定した場合など。
  6. フィリングモードの不一致:MT5では注文のフィリングモード(FOK, IOC, Return)を指定する必要があり、銘柄がサポートするモードと合っていない場合にエラーになります。

解決手順

手動注文の場合:注文画面の内容を確認

注文タイプ(成行/指値/逆指値)、ロット数、SL/TP、有効期限の設定を確認します。特にSL/TPが現在価格に近すぎないか、ロット数が範囲内かを確認してください。

銘柄の取引仕様を確認

MT5で対象銘柄を右クリック →「仕様」で最小ロット、最大ロット、ストップレベル、フィリングモードを確認します。

EAの場合:MqlTradeRequestを検証

EAのコードでMqlTradeRequest構造体の全フィールドが正しく設定されているか確認します。特に以下のフィールドに注意してください。

request.action    // TRADE_ACTION_DEAL(成行)等
request.symbol    // 正確なシンボル名
request.volume    // ロット数(範囲内・ステップ合致)
request.type      // ORDER_TYPE_BUY / SELL
request.price     // 成行ならAsk/Bid
request.sl        // ストップロス
request.tp        // テイクプロフィット
request.type_filling // ORDER_FILLING_FOK等

フィリングモードを正しく設定

MT5では銘柄ごとにサポートするフィリングモードが異なります。SymbolInfoInteger(symbol, SYMBOL_FILLING_MODE)でサポートされているモードを取得し、リクエストのtype_fillingに正しい値を設定します。

ℹ MT4からMT5への移行時の注意

MT4のEAをMT5に移植する場合、注文関連の関数(OrderSend等)の仕様が大きく異なります。MT4のOrderSend()は単一関数ですが、MT5ではMqlTradeRequest構造体にパラメータを設定してOrderSend()に渡す形式です。フィリングモードの指定も必須です。

エラーが解消しない場合は環境を見直す

MT4/MT5のエラーが頻発する場合、サーバー環境や口座設定に問題がある可能性があります。XMは日本語サポート完備で、口座開設ボーナス15,000円を使えばリスクなしで取引環境をテストできます。

XM公式サイトで口座開設(無料)
※ 当サイト経由の口座開設でボーナスが付与されます(PR)
※ XMは日本の金融庁に未登録の海外FX業者です。取引にはリスクが伴います。
リスクに関する注意事項
FX(外国為替証拠金取引)は元本保証のない金融商品です。レバレッジにより、預けた証拠金以上の損失が発生する可能性があります。余剰資金の範囲で取引を行ってください。当サイトで紹介する海外FX業者は日本の金融庁に未登録であり、日本の投資者保護基金の対象外です。当サイトの情報は一般的な情報提供を目的としたものであり、特定の業者の利用を推奨するものでも、個別の売買助言でもありません。