フォワードテストシリーズ第一回 〜バックテストとフォワードテスト〜

こんにちは、minaulです。
みなさん、フォワードテストは知っているでしょうか。

名前自体は聞いたことある方も多いかと思います。
ただ、実際の投資戦略策定の工程に具体的に落とし込めているでしょうか。

筆者の場合はというと、フォワードテストは最近まで全くと言っていいほど無視しておりました。バックテストばかりしていました。
そのため、フォワードテストのことは恥ずかしながら全然知りませんでした。
今回は、筆者の備忘録と勉強も兼ねて、フォワードテストに関するシリーズ物を短編形式で書いてみたいと思います。


フォワードテストとは


フォワードテストとは、将来(未知)のデータに対して投資戦略を実行した場合のパフォーマンスを検証することです。
一方でバックテストは、過去のデータに対してパフォーマンスを検証することです。

なぜ投資戦略の策定において、バックテストだけではなくフォワードテストが必要と言われるのでしょうか。
その理由は細かく言えばいくつかあるかと思いますが、大きく言えば一つだと思います。

「ロバスト性」を確認するためです。

ロバスト性とは、投資戦略が期間・市場変化によらず、安定したエッジを持っていると期待できることです。別名、「堅牢性」とも言います。

先ほどの説明でお分かりかと思いますが、バックテストだけでは戦略本来が持っているロバスト性とその具体的な強度を測ることはできません。
なぜなら、バックテストの過程では特定期間の過去データ(=既に情報が確定したデータ)しか使っていないからです。

また、基本戦略の決定後にパラメータの調整、すなわち最適化を行っていることも大きな理由の一つです。
このパラメータ最適化は、あくまで過去データに対するものであり、将来(未知)データに対しては一切の説明力を持っていません。

そのため、フォワードテストを挟むことで、将来データへの検証を擬似的に行うことができ、その成績指標を参考にすることで、未知のデータに対して一定の説明力を担保することができます。

また、フォワードテストによる「ロバスト性」の確認は、以下のような統計学関連における極めて重要な問題にも対処できるようになります。


カーブフィッティング


この手の話には必ず付いて回るのが、章題の通り「カーブフィッティング」、別名「過剰最適化」の問題です。

カーブフィッティングとは、過去データに対して、パラメータが異常に適合(フィット)していることを言います。

この結果、過去データに対して、通常ありえない程(またはそれほどではないとしても)すばらしい*リターンを叩き出す戦略モデルが生まれます。

* ここでのすばらしいとは主観的・客観的にすばらしいということではなく(例えばPFが3.0以上など)、その戦略モデル"本来"のパフォーマンスに比してすばらしいということです。

確かに見栄えはいいですが、あくまで過去データに対しての結果に過ぎません。
将来データ、つまり未知のデータに対しても同様に素晴らしいパフォーマンスを発揮するとは一切保証されていないのです。

先ほど、バックテストの過程でパラメータ最適化を行うと記しました。
このパラメータ最適化自体は悪いことではなく、むしろ投資戦略の完成度を高める上では必須と言えます。
しかし、注意深く手順を踏まなければ、容易に"過剰"最適化に陥る可能性を孕んでいます。

そして、フォワードテストはこのカーブフィッティング状態の投資モデルを発見するために、とても有用な検証方法になります。

パラメータ最適化が過去データにのみ過剰にフィットしていた場合、フォワードテストによる"本来"のパフォーマンスを視覚化することで、かけ離れた結果が確認できるため、容易にカーブフィッティングを見抜くことができます。

このことは、実運用における実損を回避するという意味では、リアルトレードにおいて大きな意味を持つことになります。


バックテストとフォワードテスト


さて、フォワードテストの役割は「ロバスト性」を確認することでした。
では、バックテストの役割とはなんでしょうか。
それはずばり、「優位性」の確認です。

フォワードテストで検証するための投資戦略についてですが、そもそも戦略自体が優位性を持っていなければ、どれだけロバストな戦略でも、最も重要なリターンを上げることはできません。

つまり、バックテストとはフォワードテストを行うための投資材料の選定、言い換えれば事前準備とも言えるのです。

バックテストとフォワードテストがこのような関係にあることを理解すれば、バックテストのみの結果で実運用に投入することの危うさが浮き彫りになるかと思います。

フォワードテストを念頭に置けば、バックテストの計算期間の設定など、戦略策定工程の初期段階から入念に注意を払う必要性が生じます。

このことも後々のシリーズで記述できればと思います。


最後に


シリーズの第一回は、ざっくりとフォワードテストの説明とバックテストとの関係性を示しました。

次回は、フォワードテストに移る前の事前準備として、バックテストのパラメータ最適化についての記事を書きたいと思います。

それでは、お読みいただきありがとうございました。


この記事が気に入ったらサポートをしてみませんか?