===========================
看过我教程的同学都知道,backtrader中可以用重采样resample功能来将小粒度数据合成大粒度数据,比如将1分钟k线数据合成1小时k线数据。比如当10点到11点间所有1分钟k线都出来后,合成1根11点结束的1小时k线,在10点半时,如果要取1小时k线,只能去上一根,即10点结束的1小时k线。也就是说,在当一个整点小时完全结束时,才能合成新的1小时k线。
但是有些用户有一个需求,就是要求最新的1小时即使还没走完,也要动态合成1小时k线,比如10点开始,进来一个1分钟线,那么1小时线就只包含这一分钟数据,再进来一个一分钟线,更新一小时线包含这两分钟的数据。这样动态更新,直到11点,这根1小时线测底定型。这样在10点半时,如果你访问最新1小时线,实际是10点到10点半的半小时线。backtrader通过回放replay来实现这种功能,非常简单。例子代码如下:
class St(bt.Strategy):
def start(self):
self.counter = 0
def next(self): # 没根分钟线触发一次
self.counter += 1
txt =