用A_DeleteOrderEx函数用例测试,手工交易师委托几笔,但是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);
}
}
这里没有限定操作源,就会把所有账户下的数据都读进来