参数优化与过拟合
参数优化是回测里最容易自欺的环节。因为它感觉上像是「改进」, 实际上多数时候是「拟合」。
问题的本质
任何一段历史数据里都存在大量偶然的模式。 而如果你有足够多的参数可以调,总能找到一组让曲线好看的。
A股 频道引过一项研究:Bajgrowicz & Scaillet (2012) 在道琼斯 1897-2011 上检验 7846 条技术规则, 用错误发现率控制数据窥探后,样本内的超额表现被交易成本完全抵消, 而且投资者事前无法选出未来表现最好的规则。
这个结论对期货同样适用。
三个自查方法
一是参数敏感性检验。找到收益最高的那组参数, 把其中一个加一或减一,看结果变化多少。
如果只动一个数字就让结果面目全非, 那你找到的不是规律,是这段数据的一个巧合。
二是看参数曲面。把不同参数组合的结果画成一张表, 好的参数应该处在一片连续的、都还不错的区域中间, 而不是一个孤立的尖峰。
三是数一数你试了多少组。 试得越多,最好那组是巧合的概率越高。这一点最常被忽略。
样本外检验
把数据分成两段:只用第一段调参,第二段一次性检验, 而且检验完不许回头改参数。
最后那句限制是关键。如果你看了样本外结果不满意, 回去调参再测一次,那样本外就变成样本内了。
这是实践中最常见的自欺方式,而且做的人往往意识不到自己在做什么。
期货上的额外注意
一是数据拼接方式要固定。调参时用一种、 验证时用另一种,结果没有可比性。
二是不同品种要分开验证。 一套参数在螺纹上有效,不代表在铜上有效。 而如果为每个品种单独调参,参数总数就爆炸了,过拟合风险剧增。
三是海龟法则的启发。它用 N(ATR)统一所有参数, 好处正是让同一套规则能套用到所有品种,而不需要逐个调参。
一个务实的建议
参数越少越好,而且尽量用有含义的参数。
「20 日突破」比「23 日突破」好,不是因为 20 更有效, 而是因为 20 是一个自然的选择(约一个月的交易日), 而 23 只可能来自优化。
同理,用 ATR 的倍数比用固定点数好, 因为前者有明确的经济含义(波动的倍数), 后者只是一个凑出来的数。
今天就做这一件事
把你现在用的参数上下各挪一格,重新看一遍结果。如果三组结果差别巨大,那说明你选的是一个巧合。