怎么样只对最早的那一笔未成交开仓单进行撤单?

请教,我想查找所有未成交的挂单,同时只对最早的那一笔未成交的开仓挂单进行撤单,以下写法是否对?(我的疑惑在于不知道 用For y = 0 To GetArraySize(orderIDs) - 1进行编历时,系统是自动会从时间最早的挂单开始按顺序遍历(由远及近),还是从离当下最近的时间开始遍历(由近及远)。谢谢 Integer y=0; Array<Integer> orderIDs; self_source=A_GetOrderCreateSource; Bool ret=A_GetUnFillOrderIDs(RelativeSymbol,orderIDs,self_source); Bool valuestatus=false; For y = 0 To GetArraySize(orderIDs) - 1 { Order value; Bool ret1=A_getorder(orderids[y],value); if(value.combOffset==Enum_Entry and value.side==Enum_buy) { bool ret2 =A_DeleteOrderEx(orderids[y]); numeric sleep = SystemDateTime; while(true) { A_getOrder(orderids[y], value); if(value.status == Enum_Canceled) break; if(value.status == Enum_Filled) break; if(DateTimeDiffV2(Sleep, SystemDateTime) >= 1000) break; } } if(value.status==Enum_Canceled) valuestatus=true; if(value.status==Enum_Canceled) break; }

下单的时候管理一下

看到我的代码身影多试几个品种print一下数组看看规律或者按照老刘说的排序一下

回复:for之前ArraySort(orderIDs, true);就可以了

?目测你这个代码只会把所有买开未成交单全部撤掉

回复:我的思路是先get所有未成交单的本地order,然后排序,从小到大,然后根据order遍历,查到第一个买开,撤单,break遍历

回复:谢谢老师,我想下