【零基础】极星量化入门八:简单的boll实盘
一、前言
前一篇已经讲了boll的回测,那这里为啥又要说实盘呢?因为实盘运行与回测还是有些区别的。这里说的实盘是包括实盘模拟和实盘交易的,二者都是利用最新的行情做交易,这篇就讲一下最近关于实盘的心得。
二、代码修改
整体上实盘的代码与回测是差不多的,但是有几个要点注意和修改。
1、成交价格
在回测时我们使用的是K线收盘价+滑点,滑点只是模拟而已,回测的成交价还是我们制定的。但是在实盘时价格能否成交我们是不确定的,事实上我也遇到过对盘价+2个滑点结果没成交,一晚上过去这个持仓亏损2000多。所以实盘阶段首先要改的是价格不能再用Close了,要用“对盘价”,比如你是买入则需要用卖一价,而且还得再加上2个点(甚至有人用涨跌停价的)。
2、有可能平仓不成功
实盘时什么情况都可能出现,比如Buy指令是先平空再开多的,回测自然是没有问题,但是在实盘中很可能出现平仓、开仓实盘的情况。那这个持仓会一直在,到了反向策略被触发时可能才被平掉。所以我们可以简单的加几行代码,首先未成交的全部撤单,然后平掉所有仓位,再根据需要开仓。还有些极端情况,比如涨跌停啥的,需要另外处理了。
3、实盘也需要历史数据
有些童鞋认为既然是实盘了,那历史数据要不要都行的。其实不然,一般都是通过某个指标进行交易的,这些指标计算也需要数据。如果等到即时行情提供了足够的数据做计算,说不定你已经错过了一波行情,所以我一般先订阅足够的历史行情,再加上一个判断等待历史行走完,并判断计算指标需要的行情是否足够。
4、启动即下单的问题
有一些指标是判断AB两个数的大小的,这也就导致策略启动时就可能下单(因为AB两个数必定是有一个大,可能下多也可能下空)。这样早早下单可能行情正好在向相反方向走,所以一般建议是下一次“翻转”时才做第一次交易。
如上图所示的策略,启动时是做多信号,但行情其实开始下行了。在左侧的箭头处就开始下单的话会有较大可能亏损,所以建议在右侧第二个箭头处,策略由多转空的时候再开始交易。具体实现就根据不同策略自己写了,boll不存在这个问题就没做。
三、回顾
实盘大体上与回测差不多,只是有些问题注意下就好了。完整代码:
https://share.weiyun.com/5TQQciH