ロールリバーサルのルールとは?
直接的な答え
ロールリバーサルは、サポート&レジスタンス型の分析で使われる「ルールセット」の考え方です。市場が一方が優勢な状態から他方が優勢な状態へ移行するとき、そのレベルの以前の「役割(ロール)」が変わったものとして扱います。実務上、テスト可能なロールリバーサルのルールセットは、(1) どのレベルを見ているのか、(2) 市場がどのように移行したと判断するのか、(3) そのレベルの期待される挙動をどう入れ替えるのか、を明確に述べたものになります。
検証のための重要なポイントは、ロールリバーサル自体が予測ではないことです。意味のあるものにするには、出来事(イベント)と計測を定義し、別の人が過去データで同じテストを実行して同じ結果を計算できるようにする必要があります。
メカニズムと定義
実用的なロールリバーサルのルールセットは、明示的な条件を伴う一連のステップとして書けます。
- 「レベル」と、それがどう特定されるかを定義する
- サポート/レジスタンスを印付けする方法を選ぶ(たとえば、直近のスイング領域、過去のコンソリデーションのレンジ、または別の一貫したルール)。
- レベル定義に含める時間枠とバー数を固定する。
- 入れ替える「ロール」を定義する 多くの解釈では、ロールは次のように組み立てられます。
- 移行前は、そのレベルが一方向に対する障壁として機能する(「動きに耐える」)。
- 移行後は、そのレベルが障壁の反対側として機能することが期待される(「反対方向の動きに耐える」)。
このテストを可能にするには、それぞれのロールに対して観測可能な挙動を定義しなければなりません。たとえば、「holds(保持する)」を「固定されたバー数の範囲内でレベルから価格が戻ること」や、「価格がレベルを再訪し、許容差(トレランス)を超えてそれを跨がないこと」と定義するかもしれません。正確な定義は書き下ろす必要があります。
- 「移行(transition)」イベントを定義する ロールリバーサルには、市場がロールを切り替えたと見なすタイミングのルールが必要です。一般的な移行定義は次のとおりです。
- 方向性のブレイク:価格が、少なくともある閾値分だけレベルを超えて動くこと。
- 終値ベースの確認:価格がレベルを「タッチする」だけでなく、レベルを超えて終値で確定すること。
どれか1つを選び、閾値と計測の基準(高値/安値 vs 終値)を指定し、ノイズに対する許容差も含めてください。
- 移行後に、入れ替えた期待を適用する 移行後は、「ロールが反転した」挙動のテストを実行します。
- 以前に優勢だった側を、新しい障壁として扱う。
- その後の価格のレベルへの相互作用が、入れ替え後の挙動定義に一致するかを確認する。
- 観測ウィンドウと成功基準を定義する 約束(プロミス)にしない形でパフォーマンスを評価するには、測定可能な基準がまだ必要です。たとえば次のようにします。
- 観測ウィンドウ:移行後の N バー以内で相互作用を確認する。
- 成功:レベルの挙動が、入れ替え後の定義に一致する訪問回数を数える。
- 失敗:入れ替え後の定義に違反する訪問回数を数える。
- コストと実行の前提を記録する これをトレードのような計測(分析のみであっても)に置き換えるなら、スリッページのモデルや、実現結果からスプレッド/手数料を固定の減算として組み込むかどうかといった前提を指定する必要があります。これをしないと、実行間の比較が誤解を招く可能性があります。
あなたが検証できるエビデンスと例
ここではリアルタイムの市場データは前提にしないため、すでに手元にある過去のローソク足を使った自己完結型のバックテスト手順で確認してください。
例となるルールセットのテンプレート(前提を明記)
- レベル:固定されたバー数(たとえば M バー)で定義される、過去のコンソリデーションレンジにおける最高値と最安値。 (M を選び、一定に保つ必要があります。)
- 移行:上方向の移行では、価格が上側境界を終値で上回ったときにブレイクとしてカウントし、下方向の移行では、価格が下側境界を終値で下回ったときにカウントする。(テストケースごとに移行方向を1つ選び、常に同じように定義する。)
- ロールの挙動定義:「holds(保持する)」とは、移行後に価格がレベルを再訪し、次の N バー以内において許容差 T を超えてレベルを跨がないことを意味する。
- ロールリバーサルのテスト:上方向の移行(レジスタンス上抜け)の後、その以前のレジスタンス領域が、後続の再訪時にサポートとして「holds(保持する)」かどうかをテストする。下方向の移行(サポート割れ)の後、その以前のサポートが、レベルとして再訪時にレジスタンスとして「holds(保持する)」かどうかをテストする。
独立して検証する方法
- 評価したい銘柄と時間軸について、過去のローソク足データセットを集める。
- 固定されたレベル定義を適用して、候補となるレベルを生成する。
- 固定された終値の閾値ルールを使って、移行イベントをスキャンする。
- 各移行イベントについて、移行が起きた時刻をマークする。
- 次の N バーで、ロールの挙動定義を適用し、合格/不合格を記録する。
- 結果を、ロールリバーサルの各方向について単純な回数または率として要約する。
重要な計測に関する注記
- テストするレベルが「未来のデータ」に基づいて動いていないことを必ず確認する。未来のバーを使うレベル定義はテストを汚染します。
- 同じ領域から複数の重複する移行イベントを許す場合、重なりをどう扱うかを定義する(たとえば、各レベルが形成された後の最初の移行だけを採用する)。
- T、N、またはレベルの定義を変えて同じルールを複数回実行し、結論がどれほど感度(sensitivity)を持つかを確認する。
制限とリスク(重大な失敗パターン)
ロールリバーサルは、考え方が正しく述べられていても失敗し得ます。主に、曖昧さと条件の変化によってです。
-
曖昧なレベル選択 「レベル」が一貫して反復可能な形で定義されていない場合、異なるテスターは異なるレベルを印付けし、異なる結果を得ます。これは、概念とは無関係な理由でロールリバーサルが有効または無効に見える原因になり得ます。
-
移行定義のノイズ 終値に基づく移行は、ヒゲ(ウィック)やインターバーの値動き(intrabar excursion)に基づく移行とは異なる挙動を示し得ます。閾値の小さな変更によって、あるイベントが移行として成立するかどうかが反転することがあります。
-
マーケットレジームの変化 ボラティリティのレジームは変わります。レベル周辺の間隔が比較的安定していることを前提とするルールは、ボラティリティが拡大したとき、または価格の動きがより不連続になったときにパフォーマンスが低下する可能性があります。過去の関係は将来の結果を保証しません。
-
コストと実行の前提 成功を「価格の挙動」だけとして評価し、コストを考慮しない場合、実際の執行との比較は誤解を招く可能性があります。分析のみの研究であっても、「成功」を構造的な挙動としてのみ扱うのか、それとも明示的な前提のもとで実現可能な結果として扱うのかを述べるべきです。
-
パラメータ調整による過学習(オーバーフィット) M、N、T、またはレベル構築の方法を、望ましい結果が見えるまで繰り返し調整してしまうと、サンプルに過学習する可能性があります。テストは、テストされた期間の外で何が起きるかについての情報量が減ってしまいます。