重要指標や急変相場でEAを通常稼働させると、スリッページやスプレッド拡大によって想定以上の損失が発生します。VIX・スプレッド・ATRを組み合わせ、新規注文停止やロット縮小を自動化する方法を解説します。
なぜEAにサーキットブレーカーが必要なのか
重要経済指標、中央銀行会合、地政学イベントの前後では、価格変動だけでなく市場の執行条件そのものが変化します。スプレッドの急拡大、板の薄化、約定拒否、スリッページの増加が同時に起きるため、通常時のバックテストで算出した期待値が機能しない可能性があります。
EAのサーキットブレーカーとは、異常な市場状態を検知した際に、新規注文の停止、ロット縮小、保有時間の制限などを自動実行する仕組みです。単一指標だけで判断せず、外部市場、対象銘柄の値動き、実際の取引コストを組み合わせることが重要です。
VIXで市場全体の警戒水準を測る
VIXはS&P500オプションから算出される予想変動率指数で、市場参加者のリスク警戒度を示す代表的な指標です。VIXが一定水準を超えた場合、FXや株価指数CFDでも流動性が不安定になる可能性があります。
MT5でVIXのCFD銘柄を取得できる場合は、絶対値だけでなく短期変化率も判定に利用します。例えば、VIXが30以上、または1時間で15%以上上昇した場合に、通常ロットを50%へ縮小します。ただし、VIXを提供しないブローカーもあるため、取得不能時に判定を無効化するのではなく、スプレッドとATRによる代替判定へ切り替える設計が必要です。
スプレッド拡大を執行リスクとして検知する
スプレッドはEAが実際に負担する即時コストです。固定値で上限を設定すると、銘柄や時間帯による通常水準の違いを吸収できません。そのため、現在のスプレッドを直近平均と比較する相対判定が有効です。
例えば、現在のスプレッドが過去20期間の中央値の2.5倍を超えた場合、新規注文を停止します。平均値ではなく中央値を使うことで、一時的な異常値に基準値が引き上げられる問題を抑えられます。注文送信直前にも再確認し、判定から発注までの間に取引条件が悪化した場合は注文を中止します。
ATRで対象銘柄の急変を判定する
ATRは一定期間の値幅を平均化した指標で、対象銘柄固有のボラティリティを測定します。現在のATRを長期平均ATRで割った比率を使えば、通常状態からの乖離を定量化できます。
ATR比率が1.5倍を超えた場合はロットを半減し、2倍を超えた場合は新規注文を停止するなど、段階的な制御が実務的です。完全停止だけでは取引機会を失いやすいため、警戒、制限、停止の3段階に分けます。
MQL5での制御フロー
EAでは、VIX、スプレッド、ATRの各判定をRiskState関数に集約します。戻り値をNORMAL、REDUCED、HALTの3状態とし、NORMALでは通常ロット、REDUCEDではロット縮小、HALTでは新規注文を禁止します。
さらに、MT5の経済指標カレンダーを利用し、重要度の高い指標発表の前後30分を停止時間に設定します。データ取得エラー時は通常稼働へ戻すのではなく、保守的にロットを縮小するフェイルセーフ設計が適切です。停止解除には、条件が正常化してから15分間待つクールダウン期間を設け、状態の頻繁な切り替えを防ぎます。
まとめ
イベント時のリスクは、価格方向を予測するだけでは管理できません。VIXで市場全体の警戒度、ATRで対象銘柄の変動、スプレッドで執行環境を確認し、複数条件からEAの稼働状態を制御する必要があります。サーキットブレーカーは利益を増やす機能ではなく、バックテストの前提が崩れた市場からEAを退避させるための防御機構です。







