之前一直断断续续看rqalpha代码,看的也是迷迷蒙蒙的。估计是因为没有实际的需求,单纯看一下而已。
最近心中一直想着做一个回测系统,期货的。
股票太复杂,很多数据,比如复权什么的,比如数据的获取啥的,都是不容易,另外,验证起来也麻烦,到最后想交易的话还需要手工操作。
期货相对简单很多,国内期货所有品种加起来也就60多个品种。随便选一种采用ctp协议就可获取到tick级数据。到通达信上更可获取到一年以上的分钟级数据。由于少了复权处理,数据单纯很多,处理起来也容易些。
不过rq想实现5分钟级的期货数据回测难度有点大。首先是数据不支持,其次是即便外接5分钟数据,里面每个周期的计算基本是写死的。而期货各个品种的时间不同,更有一些偶有夜盘,突然某天的夜盘又取消的,如果按规则进行换算明显不合适。需要一种数据驱动的概念。即完全根据数据进行周期换算,一个数据下来就认为是一个新的周期,再来一根又是下一个周期。这样就不需要考虑哪天是交易日,哪天是非交易日,直接脱离原先的逻辑框架,不用再专门搞一个交易日的数据列表。
嗯,逻辑上是想好了,真正实现还有不少的难点。
首先是5分钟数据。最好是一个简单的序列,这样格式就简单很多。有先的分钟级数据根据猜测是先折算出天来,再从里面找具体的数据,太麻烦。
好消息是rqalpha新版本个人很难用了,所以改起来就不需要考虑兼容性,直接大刀阔斧开干就好。