回测完整性实验室
零售平台向您展示回测的Sharpe值或净利润,仅此而已。机构从不相信原始回测 — 它们会问结果是否能抵御选择偏差的校正和尝试的配置数量。回测完整性实验室将此检查引入cMind。这是确定性的数学(无AI,无外部调用),因此判决是可重复的,每个数字都可以解释。
在cBots → Integrity(/quant/integrity)打开它。
计算的内容
给定收益序列(或权益/余额曲线)以及您为了得到该序列而尝试的参数集数量,分析器报告:
- Sharpe比率 — 每个周期和年化(时间平方根)。
- 概率Sharpe比率(PSR) — 真实Sharpe击败基准的置信度,考虑了交易记录长度、偏度和峰度(Bailey & López de Prado,2012)。较短或厚尾的记录会降低它。
- 偏差Sharpe比率(DSR) — 针对偏差基准测量的PSR:在原假设下,从N次随机试验的最佳结果中获得的Sharpe(错误策略定理)。您尝试的配置越多,标准越高 — 这就是捕捉过度拟合的方法。
- t统计量平均收益。遵循Harvey、Liu & Zhu的观点,真正的优势应该达到t ≥ 3.0,而不是教科书上的2.0。
- 收益的偏度/峰度,可输入PSR/DSR校正。
判决
| 判决 | 含义 | 规则 |
|---|---|---|
| 稳健 | 优势经得起您运行的试验。 | DSR ≥ 95% 且 PSR ≥ 95% 且 |t| ≥ 3.0 |
| 脆弱 | 统计上存活但不够令人信服 — 仅凭此不要增加仓位。 | 两者之间 |
| 过度拟合 | 最可能是选择偏差的产物,而不是真正的优势。 | DSR < 90% |
每个结果都带有纯英文的基本原理,所以"为什么"永远不会被隐藏。
回测过度拟合的概率(跨试验)
输入试验计数不错;输入您尝试的每个配置的实际样本外序列更好。将它们粘贴到可选的试验网格(每行一个序列),cMind运行组合对称交叉验证(Bailey、Borwein、López de Prado & Zhu,2015):它将观察值分成组,对于选择一半作为样本内的每种方式,它选择样本内最佳配置并检查该赢家是否在样本外的下半部分着陆。回测过度拟合的概率(PBO)是赢家未能泛化的分割比例。PBO接近0意味着最佳配置确实是最佳的;PBO为0.5或更高意味着您的选择过程在选择噪音 — 无论赢家看起来多好,判决都变成过度拟合。
POST /api/quant/pbo
{ "trials": [[...], [...], ...] }
当原生cTrader Console优化器推出时,cMind将在此自动提供其完整的试验表面。
试验 — 重要的数字
Trials是您在选择此配置前测试的参数集数量。测试一个策略和测试一万个并保留最佳结果是完全不同的事情:第二个通过机会制造高样本内Sharpe。输入诚实的试验计数是核心目标 — 它提高了偏差,可以将"伟大"的回测转移到过度拟合。当原生cTrader Console优化器推出时,cMind自动向其提供扫描的实际网格大小。
输入
- 周期性收益 — 每个周期一个数字(例如
0.01= +1%)。至少两个。该字段在您输入时进行验证:它计算有效数字,标记任何非数字的标记,仅在至少存在两个干净值后才启用分析(一旦有两个四个或以上数字的序列准备好,试验网格就启用评估过度拟合)。 - 权益/余额曲线 — cMind为您推导连续的简单收益。
- 直接来自回测运行 — 无复制粘贴。每个完成的回测在回测列表行和其实例详细视图上公开一个盾牌检查回测完整性图标;一键运行实验室对该运行的存储权益曲线进行分析,并在对话框中显示判决。该图标在回测完成并生成报告之前被禁用,因此它永远不会是一个死的控件。在幕后,这是
POST /api/quant/integrity/backtest/{instanceId},它读取存储的报告的权益曲线。
API
POST /api/quant/integrity
{ "returns": [0.006, 0.004, 0.006, ...], "trials": 250 }
返回判决、所有指标和基本原理。POST /api/quant/integrity/backtest/{id}对您拥有的完成的回测运行相同的分析。
为什么它是可靠的
这些统计数据是域核心中的纯函数(Core.Quant),零基础设施依赖 — 它们不能被网络故障击倒,并且它们由针对已发布公式的金向量单元测试固定。正常的CDF/逆是闭式近似(Abramowitz-Stegun / Acklam),因此相同的输入总是产生相同的判决。