量化的基本原理是归纳法,即历史不会简单的重复,但总是惊人的相似,从而可推导出,未来也不会简单的重复历史,只是和它相似罢了  那么我们可以得到一个结论,你的策略如果象一面镜子一样照见历史,那未来收益预期决不可能和历史一样。也就是说你的策略描述越清晰,条件越苛刻,越会产生孤岛效应,未来失效的可能性越大。

 

下面我们从三个维度来说明一下什么样的策略会出现过拟合现象

1, 模型参数设定维度

模型因子设定有两个地方容易产生过拟合现象

1)  因子数量,这里要说明一下,我不反对多因子复合模型,在逻辑成立的情况下多因子是没有问题的,但这里有一个前提即模型的持股数量,如果你的模型持股数量较少如5股以下那么等于你是在用各种因子限制条件,来对历史进行精确的描述。这里有一个简单的方法来测试你的描述是否成立,如一个3股策略,经过10个因子的排序后年化可达到200+,这时你把持股数量变为10—20股再去回测,结果年化一定会降低,然后你试着减少策略中的因子,这时你可能会发现 通过去掉某个因子,年化非但没有降低有时反而提升,这就足以说明被去掉的因子并不适用于大数据的检测,有可能是过拟合现象。

正确的策略模型建立方法是,上来先用大的持股量进行测试。然后在条件不变的情况下逐渐缩小持股量,最终达到你想要的理想持股数。

这里为什么说和持股数量有关呢,如果你上来就使用持20---50股做测试,因为数据量足够大从而可以去反证你策略的逻辑的正确性是可信的。

2)权重调节


    可能很多朋友都是各种调节权重最后把年化调高的,这里说明一下权重调节是很有必要的但不能太过分了,什么是太过分了呢说明一下,如果你调到最后发现不管怎么调年化都上不去了,而且只要稍微动一个参数,年化就会大幅下降,这时候恭喜你了,你正在精确的描述历史(孤岛效应),从而说明你正在过拟合。

3)  交易模型II中的一些参数也要注意,这里只举一个例


         如果你在调节参数时发现 卖出条件排名这个值  调到10和30的年化是一样的,那么很多人会直接选择30因为这样可以有效的降低换手率,但此时请你一定再多测试几个值如30左右的几个数,可能会发现29,28,31,32,都不行年化会差很多,好了这个不用说又一个孤岛产生了,这时还是果断放弃的好。很多参数都是如此我们尽量不要让其产生孤岛性应即可。

2, 持股数量维度

    这个前面其实已做出了一些说明, 5股以下由其是1股策略本身就是个孤岛,我们使用中需加谨慎,这里不是说1—2股策略不能用,其实也是完全可用的,前提到可以用可信的方法得到的1—2股策略。什么是可信的方法呢,其实前面也提到过很简单,先来做一个50—20股的策略,觉得满意后再逐渐减少持股数量在递减的过程中,年化收益会逐步上升,这样得来的1—2股策略是完全可信的,因为你的策略逻辑已在50股时被证明过了。

3, 时间维度

    这里涉及到调仓周期拟合及回测时间拟合,还是举例说明一下,如下图一个普通3股策略如果只是测试2016年你会得到调仓周期为3天是最好的可以增大收益,但把时间放长这个结果就是错误的了,所以在时间维度上一样存在着拟合现象。

回测2016年调仓周期1




回测2016年调仓周期3



回测20072016

1天调仓




20072016

3天调仓


    这里给出一个简单的方法在时间维度上检测你的模型是否有过拟合现象,我们现在假设自已回到201113日,我们只有2007年至201113日之前的数据,现在开始做策略做完后分别回测2007----201113日,和201113今的数据,看一下你的策略是否有效,如果年化收益差别非常巨大,已大于大部分单因子在两个时间维度变化的平均值,那基本可以证明你的策略有过拟合问题,或者说它已经不太适用于当前市场状态。

下面给出这两个时间维度单因子变化率贡大家参考。



  从这个表中可以看到最后的总市值+流通市值因子的变化率并不高,间接证明了其有策略的有效性。

      这个表只是一个简单的测试只做横向对比,你自已也可以做一个,比如时间完全可以调为2007/1/4-----2011/12/31及2011/12/31------今。这样做的话变化率会小一些,但不管怎么做时间都要够长,并且两个时间维度同时包含一轮牛熊就可以了。



关于择时的一些想法
    最后说一下独立于这些系统之外的市场择时系统的拟合问题,其实择时本身也存在着拟合的问题。很多新手都会碰到同一个问题即增加了择时降低了回撤的同时也降低了收益,那么有没有好的择时可以提高收益的同时降低回撤呢,答案是有的,下面我把原理说,但这已经开始拟合了。

原理很简单,由于果仁的大盘择时,如果简单设置的话进出条件是一至的,那么你又持有的是高Alpha的小市值策略,下面我们看一下图例



123图如果你在A点按择时卖出B点再买回全是亏的,1—3图分别带表了上升,震荡,缓跌走势,只有图4深度下跌时择时才可发挥作用。

到此为止我们明白了为什么大部分的择时只能降低回撤不能增加收益了吧。好了如何让择时增加收益呢,很简单你只要尽量在以上三种状态中保持满仓即可,果仁中的实现就是用多组择时进行相互验证打破原来的进出平衡,需要把条件选为


    这里只说一个简单的利用MA的择时例子,你可以做两组MA择时,一组果仁默认的MA 5,60。一组自定的MA 3,30

这时你会发现,两组择时远比一组收益大的多,因为我们要同时满足这两个条件时大盘才转熊,但只要当一组条件被触发大盘就转牛,以此类推大家可作出三组或四组择时,可以是不同指数的,以此来相互验证真正的大跌是否到来,及快速进入牛市反弹。

不择时效果如下:



择时效果如下:



上图已明显看出择时所带来的收益变化了。

    好了,现在我们回想整个过程其实这一切也是在拟合,其基础是建立在小市值策略高Alpha之上的,如果哪天Alpha开始逐渐降低,回血功能减弱直至消失,那以上择时策略就会适得其反,下跌卖在半山腰,弱反就介入,然后接着跌,呵呵多可怕啊。

 

    这里说到小市值因子失效的问题,通过年度单因子测试发现市值因子暂时没有失效趋势,也没有发现价投因子慢慢走强的趋势,但随着中国式注册制的实现及本身小票的高估这种趋势有可能会显现,好了预测市场是神棍们的事,在这里就不胡说了。

 

    但我们应该适当降低策略的收益预期才好,一个简单的方法评测你的收益预期,这里不需要公式计算,只需要调整年份回测,一般我们的年化都指的是2007至今的,那么你重新调到2010至今测试一下,是不是年化从200+跌到100+了,好了这100+还是因为15年牛市所赐。 把牛市和今年去掉再测试会发现年化只有70+了。好了然后我们抛去滑点拟合等一系列的问题后,一个200+的策略基本也就剩下50+了。 哈哈哈不要悲观,是否真能实现100+200+这需要一轮牛熊才能验证,但适当的降低预期是一件有益身心的事。

 

2017新的开始,祝果仁越办越好,祝果仁的朋友们在新的一年里多多收割韭菜。