目前给到的portfoliostrategy的案例策略,1分钟K线都是根据最新tick的分钟数和前一根不一致触发合成,推送执行on_bars。如下代码:
if (
self.last_tick_time
and self.last_tick_time.minute != tick.datetime.minute
):
bars = {}
for vt_symbol, bg in self.bgs.items():
bars[vt_symbol] = bg.generate()
self.on_bars(bars)
bg: BarGenerator = self.bgs[tick.vt_symbol]
bg.update_tick(tick)
self.last_tick_time = tick.datetime
但是同一时间大商所推送的tick数据的秒数比另外两个所的都慢1S,所以导致推送的bars会在每分钟结束的时候,连着触发,推送好几次,bars里面好多空数据。
请教一下实盘的高手,有没有更好的K线合成机制呢?