量化交易学习(五十一)backtrader多周期回测(1)多数据源
通常我们在回测时使用的是单一频率的数据,比如:日线、分钟线等。有些策略是需要结合多个周期的数据进行决策的。这个时候应该怎么办呢。
其实backtrader本身就支持多周期回测,在通常情况下,最简单的方式就是同时提供多个维度的数据源,backtrader会选择最先提供给它的数据源的时间周期作为策略执行的时间周期。
比如我有1分钟线和日线,想实现这样的一个日内择时的策略:若当前分钟线的收盘价小于前一天的日线最低价则买入,若当前分钟线的收盘价大于前一天的最高价则卖出,怎么做呢?
可以这样,把1分钟线和日线都添加到cerebro中,然后策略启动后,每次执行next方法时self.datas都会调用下一根分钟线和分钟线所在日期的日线,这样在next方法中只用考虑当前分钟线和前一天日线就可以了。
下面是具体的代码,用的恒生科技ETF2024年3月份的数据:
main.py