スイング・ハイ/ローはどのように検証できる?
直接の答え:測定可能な仮説でスイング・ハイ/ローを検証する
スイング・ハイ/ローを検証するには、チャート上のアイデアを文章化した仮説に変換し、その後、反復可能なルールのもとであらかじめ定義した性質が成り立つかを評価します。実践的なテスト手順は5つのパートから成ります:(1)パターンを正確に定義する、(2)ベースラインの定義と計測方法を選ぶ、(3)データを収集し、別々の時間帯またはセグメントに分割する、(4)想定する取引上の摩擦を差し引いたアウトカム(紙の枠組みだけを使う場合でも)で結果を測定する、(5)前提を強く揺さぶるロバストネスチェックを実行する、です。
これは予測精度を主張する話ではありません。過去のパターンは失敗することがあり、結果は市場環境、執行の質、コスト、そして「スイング」をどう定義するかによって変わり得ます。
メカニズムまたは定義:実際に何をテストしているのか
スイング・ハイ/ローは、チャートに基づく転換点です。何かをテストする前に、それを特定するための厳密なルールを明示してください。というのも、「スイング」はしばしば曖昧に使われがちだからです。
明確な定義には通常、次が含まれます:
- スイング・ハイ/ローのルール:たとえば、近傍のローソク足に対する局所的な最大値/最小値、またはある点が一定数の後続/直前のバーより高い/低いことを要求する、といったもの。
- ウィンドウまたは参照長(lookback length):転換点を確認するために、左右それぞれで何本のバーが必要か。
- 同値(タイブレーク)のルール:ハイ/ローが等しい、または非常に近い場合にどうするか。
- 識別のタイミング・ルール:転換点が「確認された後に」ラベル付けされるのかどうか。これは、バックテストにおける「エントリー/エグジット」のタイミングに影響します。
ベースラインのメカニクス
ベースラインは、識別パラメータの具体的な1セットにしてください。たとえば、単一の参照ウィンドウと単一の確認ルールを選び、最初のテスト中はそれらを固定します。こうして作ったベースラインが「コントロール定義」になります。
次に、仮説を性質(property)の形で述べます。仮説スタイルの例(予測の約束はしない):
- 発生(occurrence)性質:スイング・ハイ/ローが時間的にクラスター化する、または特定の市場状態と整合する。
- 反応(reaction)性質:ラベル付けされたスイング・ハイの後、次の動きが他の点と比べて測定可能な分布を持つ(例:中央値の動き、テール挙動)。
- 構造(structural)性質:市場構造の遷移(例:より高いハイからより低いハイへ)が、スイングのラベリングから体系的に導かれる。
ポイントは、仮説が測定可能な変数に対応していなければならない、ということです。
エビデンスまたは例:再現できるテスト設計
以下は、ライブデータを前提にせず自己検証を支える1つのテスト枠組みです。紙のデータ、または過去のローソク足を使い、すべての前提を明示的に扱ってください。
ステップ1:明示的な前提を書く(kostensoorten + aannames)
テストが概念的なものであっても、コストや摩擦は記録してください。なぜなら、それらが「戦略のような仮説」が生き残るかどうかを左右するからです。
前提としてモデル化することが多いコストカテゴリ:
- 取引コスト:1回の取引あたりのスプレッド/コミッション相当。
- スリッページ:期待された執行価格と実現された執行価格の間の小さなズレ。
- データ品質:ローソク足の解像度、そしてソースのタイムスタンプが一貫しているかどうか。
前提の例(推奨ではありません):
- 「コミッションモデル:往復あたり一定。」
- 「スリッページモデル:一定のティック数(または価格の一定割合)。」
- 「ローソク足の解像度:1Hバー。」
これらを「前提」として明確にラベル付けしてください。前提が異なれば、結論も異なり得るからです。
ステップ2:リークを減らすためのデータ分割
別々の時間セグメントを使います。典型的なアプローチは次の通りです:
- インサンプル(学習/定義):識別パラメータと計測ウィンドウを選ぶ。
- アウト・オブ・サンプル(テスト):すべてを固定したまま評価する。
1つのベースラインしかテストしない場合でも、少なくとも2つの重ならない期間を使ってください。市場レジームは変わるため、単一期間だけでは誤解を招く可能性があります。
ステップ3:アウトカムと計測ウィンドウを定義する
曖昧な主張を避けるために、各スイング・ラベルの後に何を測るかを決めます。測定可能なアウトカムの例(これも保証ではありません):
- 固定されたホライズン(例:次のNバー)におけるフォワード・リターン分布。
- 最大逆行(maximum adverse excursion):ホライズンが終わるまでに、仮説に逆らって価格がどれだけ動くか。
- 構造的しきい値のヒット率:あらかじめ定義した価格距離が、時間制限内に到達するかどうか。
コストを含めるなら、次のようなネット指標を計算します:
- ネットの動き = 測定された動き − 取引コスト相当 − スリッページ相当。
ステップ4:変数要因に対するロバストネスを計算する
スイングのラベルは、変動する要因に依存します。そこで、他を固定したまま1つずつ要素を変えて感度をテストしてください:
- スイングを識別するための参照長(lookback length)。
- 確認の厳密さ(転換点を検証するのに何本のバーが必要か)。
- アウトカム計測のホライズン長。
- 前提として置く、あり得る範囲内のコスト水準。
これは次の問いに答えます:結論は小さな変化に耐えるのか、それとも定義がずれると崩壊するのか?
ステップ5:同じ仮説ではないベースラインと比較する
強いテストには比較が含まれます。比較の例:
- 同じタイミング・ルールのもとで、スイング・ラベルされたイベントをランダムに選んだ非スイングのポイントと比較する。
- 同じ計測手順を使って、異なるタイプの構造ラベル(例:スイング・ハイ vs スイング・ロー)を比較する。
目的は、測定された効果が単に選択方法のアーティファクト(見かけの効果)に過ぎないかどうかを検出することです。
限界とリスク:何がうまくいかない可能性があるか
少なくとも1つの重大な失敗モードは、直接テストされるべきです。
1) 定義のドリフトと研究者バイアス
結果が良く見えるようにスイング検出のパラメータを調整すると、ノイズへの過学習のリスクがあります。これは、新しいセグメントでは消えてしまう「有効性がある」という誤った感覚を生み得ます。
2) タイミングと確認の曖昧さ
スイングのポイントは、後続のバーが確認して初めて分かることが多いです。計測の際にうっかり「先読み」してしまうと、結果は非現実的になります。
3) コストが小さな効果を消してしまう
スイングの後に反応が存在していても、取引コストとスリッページの前提をモデル化するとネットのアウトカムは変わり得ます。測定された効果がゼロに近い場合、結果の符号が反転することがあります。
4) レジーム依存
過去の関係は将来の結果を保証しません。トレンド、ボラティリティ、流動性の条件は変わり得て、スイングの挙動がより意味を失ったり、より不規則になったりする可能性があります。
5) 解像度の影響
異なるローソク足サイズ(または異なるデータソース)を使うと、どのハイ/ローがラベル付けされるかが変わり、その結果、測定されたアウトカムも変わります。
検証または次の質問:結果を信じる前に何を確認するか
スイング・ハイ/ローに関するいかなる主張の事実を独立に検証するためにも、次を確認してください:
- スイングのラベリング・ルールが正確に書かれており、一貫して適用されている。
- 仮説が、固定されたウィンドウを持つ測定可能なアウトカムに対応している。
- 評価にアウト・オブ・サンプルのセグメント、または2つ目の期間を使った。
- コストと執行上の摩擦を、明示的な前提としてモデル化した。
- 変数要因への感度(参照長、確認、ホライズン、コスト前提)をテストした。
役に立つ次の質問は:スイング定義パラメータに対して、結果はどれほど敏感か? 参照長や確認を少し変えるだけでアウトカムが大きく変わるなら、「シグナル」は頑健というより定義依存である可能性が高いです。
DOCUMENT END