1:使用如下代码,会存在重复发单的情况,可能是程序还未接收到成交回报,就再次发单了,如何避免这类情况呢?王老师指导,万分感激!
def on_tick(self, tick: TickData):
self.cancel_all()
self.bg_x.update_tick(tick)
self.price = tick.last_price
if self.pos > 0:
if tick.last_price < self.long_stop:
self.sell(tick.last_price*0.9, abs(self.pos))
self.write_log(f"策略名称:15号策略 {tick.datetime} 多头平仓:{abs(self.pos)}手 {tick.last_price*0.9} 备注:保命出场")
elif self.pos < 0:
if tick.last_price > self.short_stop:
self.cover(tick.last_price*1.2, abs(self.pos))
self.write_log(f"策略名称:15号策略 {tick.datetime} 空头平仓:{abs(self.pos)}手 {tick.last_price*1.2} 备注:保命出场")
self.put_event()