小白学习中,在录制行情数据时往往缺少最后1分钟,因为休收盘00分的tick如果不推送那上1分钟的K线不能合成比如缺少第59分钟k线,在bargenerator的update_tick函数下添加即可,这样做的缺点是如果合约在收盘前500毫秒没有tick还是会不能合成K线,如果有更好高效的方法还请大佬们指导
if tick.datetime.minute in (59, 29, 14):
if tick.datetime.second == 59 and tick.datetime.microsecond >= 500:
end_times = (
(10, 14), (11, 29), (14, 59), (15, 14),
(22, 59), (0, 29), (2, 29)
)
if (tick.datetime.hour, tick.datetime.minute) in end_times:
if self.bar:
self.bar.datetime = self.bar.datetime.replace(second=0, microsecond=0)
self.on_bar(self.bar)
self.bar = None
self.last_tick = tick