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

如果我开仓后同时挂止盈和止损,那么止损的时候得先撤销止盈单,这个怎么处理呢?刚撤销也不一定马上就能平仓吧?有反应时间。

Member
avatar
加入于:
帖子: 4684
声望: 285

可以试试本地停止单

Administrator
avatar
加入于:
帖子: 4502
声望: 321

收到撤单的on_order回报后,再发出平仓委托

Member
avatar
加入于:
帖子: 88
声望: 1

现有的样例策略中on_order的很少,帮忙补几句on_order代码吧,谢谢了

def on_tick(self, tick: TickData):
    # 止损后马上撤止盈单
    if (self.pos > 0 and tick.last_price < self.long_stop_loss):
        for orderid in self.profit_sell_orderids :
            self.cancel_order(orderid)

def on_order(self, order: OrderData):
    # 查profit_sell_orderids 的回报,如果是撤销状态,则强平
    # 不确定是不是这样写
    if order.status == Status.CANCELLED and order.vt_orderid in self.profit_sell_orderids:
       # 强平多单,强平的价格:order.price不行吧?这是撤单

def on_trade(self, trade: TradeData):
    # 多单成交后马上挂止盈单
    if trade.direction == Direction.LONG and trade.offset == Offset.OPEN:
        # 止损(不可以用本地止损单)
        # self.stop_sell_orderids = self.sell(self.long_stop_loss, abs(self.pos), True)
        # 止盈
        self.profit_sell_orderids = self.sell(self.long_take_profit, abs(self.pos), False)
© 2015-2022 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

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