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

我的卖平止损单一直挂着,处于正常状态,但当20:59集合竞价的tick出现时,若开盘价低于止损价格时,vntrader界面该止损单会自动撤销,而cta策略界面显示该止损单已触发。

description

此时很奇怪地会显示“撤单失败,找不到委托CTP3”,但是我代码里并没有要撤单,只是挂着的该止损单按照这个价格应该止损离场了。但vntrader里并没有离场,而是继续持有,而且显示此前的那个止损单“已撤销”。

description

而且这样的事情已经发生几次了,都是开盘价直接跳空低开低于止损价时候,止损单不成交,反而显示“已撤销”。此类bug存在,将会逼着我不得不在代码里on_tick 函数里增加一个条件价格低于止损价而且又有持仓时以当前市场价卖掉。
还请高手路过解答一二,万分感谢。

Member
avatar
加入于:
帖子: 1653
声望: 121

可能是因为20:59分的时候,交易所不接受报单,导致那个瞬间停止单触发发出的限价单直接被撤销了

Member
加入于:
帖子: 3
声望: 0

如果交易所20:59不接受报单,那么也就是说,我不能停止单一直挂着(因为20:59:00和8:59:00会有一个tick的盘前集合竞价,若开盘价低于停止单的止损价,那8:59和20:59时候的一个tick数据到来时,交易所一定把停止单触发转化成的限价单撤销),而必须加个限定时间时间(9:00之后,或21:00之后)再让止损单生效?

Member
加入于:
帖子: 3
声望: 0

可是不应该20:59交易所不接受报单啊,集合竞价时候本来就是接受报单的,不然集合竞价的价格怎么来的。
所以可能问题出在vnpy自身的stop order的生成机制上。本错误例子里的品种是SC原油,SC是INE的品种,INE自身是没有stop order的,所以只能vnpy封装stop order然后看触发与否转化成跌停价卖出的限价单。是不是错误出在vnpy里封装stop order,以及在集合竞价时间stop order触发并转化成限价单发给CTP接口这一步?

Member
avatar
加入于:
帖子: 1653
声望: 121

可以去github.com/vnpy/vnpy_ctastrategy开个issue,提供下上面您整理的信息

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

沪公网安备 31011502017034号

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