アウトオブサンプル・テストとは、戦略の作成に使っていないデータで戦略を評価することです。過剰最適化 に対する最もシンプルで効果的な防御策のひとつです。
インサンプルとアウトオブサンプル
- インサンプル のデータは、ルールを作り調整するときに見たデータです。
- アウトオブサンプル(ホールドアウト)のデータは取っておき、最終的なルールの確認にだけ使います。
アウトオブサンプルで成績が崩れるなら、インサンプルの結果はおそらくノイズを記述していました。
未使用期間チェックの仕組み
Backte.st の 未使用期間 チェックは、各市場の履歴を時間で分割します。最初の70%と最後の30%です。最後の30%を、まるで一度も見たことがないかのように単独で評価し、分割日以降のリターンと決済済み取引の数を表示します。
ランダムではなく時間で分割することが重要です。市場にはトレンドや局面があり、近い日の価格は互いに関係しています。ランダムに分割すると、未来の情報が過去に漏れてしまいます。
落とし穴:ホールドアウトが「未使用」なのは一度だけ
テストを実行し、最後の30%の成績が悪いのを見てルールを調整し、良く見えるまで再実行を繰り返すと、ホールドアウトは作成プロセスの一部になってしまいます。それはインサンプルのデータになったのです。レポートの制限事項にもそのことがはっきり書かれています。
正直さを保つための実践的な方法:
- まずルールを決める。 探索したいなら、履歴の前半だけを使います。
- 未使用期間の結果は一度だけ見る。 そして見た内容を書き留めます。
- 繰り返し試す必要があるなら、新しいデータを使う。 別の市場、後の期間、別の足の長さなどです。
結果の読み方
- インサンプルとアウトオブサンプルで似た結果:心強い結果ですが、1回の分割はまだ小さなサンプルです。
- アウトオブサンプルで大きく悪化:カーブフィッティング、あるいは局面の変化の典型的なサインです。
- 未使用期間の取引が少なすぎる:チェックでは判断できません。履歴を長くするか、足を短くしてください。
1回の分割を超えて
プロはよく ウォークフォワード分析 を使います。ウィンドウを前に進めながら分割を何度も繰り返す方法です。ひとつのホールドアウト期間は同じ考え方の簡易版ですが、それでも多くの問題を見つけられます。
ラボ で好きな戦略を試し、未使用期間の行と全期間のリターンを比べてみてください。