ボリンジャーバンドはどのように責任ある形でバックテストできますか?
ボリンジャーバンドとは何で、あなたは具体的に何をテストしていますか?
ボリンジャーバンドは、2つの要素から構成されるボラティリティ指標です。中央線と、上側/下側のバンドです。中央線は通常、選んだルックバック期間にわたる価格の移動平均です。上側・下側のバンドは、同じルックバック窓における価格の標準偏差に基づいて、中央線からの距離として設定されます。
責任あるバックテストは「市場そのもの」をテストしません。つまり、過去データに適用される、明確に定義された一連のルールをテストします。したがって、(a) 使用する価格系列(たとえば終値 vs. 典型価格)を指定し、(b) ルックバックの長さと偏差マルチプライヤーを指定し、(c) バンドの挙動を行動に変換する意思決定ルール(そもそも行動を評価するのなら)を指定する必要があります。明確なルールや入力がない場合、「バックテスト」は再現可能な実験というより解釈になってしまいます。
メカニズム:数値を実行する前に前提を明示する
まず、計算と評価のパイプラインの仕組みを書き出してください。
- 指標計算の入力
- ウィンドウ長:移動平均と標準偏差に使う期間数。
- 標準偏差の定義:母集団形か標本形かは選択です。明記してください。
- 偏差マルチプライヤー:バンド幅を決める係数。
- 価格データ:どのフィールドと時間軸からバンドを計算するか。
-
バックテストのタイミングルール 指標値は過去のローソク足に依存します。よくある失敗は、あなたが「取引する」と主張する同じバーから情報を誤って使ってしまうことです。バンド値が「既知」になるタイミングと、行動が評価されるタイミングを明確にする必要があります。次のバーの始値、終値、または別のタイムスタンプで評価するのかを指定してください。
-
イベント処理とデータ衛生 欠けているバーの扱い、(データに該当する場合)コーポレートアクションのような断続性、そして補間の有無をどう扱うかを定義します。データセットにギャップがある場合、バンド計算や、いかなるルールのトリガーも変わり得ます。
コストとデータの現実性:モデルの当てはまりと取引可能性を分ける
取引の推奨をしないとしても、責任あるバックテストではコストと制約を考慮する必要があります。なぜなら、それらが結果を支配してしまうことがあるからです。
- コストをコストモデルとして扱う:スプレッドや手数料など、少なくとも取引コストの簡単な見積もりを含めます。コストを無視すると、結果が上振れするバイアスが生じがちです。
- 執行の現実性:ミッド価格、ビッド/アスク、または保守的な約定モデルを仮定するかを定義します。ルールがバンドへのタッチに依存しているなら、約定の仮定が重要になります。
- スリッページ:実市場では、理想化された価格から執行がずれることがあります。固定のスリッページ仮定を含めるか、保守的な上限を設けるかを決めてください。
また、指標の挙動とパフォーマンス評価を分けてください。ボリンジャーバンドはボラティリティを説明できますが、あなたのバックテストは、計算、ルールのトリガー、執行、そしてコスト計上まで含む完全なパイプラインを評価しています。
バイアスコントロール:過学習と先読みエラーを避ける方法
バックテストは「過去のことをやたら賢く扱いすぎる」ために失敗することがよくあります。そのリスクは、バイアスコントロールで減らせます。
-
テスト前にパラメータを固定する 多くのルックバック長や偏差マルチプライヤーを試して、結果が良く見えるまで調整してしまうと、歴史に合うように選んでいることになります。責任あるアプローチは、パラメータ候補を事前に定義するか、自由度を減らすことです。
-
アウト・オブ・サンプル検証 少なくとも2つのフェーズを使います。1つは選択を行うため(ルールの明確さのためだけでも)、もう1つはパフォーマンスを評価するためです。ローリングまたはウォークフォワードのスキームは、異なる市場レジームへの感度をテストできるため役立ちます。
-
複数の重ならない期間にわたって繰り返す ボラティリティ指標は、落ち着いた局面とボラティリティの高い局面で挙動が異なることがあります。同じルールを複数の時間窓で評価することで、特定の環境に適合させてしまう確率を下げられます。
エビデンスまたは例:将来の成功を前提にせずに何を測るべきか
バックテストは、評価の定義全体を反映する指標を生成するべきです。
- アウトカムを定義する:「結果」とは何を意味するのか(たとえば、ルール定義された行動のリターン、ある統計を予測しているなら予測誤差など)。
- 測定を一貫させる:ウィンドウサイズ、エントリー/エグジットのタイミング、コストの含め方は、明示した前提と一致していなければなりません。
- 安定性を確認する:単一の見出し数値に頼るのではなく、サブ期間間で結果を比較します。
価格が「バンドにタッチする頻度」だけを計算しているなら、あなたは指標同士の相互作用を測っているだけで、必ずしも実行可能な優位性(エッジ)を測っているわけではありません。
DOCUMENT END