策略回测效果好就上实盘?

经历了千辛万苦,从量化策略实现、回测再到优化,一个回测效果优异的策略终于诞生了,望着这条笔直坚挺、稳稳向上的净值曲线,豪车游艇、会所美酒的场景突然浮现在眼前,仿佛这一切只要策略实盘了就唾手可得似的。且慢!先醒醒!!先检查一下策略能不能上模拟盘!!!
策略回测效果好就上实盘?-CycleGen
01 上模拟盘的时机
即使量化策略回测效果表现优异,也不是马上就得上模拟盘的,需要首先排除策略自身的逻辑问题。因为模拟盘跟踪是需要耗费时间的(特别是对于交易频率不高的策略),若跟踪了几天才发现一个显而易见、可提前排除的问题,那就显然不值当了,一寸光阴一寸金嘛。根据经验,先列举一个常见的问题清单,逐一排除后,方可安心上模拟盘,用航天领域的术语讲就是:不让卫星带着问题上天。

以下是自用的股票策略中的问题清单,小伙伴可以根据自己的实际应用领域增添。

(1)回测阶段的交易次数足够吗?常用的经验值是最低交易次数也得100次以上吧,不然只要拟合捕捉了几次大趋势策略效果就不会差。(2)涨停的股票也能买入吗?跌停的股票也能卖出吗?

回测中可以随意买卖,实际中就不一定了。

(3)停牌的股票也能交易吗?

理由同上。

(4)单笔订单的成交量超过股票当日成交量的5%或10%以上吗?

如果单笔订单成交量过大,在实际当中可能无法全部成交,若全部成交可能会造成一定的市场冲击,带来较大的滑点和交易成本。

(5)回测中采用收盘价成交吗?对于低频策略(比如按月换仓),影响可能不会很明显,但是对于中高频策略的影响就无法忽视了,建议回测时用下一根Bar的开盘价成交。(6)存在偷价情况吗?

即在回测当中,策略出信号时,以一种不太可能、对自己有利的价格成交,比如说日内出的信号,以开盘价成交。回测当中可实现,但现实会给你响亮的耳光。

(7)存在信号闪烁吗?

存在着回测和现实成交信号不对应的情况,比如说双均线策略,最新的均线值是根据实时行情不断的变化,在最高价时可能出现金叉买入信号,但是收盘时价格回落,均线金叉消失,这就出现了回测当中不出交易信号,模拟盘中出现交易信号的情况。

这些问题是可以通过对策略代码的检查容易发现的,而像过度优化、未来函数那些问题可能比较隐蔽,需要结合实际行情才能发现。

策略回测效果好就上实盘?-CycleGen
02 上模拟盘的目的
根据问题清单排除了策略自身的逻辑问题后,就可以上模拟盘检验策略了,除了跟踪查看策略的收益风险是否跟回测一致外,还要着重检查策略在实时行情驱动下能否正常运行。(1)在实时行情下,策略能否发出正常的交易信号?要注意的是,在回测当中,使用的是清洗好的数据,而在模拟盘的实时行情中,使用的是实时行情数据。

不同的量化交易平台,K线的生成规则不一致,以1分钟Bar为例,有的平台9点35分钟的Bar表示的是9:35:00~9:35:59间的数据,而别的平台可能是9:34:00~9:34:59的数据,要注意区分。

(2)交易信号能否转换为对应的下单指令?

在这里要看清楚量化交易平台的下单函数的使用,看清楚订单类型、限价、是否实时下单等。

(3)下单指令的执行结果能够被及时获取?策略下单后不是一定能成交的,要根据订单的执行情况进行后续处理。(4)策略能否根据订单的执行结果调整策略的运行情况?

订单执行成功后,需要及时改变账户的状态,需要修改仓位标志位,不要重复开单等;

若订单无法成交,需要考虑是否进行追单、撤单或重新下单。

(5)能否处理异常情况?

比如说,实时行情输入的数据是空值,是否有异常数据处理功能,在数据异常的情况下是否自动停止策略执行。

策略回测效果好就上实盘?-CycleGen
03 模拟盘异常原因
不是每一件事情都能一帆风顺的,量化亦是如此,策略上模拟盘之后,总会出现各种异常情况,产生异常的原因可分为策略的内因和外因,内因是指策略的处理逻辑,外因是指策略外部的软硬件原因。根据多年的量化开发经验,内因是比较好解决的,外因需要更加小心的处理,就好像是自己比较容易控制自己的行为,但很难控制别人的行为。内因已经在本文第一部分进行列举了,这里列举一下常见的外因。(1)数据源/行情源异常

量化平台的数据/行情服务器出现异常,无法正常推送数据,策略无法正常运行,一般这样的情况相对来说比较少,但很致命。

(2)网络断开特别是对于在个人电脑上运行策略的小伙伴,由于个人电脑和家庭路由器不稳定,经常会遇到网络断开的情况,建议实盘时候(模拟盘还可以凑合)将策略放在服务器上运行。(3)网络延迟

这种情况也是在个人电脑上运行策略的小伙伴经常遇到,最主要的原因就是订阅行情的证券数目过多且网络带宽较低。

(4)行情异常噪音

很多量化交易平台都会存在一些异常行情的推送,特别是在开盘前和收盘后都会推送一些异常的数据。

(5)CPU或内存占用过高,策略无法正常运行

有的时候,因为策略消耗的计算资源过大,或电脑配置过低,策略无法正常运行,特别是用过Windows的小伙伴,你懂的,有时候救命三键都救不了命。

本文系作者 @ 原创发布在 CycleGen。未经许可,禁止转载。

喜欢()
评论 (0)
    热门搜索
    173 文章
    1 评论
    49 喜欢
    Top