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

环境: CTP接口,SIMNOW仿真:

下平仓单

order1 = scr_engine.sell(vt_symbol = vt_symbol, price = Ps, volume = 1)
order_status = scr_engine.get_order(order1)

记录下单时间

tBegin = datetime.datetime.now()

while order_status is None:
order_status = scr_engine.get_order(order1)

while order_status.traded == 0
timedelta = datetime.datetime.now() - tBegin
if timedelta.total_seconds > 2:

    # 超过2秒未成交,撤单重新下单!

     scr_engine.cancel_order(order1)
     order_status = scr_engine.get_order(order1)
      if order_status is None:
             order_status = scr_engine.get_order(order1)
      if order_status.status.value != "已撤销":
             order_status = scr_engine.get_order(order1)
      od00 = scr_engine.sell(vt_symbol = vt_symbol, price = Ps - 2, volume = 1)

重新下单会报错,平仓量超过持仓量!

难道是撤单后,冻结仓位未解除冻结,要等待解冻后才能下单?

这个延时有办法避免吗?

Member
avatar
加入于:
帖子: 5129
声望: 308

可能再次下单的时候上一个委托撤单回报还没回来
可以自己记录活跃委托号进行撤单
https://www.vnpy.com/forum/topic/2504-vnpyjin-jie-on-tickhan-shu-nei-che-dan-zhui-dan-xiang-jie-shi-pan-zai-yong-de-dai-ma-mei-you-keng-e

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

沪公网安备 31011502017034号

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