スイング・ハイ/ローのルールとは?
直接回答:検証可能な形でのルール
スイング・ハイとスイング・ローは、価格チャート上で局所的な転換挙動を表すポイントです。スイング・ハイは局所的な山であり、スイング・ローは局所的な谷です。これらを特定するための「ルール」は主に次の2点に関係します:(1)*局所的(local)*の定義、そして(2)使用するデータ(価格の種類と並び順)です。
検証可能なルールセットとは、同じチャート上で「このバーは、定義したウィンドウ内で最も高いのか?」および「それは、以前/以後のバーから十分に離れていてスイングとして数えられるのか?」に答えられることです。もしルールを別の人が一貫して適用できないなら、出力は変わってしまいます。
メカニズムまたは定義:入力とスイングの中核ルール
1) 価格系列を選ぶ
スイングを見つける前に、手法でいう「価格」が何を意味するのかを決めます。一般的な選択肢としては、ローソク足の高値/安値(スイングの極値)を使う方法や、クローズを使う方法(より滑らかなシグナル)があります。ルールでは、例えば次のように、使用する系列を正確に明記するべきです:
- スイング・ハイは バーの高値 を使う。
- スイング・ローは バーの安値 を使う。
2) 「局所的(local)」の意味を定義する(スイング・ウィンドウ)
局所的とは「近傍を支配する」ことです。これを検証可能にする実用的な方法は、左右の両側にバーのウィンドウを定義することです。
例となるルール(広く使われるロジックの1つ):
- インデックス i のバーは、その高値が左側の固定本数のバーの高値と、右側の固定本数のバーの高値よりも大きい場合にスイング・ハイである。
- インデックス i のバーは、その安値が左側の固定本数のバーの安値と、右側の固定本数のバーの安値よりも小さい場合にスイング・ローである。
左/右の近傍に含まれるバーの本数はパラメータです。普遍的ではありません。これを変えるとスイング点が変わります。
3) 分離を要求する(小さな値動きを数えない)
過剰カウントを減らすために、次のような分離ルールを追加できます:
- スイング・ハイを特定した後、次のスイング・ローは少なくとも N 本のバーの後に現れなければならない。逆も同様。
これは特にレンジが荒い局面で重要です。厳密な「局所的な最大値」テストを満たすバーが多くなり得るためです。
4) 同値(タイ)を扱う(同じ高値/安値)
市場では同じ高値、または同じ安値が出ることがあります。ルールではタイブレーカーを明記すべきです。選択肢には次のようなものがあります:
- 「厳密に大きい/厳密に小さい」(同値はスイングとして数えない)、または
- 「大きい/等しい」+追加のタイブレーカー(例えば最も早い/最も遅いバー)、または
- 同値の極値をゾーンとして扱い、代表となるバーを選ぶ。
タイの方針がないと、2人の読者が合理的に意見を分ける可能性があります。
5) スイングが確定するタイミングを決める
左右両側のバーを使うルールは、そのポイントが確定するのは右側の近傍が起きた後であることを意味します。リアルタイムでスイングにラベルを付けようとすると、内在する遅延が発生します。
したがって、完全なルールセットでは次を指定すべきです:
- 「候補の後、k 本のバーが経過してからのみスイングが確定する」。ここで k は右側のウィンドウです。
証拠または例:ルールを一貫して適用する
時間順に並んだバーの簡略化データセットを想定し、次の定義を使います:
- スイング・ハイ:インデックス i におけるバーの高値が、左の L 本のバーの高値と、右の R 本のバーの高値よりも厳密に大きい。
- スイング・ロー:インデックス i におけるバーの安値が、左の L 本のバーの安値と、右の R 本のバーの安値よりも厳密に小さい。
次に、視覚的なチェック手順を考えます:
- 候補となるバー i を選ぶ。
- 左に L 本のバーを数え、候補の高値がそれらの各高値より高いことを確認する。
- 右に R 本のバーを数え、候補の高値がそれらの各高値より高いことを確認する。
- すべての比較が通れば、それをスイング・ハイとしてマークし、そうでなければ破棄する。
スイング・ローについては、安値を使い、厳密に「より小さい」という比較で同様に繰り返します。
この方法は明示的な比較に基づいているため、別の人も同じパラメータ(L, R)と同じ価格系列(高値/安値、またはクローズ等)を使えば、同じマークを再現できます。これが「検証」のための重要な「ルール」要件です。
制限とリスク:何がルールを壊し得るか
1) パラメータ感度
左右のウィンドウサイズや、分離ルールはスイング・マップに大きく影響します。実際には:
- 小さいウィンドウはより多くのスイングを見つけ、ノイズを追いかける可能性がある。
- 大きいウィンドウはより少ないスイングしか見つからず、小さな転換を見逃す可能性がある。
これは、ノイズの多い価格に適用される「局所的な極値」アプローチのあらゆる制限です。
2) トレンドの圧縮と誤った転換点
強いトレンドでは、たとえより大きな値動きが変わっていなくても、小さな足踏みが局所的な高値/安値を作ることがあります。その場合、あなたのスイングは意味のあるレジーム転換ではなく、ミクロな構造を反映します。ルールは局所的な転換挙動を正しく検出しますが、解釈はあなたの前提と一致しないかもしれません。
3) 同値の高値/安値と曖昧さ
同値の極値は曖昧さを生みます。方法がタイの扱いを明示していない場合、再注釈するとスイング点が1本分ずれることがあります。
4) 確認の遅延
ルールがスイングを確定するために右側のバーを必要とするなら、候補が形成された「その瞬間」にスイング・ハイ/ローを知ることはできません。確定前にスイングを「予測」しようとする試みは、検証可能なルール定義と一致しなくなります。
5) 市場と執行のばらつき
スイングの特定はチャート上で定義されていても、チャート自体はデータソース、シンボル設定、チャート構築(例えばローソク足の集計)によって異なり得ます。したがって、過去のスイング・マークは、プロバイダーや時間軸をまたいだときに同じまま移植できない可能性があります。また、コストや執行条件はチャートロジックそのものとは別であり、スイングの特定が一貫していても、実現される結果は変わり得ます。
検証または次の質問:ルールセットが機能しているかをどう確認するか
スイング・ルールセットを独立に検証するには、一貫性テストを実行できます:
- 同じ歴史的チャートを、同じパラメータと価格系列で2回注釈する。
- スイング点についてどれくらい一致するかを比較する。
一致が低い場合、ルールには明確化が必要な可能性があります(ウィンドウ定義、タイ方針、分離、そして何を価格系列として数えるか)。良い次のステップは、単一の具体的な定義を選ぶことです(例えば「高値/安値に対して L=R の厳密な局所的最大値/最小値」)。その上で、1つのパラメータだけを変えたときにスイング点がどう変わるかをテストします。