スイングをどう定義するか?

日付 2026年1月7日
タグ: #クオンツトレーディング #スイング #プライスアクション #市場構造 #信号処理 #ボラティリティ

「スイング」という言葉は直感的に聞こえます:価格が上がって一段、下がって一段、これがスイングではないですか?しかし、質問を少し深く掘り下げると——「それでは、どれくらい大きければ一段と言えるのか?どれくらい小さければノイズなのか?」——スイングには統一された答えがないことに気づくでしょう。

したがって、より正直で、クオンツトレーディングにより適した言い方は:

スイングは客観的に存在する固定形状ではなく、一連のフィルタリングルールです:連続的でノイズの多い価格パスを、一連の「意味のある転換点」に圧縮します。

スイングを定義するプロセスは、実際には信号処理を行っています:どの変動を信号とし、どの変動をノイズとするかを決定します。

1)まず欲しいものを明確に:「骨格」が欲しいのであって、すべての揺れではない

生の価格は乱れた線のようで、すべての点を説明できますが、そのように取引するのは非常に苦痛です:頻繁に出入りし、スプレッドで摩耗し、ノイズで振り落とされます。

スイングを定義する目的は、チャートをより明確な「骨格」に簡素化することです:

上向きに進む脚(上昇スイング)、下向きに戻る脚(リトレースメントスイング)、そしてその間の転換点(スイングの高値と安値)。

転換点があって初めて、「構造」「トレンド」「ブレイクアウト」「レンジ」について話すことができ、ローソク足を一本一本見つめるだけではなくなります。

2)実装可能なスイング定義には通常2種類のルールが必要:反転ルール + 有効性ルール

ほとんどのスイング定義は2つのことを避けられません:

第一に、反転ルール:どのように「本当に反転した」と確認するか?第二に、有効性ルール:この動きはどれくらい大きければ「記録する価値がある」か?

有効性ルールがなければ、多くの小さな揺れをすべてスイングとしてカウントします;反転ルールがなければ、リアルタイムプロセスで絶えず「言い直し」、スイングが繰り返し再描画されます。

3)一般的なスイング定義方法(できるだけ口語的に説明)

A)フラクタル/転換点法(N本のローソク足で確認)

非常に一般的なアプローチは:

「スイング高値」を、左右各N本のローソク足の高値よりも高い高値として定義します;「スイング安値」も同様です。

口語的な説明は:ある点は「その後しばらく超えられなかった」ときにのみ、真の転換点とみなされます。

利点はシンプルで論理が明確;欠点も明らか:本質的に遅延があります。なぜなら「未来のN本のローソク足」を待って確認する必要があるからです。

B)ジグザグ/パーセンテージ閾値法

次のように規定できます:価格が一方向にX%動き、その後X%を超える逆方向のリトレースメントがあった場合にのみ、スイングが形成されたとみなします。

口語的な説明は:X%未満の揺れはすべて無視し、より大きなレベルの波のみを保持します。

利点は直感的;欠点はX%が異なるボラティリティ環境で意味が異なること:同じ1%でも、低ボラティリティ市場では大事ですが、高ボラティリティ市場では日常的です。

C)ATR(ボラティリティ適応閾値)

「固定パーセンテージが異なる市場で通用しない」を避けるために、多くのクオンツがATR(平均真実範囲)をスケールとして使用します。

次のように規定できます:移動がK倍のATRに達して初めて有効とします。

ここでATRについても説明します:これは単純な「ボラティリティ指標」で、最近の期間で単一のローソク足が平均でどれくらいの範囲を動くかを反映します。ATRを定規として使用することは、スイング定義を市場の「呼吸」に合わせて大きくしたり小さくしたりすることと同じです。

利点は適応性;欠点はまだKを選択する必要があり、ATR自体が平滑化された値であるため遅延があることです。

D)構造無効化法(「重要点を破る」ことでスイングを終了)

構造取引により近い定義もあります:

上昇スイングを「継続中」とみなし、価格が前の重要安値を下回るまで;下降スイングも同様です。

口語的な説明:市場が「以前の防衛線を破る」ことで、このスイングが終了したことを伝えます。

利点は「構造/トレンド」と自然に互換性がある;欠点は、基礎となる「重要点をどう選ぶか」のルールが依然として必要で、そうでなければ実装できません。

4)スイングは必ず周期に関連している、これは設計によるもので矛盾ではない

多くの人が悩みます:1時間足チャートでは明らかに1つのスイングなのに、日足チャートでは数本の小さなローソク足にしか見えないのはなぜか?

これは矛盾ではなく、解像度が異なるのです。チャートをズームすれば理解できます:より大きな周期のすべてのローソク足は、内部で多くの小さな周期変動で構成されています。

より「クオンツ的」な言い方は:

まずサンプリング周期(例えば15分、1時間、1日)を選択し、次にフィルタリングスケール(N本のローソク足、K倍のATR、X%閾値)を選択し、そして転換点を抽出します。これらのパラメータのいずれかを変更すれば、「スイング」というものが再定義されます。

5)どう選ぶか?「どれが最も正しいか」ではなく、「どれがあなたの優位性と保有期間により適合するか」を問う

レンジ内の平均回帰を行う場合、短期的な往復を捉えるために、より敏感なスイングが必要です;トレンドフォローを行う場合、小さなリトレースメントを無視し、大きな脚のみを保持するために、より「鈍い」スイングが必要です。

したがって、いわゆる「正しい」スイング定義を追求するよりも、より有用な3つの質問は:

取引したい保有期間はどれくらいか?より早期のシグナルと引き換えに、どれくらいのリトレースメントを許容するか?シグナルをより早く(ノイズが多い)したいか、より確認されたもの(遅延が多い)にしたいか?

スイングは結局ツールです。良いスイング定義とは、見た目が美しいのではなく、構造の記述を一貫させ、バックテストのパフォーマンスを安定させ、実行コストを管理可能にすることができるものです。

6)しばしば見落とされる詳細:リアルタイム認識 vs 事後ラベリング

多くの人がソフトウェアでスイングを描くとき、「この転換点は明確だ」と感じます。しかし注意が必要です:多くのスイングアルゴリズムがチャートに表示するのは「事後振り返り」の結果であり、後続のローソク足をすでに見たことを前提としています。

リアルタイム取引に入ると、非常に現実的な問題に遭遇します:転換点は「その後新高値/新安値を更新しなかった」ときにのみ成立しますが、現時点では将来新高値/新安値を更新するかどうかわかりません。これは2種類のリスクをもたらします:第一にシグナルが「再描画」される(転換したと思ったが、後で更新された);第二にバックテストで誤って未来情報を導入する(look-ahead bias)。

したがって、クオンツトレーディングを行う場合、スイングを定義するときに次のように尋ねることをお勧めします:この転換点は何本目のローソク足の後に確認されるのか?確認遅延はどれくらいか?この遅延がエントリー、ストップロス、収益分布にどのような影響を与えるか?

「確認遅延」も戦略パラメータとして扱えば、スイングの理解は実際の取引により近づき、事後に見て美しい図により近づくことはありません。