仿真模块库005 · 过拟合审判庭
005 · 过拟合审判庭
CPCV · PBO · DSR · SPA · 多重检验
这个模块做什么
它不生成新的市场故事,而是审判整个研究过程:如果换一组时间分割,研究者是否仍会选择同一个策略和参数;被选中的高 Sharpe 是否只是大量试验中的幸运最大值;所谓优势是否显著优于基线。
当前状态 · 最小审判已实现
IMPLEMENTED_DEVELOPMENT · 已完成 12 个连续时间组、66 个双测试组 CPCV 切分、PBO、PSR 和近似 DSR。SPA、Reality Check 与完整历史试验账本仍未实现,因此不能称为完整审判庭。
四层裁判
| 层 | 回答的问题 |
|---|---|
| Purge + Embargo | 训练样本是否通过重叠标签泄漏到测试期 |
| CPCV | 多条样本外路径上,选择结果是否稳定 |
| PBO + DSR | 最佳参数是否来自数据挖掘和多重试验幸运 |
| SPA / Reality Check | 候选是否显著优于共同基线,而非挑中噪声 |
CPCV(N, k) → C(N, k) splits, φ = (k / N) C(N, k)
PBO = P(Selected IS winner ranks below median OOS)
DSR = P(SR* exceeds selection-adjusted benchmark)
第一版协议
| 参数 | 首轮设置 |
|---|---|
| 时间分组 | N = 12 个连续组 |
| 测试组 | k = 2,形成 66 个组合切分与 11 条样本外路径 |
| Purge | 至少覆盖最大标签/持仓期限 |
| Embargo | 首轮 1%,并做期限敏感性检查 |
| 试验账本 | 所有策略、参数和失败运行,不得只提交赢家 |
| 基线 | 现金、买入持有、冻结父版本和预注册经典策略 |
| 指标 | PBO、DSR、PSR、SPA、最小记录长度和参数选择频率 |
第一份裁决
使用实验 003 的同一份冻结 BTCUSDT 4h 文件,对 180 / 540 / 1080 / 2160 根四个观察期进行 66 次训练—测试选择。预先声明门槛为 PBO ≤ 20% 且 DSR ≥ 95%。
裁决 · OVERFIT_RISK
DSR 为 98.19%,但 PBO 达到 56.06%。全样本最优的 180 根参数经常在训练期获胜,却在超过一半的样本外切分中跌到候选中位数以下,因此不得晋级。
必须保存
- 每次尝试的完整参数、代码和输入资产指纹;
- 每个组合切分的训练/测试边界、purge 与 embargo 记录;
- 11 条样本外净值与参数选择轨迹;
- 原始 Sharpe、偏度、峰度、试验有效数量和 DSR;
- PBO logits、性能衰减、SPA p 值与模型置信集合;
- 删除最大赢家、提高成本和缩短样本后的敏感性。
裁决语言
结果只能是 INSUFFICIENT_EVIDENCE、OVERFIT_RISK、STATISTICALLY_STABLE_CANDIDATE。第三种状态仍不代表盈利保证,也不授予 PAPER、TESTNET 或 LIVE 权限。没有完整试验账本时直接返回证据不足,不能估算一个好看的 DSR。
学术与实现来源
- Bailey et al.:The Probability of Backtest Overfitting
- Bailey & López de Prado:The Deflated Sharpe Ratio
- Politis & Romano:The Stationary Bootstrap
- 公开实现参考:eslazarev/purged-cross-validation · bashtage/arch
它衡量的是研究程序
低 PBO 或高 DSR 只表示没有发现明显的选择偏差,不证明策略具有经济优势。统计裁判必须与路径分布、成交仿真和真实历史 PAPER 证据共同使用。