编写量化策略需要注意的几个细节问题

2020/09/28 13:27

编写量化策略需要注意的几个细节问题

量化平台的出现,省去了quanter们自己打数据结构的时间和精力,可以集中在策略的想法构建上。但量化平台虽然好,还是会有一些功能会受到限制,因此,有时候还是需要自己清洗数据和编写回测程序。这里总结一下在量化策略编写中需要注意的数据处理问题,供参考:

1.数据复权。在量化策略的编写中,是需要对原始的开盘和收盘价进行复权的,以处理因为分红、配股等因素造成的股价变动。很多量化平台都已经对开盘价和收盘价进行了复权处理,可以直接用,但自己进行数据清洗的时候,尤其是在计算日收益率的时候,一定要用复权价。

2.剔除涨停股票。量化策略在实盘跑的时候,可能会遇到各种各样的实际操作问题,比如反转策略,基本逻辑很简单,就是选好那些排序期累计收益率排名靠前的股票并买进持有,然而有可能面临的问题是,在建仓那天,已经选好的那些股票有可能会开盘涨停,根本没办法买进。所以,在自己编写量化策略回测的时候,要将涨停股票在买进的时候剔除,这样回测的结果才更加接近实际。

3.剔除停牌股票。在因子选股过程中,一般会有一个观测期(或者称为排序期),根据这个观测期内因子表现,来选择表现较好的股票来建仓。然而,可能遇到的问题是,在观测期内,有些股票会出现停牌,有的还会停牌好多天。在自己写策略的时候,要注意,在观测期内是需要把那些停牌时间较长的股票剔除掉的,因为停牌往往意味着会有重大信息发布,可能会对当前的选股因子产生较大影响。剔除方法也比较简单,例如观测期为90天,那么如果一只股票的停牌时间超过了90天的五分之一,即18天,那么就可以剔除它。

4.关于平仓平不掉的问题。编写好的量化策略,在实盘交易的时候有可能遇到这么一种情况,就是在想卖的时候卖不掉(比如跌停),还是例如反转策略,在一个持有期结束,准备进入下一个持有期的时候,是需要把现有仓位卖掉再换新的仓位,然而,如果遇到跌停,那么根本就平不掉。如果量化策略回测中没有考虑这种情况,就可能会跟实际情况有差异。应对策略也很简单,可以继续持有现在平不掉的股票到可以平掉的那一天再平掉,这就需要把回测代码再进一步细化了。幸运的是,这种问题属于比较细节的问题,平不掉的情况遇到的也不会太多,所以对回测结果也不会产生很大影响(不像交易费用那样影响巨大),在因子测试等简单回测中,不考虑这个问题应该没什么大碍。但如果真正实盘回测,我觉得还是有必要把这个问题用代码描述出来的,这样才能更接近实际交易。

免费直播

    精选课程 更多

    注册电脑版

    版权所有 2003-2020 广州环球青藤科技发展有限公司