サポート・レジスタンス・レンジはどのように検証できるか
直接的な答え
サポート・レジスタンス・レンジは、「価格が、明確に定義されたレンジに対してどのように振る舞うか」という検証可能な仮説として扱うことで検証できます。次に、価格がそのレンジに入ったとき、触れたとき、またはレンジを越えたときに何が起きるかを、レンジを使わないベースラインと比較します。結果を検証可能にするには、前提条件(レンジがどのように構築されるか、「尊重(respect)」や「ブレイク(break)」が何を意味するか)を明示し、先読みバイアスを防ぐために時間ベースのデータ分割を選び、スプレッド、コミッション、スリッページ、執行遅延といった現実的なコストを含める必要があります。最後に、別のレンジ定義や検証ウィンドウでテストを繰り返して頑健性(ロバストネス)を確認します。
仕組みと定義
サポート・レジスタンス・レンジは、単一の水準ではなく「帯(バンド)」です。買いの関心と売りの関心が、特定の価格帯の周辺で繰り返し現れ、その結果として価格が帯の中に滞在したり、端(エッジ)に到達したときに反応したりする、という考え方を反映しています。
検証するには、運用上の定義が必要です。
-
レンジ構築ルール(前提): 下限と上限をどのように計算するかを決めます。ルールの例としては、ある見回し(ルックバック)期間の過去の高値・安値を使う、中心推定値の周りにボラティリティ調整した帯を使う、クラスタ化したスイングポイントを使う、などがあります。重要なのは、そのルールが十分に明示的で、別の人がその境界を再現できることです。
-
イベント定義(何を測るか): 例えば次のような、測定可能なイベントを1つ以上選びます。
- タッチ(Touch): クローズが帯の内側である必要はなく、価格がいずれかのエッジに到達する。
- リジェクション(Rejection): 価格が、定義した距離だけエッジから離れる。
- ブレイクアウト(Breakout): 価格が、定義したマージンだけ帯の外側でクローズする。
-
アウトカム指標(パフォーマンスの採点方法): 「うまくいっているように見える」という主観的な考え方の代わりに、イベント定義に結びついた数値指標を使います。指標の典型パターンには、リジェクションとブレイクアウトの頻度、タッチ後の平均エクスカーション(どれだけ動いたか)、ある移動閾値のヒット率などがあります。もしアウトカムをリターンのような指標に変換するなら、メカニクス(エントリー時刻、エグジット時刻、どの価格を使うか)も指定する必要があります。
-
ベースライン(何と比較するか): テストは、仮説を何か別のものと比較して初めて意味を持ちます。ベースラインの例としては次のようなものがあります。
- 無条件の値動きに基づく素朴な期待値、
- レンジ境界のランダム化、またはパーミュテーション(入れ替え)したもの、
- 採点方法に応じて、「常に内側」または「常にブレイクアウト」といった単純化した参照行動。
レンジ取引の振る舞いは相場レジームによって変わり得るため、仮説には 条件 を含める必要があります(例:「帯が直近Nセッションから構築されているときは、ブレイクよりもリジェクションが起こりやすい」)。これがないと、テストはその概念を一般的な市場の振る舞いから切り分けられません。
仮説検定のセットアップ(ベースライン、データ分割、コスト)
実用的な検証セットアップは5つのステップに従います。
1) 反証可能な仮説を述べる
失敗し得る(成り立たない可能性がある)記述を書きます。例えば(テンプレート):「価格が構築された下限または上限にタッチしたとき、次のY本足の間における、しきい値Xを超えるリジェクションの確率は、ベースライン確率より高い。」
これは重要です。サポート・レジスタンス・レンジは機能することが保証されているわけではなく、特定の定義のもとでの相対的な振る舞いに関する主張だからです。
2) 時間でデータを分割する
時間ベースの分割 を使い、時刻 t のレンジが t までに利用可能だった情報だけを使えるようにします。一般的なアプローチは次の通りです。
- トレーニング期間: ハイパーパラメータ(ルックバックの長さ、帯幅、閾値)を、トレーニング部分だけで選ぶ。
- バリデーション期間: 選んだセットアップを評価する。
- 任意のアウト・オブ・サンプルテスト: 設計のどこでも使わなかった、後の期間で確認する。
これにより、先読みバイアスを防げます。これは取引関連の検証における主要な失敗モードです。
3) コストと執行の前提を選ぶ
アウトカムを取引のような結果に変換するなら、コストを含めてください。コストは、見かけの優位性を損失に変えてしまうことがあります。「リジェクション vs ブレイクアウト」を測っているだけであっても、実際の執行は理想的な価格では起きないことを反映させるべきです。
次のような前提を明示します。
- スプレッドモデル(固定 vs 可変)、
- コミッション(ある場合の)構造、
- スリッページ(分布、または最悪ケースの上限)、
- 評価で bid/ask の代理値を使うのか、ミッド価格を使うのか。
コストモデルを正当化できない場合は、テストを非経済的な指標空間(例えば分類のような指標)に留め、その制限を明記してください。
4) 大きさと頻度の両方を評価する
セットアップによっては、リジェクションの頻度が高くても、リジェクション後の動きが小さい、あるいはブレイク後の動きが大きい場合には、成績が悪くなり得ます。したがって次を評価します。
- 頻度指標(イベントがどれくらいの頻度で起きるか)、および
- 大きさ指標(イベント後に価格がどれくらい動くか)。
5) 統計的および頑健性のチェックを使う
頑健性(ロバストネス)とは、「1つのセグメントに過剰適合しているだけ」を再利用可能なパターンから切り分けるのに役立つものです。
含めるべき頑健性チェック:
- レンジ定義の感度: 異なるルックバック期間や帯幅でテストをやり直す。
- 閾値の感度: リジェクション/ブレイクアウトの距離マージンと時間ホライズンを変える。
- ウォークフォワード検証: トレーニング/バリデーションのウィンドウをスライドさせながら繰り返す。
小さな変更でパフォーマンスが崩れるなら、その結果は脆い関係を反映している可能性が高いです。
実例によるエビデンス(保証なし)
リアルタイムデータを前提にせずに、どのようにテストを設計できるかの例です。
-
定義を選ぶ: 直前の50本の取引足から、最高値を上側エッジ、最安値を下側エッジとして帯を構築する(明示的なルール)。タッチ を、価格レンジがエッジと交差する任意の足と定義し、リジェクション を、次の10本足の間にそのエッジから少なくともXユニットだけ価格が離れることと定義する。
-
ベースラインを選ぶ: 次の10本足の間に、価格が少なくともXユニット動く確率を計算する。これは、価格がエッジにタッチしたかどうかに依存しない。
-
分割を実行する: 月A–Bを使ってX(および必要なら帯幅のバリアント)を選び、その後月C–Dで評価する。C–Dのデータをパラメータ選定に再利用しない。
-
指標を計算する: 各エッジへのタッチについて、リジェクションが起きたかどうかを測定する。リジェクション率をベースライン確率と比較する。
-
経済的指標を使うならコストを組み込む: リジェクションを仮想的なエントリーとエグジットに翻訳する場合、bid/askの前提を指定し、スリッページを含める。もしそれを信頼できる形で指定できないなら、結果をイベントベースの用語で厳密に報告し、コストの現実性は含めていないと明記する。
-
ストレステスト: 帯幅を別のルールで計算し直す(例えば、スイングポイントの周りにボラティリティ調整したマージンを使う)とともに、XとYの値をわずかに変えて再実行する。
結果として、「タッチ→リジェクション」が特定の期間ではベースラインよりも起こりやすいこともあれば、そうでないこともある、ということが分かるかもしれません。