请教 策略模型在其他交易所正常运行,但在郑交所运行的时候 8:50启动,一直到连续竞价都能收到tick 但是bargenerator的update_tick不能运行,9点开盘后 重新启动no_ui又正常了,请问这是为什么??
没有对utility.py修改过,在策略on_tick中有self.bg.update_tick(tick)
请教 策略模型在其他交易所正常运行,但在郑交所运行的时候 8:50启动,一直到连续竞价都能收到tick 但是bargenerator的update_tick不能运行,9点开盘后 重新启动no_ui又正常了,请问这是为什么??
没有对utility.py修改过,在策略on_tick中有self.bg.update_tick(tick)
on_tick中有print(tick) 和self.bg.update_tick(tick) ,update_tick 第一行输出为print('1111'),tick正常输出,1111不能输出
可以自己去update_tick里面打印一下是不是被“if self.last_tick and tick.datetime < self.last_tick.datetime:”过滤了
xiaohe wrote:
可以自己去update_tick里面打印一下是不是被“if self.last_tick and tick.datetime < self.last_tick.datetime:”过滤了
就算被过滤掉 那1111也应该输出 啊,因为在过滤之前print('1111')
这是因为早盘的时候会重复推夜盘的行情,可能是ctp自己的bug,最后一个tick的时间戳会发生改变,比如郑商所的品种MA,最后一个tick本来是2022-08-17 22:59:59, 早盘推送的时候会把这个时间戳错误的修改为2022-08-18 22:59:59,整整推后了一天,导致白天所有的tick都变成了无效tick。建议在底层接口处,或者策略的on_tick处做一个过滤,tick.updatetime和datetime.now()做一个比较,相差超过10分钟的tick直接过滤掉即可。