σμimplied vol · KKmax(S−K,0)udβρᵢⱼfat tailsPnL · drawdownyield · TdSₜ = μSₜ dt + σSₜ dWₜC = S·N(d₁) − K·e⁻ʳᵀ·N(d₂)σₚ² = wᵀΣwd₁ = [ln(S/K) + (r + σ²⁄2)T] ⁄ σ√T∂V/∂t + ½σ²S²·∂²V/∂S² + rS·∂V/∂S − rV = 0Sharpe = (Rₚ − R_f) ⁄ σₚVaR₉₉ = μ − 2.33σρ = Cov(X,Y) ⁄ σₓσᵧE[Rₚ] = Σ wᵢ·E[Rᵢ]φ(x) = e^(−x²/2) ⁄ √2πE[Rᵢ] = R_f + βᵢ(E[Rₘ] − R_f)dXₜ = θ(μ − Xₜ)dt + σ dWₜσ²ₜ = ω + α·ε²ₜ₋₁ + β·σ²ₜ₋₁C − P = S − K·e⁻ʳᵀΔ = ∂V/∂S Γ = ∂²V/∂S²p = (e^(rΔt) − d) ⁄ (u − d)rₜ = ln(Pₜ ⁄ Pₜ₋₁)E[Xₜ₊₁ | ℱₜ] = Xₜf* = (bp − q) ⁄ bz = (x − μ) ⁄ σP(N=k) = λᵏe^(−λ) ⁄ k!Θ = −∂V/∂Tν = S·φ(d₁)·√Tmin wᵀΣw s.t. wᵀμ = μ*∫Σ∂∞λ
uantCraft Academy路线图学习路线
Ctrl K
AO
+1.2k 位学习者
登录加入 ↗
路线图学习路线
AO
+1.2k 位学习者
登录
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
σμimplied vol · KKmax(S−K,0)udβρᵢⱼfat tailsPnL · drawdownyield · TdSₜ = μSₜ dt + σSₜ dWₜC = S·N(d₁) − K·e⁻ʳᵀ·N(d₂)σₚ² = wᵀΣwd₁ = [ln(S/K) + (r + σ²⁄2)T] ⁄ σ√T∂V/∂t + ½σ²S²·∂²V/∂S² + rS·∂V/∂S − rV = 0Sharpe = (Rₚ − R_f) ⁄ σₚVaR₉₉ = μ − 2.33σρ = Cov(X,Y) ⁄ σₓσᵧE[Rₚ] = Σ wᵢ·E[Rᵢ]φ(x) = e^(−x²/2) ⁄ √2πE[Rᵢ] = R_f + βᵢ(E[Rₘ] − R_f)dXₜ = θ(μ − Xₜ)dt + σ dWₜσ²ₜ = ω + α·ε²ₜ₋₁ + β·σ²ₜ₋₁C − P = S − K·e⁻ʳᵀΔ = ∂V/∂S Γ = ∂²V/∂S²p = (e^(rΔt) − d) ⁄ (u − d)rₜ = ln(Pₜ ⁄ Pₜ₋₁)E[Xₜ₊₁ | ℱₜ] = Xₜf* = (bp − q) ⁄ bz = (x − μ) ⁄ σP(N=k) = λᵏe^(−λ) ⁄ k!Θ = −∂V/∂Tν = S·φ(d₁)·√Tmin wᵀΣw s.t. wᵀμ = μ*∫Σ∂∞λ
uantCraft Academy路线图学习路线
Ctrl K
AO
+1.2k 位学习者
登录加入 ↗
路线图学习路线
AO
+1.2k 位学习者
登录
  • English
  • Français
  • Español
  • العربية
  • Português
  • Deutsch
  • 日本語
  • 中文
Statistics 学习路线›模块 4 · 验证与过拟合›主题 4.2·~1小时高级

紧缩夏普比率与回测过拟合

路线进度模块 4/4 · 主题 2/3
4.2 紧缩夏普比率与回测过拟合
—实验得分— / 100总 XP—连续天数—

从数百个中找出的漂亮夏普比率

夏普比率是平均超额收益除以其标准差。用日度数据时按 252\sqrt{252}252​ 年化:日均值 0.05%、日波动率 1% 给出日度比率 0.05,年化比率为 0.05252≈0.790.05\sqrt{252}\approx0.790.05252​≈0.79。像任何估计一样,它也有标准误,对 TTT 年的数据约为 (1+SR2/2)/T\sqrt{(1+\mathrm{SR}^2/2)/T}(1+SR2/2)/T​:即使真实夏普为 0.8,用四年数据测量也只能精确到约 ±0.57\pm0.57±0.57,所以夏普分别为 0.8 和 0.3 的两个策略在统计上很难区分。

E[max⁡i≤NSR^i]≈σSR2ln⁡N,SR^defl=SR^best−E[max⁡]\mathbb{E}\big[\max_{i\le N}\widehat{\mathrm{SR}}_i\big]\approx\sigma_{\mathrm{SR}}\sqrt{2\ln N},\qquad \widehat{\mathrm{SR}}_{\mathrm{defl}}=\widehat{\mathrm{SR}}_{\mathrm{best}}-\mathbb{E}\big[\max\big]E[i≤Nmax​SRi​]≈σSR​2lnN​,SRdefl​=SRbest​−E[max](1)

