量化交易

如何解决botvs上执行cancelorder函数失败的问题?

botvs提供的api函数cancelorder只负责把指令发送到交易所,至于交易所是否真的执行成功与否并不会做判断和检测,所以我们需要在自己的程序中做这个检测工作,保证cancelorder能执行成功。

年化70%,适用于单边趋势和震荡行情的期货实盘策略,查看详情 >>>

以下函数会重试cancelorder直到交易所成功执行,调用cancelorder的地方替换为此函数即可:

$.retry_cancelorder=function(ex,order_id){
Log(“取消订单”+order_id);
ex.CancelOrder(order_id);
Sleep(5000);
var orders=_C(ex.GetOrders);
var find=false;
for (var i=0;i<orders.length;++i){
if (orders[i].Id===order_id){
find=true;
break;
}
}
if (find){
$.retry_cancelorder(ex.order_id);
}
}

年化70%,适用于单边趋势和震荡行情的期货实盘策略,查看详情 >>>

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.