请教个问题,我在做仿真的时候发现经常会出现单腿,我增加了日志信息,发现algo算法是通过tick事件驱动的,当我发了一个委托如果还没有成交又收到一个tick数据的话,就会重复发送委托。每一次tick数据过来都会检查主动腿和被动退的成交,如果没有对冲完的话就会发送委托。我检查下代码,检查对冲是否完成的check_hedge_finished函数里只检查了成交量,是否应该也顺便检查一下是否有已发送未成交的委托,这样就可以避免单腿的发生了。我测试下来主动腿被动退重复下单的情况都发生过。
请教个问题,我在做仿真的时候发现经常会出现单腿,我增加了日志信息,发现algo算法是通过tick事件驱动的,当我发了一个委托如果还没有成交又收到一个tick数据的话,就会重复发送委托。每一次tick数据过来都会检查主动腿和被动退的成交,如果没有对冲完的话就会发送委托。我检查下代码,检查对冲是否完成的check_hedge_finished函数里只检查了成交量,是否应该也顺便检查一下是否有已发送未成交的委托,这样就可以避免单腿的发生了。我测试下来主动腿被动退重复下单的情况都发生过。
我看在调用check_hedge_finished之前确实有调用check_order_finished检查报单是否完成的,但确实是发生了重复调用hedge_passive_legs,很怪异。
方便的话请在Github开个issue,我们来查下
已在DEV分支修复