现在尝试 NNN 个策略。即使每个策略的真实夏普都为零,估计值也会以 σSR\sigma_{\mathrm{SR}}σSR​ 的离散度散布在零附近,其中最好的那个为正,并随 NNN 增大,大约为 σSR2ln⁡N\sigma_{\mathrm{SR}}\sqrt{2\ln N}σSR​2lnN​。离散度为 0.5、尝试 100 次时,仅凭运气,最好的那个就预计在 0.52ln⁡100≈1.520.5\sqrt{2\ln100}\approx1.520.52ln100​≈1.52 左右。这就是回测过拟合。紧缩夏普比率(Bailey 与 López de Prado)会针对尝试次数、收益率的偏度和峰度以及样本长度来校正观察到的最佳夏普。在本主题的简化版本里:在相信这个数之前,先减去 NNN 个中最好者所预期的噪声。

夏普数字日均值 0.05%、日波动率 1%:SR=0.05252≈0.794\mathrm{SR}=0.05\sqrt{252}\approx0.794SR=0.05252​≈0.794。当 T=4T=4T=4 年、SR=0.8\mathrm{SR}=0.8SR=0.8 时,SE≈(1+0.32)/4≈0.574\mathrm{SE}\approx\sqrt{(1+0.32)/4}\approx0.574SE≈(1+0.32)/4​≈0.574。在噪声离散度为 0.50.50.5 的 100 个策略中,预期最好者为 0.52ln⁡100≈1.5170.5\sqrt{2\ln100}\approx1.5170.52ln100​≈1.517。若你最好的回测显示 SR=1.5\mathrm{SR}=1.5SR=1.5,而 NNN 个中最好者的预期噪声为 1.01.01.0,紧缩后的值约为 1.5−1.0=0.51.5-1.0=0.51.5−1.0=0.5:账面数字的一半可以由运气解释。
  • 夏普比率:平均超额收益除以波动率;日度数据用 252\sqrt{252}252​ 年化。
  • NNN 中取优:仅凭噪声,最好的夏普就接近 σSR2ln⁡N\sigma_{\mathrm{SR}}\sqrt{2\ln N}σSR​2lnN​。
  • 对策:记录每次尝试,保留最终留出集,偏好有理由的简单想法,对胜者做紧缩。
回测是假设,不是结果检验一个策略唯一干净的办法,是使用在选择过程中未起任何作用的数据:只看一次的最终留出集,或者实盘交易。其余的一切,无论交叉验证多么仔细,都已被挑选想法的人反复看过。要说明尝试了多少个想法并据此调整,对历史较短的日度股票数据上任何高于 2 的夏普都要保持怀疑。

实验:评分内容

  • 年化夏普比率15 分
  • 夏普比率的标准误15 分
  • 噪声产生的众多中的最好者15 分
  • 如何对待胜者15 分
  • 对过拟合的防御10 分
  • 紧缩夏普比率15 分
  • 为什么最佳回测可能是运气15 分
0/ 已答 7 题
任务
1数值作答15 分未作答

日超额收益率的均值为 0.05%,标准差为 1%。年化夏普比率(日度比率乘以 252 的平方根)是多少?保留三位小数。

SR=SR =SR=允许误差:± 0.005
2数值作答15 分未作答

某策略的年化夏普比率为 0.8,由 T = 4 年数据测得。用 SE = √((1 + SR^2/2)/T),保留三位小数。

SE=SE =SE=允许误差:± 0.005
3数值作答15 分未作答

你检验 N = 100 个没有真实能力的策略,夏普估计的噪声离散度为 0.5。用 E[max] = 0.5 * √(2 ln N),求预期的最佳夏普,保留三位小数。

E[max⁡]=\mathbb{E}[\max] =E[max]=允许误差:± 0.01
4选择15 分未作答

200 个回测策略中最好的那个,五年的年化夏普为 1.0。正确的反应是什么?

5选择10 分未作答

选出所有应对回测过拟合的好办法。

6数值作答15 分未作答

你最好的回测夏普比率为 1.5,在这么多次尝试下,纯噪声预期的最佳夏普为 1.0。紧缩夏普比率(观察值减期望值)是多少?

SRd=SR_d =SRd​=允许误差:± 0.001
7用文字解释15 分未作答

请用两句话解释:为什么众多被检验的策略中最好的夏普比率是被高估的。

数学模式键盘或 LaTeX 输入第 1/7 题 · Ctrl ⏎ 检查

登录后即可运行你的代码。

所有讲解均可免费阅读。创建账户或登录后,即可运行代码、运行测试并提交此实验。

  • 浏览器内 IDE 与 bash 终端,无需安装
  • 即时评分、XP 以及你在学习路线中的位置
创建账户登录
或
使用 GitHub 继续