ウォークフォワード分析は、
「アルゴリズムトレーディング入門(ロバート・パルド著、パンローリング社)」
で紹介されている。
この本は、以前にも紹介した。
(こちらの記事、『バックテストでの確認項目は何か?そして、重視している項目は何か?』)
ウォークフォワード分析をざっくりと説明するなら、
- フォワードテストを時期をずらしながら繰り返していくこと
フォワードテストはご存知の方も多いと思う。
例えば、3年間のバックテストを実施し、成績の良かったパラメータで、
次の6ヶ月間、仮想的に運用してみる、といったテスト。
ウォークフォワード分析は、これを6ヶ月ずつずらしながら実施していくもの。
(期間は、あくまでも一例)
イメージ図を見た方が分かりやすいかと思う。
分析の尺度となるのが、ウォークフォワード効率。
- ウォークフォワード効率 = フォワードテスト期間の年率損益 ÷ バックテスト期間の年率損益 × 100(%)
この値が50~60%あれば、堅牢なトレード戦略だとのこと。
難しいのは、
- バックテストの期間をどう設定するか?
- フォワードテストの期間をどう設定するか?
- 目的関数を何にするか?
- 長期間のテストデータが揃うのか?
といったところ。
手元にある4~5年ほどのデータでウォークフォワード分析を試したことがある。
ちなみに、テストデータは10~20年を推奨されているので、4~5年では少ない。
期間の設定や目的関数をいくつか試した。
結果は、・・・悩ましい。
全期間を通じて、損益はプラス、ウォークフォワード効率も50~60%程度出たが、
トレードサンプル数が少ない状態で運用(フォワードテスト)するためか、
各期間における成績のムラが大きいように感じる。
テストデータが限られている、という状況の中で、
ウォークフォワード分析のようにサンプル数は少ないが、より実践に則したやり方が良いのか?
全データでバックテストし、特定のパラメータでサンプル数を多く採取する方法が良いのか?
なかなか悩ましい問題だ。
とりあえず、今は、サンプル数を多く採取することを優先しているが、
ウォークフォワード分析については、今後も、色々試してみたいと思っている。