CMOはどのように責任ある形でバックテストできますか?
「責任ある」CMOバックテストとはどういう意味か
CMO(Chande Momentum Oscillator)のバックテストとは、価格データからその過去の値を計算し、実時間で適用されていた場合に、ある意思決定ルールがどのように機能したかを評価することです。ここでいう「責任ある」とは、テストが再現可能かどうか、そして過去の結果を本来より良く見せてしまうよくある誤りを避けられているかどうかに焦点を当てます。
責任あるアプローチは主に次の4点です:(1)インジケータとデータを正確に定義すること、(2)コストと現実的なタイミングを含めること、(3)バイアスとパラメータの過剰適合を抑えること、(4)アウト・オブ・サンプルで検証して、発見結果がどれほど脆いかを見積もれるようにすること。
メカニクス:インジケータ、データ、前提を定義する
何かをテストする前に、CMOの明確で検証可能な定義と、それが使う入力を用意する必要があります。実務上は、次のように書き下します:
- 厳密なデータ系列(例:終値から終値の価格)と、リターンやモメンタムを計算するために使うサンプリング頻度。
- CMO計算で使うロックバックウィンドウ(パラメータ)。
- 欠損データの扱い、セッションの区切り、企業行動(該当する場合)。
- 日付のアラインメント規則:時刻 t でテストするシグナルが、時刻 t までに利用可能な情報だけを使っているかどうか。
次に、評価する意思決定ルールを指定します。たとえ「CMOが予測する」と主張しないとしても、CMOがある水準をクロスしたとき、閾値によって上昇したとき、あるいは選んだ条件が成立したときに何をするのかを、必ず説明しなければなりません。各例について、ポジション開始時刻(次のバーの始値か、バーの終値か)、インターバーの執行を許可するかどうか、週末や流動性の低い期間をどう扱うか、といった前提を明示してください。
コストと執行タイミング:多くのテストが無視する部分
バックテストにおいてコストは後回しにできません。概念的に筋の良いインジケータでも、現実的な摩擦を無視すると強く見えてしまうことがあります。典型的な市場シミュレーションでは、次を考慮すべきです:
- スプレッドと手数料(または同等の取引コストモデル)と、コストをエントリー時だけに適用するのか、エントリーとエグジットの両方に適用するのか。
- スリッページ:モデル化された執行価格と、意図した価格との差。
- タイミング:シグナルのタイムスタンプが「チート」してはいけません。もしシグナルがバー t から計算されるなら、現実的なテストでは、バー t が完了した後に利用可能になっていたはずの執行価格を使います。
前提の明確さが重要です。たとえば「次のバーの始値で執行する」と仮定するなら、そのルールを一貫して適用し、インジケータ計算が将来の価格を使っていないことを確認してください。
バイアス制御:先読みと過剰適合を防ぐ
多くのバックテストは、意図せず本来使ってはいけない情報を使ってしまうために失敗します。
主なバイアスチェックには次が含まれます:
- 先読みバイアス:時刻 t における意思決定に使うインジケータ値が、時刻 t より前に利用可能だったデータから計算されていることを確認する。
- セレクションバイアス:CMOウィンドウのようなインジケータのパラメータを、同じデータセット上で繰り返し探索して最良の過去結果を探すような形で調整しないこと。
- データスヌーピング:多くのバリアント(閾値、パラメータ値、フィルタ)を試すと、結果が頑健な性質というより探索プロセスを反映してしまう可能性があります。
実務的な制御として、データを少なくとも2つのセットに分けることが挙げられます。1つはパラメータを選ぶため、もう1つはパフォーマンスを評価するためです。さらに複数回チューニングする場合、そのチューニングをモデル構築プロセスの一部として扱い、最終評価はそのまま手を付けずに残します。
エビデンスとアウト・オブ・サンプル検証
ノイズを構造と取り違えるリスクを減らすために、アウト・オブ・サンプルで検証してください。
よくあるパターンには次が含まれます:
- 学習/検証/テストの分割:学習セグメントでパラメータを選び、別のセグメントで検証し、その後で保持したテストセグメントに対して1回だけ評価を行う。
- ウォークフォワード(ローリング)評価:移動するウィンドウで繰り返し再学習または再選択を行い、その後で次の期間でテストする。
結果を報告するときは、脆さが見える指標に焦点を当ててください。複数の測定(例:平均リターンと、ドローダウンのようなリスクの代理指標)を使い、パフォーマンスがいくつかの珍しい期間に強く依存していないかを確認します。テストが主に、市場状況が学習レジームに似ているときにだけ機能するなら、レジームが変わったときに失敗する可能性が高いです。
限界と、想定すべき失敗モード
慎重な手法であっても、CMOのバックテストは誤解を招く結論を生むことがあります。重大な限界の例には次が含まれます:
- 非定常性:市場は変化します。過去に成り立っていた関係が継続するとは限りません。 - レジーム転換:ボラティリティ、トレンド、流動性の条件が変わると、モメンタム・オシレーターの振る舞いが変わり得ます。