看engine里面的代码,应该是只要有stoporder发出就会被触发,但是我在on_stop_order里面打印stop_order的信息,只有状态为CANCLE或者是TRIGGERED时候才会打印,没有WAITING状态。是为什么呢?
另外,我在on_tick里面设置了接到第一个TICK的时候就根据之前收盘时候存储的未成交stoporder信息,重新发一个出去,结果第一个tick发布出去,貌似要等若干个tick才会发出,不知道为什么。
看engine里面的代码,应该是只要有stoporder发出就会被触发,但是我在on_stop_order里面打印stop_order的信息,只有状态为CANCLE或者是TRIGGERED时候才会打印,没有WAITING状态。是为什么呢?
另外,我在on_tick里面设置了接到第一个TICK的时候就根据之前收盘时候存储的未成交stoporder信息,重新发一个出去,结果第一个tick发布出去,貌似要等若干个tick才会发出,不知道为什么。
请问具体用的什么接口呢?
就是CTP,cta回测的时候也是同样的现象,打印不出来状态为WAITING的stoporder。实盘刚测试了一下,能够打印到,但是在on_tick里面不是第一个tick就能触发。我在执行sell的语句下面加上一个print,结果只有print输出,没有order出来
我们这边试了下stop_order是有waitting状态的。
可以自行去看vnpy,app.cta_strategy.backtesting的代码,推送on_stop_order只有这两种状态推送,因为K线回测没有tick数据传进来,自然就没有waitting状态,一分钟一分钟的推,不是已触发就是取消了
谢谢!明白了!