海外FX/運用環境
ストップレベルとは何か——EAの注文エラー「invalid stops」の原因になる制限
公開 2026.06.17 最終確認 2026.06.17 Broker
EAが「error 130(invalid stops)」を出して注文を弾く。これはバックテストでは見えにくい落とし穴の一つ、ストップレベルが原因かもしれません。
口座タイプ、スプレッド、手数料、約定、VPS、キャッシュバックは単独では判断しません。EAの売買回数と保有時間に合わせて見ます。
execution
EAが「error 130(invalid stops)」を出して注文を弾く。これはバックテストでは見えにくい落とし穴の一つ、ストップレベルが原因かもしれません。
ストップレベルとは、現在価格から一定の範囲内ではSL(損切り)やTP(利確)を設定できない制限のことです。特にスキャルピングEAや、損切り幅が狭いEAを運用する際に、この制限が致命的なエラーを引き起こすことがあります。
EA運用者が知るべき結論
ストップレベルは、現在の市場価格から指値・逆指値注文を出せない「禁止ゾーン」の幅を指します。
- ストップレベル0の業者: 現在価格の直近にもSL/TPを置けます。スキャルピングEAや、狭い損切り幅を必要とするEA向きです。
- ストップレベルが広い業者: 現在価格から離れた位置にしかSL/TPを置けません。例えば、SL 5pips以下のEAは注文が通らない可能性があります。
EA開発でSLとTPの幅を設計するとき、このストップレベルを無視すると、特定の業者や口座タイプでEAが全く動かない事態に陥ります。バックテストでは問題なく動いたのに、リアル口座でエラーが頻発する原因の多くはここにあります。
なぜEA運用でストップレベルが重要なのか
スキャルピングEAや、損切り幅が5〜10pips以下のEAは、ストップレベルに引っかかりやすい傾向があります。
最も厄介なのは、MT5のバックテストではストップレベルが反映されない点です。そのため、テスト上は問題なく動作するEAでも、リアル口座で稼働させると「invalid stops」エラーが頻発し、想定通りの取引ができないという事態が起こります。
これはEAのロジックが悪いわけではなく、取引環境の仕様によるものです。
ストップレベルの仕組みと確認方法
ストップレベルは、MT5のシンボル情報から取得できます。
MT5でのストップレベル確認方法
MT5の「気配値表示」ウィンドウで通貨ペアを右クリックし、「仕様」タブを開くと、「ストップレベル」の項目で確認できます。この数値はポイント単位で表示されます(例:5桁業者の場合、10ポイント = 1pips)。
EAでストップレベルを取得するMQL5コード
EA内で動的にストップレベルを取得し、注文前にSL/TPが違反していないか確認することが可能です。
// MT5でストップレベルを取得
int stop_level = (int)SymbolInfoInteger(_Symbol, SYMBOL_TRADE_STOPS_LEVEL);
// stop_levelはポイント単位(5桁業者の場合、10ポイント = 1pips)
double stop_level_pips = stop_level * _Point / _Digits; // pips換算
EAでの対策例
SL/TPがストップレベルに違反しないよう、注文前に距離をチェックし、必要に応じて補正するロジックを組み込むことができます。
// SL/TPがストップレベルに違反していないか確認
double min_distance = stop_level * _Point;
double sl_distance = MathAbs(entry_price - sl_price);
double tp_distance = MathAbs(entry_price - tp_price);
if(sl_distance < min_distance)
{
// SLをストップレベル外に補正するか、エントリーを見送る
sl_price = entry_price - min_distance * 1.1; // 10%の余裕
}
ただし、SL/TPを自動補正すると、EA本来のリスク管理が崩れる可能性もあるため、慎重な検討が必要です。
バックテストやリアル運用でEAが壊れるポイント
ストップレベルが原因でEAが想定通りに動かなくなる主なケースは以下の通りです。
- バックテストとの乖離: バックテストではストップレベルが反映されないため、テスト上は問題なく動いても、リアル口座では注文エラーが頻発します。
- 業者変更時の問題: 業者や口座タイプを変更した際にストップレベルが変わると、以前は動いていたEAが新しい環境では注文を通せなくなることがあります。
- 動的なストップレベル変動: 一部の業者では、経済指標発表時などにストップレベルが一時的に拡大することがあります。これにより、通常時は問題ないEAでも、特定の時間帯でエラーが発生する可能性があります。
- SL/TP自動補正によるリスク変化: EA側でストップレベルに合わせてSL/TPを自動補正する場合、補正後の損切り幅や利確幅が想定と異なり、リスク管理が崩れる可能性があります。
EA運用前にストップレベルをどう確認するか
EAを安定稼働させるために、以下の方法でストップレベルを確認し、対策を講じましょう。
- MT5のシンボル仕様で確認: 最も基本的な方法です。MT5の気配値ウィンドウから対象銘柄の「仕様」タブでストップレベルを確認します。
- EA内で動的に対応: EAのMQL5コード内で
SYMBOL_TRADE_STOPS_LEVELを取得し、注文前にSL/TPの距離をチェックするロジックを組み込みます。 - ストップレベル0の業者を検討: ExnessやIC Marketsのように、ストップレベルが0(または非常に狭い)業者をEAの検証候補として選ぶことで、この問題自体を回避できる場合があります。ただし、これらの条件も変更される可能性があるため、常に最新情報を確認してください。
- 注文前のSL/TP距離チェック: EAのロジックに、注文を出す前にSL/TPがストップレベルの範囲外にあるかを確認する機能を組み込みます。
筆者の検証スタンス
私自身は、EA開発の初期段階ではストップレベル0の業者を基準にロジックを構築します。その後、それ以外の業者で動かす必要がある場合は、EA側にストップレベルチェックとSL/TPの補正ロジックを追加する方針です。
EA側での対応コストが高い、あるいはロジックへの影響が大きいと判断した場合は、無理にEAを修正せず、ストップレベル0の業者を選ぶことで問題を解決する方が効率的だと考えています。
EA運用でスプレッドより先に見るべき約定条件は多岐にわたりますが、ストップレベルはその中でも特に見落とされがちな重要な要素です。
関連して読む
ExnessをEA検証候補として見る理由
IC MarketsをEA検証候補として見る理由
ATRを損切り幅と利確幅に使う考え方
取引回数が少ないバックテストの危険性
EAの安定稼働には、ストップレベルを含む取引条件の確認が不可欠です。 各ブローカーの最新の口座タイプや銘柄ごとのストップレベルは、必ず公式サイトで確認しましょう。
※当サイトは、一部プロモーションを含みます。
本記事は個人の検証メモであり、投資助言ではありません。ストップレベルは業者・口座タイプ・銘柄によって異なります。また、経済指標発表時などには一時的に変動する可能性もあります。EAを稼働させる際は、必ず最新の条件を各業者の公式サイトまたはMT5のシンボル仕様で確認してください。
口座タイプ、スプレッド、手数料、約定、VPS、キャッシュバックは単独では判断しません。EAの売買回数と保有時間に合わせて見ます。
参照した公式情報
- Exness official site (2026.06.17 確認)
- IC Markets official site (2026.06.17 確認)
- MQL5 documentation (2026.06.17 確認)
免責
本記事は個人の検証メモであり、投資助言ではありません。バックテスト結果は将来の成績を保証しません。海外FXや自動売買には、法規制・レバレッジ・スプレッド拡大・約定遅延・スリッページなどのリスクがあります。条件は変わるため、最新情報は各公式ページで確認してください。