ゼロ・ラグ移動平均(ZLMA)を責任ある形でバックテストするには?
直接の回答
ゼロ・ラグ移動平均(ZLMA)の責任あるバックテストは、4つの要素に焦点を当てます。(1)指標の仕組みを曖昧さなく定義する。(2)データ、サンプリング、コストに関する前提を選ぶ。(3)慎重な評価設計によってバイアスを制御する。(4)アウト・オブ・サンプルで検証し、過去の結果が将来のパフォーマンスの幻想にならないようにすることです。
ZLMAが意味するもの、そしてバックテストがよく失敗する理由
移動平均は、価格の時系列を平滑化ルールによって推定水準(場合によっては示唆される方向)へ変換するものです。「ゼロ・ラグ」版は、移動平均とそれが表す価格との遅れを減らそうとします。実際には、さまざまなZLMAの定義が存在するため、最初のリスクは「間違った数式」をテストしてしまうことです。
よくある失敗パターンは次の2つです:
- 定義の曖昧さ:バックテスト結果は、実装が特定の補正項、重み付け、または変換を使っているかどうかに依存します。
- 先読み(ルックアヘッド)やリサンプリングのミス:データセットやコードが、意思決定時点の後の情報を(間接的であっても)実質的に使ってしまっている場合、テストは無効になります。
証拠と例の設計:計算の前に何を指定すべきか
責任あるバックテストは、明確な前提から始まります。ライブの市場データがなくても、テストを再現可能にできます:
- データの取り決め
- 入力系列(例:終値、または構築したミッド価格系列)を指定する。
- タイムスタンプの整合(バーが閉じるタイミング、そして指標値がいつ利用可能になるか)を指定する。
- 系列を連続として扱うか、コーポレートアクションに合わせて調整するかを決める(FXでは通常、生のクオートを使うか、変換を使うかの違いが中心になるため、何を使ったかを文書化する)。
- 指標の数式とパラメータ
- 1つの正確なZLMA定義を使い、それを固定する。
- テストするパラメータ(例:ロングバック長)と、候補となる範囲を明記する。
-
意思決定ルール(取引行動を測定する場合) 指標それ自体は取引シグナルではありません。バックテストでは通常、指標から構築された戦略(例:指標のクロスや閾値条件を使う)を測定します。テストを正直に保つには、意思決定ロジックを明確に述べ、意思決定時点で利用可能な情報のみに依存することを保証する必要があります。
-
コストと摩擦の前提(重要なコストの種類) すべての微細なディテールをシミュレーションしなくても、「アイデアを結果に変える際のコスト」の主要部分は少なくとも含めるべきです:
- 取引コスト:1回の取引ごとのコストモデル。
- スリッページ:意思決定によってポジションが変わるときの執行ペナルティのモデル。
- 執行までの時間の近似:バーに基づくテストでは、注文が次のバーの始値で執行されるのか、終値で執行されるのか、または別のルールなのかを定義する。
- バイアス制御(責任ある検証の核心)
- テスト期間でのパラメータ調整なし:多くのパラメータ設定を試すなら、検証プロセスが必要です。
- ウォークフォワード(ローリング)評価:過去のウィンドウでパラメータを学習または選択し、次の未見のウィンドウでテストし、それを繰り返します。
- ギャップまたはバッファ:指標値が移動ウィンドウに依存する場合、リークを減らすために、学習データとテストデータを十分に分離すべきかどうかを検討してください。
限界とリスクとして認識すべきこと
- 過学習のリスク:ZLMAのパラメータは、あるレジームにはうまく適合しても、別のレジームではうまくいかないことがあります。ある期間で良好に見えるバックテストでも、別の場所では失敗するかもしれません。
- 市場レジーム依存:「平滑化」と「遅れの低減」は、トレンド局面とレンジ局面で挙動が異なる可能性があります。
- 執行の不確実性:コストや約定は「ノイズ」ではありません。不正確な前提は結論をひっくり返し得ます。
- 歴史的な関係は一般化しない:たとえ設計の良いアウト・オブ・サンプルテストでも、将来の結果を証明することはできません。
検証と次の質問
責任ある形で検証するには、バックテストのコードとデータセットの文書化により、次の質問に答えられるべきです:
- 実装した正確なZLMAの数式は何で、意思決定時点に対してその値をどのように整合させましたか?
- どのコストと執行前提を含め、そしてそれらは、実際の取引がそうなると期待する挙動に対して保守的でしたか?
- ウォークフォワードで評価しましたか、それとも明確な学習/検証/テストの分割を使い、パラメータ選択が学習データまたは検証データのみに基づいて行われたことを確認しましたか?
さらに進めたい場合は、データの整合、コスト前提、サンプリングする時間軸に対して小さな変更を加えながら同じワークフローを繰り返し、結論が実質的に変わるかどうかを確認することで頑健性をテストできます。
内部参照(任意):関連する解説と、指標の定義や前提を比較できます。こちら: zero lag moving average.
DOCUMENT END