Market Structureの確定遅延を測る:Swing認識まで何本待つか

Market Structureでは、Swing確定のために将来バーを待つ必要があり、非リペイント性と検出遅延が表裏一体です。MT5でConfirmation Lagをバー数・ATR距離・価格差として測り、構造判定の実用性を比較する方法を整理します。

非リペイントにすると情報は必ず遅れて届く

Market StructureをEAやインジケーターで扱う際、見落とされやすいのがSwing確定までの時間である。チャートを後から見れば高値・安値は明確でも、その時点では右側の価格情報がまだ存在していない。

例えば、あるバーをSwing Highと認識するために左右3本ずつの高値を比較するなら、その高値が確定するのは少なくとも3本後になる。これは不具合ではなく、将来データを使わずに確定判定するための構造的な遅延である。

したがってMarket Structureを評価するときは、BOSやCHoCHの検出精度だけでなく、構造情報が何本遅れて利用可能になったかも測る必要がある。

Confirmation Lagを定義する

まず測定対象を明確にする。Swing候補が実際に形成されたバーをorigin_bar、そのSwingが確定したバーをconfirmed_barとする。

最も単純な指標は、Confirmation Lag = confirmed_bar − origin_bar である。

例えば高値形成から4本後にSwing Highとして確定したならLagは4本になる。ただし同じ4本でも、M5とH4では意味が大きく異なる。そのためバー数だけでなく時間換算も残しておく。

さらに、確定までに価格がどれだけ進んだかを測ると実用性を評価しやすい。Swing Highなら、origin_barの高値からconfirmed_bar時点の価格までの距離を記録する。

ATRで正規化すると比較しやすい

価格差をpipsだけで測ると、銘柄や時間足をまたいだ比較が難しい。そこでConfirmation DistanceをATRで割る。

例えば、Swing確定までに価格が0.8ATR動いていたなら、その構造情報は市場変動の約0.8倍進んだ後に得られたことになる。

この指標を使えば、EURUSDとXAUUSD、M15とH1などを同じ尺度で比較できる。

記録する項目としては、lag_bars、lag_minutes、lag_points、lag_atrの4つ程度が扱いやすい。

Swing Strengthを上げるほど遅延は増えやすい

Swing判定で左右に参照する本数を増やすと、小さな高値・安値が除外され、構造は滑らかになる。一方で確定までに必要な将来バーも増えるため、Confirmation Lagは一般に大きくなる。

例えばStrength 2、3、5、8など複数設定で、Swing件数とLagの分布を比較する。

ここで見るべきなのは平均値だけではない。中央値、90%点、最大値を確認すると、通常時と遅延が極端に大きいケースを分けられる。

また、Strengthを上げた結果、Swing数が半減してLagが倍増するなら、その設定が本当に有利なのかは別途検証が必要になる。

BOS検出まで含めると遅延はさらに広がる

Swing確定後、その価格を終値で突破した時点をBOSと定義する場合、利用可能な構造情報はさらに遅れる。

例えばSwing Low形成から3本後に確定し、そこから5本後に終値で突破されたなら、最初の構造点からBOS認識まで合計8本かかっている。

このため、BOSの精度だけを見て「構造転換を早く検出できた」と判断するのは危険である。測るべきなのは、実際に価格が転換してからシステムがその変化を認識するまでの総遅延である。

EAではswing_confirmation_lagとbreak_confirmation_lagを別々に記録すると原因を分解できる。

リペイント型との比較も数値化できる

未確定Swingを即時表示する方法では遅延を小さくできるが、その後の価格更新でSwing候補が消える可能性がある。

ここでは非リペイント型とリペイント型を優劣で決めるのではなく、False Swing RateとConfirmation Lagを並べて比較するとよい。

例えば即時判定型ではLag 0〜1本だが候補の30%が後から無効化される一方、確定型ではLag 4本だが無効化率が低い、というように整理する。

これにより「早さ」と「確定性」の交換条件を可視化できる。

MT5では構造イベントをログ化する

実装では、Swing候補が発生した時刻、確定時刻、価格、Strength、ATR、BOS発生時刻をCSVなどへ保存する。

その後、設定ごとに平均Lag、中央値Lag、90%点Lag、Swing件数、BOS件数を集計する。

重要なのは、チャート上で見やすい設定を選ぶのではなく、同じ期間・同じ銘柄で検出速度と構造密度を比較することである。

さらに相場のボラティリティ別に分ければ、高ボラティリティ時だけLagが拡大するのか、常に一定なのかも確認できる。

まとめ

Market Structureの非リペイント判定には、Swingを確定するまで将来バーを待つ必要があり、その分だけ情報伝達が遅れる。

この遅延をConfirmation Lagとしてバー数、経過時間、価格差、ATR比で記録すれば、Swing Strengthや判定方法の違いを数値で比較できる。BOSやCHoCHも同様に、検出数だけでなく認識までの総遅延を測ることが重要である。

構造分析では、正しく見えたかだけでなく、いつ利用可能になったかまで含めて評価することで、Market Structureを検証可能な指標として扱いやすくなる。

ABOUTこの記事をかいた人

当サイトは、システムトレードに関する専門的な知識、技術、経験を皆様と共有することで、真剣なトレーダーの方々にインスピレーション(アイデアの源泉)の供給をいたします。トレーダーの競争力強化に焦点をあて、トレーディングシステムの構築を目的としてその普及に貢献します。 詳細は「概要とサービス内容」をご覧下さい。 ご要望はこちらで承ります。