self.pingcangstate是定义的一个全局变量,默认TURE,用于识别订单的状态,当订单状态为(提交中,未成交,部分成交)不重复发出订单,因为TICK里面速度很快,没有这个开关会在止损单还没完全成交前继续发单,但是我这样写好像还是在重复发单,是我使用方法不对吗
from vnpy.trader.constant import Status
#
def on_tick(self, tick: TickData):
self.bg.update_tick(tick)
if self.pos>0 and self.pingcangstate==True:
if tick.last_price<self.long_stoploss_price:#多单止损
self.sell(tick.last_price-5.0,abs(self.pos))
elif self.pos<0 and self.pingcangstate==True:
if tick.last_price>self.short_stoploss_price:#空单止损
self.cover(tick.last_price+5.0,abs(self.pos))
def on_order(self, order: OrderData):
if order.status in [Status.NOTTRADED, Status.PARTTRADED,Status.SUBMITTING]:
self.pingcangstate=False
else:
self.pingcangstate=True