海外FX/運用環境

ストップレベルとは何か——EAの注文エラー「invalid stops」の原因になる制限

EAが「error 130(invalid stops)」を出して注文を弾く。これはバックテストでは見えにくい落とし穴の一つ、ストップレベルが原因かもしれません。

Read this for この条件を、EA運用環境の中で確認する。

口座タイプ、スプレッド、手数料、約定、VPS、キャッシュバックは単独では判断しません。EAの売買回数と保有時間に合わせて見ます。

Category 海外FX/運用環境

execution

EAが「error 130(invalid stops)」を出して注文を弾く。これはバックテストでは見えにくい落とし穴の一つ、ストップレベルが原因かもしれません。

ストップレベルとは、現在価格から一定の範囲内ではSL(損切り)やTP(利確)を設定できない制限のことです。特にスキャルピングEAや、損切り幅が狭いEAを運用する際に、この制限が致命的なエラーを引き起こすことがあります。

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を安定稼働させるために、以下の方法でストップレベルを確認し、対策を講じましょう。

  1. MT5のシンボル仕様で確認: 最も基本的な方法です。MT5の気配値ウィンドウから対象銘柄の「仕様」タブでストップレベルを確認します。
  2. EA内で動的に対応: EAのMQL5コード内で SYMBOL_TRADE_STOPS_LEVEL を取得し、注文前にSL/TPの距離をチェックするロジックを組み込みます。
  3. ストップレベル0の業者を検討: ExnessやIC Marketsのように、ストップレベルが0(または非常に狭い)業者をEAの検証候補として選ぶことで、この問題自体を回避できる場合があります。ただし、これらの条件も変更される可能性があるため、常に最新情報を確認してください。
  4. 注文前のSL/TP距離チェック: EAのロジックに、注文を出す前にSL/TPがストップレベルの範囲外にあるかを確認する機能を組み込みます。

筆者の検証スタンス

私自身は、EA開発の初期段階ではストップレベル0の業者を基準にロジックを構築します。その後、それ以外の業者で動かす必要がある場合は、EA側にストップレベルチェックとSL/TPの補正ロジックを追加する方針です。

EA側での対応コストが高い、あるいはロジックへの影響が大きいと判断した場合は、無理にEAを修正せず、ストップレベル0の業者を選ぶことで問題を解決する方が効率的だと考えています。

EA運用でスプレッドより先に見るべき約定条件は多岐にわたりますが、ストップレベルはその中でも特に見落とされがちな重要な要素です。

関連して読む

ExnessをEA検証候補として見る理由

IC MarketsをEA検証候補として見る理由

ATRを損切り幅と利確幅に使う考え方

取引回数が少ないバックテストの危険性

EAの安定稼働には、ストップレベルを含む取引条件の確認が不可欠です。 各ブローカーの最新の口座タイプや銘柄ごとのストップレベルは、必ず公式サイトで確認しましょう。

※当サイトは、一部プロモーションを含みます。

Exnessの公式条件を確認する

IC Marketsの公式条件を確認する

本記事は個人の検証メモであり、投資助言ではありません。ストップレベルは業者・口座タイプ・銘柄によって異なります。また、経済指標発表時などには一時的に変動する可能性もあります。EAを稼働させる際は、必ず最新の条件を各業者の公式サイトまたはMT5のシンボル仕様で確認してください。

Broker environment この条件を、EA運用環境の中で確認する。

口座タイプ、スプレッド、手数料、約定、VPS、キャッシュバックは単独では判断しません。EAの売買回数と保有時間に合わせて見ます。

参照した公式情報

免責

本記事は個人の検証メモであり、投資助言ではありません。バックテスト結果は将来の成績を保証しません。海外FXや自動売買には、法規制・レバレッジ・スプレッド拡大・約定遅延・スリッページなどのリスクがあります。条件は変わるため、最新情報は各公式ページで確認してください。