サポート・レジスタンスの反転はどのように検証できますか?
サポート・レジスタンスの反転仮説を検証する方法
サポート・レジスタンスの反転は、明確に定義された水準で価格が確実に反転するかのように語られがちです。より正確に検証するには、これを「明確なルール」と「測定可能な結果」を伴う仮説として扱います。そうすれば、その観測された挙動が、偶然によって起こり得るもの、あるいは反転ロジックを使わない単純なベースラインから期待されるものと比べて、意味のある違いがあるかどうかを評価できます。
有用なワークフローは次のとおりです:
- サポートとレジスタンスが何を指すかを定義する、2) 反転が何を指すかを定義する、3) 成果指標(アウトカム指標)を選ぶ、4) ベースラインを設定する、5) リーク(情報漏洩)を避けるためにデータを分割する、6) コストと執行の前提を適用する、7) ロバストネスチェックと失敗モード分析を実行する。
仕組みと定義:何を検証しているのか
テストにおける「サポート」と「レジスタンス」の意味
テストでは、サポートとレジスタンスは、計算できる形にオペレーショナル化されるべきです。一般的なアプローチとして、価格履歴を水準へ変換する方法には例えば次のようなものがあります:
- 直前の高値/安値からの水準(例:局所的な極値)
- 多くのタッチが発生した価格帯からの水準
- 最近の極値の移動推定値からの水準
重要なのはラベルではなくルールです。テストでは、水準の構築方法、見返し期間(どれだけ過去をさかのぼって探すか)、そして「タッチ」の扱い(完全一致か、許容幅の範囲内か)を明示する必要があります。
「反転」を結果としてどう定義するか
反転もまた、測定可能なイベントとして定義されなければなりません。例えば次のように定義できます:
- エントリー条件:価格が許容幅の範囲内で水準に到達する
- 反転条件:タッチの後、価格が反対方向へ最低限の距離だけ動いた後、元の方向へさらに行き過ぎる前に条件を満たす
曖昧さを避けるために、時間軸(タッチ後に未来へ何本先まで確認するか)、距離の閾値(価格単位またはパーセンテージ)、そして「反対方向」が何を意味するか(例:タッチに対するスイングの安値/高値)を定義してください。
ベースライン:何と比較するのか
ベースラインがないと、「戻った」というだけでは誤解を招きます。ベースラインには次のようなものを含められます:
- ノイズ以上の方向変化を予測しない、素朴なベンチマーク
- データセットでそれらが重要なら、時間帯またはボラティリティ調整ベンチマーク
- 反転トリガーのランダム化版(例:トリガーの時刻をシャッフルしつつ、全体の価格分布は維持する)
目的は、反転が「起きるかどうか」ではなく、反転ルールがベースラインよりも一貫して良いアウトカムを生むかどうかを検証することです。
証拠と例:明確な前提を置いたテスト設計
ここではリアルタイムデータを前提としないため、他の誰かが再現できるように、歴史データのバックテストをどう構造化するかに焦点を当てます。
ステップ1:仮説を選ぶ
例の仮説(検証可能):「価格が特定されたレジスタンス水準にタッチしたとき、ベースラインと比べて、Y時間以内にXの下方向への動きが起こる確率が高まる。」
指定すべきこと:
- X:タッチ後の最低限の値動き幅
- Y:最大の保有/観測ホライズン
- 許容度:タッチが水準にどれだけ近ければよいか
ステップ2:リークを減らすためにデータを分割する
よくある整合性リスクは、水準を作る際に未来の情報を使ってしまうことです。データ分割を使います:
- 学習期間:サポート/レジスタンス水準の構築とパラメータ選定を導出する
- 検証期間:テスト期間に触れずに、閾値を調整する
- テスト期間:最終評価のみを行う
時系列データを使う場合は、ランダムに行をサンプリングするよりも、時系列に沿った分割(例えば、学習はより前の日時、テストはより後の日時)を優先してください。
ステップ3:コストと執行の前提を追加する
取引をしていなくても、コストはアウトカム定義の現実性に影響します。少なくとも次を考慮してください:
- 固定の1取引あたりコスト(例:推定した往復コスト)
- スリッページの前提(理論上のトリガーよりもどれだけ執行が不利になるか)
これらがどう適用されるかを定義します。例えば、反転が目標の値動きを達成したかどうかを計算するときは、摩擦の後に実現されるであろうネットの値動きと一致するように、執行オフセットを含めてください。
ステップ4:仮説に合う指標を定義する
反転の定義に対応する指標を選びます。例えば:
- ヒット率:反転条件が満たされたトリガーの割合
- ホライズンにおけるタッチ後の平均リターン(執行オフセットを調整)
- 分布ベースの指標(例:中央値のアウトカム)で外れ値への感度を下げる
パラメータ調整の前に指標を選びましょう。そうしないと、ある指標に合うルールを選んでしまい、他の指標のもとでは弱い挙動を隠してしまうリスクがあります。
ステップ5:ロバストネスチェック
仮説は、根底にある概念を保ったまま変化に耐えるべきです。次のようなチェックを行います:
- 水準を作るために使う見返し期間の長さへの感度
- 許容幅への感度(タッチ定義を狭くする/広くする)
- ホライズンYと値動き幅Xへの感度
結果が非常に狭いパラメータセットでしか見られない場合、そのルールは安定したパターンというよりノイズを捉えている可能性があります。
ステップ6:失敗モードを分析する
サポート・レジスタンスの反転は、体系的な形で失敗することがあります。少なくとも1つの重要な失敗モードをテストすべきです。例えば:
- 誤ったブレイクアウト:価格が水準にタッチするが、反転せずにその先へ進む
- レジーム転換:ボラティリティやトレンド構造が変化し、以前の水準の挙動がもはや当てはまらない
- 水準の曖昧さ:異なる水準構築方法が一貫しないトリガーを生む
失敗モードをテストする実務的な方法は、ボラティリティ・レジームやトレンド強度の代理指標(過去情報のみで定義)で結果をスライスすることです。たとえスライスごとに結果が混在していても、単一の集計数値よりも情報量の多いテストになります。
限界とリスク:結果を誤解させる要因
過去の関係は将来の結果を保証しない
反転ルールが過去サンプルで強く見えても、一般化できないかもしれません。市場は、構造的な変化、参加者の行動、ミクロ構造の違いなどによって変わります。したがって、パフォーマンスはサンプル依存として扱ってください。
市場条件の変動と執行制約
コスト、スプレッド、流動性、執行の質は時間とともに変わり得ます。クリーンな理論上の約定で定義されたルールは、現実性を過大評価する可能性があります。反転のアウトカムが非常に小さな価格変動に依存している場合、摩擦が結果を支配してしまうことがあります。
パラメータの過学習と「パターン探し」
多くのパラメータ組み合わせを試すと、偶然のノイズに適合してしまうことがあります。学習/検証/テスト期間の厳密な分離は過学習を抑えるのに役立ちますが、パラメータ探索が極端に広い場合には過学習を完全には排除できません。
水準とトリガーの定義が曖昧
サポートとレジスタンスは、生の価格データから一意に定義されるわけではありません。2人の人が異なる水準ルールを実装すれば、異なる反転トリガーが得られます。堅実なテストでは、概念を独立に検証できるように、オペレーショナルな定義を文書化する必要があります。