怎么把投资收益提高一倍,改一个参数就行,就能把量化策略收益提高一倍。比如这个策略,原来的收益是7.1倍。
我修改了一下时间参数,把5月份交易改成了7月份交易。策略收益一下子变成了13.75倍。
其实,从回测曲线上,把策略收益提高一倍很容易。别说一倍了,就是几倍甚至更多,也是很有可能的,只要不断优化参数就行。我们看到的收益率奇高的量化策略,大部分都是优化参数的结果,我们管这个叫做过度拟合。
那么,怎么分辨出哪些是过度拟合,哪些是合理优化。回测曲线可能差不多,哪个可以用于实战,哪个不行。
我举个例子,我之前文章中曾经提到过的一个策略:高分红高ROE策略。
这个策略每年只有一个时间会触发买点,那就是5月。为什么定在5月,因为这个策略要获取分红数据,要从年报中获取,而制度规定,年报必须在4月底前发布。所以最早在5月份,我们能够拿到这个数据。
那么如果我们对于5月这个时间参数进行优化,会怎么样呢。假定都买入5只股票。回测时间都是2007.12.31至2021.5.1,策略表现如下:
可以明显看出一个情况,时间参数为5-6月的回报率,远低于7-10月的回报率。差了将近一倍。
也就是说,我之用该一个小小的参数,从5改成7,回报率马上就能提升一倍。
有人说,2008年正值大幅下跌的熊市,晚点买当然亏得少,对应收益率自然也就上来了。不可否认,有这个因素。但是这个原因,无法解释,为什么6月和7月的收益为什么差这么多。
这就要回到策略本身上来。
我们之所以用最近两年的累计分红作为影响因子,是因为近两年能够大手笔分红,说明仅两年收益良好,处于比较好的发展状态中,后续大概率会延续这种状态。
5月1号,有了年报数据,但是年报数据中的分红信息,是在分红实施之后才有的。也就是说,如果是时间参数是5月,那我们实际上用的分红数据是大前年和前年的汇总数。而时间参数是 7,那个时候很多分红已经实施完成了,我们实际使用的数据是前年和去年的汇总数。
这么看来的话,就能够解释为什么7月的参数,比5月的参数好了,因为更能反映企业最近的发展情况。
对于这种参数的优化,我们认为是合理的,是值得和应该做的。
我有个观点,做量化,思考原理的能力,比codeing的能力重要的多。如果优化的参数,是基于很强的逻辑推理的,那么就是对于量化策略的优化。
反之,不以找到真正的影响因子为根本,而是各种拟合参数,做出好看的曲线。那就是假的,比垃圾还没有价值。