1、我用1分钟k线合成6分钟k线,合成几分钟k线的代码:
if self.interval == Interval.MINUTE:
# # x-minute bar
# if not (bar.datetime.minute + 1) % self.window:
# finished = True
if self.last_bar and bar.datetime.minute != self.last_bar.datetime.minute:
self.interval_count += 1
if not self.interval_count % self.window:
finished = True
self.interval_count = 0
elif self.interval == Interval.HOUR:
if self.last_bar and bar.datetime.hour != self.last_bar.datetime.hour:
# 1-hour bar
if self.window == 1:
finished = True
# x-hour bar
else:
self.interval_count += 1
if not self.interval_count % self.window:
finished = True
self.interval_count = 0
我希望的是31-36分钟的k线组成,但是实际是从32分钟到37分钟k线组成,,主要原因是
第一根1分钟k线推送过来时,self.last_bar是空的,所以
这段中的if self.last_bar and bar.datetime.minute != self.last_bar.datetime.minute:
self.interval_count += 1
是不执行的。所以这段代码是否可以优化。
2、回测的时候在def on_init(self): self.load_bar(8),所以成交记录是在第8天后开始,但是我在调试的时候,发生实际策略这之前就开始交易了,只是成交记录是记录第8天后开始的,不知道这个算不算一个bug。