数百の中から見つけた素晴らしいシャープレシオ
シャープレシオは、平均超過リターンをその標準偏差で割ったものです。日次データからは 252 で年率化します。日次平均0.05%、日次ボラティリティ1%なら日次レシオは0.05、年率では 0.05252≈0.79 です。他の推定値と同様に標準誤差があり、T 年分のデータでおよそ (1+SR2/2)/T です。真のシャープレシオが0.8でも、4年間の測定では約 ±0.57 の精度でしか分からず、シャープレシオ0.8と0.3の2つの戦略を統計的に区別するのは困難です。
E[i≤NmaxSRi]≈σSR2lnN,SRdefl=SRbest−E[max](1) ここで N 個の戦略を試すとします。すべての真のシャープレシオが0でも、推定値は σSR のばらつきで0のまわりに散らばり、その最良値は正で、N とともにおよそ σSR2lnN のように増えます。ばらつきが0.5で試行が100回なら、運だけで最良値は約 0.52ln100≈1.52 と期待されます。これがバックテストの過学習です。ディフレーテッド・シャープレシオ(Bailey と López de Prado)は、観測された最良のシャープレシオを、試行回数、リターンの歪度と尖度、標本の長さで補正します。このトピックの簡略版では、数字を信じる前に、N 個中の最良値に期待されるノイズを差し引きます。
シャープレシオの数値日次平均0.05%、日次ボラティリティ1%なら
SR=0.05252≈0.794 です。
T=4 年で
SR=0.8 なら
SE≈(1+0.32)/4≈0.574。ノイズのばらつきが
0.5 の100個の戦略では、期待される最良値は
0.52ln100≈1.517 です。最良のバックテストが
SR=1.5 で、
N 個中の最良値に期待されるノイズが
1.0 なら、ディフレートした値は約
1.5−1.0=0.5 で、表向きの数字の半分は運で説明されます。
- シャープレシオ:平均超過リターンをボラティリティで割る。日次データは 252 で年率化する。
- N 個中の最良値:ノイズだけで最良のシャープレシオは σSR2lnN 付近になる。
- 対策:すべての試行を記録し、最終ホールドアウトを残し、理由のある単純なアイデアを好み、勝者を割り引く。
バックテストは結果ではなく仮説戦略を検証する唯一のきれいな方法は、選択に一切関わらなかったデータ、つまり1度だけ見る最終ホールドアウトか、実運用です。それ以外は、どれだけ丁寧に交差検証しても、アイデアを選ぶ誰かが繰り返し見ています。いくつのアイデアを試したかを明示して補正し、履歴の短い日次株式データでシャープレシオが2を超えるものは疑ってください。
ラボ:採点される内容
- 年率化したシャープレシオ15点
- シャープレシオの標準誤差15点
- ノイズから生じる多数のうちの最良値15点
- 勝者をどう扱うか15点
- 過学習への対策10点
- ディフレートしたシャープレシオ15点
- 最良のバックテストが運かもしれない理由15点