ケルトナーチャネルはどのように責任ある形でバックテストできますか?
ケルトナーチャネルとは何で、あなたは具体的に何をバックテストしていますか?
ケルトナーチャネルは、移動平均の周りに作られるボラティリティベースのエンベロープです。一般的な構築では、中心線(移動平均)と、Average True Range(ATR)のようなボラティリティ指標に基づく上限/下限バンドを用い、さらに乗数でスケーリングします。バックテストでは、あなたは「アイデア一般」をテストしているのではなく、特定の アルゴリズム定義 をテストしています:
- 移動平均の種類(たとえば単純移動平均または指数移動平均)
- 移動平均の参照期間(ルックバック長)
- ボラティリティ指標とその参照期間(一般にATR)
- バンドの乗数
- 入力に使う価格(例:終値、または別の一貫したフィールド)
これらの選択は生成される時系列を変えるため、「責任あるバックテスト」は、性能の議論の前に、あなたの指標計算を正確に書き下すことから始まります。
結果を計算する前にデータと前提を定義する
責任あるバックテストでは、前提を明示します。少なくとも次を指定してください:
- データの頻度と時間の整合:日足、時間足、または別のバーサイズで系列を作るかを決め、バンドがそのバーの終値(または該当する意思決定時刻)で利用可能だった情報だけで計算されるようにします。
- 先読み防止:意思決定の瞬間に未知だったはずのバンド値を計算するために、将来のバーを使わないようにします。
- パラメータ値:評価中に調整するのではなく、評価する指標設定を固定します。
- 取引ルールのモデル(含める場合):指標の挙動が目的であっても、「結果」とは何か、たとえばバンドまでの距離、タッチ回数、またはバンド外にいた時間を測るのか、といった点を明確にしてください。意思決定に落とし込む場合は、途中でロジックを変えずに意思決定ロジックを定義します。
何が測定されているのかを明確に定義しないと、実際には不整合な計算の産物であるにもかかわらず、見かけ上強いバックテスト結果が得られてしまうことがあります。
コストモデリングと実行の現実性
バックテストが失敗するのは、指標から導いたアイデアを、過度にきれいな前提と比較してしまうことが多いためです。主要なコストカテゴリと、それをどうモデル化するかを考えてください:
- 取引コスト:スプレッド/手数料、または執行された各取引に対する代理コスト。
- スリッページ:理想化された執行価格と、現実的な約定価格との差。
- 注文のタイミング:注文が次のバーの始値で約定すると仮定するのか、同一バーの終値で約定するのか、あるいは遅延を伴うのか。
ライブデータがなくても、明示的な前提でこれらの要素をモデル化できます(たとえば、固定の1取引あたりコストと単純なスリッページルールを使うなど)。重要なのは一貫性です。コストの前提は、比較が意味を保つように、すべてのバックテスト実行で同じ方法で適用する必要があります。
バイアスを制御:過剰適合と情報漏えいを防ぐ
「責任ある」バックテストでは、結果を仮説として扱います。よくある失敗パターンには次があります:
- 過剰適合:ある特定の期間に合わせるように、パラメータを繰り返し調整する。
- 先読みバイアス:意思決定時刻に利用可能ではなかった形でデータを使う。
- サバイバーシップ(生存者)バイアスおよび選択バイアス:良さそうに見えた市場や期間だけをテストする。
これらのリスクを減らすために、バイアスコントロールを使います:
- ウォークフォワード(アウト・オブ・タイム)テスト:パラメータをトレーニング期間でのみフィット/選択し、その後の期間で評価し、これを繰り返します。
- パラメータのフリーズ:指標設定を決めたら、テスト期間の挙動に基づいて変更しない。
- 複数の分割:単一の相場レジームが結論を支配しないように、重ならない複数の時間期間にまたがってテストする。
- 比較可能な計測:実験間で、パフォーマンス指標と意思決定ロジックを一定に保つ。
アウト・オブ・サンプルのチェックと頑健性テストを使う
過去の結果はレジーム依存になり得ます。結論の信頼性を高めるには、少なくとも次を要求してください:
- アウト・オブ・サンプル評価:パラメータ選定に使わない最終的なホールドアウト期間。
- 頑健性チェック:前提の制御された変動のもとで、同じ指標定義を再実行する(たとえば、わずかに異なるバーの整合、または妥当な代替のボラティリティソース設定など)し、結果が意味のある形で変わるかを確認します。
前提を少し変えただけでパフォーマンスが崩れるなら、そのバックテストは安定したメカニズムというより、狭い歴史的偶然を反映している可能性を示唆します。
認めるべき制限と失敗パターン
慎重に設計されたバックテストでも限界があります:
- 過去のチャネル挙動は将来の挙動を保証しない(市場のダイナミクスは変わり得ます)。
- ボラティリティ・レジームが変化する可能性があり、価格がバンドと相互作用する頻度が変わります。
- コストと執行の影響は、どのシグナルも控えめな場合に支配的になり得ます。
- 指標の出力はパラメータ選択に強く敏感になり得ます。特に乗数とルックバック長です。