リターンコード10013とは
MT5でリターンコード10013(メッセージ:TRADE_RETCODE_INVALID_STOPS)は、ストップロス(SL)またはテイクプロフィット(TP)の設定が不正な場合に発生するエラーです。MT4のエラー130(Invalid stops)と同じ概念であり、注文のリスク管理設定に問題があります。
原因
- ストップレベルからの距離不足:各通貨ペアにはブローカーが定めた「ストップレベル」(最小距離)があり、SL/TPはこの距離以上に設定する必要があります。例えばストップレベルが20ピップスの場合、SLは現在価格から最低20ピップス離す必要があります。
- 価格形式の不正:SL/TPの価格が通貨ペアの小数点桁数に合致していない。例えばEUR/USDが5桁表示の場合に4桁の価格値を指定すると拒否されることがあります。
- 凍結距離(Freeze Level)の違反:ブローカーによっては「凍結距離」を設定している場合があり、現在価格がSL/TPの凍結距離内にあるとSL/TPの修正ができません。
- MT4との仕様の違い:MT4からMT5に移行した場合、ストップレベルの計算方法(ポイント単位とピップス単位)が異なることがあります。
解決手順
シンボルのストップレベルを確認する
MT5の「気配値」タブから対象の通貨ペアを右クリック→「仕様」を選択。表示されるシンボルプロパティで「ストップレベル」の値を確認します。この値がポイント単位かピップス単位かも確認することが重要です。
現在価格からの距離を計算する
設定予定のSL/TP価格が、現在価格からストップレベル以上の距離にあるかを計算します。計算式:距離 = |SL/TP価格 − 現在価格| ÷ ポイント値。例えば現在価格1.2500、ストップレベル20ピップス、SL設定1.2480の場合、距離は20ピップスでギリギリです。余裕を持って設定してください。
小数点桁数を確認する
シンボル仕様の「小数点以下の桁数」を確認し、SL/TPの価格値がこの桁数に正確に対応していることを確認します。通貨ペアごとに異なるため注意が必要です。
SL/TPを十分な距離で再設定する
ストップレベルに加えて10〜20ピップスの追加マージンを設定することを推奨します。例えばストップレベルが20ピップスなら、SL/TPは30〜40ピップス以上離して設定することで、ブローカーの仕様変更にも対応できます。
既存ポジションの場合は変更操作を行う
「ポジション」タブから対象ポジションを右クリック→「ポジションの変更」を選択し、SL/TPを再設定します。凍結距離内の場合は、一度ポジションを決済して新しいポジションを建て直す必要がある場合があります。
自動売買(EA)では、SymbolInfoInteger()関数でストップレベルを動的に取得できます。コード例:long stopLevel = SymbolInfoInteger(Symbol(), SYMBOL_TRADE_STOPS_LEVEL); これにより、異なるブローカーやシンボルでも正確なストップレベルを自動判定できます。
同じ通貨ペアでも、ブローカーAでは10ピップス、ブローカーBでは50ピップスということがあります。ブローカー変更時には必ず新しいストップレベルを確認してください。また、経済指標発表時には通常より大きなストップレベルが設定される場合もあります。
MT4エラー130との関連性
MT4のエラー130とMT5の10013は同じ概念(ストップ設定が不正)ですが、MT5ではエラーコード体系が異なります。MT4からMT5に移行する際は、EAやスクリプトのストップレベル計算部分を見直す必要があります。MT5ではSymbolInfoInteger()で取得する方法が推奨されています。
よくある質問
MT4/MT5のエラーが頻発する場合、サーバー環境や口座設定に問題がある可能性があります。XMは日本語サポート完備で、口座開設ボーナス15,000円を使えばリスクなしで取引環境をテストできます。
XM公式サイトで口座開設(無料)※ XMは日本の金融庁に未登録の海外FX業者です。取引にはリスクが伴います。
FX(外国為替証拠金取引)は元本保証のない金融商品です。レバレッジにより、預けた証拠金以上の損失が発生する可能性があります。余剰資金の範囲で取引を行ってください。当サイトで紹介する海外FX業者は日本の金融庁に未登録であり、日本の投資者保護基金の対象外です。当サイトの情報は一般的な情報提供を目的としたものであり、特定の業者の利用を推奨するものでも、個別の売買助言でもありません。