VeighNa量化社区
你的开源社区量化交易平台
Member
avatar
加入于:
帖子: 11
声望: 0

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

Member
avatar
加入于:
帖子: 337
声望: 27

可参考https://www.vnpy.com/forum/topic/1068-yi-chong-xin-de-on-tickxia-kong-zhi-xia-dan-xi-li-du-de-fang-fa-gai-fang-fa-you-qun-zhu-ti-gong

© 2015-2022 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】