量化交易学习(五十四)backtrader多周期回测(3)期货多数据源
之前的多周期回测主要适用于股票,今天这篇来说一下期货的多周期回测,期货和股票最大的不同是期货有夜盘,支持T+0。
期货的日线是从前一交易日的夜盘开始到当天的日盘结束,也就是前一天的21点到当天的15点。如果直接加载数据到backtrader的话,默认日线会从当天的23:59:59开始,也就是假如今天是4月17日,那4月17日的日线从4月17日23:59:59形成, 这对于股票来讲没有问题,因为股票的交易时间是9:30到15:00,在盘中用的日线就是前一天的日线。
但是对于期货则不一样了,如果还按照backtrader默认的规则加载,则会在当天的21:00:00至23:59:59前使用前两天的日线(因为从21点开始就算下一天了),在下一天的0点后使用前一天的日线。所以需要对日线收盘时间进行调整。
backtrader的csv数据源加载器提供了调整k线结束时间的功能,只要在添加数据源时加上sessionend参数就可以了。
下面以螺纹钢的15分钟数据和日线数据为例说明一下调整前后的区别:
1 | import datetime |
结果图:
可以从右下角的时间线上看出,日线是在23:59:59的时候形成的。我们把加载日线数据的那行代码改一下改为:
1 | data1=bt.feeds.BacktraderCSVData(dataname='SHFE.rb2405Marchday.csv',timeframe=bt.TimeFrame.Days,sessionend=datetime.time(15)) |
结果图:
这回可以看到,日线是在15:00:00的时候形成的了,这样在使用的时候就不会出错了。
这一篇就到这里啦。欢迎大家点赞、转发、私信。还没有关注我的朋友可以关注 江达小记