本项目(FengInvest)52 条投资论断回测的方法准则。 背景:抽查 #1、#4、#33 三个已测论断,发现已有结论存在系统性方法缺陷,README 标注不可直接采信。 本文件定义"一条论断该如何被正确回测"的标准,所有新论断准入与此前结论复核均以此为准。 关联:literature-map.md(权威文献引用表)。
0. 为什么要有这份文档
已测的 36 条结论里,抽检发现三类系统性问题,说明"跑出数字就标 ✅"不可靠:
- 判据错位:论断说的是"收益",算法只比"胜率"(#1),导致结论方向可能与论断相悖。
- 结论误标:代码判定结果与 README 标注冲突(#4:
claim_supported=false却标"✅")。 - 数据口径缺陷:收益未复权、基准口径与样本池矛盾、样本过拟合、无交易成本/生存偏差处理(#33)。
因此必须建立统一标准:一条论断只有当其算法正确测了它声称测的那个量、且数据口径无已知缺陷时,结论才可标注 ✅/🟡/❌。
1. 铁律一:论断指标 = 判据指标
论断里声称的是哪个量,算法就必须以那个量作为支持/拒绝的唯一判据。
- 论断说"收益优于" → 判据必须是收益(均值/中位数/年化),不能偷换成胜率。
- 论断说"胜率 > 60%" → 判据才是胜率。
- 论断说"回撤下降 X%" → 判据必须是回撤。
- 禁止:用 A 指标跑数据,却用 B 指标判定支持与否。
落地检查:每条论断在 audit.md 开头一句写明 论断指标:___ | 实际判据:___,若两处不一致即为判据错位,结论降级。
2. 铁律二:效果量要超过"噪音地板"
市场日度波动大,样本极多(百万级)时,极小差也会"显著"。必须区分统计显著与经济显著。
要求三条同时满足才标 ✅:
- 方向:判据指标方向符合论断。
- 幅度:差异 > 该量在历史上的合理噪音(例如年化超额 ≥ 1~2%/年,胜率差 ≥ 2~3 个百分点),或效应量 Cohen's d ≥ 0.2(小效应下限)。
- 显著性检验:给出 p 值 或 置信区间(抽样/自助法),
p < 0.05才可宣称"显著"。当前多数已测论断完全没有显著性检验——复核时一律补上,补不了就标"未检验显著性"。
反例:#1 的 US d20,胜率差仅 +0.12%,却判"支持"——幅度远低于噪音地板,判据又是错位的。
3. 铁律三:数据口径无已知缺陷
回测用到的价格/财务数据必须满足:
| 项目 | 要求 |
|---|---|
| 复权 | 收益用前复权/后复权价格,不能用会掺入除权假跳空的原始 close;发现单日涨跌 > 某个阈值(如 A 股 ±21%)应视为未复权的红旗。 |
| 基准口径 | 策略比较基准必须与样本池同源同口径,不能用"286 只池"去和"全市场"比。 |
| 生存偏差 | 股票池须含已退市股票(如本库 CSMAR stkcd_map 含退市股),否则高估业绩。 |
| 交易成本 | 明确声明是否计入佣金/印花税/滑点;组合换手高的策略必须计入,否则夸大超额。 |
| 停牌/流动性 | 说明如何处理停牌、涨跌停买不进、低流动性。 |
每种已知缺陷在 audit.md 中列出「缺陷 → 对结论的影响」,无缺陷写"已核验无此缺陷"。
4. 铁律四:引用权威方法,而非自创
原则:优先采用已有学术论文/金融工程标准方法作为算法的"标尺",而不是自己发明一套回测套路。
- 每条论断在立项时,须在
literature-map.md里绑定 1~2 个权威方法来源(作者/年份/方法名),并说明"标准方法应如何测、本实现与其差异"。 - 自创算法仅在"确无学术先例"时允许,且须在文档里写明"无文献先例,自拟方法,结果可证伪性弱"。
- 原因:市场口诀数百上千种,逐一自研算法易过度拟合且不可信;学术文献已沉淀了大量被验证过的方法(动量、均值回归、价值/质量因子、择时日线规则等),直接采用更可靠、可复现、可引证。
5. 准入规则(新论断立项 checklist)
一条新论断要进入"已测"状态,必须全部满足,缺一不可:
- ☐ 论断是可证伪陈述(有零假设 H₀)
- ☐ README 写清「论断指标」
- ☐ 算法判据 = 论断指标(铁律一)
- ☐ 有效果量阈值 + 显著性检验(铁律二)
- ☐ 数据口径含复权/基准/生存偏差/交易成本声明(铁律三)
- ☐ 绑定权威文献方法(铁律四),写入 literature-map
- ☐ 人工复核签名:
audit.md已通过
未满足以上任何一条的,状态只能标 ⏳ / 🟡,不能标 ✅。
6. 复核流程(对已测结论)
对每条已 "✅/🟡/❌" 结论:
- 写「论断指标 vs 实际判据」比对(铁律一)
- 核数据口径(铁律三):复权、基准、生存偏差、交易成本
- 查显著性:有则引用 p 值,无则明确标"未检验"
- 找权威文献对照(铁律四)
- 给出复核后建议结论 ✅/🟡/❌,写入该条目录
audit.md
复核进度在 110-strategy-verification/000-README.md 的「复核进度」表登记。
文档落点
| 内容 | 位置 |
|---|---|
| 方法总纲(本文) | knowledge/methodology/backtest-methodology.md |
| 权威文献引用表 | knowledge/methodology/literature-map.md |
| 每条论断复核批注 | 内部数据 |
| 复核进度总表 | 内部数据 |