OrderSelect()无法定位到正确的订单,求助

 

在一个帐号中,有买卖两个单子

 

写一个简单的EA代码如下

int init()

{

   for (int i=0;i<OrdersTotal();i++) Alert("序号:",i, " 是否找到:",OrderSelect(i,SELECT_BY_POS), " 订单号:",OrderTicket());   

}

 

 执行结果如图,当i为0时,虽然Orderselect不报错,但是实际上找不到订单

 

同时发现,如果此时修改一下代码,会有以下两种情况

  第一种情况,在输出前,先执行一次Orderselect,感觉系统会正确整理一下排序,输出就正确了

int init()

{

   OrderSelect(0,SELECT_BY_POS);

   for (int i=0;i<OrdersTotal();i++) Alert("序号:",i, " 是否找到:",OrderSelect(i,SELECT_BY_POS), " 订单号:",OrderTicket());    

}

 

第二种情况,在输出时,扩大i的范围,系统会输出一个错误的订单,然后输出两个正确的订单,但是2号订单在正常情况下应该是没数据才对啊

int init()

{

   for (int i=0;i<=OrdersTotal();i++) Alert("序号:",i, " 是否找到:",OrderSelect(i,SELECT_BY_POS), " 订单号:",OrderTicket());   

 

 

以上问题,我现在不知道到底是代码有问题,还是函数有问题,还是这个账户有问题,求各路高手指点 

原因: