回测与验证:怎么知道自己不是在自欺
回测最容易骗人的地方,不是数据不准,而是「你会不自觉地调到好看为止」。这一篇讲三个能让结论站得住的方法,也讲它们各自的局限。

第一步:随机基准
在同样的品种、同样的时间段、同样的持仓时长下,用随机入场跑一遍。如果随机入场的期望收益接近 0,而你的策略明显为正,那至少说明优势不是「市场在涨」。
这一步经常被跳过,但它是所有验证里最便宜、最有信息量的一步。实测里随机入场的期望约在 −0.003 到 +0.033 R 之间,基本可以视为零。
如果你的策略也在零附近,那就不要浪费时间优化参数了 —— 先怀疑逻辑本身。
- 随机入场期望 ≈ 0 是基准线
- 策略必须显著高于基准
- 基准也高 → 说明吃的是市场方向,不是模型
第二步:消融测试
逐个去掉策略里的条件,看收益怎么变。如果去掉某个条件后收益不变甚至更好,那这个条件只是噪音过滤器,不是优势来源。
这一步的结论经常反直觉。实测中,完整的 ICT 2022 模型在每一个测试过的周期上都不是最优,而 FVG 才是优势的主要来源(含 FVG 的组合平均 R 在 0.32–0.60,纯扫除只有 −0.01–0.18)。
消融的价值在于:它把「模型有多完整」这个模糊问题,变成「哪几个条件真的有用」这个具体问题。
第三步:样本外
把数据切成两段:前 70% 用来定参数,后 30% 完全不碰,只用来看结果。如果后 30% 的表现和前 70% 差很多,说明参数被过度拟合了。
更严格的做法是跨品种验证:在黄金上调好的参数,拿到白银或欧元上跑一遍。如果完全不成立,说明参数是对某段特定行情的记忆,不是对市场结构的理解。
还有一种验证叫「参数高原」:好参数应该是一片区域,而不是一个孤立的尖峰。如果只有某个极精确的参数值表现好,那基本可以断定是拟合。
- 前 70% 定参,后 30% 验证
- 跨品种验证参数的普适性
- 要找参数高原,不是参数尖峰
必须承认的局限
回测无法模拟滑点、点差走阔、流动性不足。黄金在新闻时段的真实成交价,可能和回测里「止损触发价」相差很远。
回测也无法反映「执行延迟」。真实系统从信号到下单有几十到几百毫秒,在快速行情里,这个延迟足以让入场价差出一截。
最重要的一条:回测的样本量永远不够。20 年数据看起来很多,但如果策略一年只交易 30 次,那总共只有 600 个样本 —— 统计上仍然很薄。
- 滑点与点差走阔无法回测
- 执行延迟无法回测
- 样本量永远偏少,结论要留余量
本篇要点
- 先用随机基准排除市场方向
- 消融找出真正有用的条件
- 样本外与跨品种验证拟合
- 回测有天花板,别把结论当保证