ウォークフォワード分析:戦略検証のゴールドスタンダード
ウォークフォワード分析とは、過去のウィンドウでパラメータを最適化し、直後のアウトオブサンプル期間でテストする作業を、前へずらしながら繰り返す戦略検証の手法です。ウォークフォワード効率は50%超なら一般に許容範囲、30%未満なら過剰適合が疑われます。
過去データで素晴らしく見えるバックテストも、その結果が戦略にとって未知のデータでも維持されたかどうかが分かるまでは、何も証明していません。ウォークフォワード分析(walk-forward analysis)は、この問いに答えるための最も厳密な方法です。そして、本番で機能する戦略と、後から振り返ったときにしか機能しない戦略とを分けるものでもあります。
ウォークフォワード分析とは?
ウォークフォワード分析(WFA)は、過去のウィンドウでパラメータを繰り返し最適化し、最適化したパラメータを直後のアウトオブサンプル期間でテストする戦略検証の手法です。その後、プロセスを時間的に前へずらして繰り返します。つなぎ合わせたアウトオブサンプル結果がウォークフォワード・パフォーマンスとなり、戦略がリアルタイムでどう機能していたかの現実的な推定になります。
重要なのは、ウォークフォワード・テストのどの時点でも、戦略は最適化中に一度も見ていないデータで評価されるという点です。これにより、バックテストにおける誤った自信の最も一般的な原因、つまり戦略を開発したのと同じデータで戦略を評価することが排除されます。
単純な学習/テスト分割では不十分な理由
標準的なアプローチ(データを70/30に分け、前半で最適化し、後半でテストする)には根本的な弱点があります。得られるアウトオブサンプル結果がちょうど1つだけだということです。その1つの結果は、偶然に有利なものかもしれません。テスト期間がたまたま強い強気相場で、ロング寄りの戦略なら何でもよく見えたのかもしれません。あるいは異常に静かな期間で、ボラティリティを売る戦略が見事に見えたのかもしれません。
ウォークフォワード分析は、異なる市場環境にまたがる複数の独立したアウトオブサンプル結果を生み出します。ある戦略が10のウォークフォワード・ウィンドウのうち8つでプラスのリターンを出したなら、それは1回のアウトオブサンプル・テストに合格するよりはるかに強い証拠です。過剰適合した戦略が合格するのもずっと難しくなります。過剰適合はウィンドウごとに大きくばらついた結果を生みやすいからです。
ローリングウィンドウの手法
ウォークフォワードのプロセスは次のとおりです。
- ウィンドウの長さを決める。最適化ウィンドウの長さ(例:2年)とテストウィンドウの長さ(例:6か月)を選びます。最適化とテストの比率は3:1または4:1が一般的です。
- ウィンドウ1で最適化する。最初の最適化ウィンドウで、すべてのパラメータの組み合わせで戦略を実行します。選んだ指標(シャープレシオ、プロフィットファクターなど)で最良のパラメータセットを選びます。
- 次の区間でテストする。最適化したパラメータを直後のテストウィンドウに適用します。アウトオブサンプルのパフォーマンスを手を加えずに記録します。
- 前にずらす。ウィンドウ全体をテスト期間1つ分だけ前に動かし、手順2-3を繰り返します。
- 結果をつなぎ合わせる。すべてのアウトオブサンプル・テスト区間を結合して、ウォークフォワードの完全なパフォーマンス曲線を作ります。
アンカー型とローリング型のウィンドウ
ローリング型のウォークフォワード分析では、最適化ウィンドウは固定長で、時間とともに前へスライドします。新しいデータが入ると古いデータが外れます。このアプローチは、直近の市場の振る舞いの方が遠い過去よりも予測力が高いと仮定しています。
アンカー型のウォークフォワード分析では、最適化ウィンドウは常に同じ日付から始まりますが、反復のたびに長くなります。このアプローチは、データが多いほどパラメータ推定が常に改善すると仮定しています。安定した統計的関係に基づく戦略にとっては妥当な仮定です。
実際には、ある戦略がアンカー型とローリング型の両方のウォークフォワード・テストに一貫した結果で合格すれば、それは頑健性の強い証拠です。一方に合格してもう一方に不合格なら、その理由を調べてください。その食い違いは、特定の市場レジームへの敏感さを明らかにすることがよくあります。
ウォークフォワード効率
ウォークフォワード効率(WFE)は、インサンプルのパフォーマンスのうちどれだけがアウトオブサンプル・テストで残るかを数値化します。
パフォーマンスは、シャープレシオ、プロフィットファクター、純利益など任意の指標で測れます。WFE が100%ということは、インサンプルからアウトオブサンプルへのパフォーマンス低下がまったくないことを意味し、現実的ではありません。実践的な目安は次のとおりです。
- 70%超:優秀。戦略は頑健で、過剰適合はごくわずかです。
- 50%から70%:良好。どんな最適化プロセスでも想定される通常の低下です。
- 30%から50%:ぎりぎり。戦略が部分的に過剰適合している可能性があります。パラメータの感応度を見直してください。
- 30%未満:不良。戦略はおそらく過剰適合しており、インサンプルの結果は誤解を招きます。
実践的な実装ステップ
ウォークフォワード分析を効果的に実装するには:
- 適切な最適化指標を選ぶ。シャープレシオはボラティリティにペナルティを課すため、一般に純利益より優れています。プロフィットファクターは取引回数の多い戦略に適しています。最大リターンでの最適化は避けてください。外れ値を過度に評価してしまいます。
- ウィンドウごとに十分な取引数を確保する。統計が意味を持つよう、各テストウィンドウには少なくとも30回の取引が含まれるべきです。戦略の取引頻度が低い場合は、ウィンドウを長くするか、ウォークフォワードの反復回数を減らす必要があるかもしれません。
- パラメータの安定性を二次フィルターとして使う。最適パラメータがウィンドウごとに大きく変わるなら、その戦略には頑健性が欠けています。ウィンドウ間でパラメータの選択が安定していれば良い兆候です。
- 複数の最適化/テスト比率を試す。3:1、4:1、5:1の比率で結果が一貫していれば、単一の比率から得た結果よりも信頼できる知見になります。
限界
ウォークフォワード分析は広く利用できる検証手法の中で最良のものですが、完璧ではありません。近い将来が最近の過去に似ていることを前提としているため、レジームの転換時(2008年の金融危機、COVID-19 による暴落)には通用しません。また、大量のデータを必要とします。10年分のデータセットを8つのウォークフォワード・ウィンドウに分けると、取引頻度の低い戦略では1ウィンドウあたりの取引数が比較的少なくなります。
さらに、ウォークフォワード分析そのものもメタ最適化によって過剰適合し得ます。合格する組み合わせが見つかるまで、ウィンドウサイズ、最適化指標、比率をあれこれ試すことです。必要な規律は、事前登録された科学研究と同じように、ウォークフォワードの設計を実行する前に確定させることです。
試してみましょう
ウォークフォワード分析は概念的にはシンプルですが、ゼロから構築するには多くの計算が必要です。QuantPrompt は戦略アイデアのプロトタイプ作成と検証をすばやく行う手助けをします。戦略を普段の言葉で説明し、さまざまな期間でバックテストを実行し、パフォーマンスが市場レジームをまたいで一貫しているかを確認してください。手作業のウォークフォワードにはコーディング環境が必要ですが、まず QuantPrompt で検証に値する戦略を見極めておけば、本格的なウォークフォワードの実装に取りかかる前に開発時間を大幅に節約できます。
よくある質問
参考文献
- Pardo, R. (2008). The Evaluation and Optimization of Trading Strategies (2nd ed.). Wiley.
- Bailey, D. H., Borwein, J. M., López de Prado, M. & Zhu, Q. J. (2017). The Probability of Backtest Overfitting. The Journal of Computational Finance.
- Bailey, D. H., Borwein, J. M., López de Prado, M. & Zhu, Q. J. (2014). Pseudo-Mathematics and Financial Charlatanism: The Effects of Backtest Overfitting on Out-of-Sample Performance. Notices of the American Mathematical Society.