怎么判断一次回测结果可不可信
拿到一份回测报告,先别急着看收益曲线。曲线好看不代表结论可信。下面几个检查点,按顺序过一遍,基本能筛掉大部分不靠谱的结果。
先看数据划分是否干净
最关键的一步是确认:用来调参的数据,和用来出结果的数据,是不是同一段。
- 如果所有参数都是在一段历史上试出来的,最后又用这段历史展示表现,那这个结果没有参考价值。
- 正确做法是留出一段从未参与任何决策的数据做样本外验证。样本外数据一旦被看过并据此改过参数,它就变成了样本内数据,需要重新划分。
- 判断标准很简单:问一句「这个参数是怎么定下来的」。如果答案是「试了几组,这组最好」,那这段数据就已经被污染了。
还有一种隐蔽的污染:先看整体数据找规律,再回头划定回测区间。区间的起点和终点本身就包含了信息,这也会让结果偏乐观。
成本有没有真的算进去
很多回测的差距,不在策略逻辑,而在成本假设。
- 手续费、滑点、冲击成本,至少要有明确的设置,而不是默认 0。
- 换手率高的策略对成本极其敏感。一个每次调仓都换掉大半持仓的策略,成本稍微调高一点,结果可能就从正变负。
- 可以做一个简单测试:把成本假设提高 50%,看结果衰减多少。如果衰减剧烈,说明这个结果高度依赖一个你无法控制的假设。
另外注意成交假设。用收盘价成交、用次日开盘价成交、还是用均价成交,对结果影响很大。报告里没写清楚成交规则的,先打一个问号。
参数是不是被过度拟合了
参数越多、调得越细,越容易拟合噪声。
- 看参数邻域:把最优参数稍微挪动一点,比如周期从 20 改成 18 或 22,结果是否还稳定。如果只有 20 这一组好,前后都崩,基本可以判定是拟合。
- 看参数数量:一个策略有七八个可调参数,且每个都调到「刚好」。这种结果在样本外大概率失效。
- 看逻辑约束:参数应该有业务或逻辑上的理由,而不是纯粹试出来的数字。比如均线周期选 20,是因为一个月约 20 个交易日,这比「试出来 20 最好」可靠得多。
一个实用的做法是:把参数固定在某个合理值,不再优化,直接看样本外表现。放弃一点样本内的好看,换来判断的可靠性。
结果本身稳不稳定
单看一条净值曲线不够,要看分布。
- 分年度或分阶段看表现。如果收益全部集中在某一小段时间,其余时间长期横盘或回撤,说明结果由少数几笔交易决定。
- 看交易笔数。样本太少时,任何统计指标都不稳定。几十笔交易的胜率和盈亏比,几乎说明不了问题。
- 看最大回撤发生的位置和持续时间。如果回撤期长到超出你的承受范围,即使最终收益为正,这个策略在实际执行中也很可能被中途放弃。
可以做一个扰动测试:随机剔除 10% 的交易,或者把交易顺序打乱,看整体结论是否还成立。结论对个别交易高度敏感,就不是一个稳健的结果。
逻辑能不能讲清楚
最后一步,回归常识。
- 这个策略赚的是什么钱?是承担了某种风险,利用了某种结构性行为偏差,还是仅仅在拟合历史噪声?
- 如果讲不出一个合理的机制,只能说「数据上就是这样」,那它更可能是一个巧合。
- 反过来,逻辑清晰但回测一般的结果,往往比逻辑模糊但回测漂亮的结果更值得继续研究。
把这几步连起来用:先确认数据干净,再确认成本真实,然后检查参数、稳定性和逻辑。任何一步过不了,后面的数字都不必细看。养成这个顺序,能省下大量在不可信结果上继续投入的时间。
相关文章
数据分析软件怎么选?看这 5 个标准
选数据分析软件别只看功能列表。数据在哪运行、模型能不能解释、断网能不能用、更新是否持续、结果能不能导出,这 5 点决定了它能不能长期用下去。
不联网也能用:本地化数据分析工具适合哪些场景
数据不能外传、网络环境受限、需要频繁快速出结果、对数据留存有顾虑——这四类场景最适合本地化数据分析工具。文末还有一个简单的验证方法,帮你判断工具是不是真的本地运行。
数据分析软件安装报错的 5 个常见原因和解决办法
双击没反应、提示缺少 dll、功能异常、配置保存失败——安装软件时的报错其实就那几类。按这 5 条自查一遍,绝大多数问题都能自己解决。