ローソク足の反転はどのように検証できますか?
テストの前に「ローソク足の反転」が意味するもの
ローソク足の反転とは、1本以上のローソク足に示される特定の価格行動が、方向転換(たとえば下落から上昇へ)に先行するかもしれない、という考え方です。これを検証するとは、その考えを測定可能な仮説に変えることです。つまり、どのローソク足構造を探すのか、反転後に何を測るのか、そしてどの時間的な範囲(ホライズン)で見るのかを定義します。
安定したメカニズムと変動する条件を切り分ける実用的な方法は次のとおりです:
- 安定したメカニズム:過去のローソク足を二値のイベント(反転シグナルが存在する/しない)に変換するルールと、結果(アウトカム)の定義。
- 変動要因:市場のボラティリティ・レジーム、取引対象の特性(スプレッドの挙動)、執行の質、そしてコストをどのように扱うか。
関係が一般化するとは仮定できないため、テストでは、そのイベント自身の過去平均だけでなく、意味のあるベースラインと比較する必要があります。
アイデアを検証可能な仮説に落とし込む
仮説には5つの要素を含めるべきです:
- パターン定義:どのローソク足を数えるか(例:1本足か複数本か)、どの特徴が重要か(実体の大きさ、ヒゲの長さ)、および任意の閾値。
- トリガー時刻:そのパターンが「検出された」とみなされるタイミング(ローソク足のクローズ時か、インターバーのルールで判定するか)。この選択はテストに敏感です。
- アウトカム定義:検出後に何を測るか。数値として定義できるアウトカムの例は次のとおりです:
- 方向性の値動き:価格が一定の金額だけ上がるか下がるか、あるいはある水準に到達するかどうか。
- ホライズン上のリターン:検出時刻から、後のローソク足のクローズまでの価格変化。
- ホライズン(複数可):トリガー後に評価する時間窓。
- 評価指標:たとえば、方向性アウトカムの的中率、分布のシフト、または同じ前提から定義したリスク調整後の指標など、どのようにパフォーマンスをスコア化するか。
前提は明示する必要があります。たとえば、ローソク足のクローズで検出するなら、アウトカムは次のローソク足のオープンから始めるべきです(あるいは同じクローズからでもよいですが、その場合は一貫した取り決めが必要です)。また、重複するパターンを許すなら、マッチした各ローソク足が「トライアル」を開始するのか、それともトライアルが重ならないようにクールダウンを設けるのかを定義してください。
「何よりも良いのか?」に答えるベースラインを選ぶ
適切にテストするには、パターン条件付きのアウトカムを、同様の状況に条件付けされたベースラインと比較するか、少なくとも無条件のベースラインと比較します。
優位性を主張せずに定義できる一般的なベースラインは次のとおりです:
- 無条件ベースライン:パターンが存在しないときのアウトカムの確率分布。
- 時間・ボラティリティ一致ベースライン:市場のボラティリティが類似している期間、またはローソク足サイズの分布が類似している期間におけるアウトカム。検出時点で利用可能な情報のみを使います。
- ランダム化または置換ベースライン:パターン定義は維持しつつ、日付とアウトカムの対応をランダム化して、実際の時間的関係を学習したのか、それとも統計的な偶然の産物にすぎないのかを確認します。
重要なのは、ベースラインが同じ検出ルールと測定ルールを使うことです。そうでないと比較が解釈できません。
データ分割とデータ・スヌーピング対策
強いテストでは、閾値を定義するのに使った同じデータから結論を導かないようにします。過去ローソク足では、分割戦略を適用します:
- 学習(任意):閾値を設定し、どの指標/ホライズンを評価するかを決めるために使う。
- 検証(任意):少数の候補の中から選ぶために使う。
- テスト(最終):選ばれたルールのパフォーマンスを推定するために一度だけ使う。
これらのフェーズを分離する規律がないと、データ・スヌーピングのリスクがあります。つまり、インサンプルではうまくいくパターンを見つけたように見えても、アウト・オブ・サンプルでは失敗する、という状況です。
追加の対策:
- パラメータ感度分析:主要な閾値をわずかに変えて、結果が崩れるかどうかを見る。
- ウォークフォワード・テスト:学習/検証の判断をローリングで繰り返し、特定の過去期間に依存しないようにする。
- 重複の扱い:複数のシグナルを評価で一貫して扱うことを保証する(重複するトライアルは、好ましい値動きを二重計上して見かけのパフォーマンスを膨らませ得ます)。
コストと執行:仮定できること
情報提供目的のテストであっても(ライブ取引はしない)、取引コストのモデリングを前提(仮定)として含めるべきです。コストは小さな優位性を打ち消し得るからです。
コストの前提を計算への入力として定義します:
- スプレッドまたはビッド・アスクの代理:片側あたりの固定割合、または固定ティックコスト。
- コミッションの代理:1取引あたり、または1ロットあたりの金額。
- スリッページ:執行の不確実性をモデル化するための追加コスト仮定。
リアルタイムデータを使わないため、コストは「仮定としてモデル化している」ことを明確にしてください。次に シナリオテスト を行います:同じルールを、コスト設定の小さな範囲(低・中・高)にわたって評価し、アウトカムがどれほど頑健かを確認します。
エビデンスまたは例:厳密な評価手順
ここでは、(リアルタイムデータを必要とせずに)概念として従える具体的な手順を示します:
-
ローソク足イベントを定義する
- 例: 「ローソク足の実体の方向がXであり、ヒゲの比率がYを超え、指定されたとおりにパターンが強気/弱気であるときにパターンが発生する。」
- 厳密な包含ルールを指定する必要があります(たとえば、厳密な「より大きい」か、「以上」か)。
-
トライアルを生成する
- パターンが発生する各過去のタイムスタンプについて、1つのトライアルを作成する。
- 重複を防ぐかどうかを決める。たとえば、最低限の本数のローソク足が経過するまで、同時に許可するトライアルを1つだけにする。
-
アウトカムを測定する
- 選んだホライズン(複数可)にわたって、トリガー時刻から定義したアウトカムを計算する。
- アウトカムが事前に指定した成功基準を満たすかどうかを記録する。
-
ベースラインとともに統計を計算する
- パターン条件付きの成功確率を、ベースラインの成功確率と比較する。
- 可能であれば、効果量(確率の差)と不確実性(信頼区間)を用いる。
-
頑健性チェック
- 過去の分割(時間分割)にわたって、可能なら少なくとも2つの市場レジームにわたって繰り返す(過去の特徴だけで識別できる場合)。
- 閾値をわずかに変更した後に再実行する。
これらのチェックで「優位性(edge)」が消えるなら、元の発見がノイズ、または過学習された関係を反映している可能性があるという証拠になります。
限界と、起こり得る失敗パターン
少なくとも1つの重大な限界は、テスト計画の一部として含めるべきで、後付けにしてはいけません。ローソク足の反転テストでよくある失敗パターンには次のようなものがあります:
-
レジーム依存
- 反転の挙動は、ボラティリティ、トレンドの強さ、流動性によってしばしば変わります。あるレジームで機能しているパターンが、別のレジームでは失敗することがあります。
-
誤った反転と継続
- 強いトレンドの最中にも、ローソク足の構造は起こり得ます。その場合、価格は同じ方向に継続します。アウトカム定義によって、これらが失敗としてマークされる可能性があります。
-
実装上の詳細への感度
- テストは、ローソク足の時間枠、クローズ時での検出かインターバーでの検出か、閾値の選択、そして重複シグナルの扱い方に敏感です。
-
コストと執行による目減り
- パターンが生の方向精度をわずかに改善したとしても、モデル化したコストやスリッページによって純利益が消えることがあります。だからこそシナリオテストが重要です。
DOCUMENT END