アウトオブサンプルの検証:バックテストにだまされない Walk-Forward Testing
過去のデータで最高のパラメーターを選ぶのは簡単です。難しいのは、それが見たことのないデータでも通用するかどうかです。ウォークフォワード分析は、本番の「先にパラメーターを選び、それから実戦に出る」流れを再現します。
このレッスンは無料です。アカウントを登録すると、インタラクティブ・シミュレーションを使えます
どのレッスンにも、ドラッグや再生ができるインタラクティブ・シミュレーションと確認クイズがあり、登録すれば無料で使え、学習の進み具合も自動で保存されます。まずはこのレッスンのテキスト版の解説をどうぞ。
まだ決めかねていますか?まずは第 1 レッスンを見てみましょう(登録不要)「ルールブロックで戦略を組む」。
テキスト版の解説 · クオンツ入門 レッスン 5「アウトオブサンプルの検証:バックテストにだまされない」
過去のデータで最高のパラメーターを選ぶのは簡単です。難しいのは、それが見たことのないデータでも通用するかどうかです。ウォークフォワード分析は、本番の「先にパラメーターを選び、それから実戦に出る」流れを再現します。
まずパラメータを選んでから、本番へ
実際の取引では、過去のデータでしかパラメータを選べません。ウォークフォワード分析はこの過程を再現します:インサンプルで最適なパラメータを選び、直後のアウトオブサンプルで検証し、全体を前に進めていきます。
バックテストの水増し
全データを使って選んだ「最適パラメータ」は、答えを見ながら問題を解くようなものです。アウトオブサンプルの成績との差が、バックテストの水増し分です。純粋なノイズからでも見栄えのよいパラメータを選べてしまうことが、過剰最適化(オーバーフィッティング)の最も直接的な証拠です。
とがった山ではなく、なだらかな台地を
信頼できるパラメータの近くでは、隣のパラメータも良い成績を出します。あるパラメータだけが飛び抜けて良く、周りがすべて悪いなら、たいていは偶然で、相場が変われば通用しなくなります。
このレッスンのポイント
- インサンプルでパラメーターを選び、アウトオブサンプルで検証します。アウトオブサンプルの成績こそが、本当の実力に近いものです。
- ウォークフォワード:毎回、過去の一定期間のデータでパラメーターを選び、続く期間のデータで検証し、全体を前に進めていきます。
- インサンプルではとてもよいのにアウトオブサンプルではひどいなら、その戦略はおそらくノイズに当てはめているだけです。
- よいパラメーターの周辺のパラメーターもそれなりによいはずです。1 つの「尖った」パラメーターだけが特によいなら、たいていは偶然です。
実際に試してみよう
次の練習は、このレッスンのインタラクティブ・シミュレーションで取り組めます:
- 「スタイルの切り替わり」の相場で:全期間で最適なリターンはいくらですか?アウトオブサンプルの合計は?
- 「純粋なノイズ」に切り替えましょう:各期間のインサンプルの平均はいくらですか?アウトオブサンプルの合計は?
- 「スタイルの切り替わり」に戻り、学習期間を 120 本から 200 本に変えましょう:パラメータの変更回数は減りましたか?アウトオブサンプルの合計は良くなりましたか、悪くなりましたか?
- 「長期トレンド」に切り替えましょう:アウトオブサンプルの合計はまだプラスですか?「全期間で最適」とどれだけ差がありますか?
クイズと解説
- 1. あるパラメーターはインサンプルで年率 40%、アウトオブサンプルで年率 −5% でした。最も考えられるのは?
- 答え:過去のノイズに過剰最適化している。「見たことのあるデータ」でだけ成績がよいのは、過剰最適化の典型的な特徴です。
- 2. ウォークフォワード分析のやり方は?
- 答え:過去のデータでパラメーターを選び、次の期間のデータで検証し、前に進めていく。実際の取引で「過去の情報しか使って判断できない」状況を再現しているからです。
- 3. 200 通りのパラメーターを試し、バックテストで最もよい年率 35% のものを選びました。最も妥当な次のステップは?
- 答え:選定に使っていないアウトオブサンプルのデータで検証する。試す組み合わせが多いほど、「たまたま見栄えがよい」パラメーターを選んでしまう可能性が高くなるので、見たことのないデータで検証する必要があります。
このレッスンの用語
- インサンプル (In-Sample):パラメータの最適化に使った期間の過去データです。
- アウトオブサンプル (Out-of-Sample):最適化には使わず、戦略の検証のためだけに取っておいたデータです。
- 過剰最適化(オーバーフィッティング) (Overfitting):パラメータを過去のデータに合わせすぎた状態で、新しいデータではうまくいきません。
- ウォークフォワード分析 (Walk-Forward Analysis):過去の一定期間でパラメータを選び、その直後の期間で検証することを、全体を前にずらしながら繰り返し、実際の取引を再現する方法です。