请教一下老师,用A_DeleteOrderEx用例代码测试,交易师手工下了几笔委托,撤单的时候,为什么手工单也全部撤掉了呢?
Vars
Global Integer cancelId;
Global Bool openOrder(False);
Events
OnBar(ArrayRef<Integer> indexs)
{
if(BarStatus == 2 && !openOrder)
{//发开仓单
//针对当前策略应用的帐户、商品发送委托单
Bool ret = A_SendOrder(Enum_Sell, Enum_Entry, 2, Q_UpperLimit, 0);
Print(SellShort,A_SendOrder: + IIFString(ret, True, False));
if(ret)
{
openOrder = True;
}
cancelId=createTimer(5000);
}
}
OnTimer(Integer tid,Integer intervalMillsecs)
{
if(tid == cancelId)
{//撤单
Array<Integer> orderIds;
//获取未完成的报单数组
Bool ret = A_GetUnFillOrderIDs(orderIds, , 0);
Integer i;
For i = 0 To GetArraySize(orderIds) - 1
{
Print(accountIndex: + A_AccountID(0) + ,orderId: + Text(orderIds[i]));
ret = A_DeleteOrderEx(orderIds[i]);//撤指定报单索引的委托单
Print(A_DeleteOrderEx: + IIFString(ret, True, False));
}
StopTimer(cancelId);
}
}