量化交易学习(五十三)backtrader多周期回测(2)resample
前面那篇文章讲了怎么通过加载多个周期的数据源实现多周期回测,这一篇讲通过单一数据源,利用backtrader的resample功能合成大周期数据源实现多周期回测。
下面以上篇文章的例子,讲一下怎么实现。
比如我只有1分钟k线,想实现这样的一个日内择时的策略:若当前分钟线的收盘价小于前一天的日线最低价则买入,若当前分钟线的收盘价大于前一天的最高价则卖出,怎么做呢?
可以这样,把1分钟线添加到cerebro中,然后通过1分钟线合成日线,策略启动后,每次执行next方法时self.datas都会调用下一根分钟线和分钟线所在日期的日线,这样在next方法中只用考虑当前分钟线和前一天日线就可以了。
下面是具体的代码,用的恒生科技ETF2024年3月份的数据:
main.py
1 | import backtrader as bt |
strategy.py的代码没有改动,和之前那篇中的一样。
代码中只有一处不一样:
1 | cerebro.resampledata(data0,name='SHSE.513180_1day',timeframe=bt.TimeFrame.Days) |
cerebro.resampledata会对data0重采样,然后把重采样得到的数据添加到cerebro中。之后的处理和添加多个数据源的处理是一样的了。
回测结果也是一样的:
这一篇就到这里啦。欢迎大家点赞、转发、私信。还没有关注我的朋友可以关注 江达小记