1196920779:
for(int i=0;i<OrdersTotal();cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
}
麻烦请教一下,这个第一张选中的订单是最早的开单还是最近的开单呢?
麻烦说一下原因,谢谢。
最近的,因为你是按索引号搜索订单,0就是当前索引号,cnt++是从0开始递增
1196920779:
for(int i=0;i<OrdersTotal();cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
}
麻烦请教一下,这个第一张选中的订单是最早的开单还是最近的开单呢?
麻烦说一下原因,谢谢。
是我孤陋寡闻了吗?cnt是哪里定义的,你值定义了i
把单子打印出来试试
for(int i=0;i<OrdersTotal();i++) { if(OrderSelect(i,SELECT_BY_POS)) { printf("i:%d, ticket=%d, symbol = %s, time=%s",i,OrderTicket(),OrderSymbol(),(string)OrderOpenTime()); } }
一般来说 ,如果只有一个品种的多个单子,i=0是最早的 但并不是绝对,如果有多个品种的多个单子,那i=0是不是最早的就更难说了。
总之,要找最早,最近的单子,就老老实实的遍历所有单子,比较开仓时间,不要想当然的以为i=0就是最早的,i=OrdersTotal()-1就是最近的,这个结论不成立。
for(int i=0;i<OrdersTotal();cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
}
麻烦请教一下,这个第一张选中的订单是最早的开单还是最近的开单呢?
麻烦说一下原因,谢谢。