|
打开一份MT5或MT4的回测报告,你看到的是一张完美上扬的净值曲线,胜率超过60%,夏普比率漂亮得让人心动。任何一个稍有经验的人都会产生一个念头:这东西实盘肯定能赚钱吧?
但事实是,回测报告对“判断EA能否赚钱”这件事,几乎没有提供任何有效信息。
原因很简单:所有EA都可以在回测中被“过拟合”。
一、过拟合是回测的天然属性
过拟合的意思很直白:策略的每一个参数、每一条规则,都是针对历史数据“优化”出来的。而历史数据是有限的,市场却会持续演化出一个无限的新格局。
一个被过拟合的策略,在回测中的表现通常非常漂亮——因为编写者已经把历史行情的每一个坑都“填平”了。它知道哪一天该进、哪一天该出,因为在编写过程中,它已经被反复调整到“完美贴合”那一段特定数据。
而当它面对真实的市场时,遇到的是全新的价格序列、全新的波动节奏、全新的情绪模式,那些在历史数据上被“训练”出来的规则就不再成立。
所以,任何一份回测报告都可以被视为一份“过去解释”的完美答卷,却无法回答“未来如何”的问题。
二、外人看回测报告,是在看一个已经被精心打磨过的故事
回测报告里包含的指标——胜率、盈亏比、最大回撤、夏普比率——这些数字只能证明一件事:编写者已经让策略充分适应了那段历史。
对于一个没有亲身参与开发过程的外部观察者来说,他看不到的是:
这些问题,没有一份PDF报告能给出诚实的答案。
因为一个过拟合的策略,在报告里呈现的形态和真实有效的策略几乎一模一样。外行无法从几行数字中分辨出“真正的发现”和“对过去的过度解释”之间的区别。
三、回测报告对开发者的真正价值:自我验证,而非外部说服
回测对于策略开发者来说,确实是一个极其有用的工具——但它扮演的角色是内部调试工具,而不是外部验证凭证。
一个好的开发者是这样使用回测的:
确认策略的逻辑在历史上是否“没有明显错误”; 检查特定规则是否按预期工作; 发现代码中可能存在的漏洞; 评估参数的大致合理范围。
但所有这些用途,都建立在同一个前提之上:开发者本身就是策略的设计者,他知道回测中的每一个漂亮数字是怎么来的。
当开发者看到一份回测报告时,他知道背后的逻辑是什么、数据是怎么处理的、哪些地方的曲线上扬是交易逻辑的自然结果,哪些只是因为“恰好赶上了一段完美的行情”。
而外行面对同一份报告时,只能看到一个整体的结果,无法判断它的真实成色。
四、为什么外人无法通过回测报告评估过拟合?
因为过拟合是一个“设计过程”的产物,而不是“输出结果”的产物。
回测报告只展示了最终的状态,它不会展示开发过程中经历了多少次参数的试探、多少次细微的规则调整——每一次调整都可能让策略更贴合历史,却也更背离未来。
判断一个策略是否过拟合,需要知道的问题包括:
这些答案,藏在开发者的设计思考中,而不在回测报告的页面上。
五、总结:回测报告是给开发者自己看的工作底稿
本质上,回测报告就像一份实验室里的实验记录。它的价值在于让实验者自己知道“之前的做法是对是错”,从而迭代出更好的版本。
但当它被呈现给外部观察者时,它只是一张过去数据的回放——它无法证明策略在未来也能奏效,也无法证明它没有被过度优化。
真正能证明策略价值的,只有实盘交易中一段足够长的时间。 在那之前,任何回测报告都可以被看作是一个待验证的假设,而不是一个成熟的结论。
对于开发者而言,回测是工具,不是答案。
对于外行而言,回测报告是愿景陈述,不是证据。
|