诚信为本
量力而为
当前位置:峰汇在线 ea编程知识 正文

mt4怎么找最小订单号?

找最小订单号是智能交易EA编程方面的问题,订单号是指订单编号,我们在MT4终端上每开一个单子,它都有一个编号,如果将订单按开仓时间先后排序就不难发现,订单编号是随开仓时间的顺势越来越大的,也就是说最早开仓的那个单子订单编号是最小的。

那么我们将这个问题演变一下,就是问如何查早最早或者说是最远开仓的那个订单的编号。在MQL4语言中订单编号用 OrderTicket() 函数获取,这里需要注意的技巧就是用for循环语句遍历订单的时候用 i– 才能最快找到最早开的订单。可以自行构造一个函数来获取需要的最小订单编号,参考代码:

    int Tk_minus()
   {         
      int tkmi = 0;
      for (int i = OrdersTotal() - 1; i >= 0; i--)
      {
        if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)==true)
       {
         if (OrderSymbol() == Symbol())
         {    
          tkmi = OrderTicket();
         }
        }
      }
      return(tkmi);
    }  

为了便于比较,我们同时也用 i++的方式做个函数,然后用模拟盘先后开几个订单,比较这两个函数所获得的结果。

mt4编程查找最小订单号

从上图就很明显的看出来,找最小订单时for循环中应当用 i– ,实际编程中根据上面函数演变即可。如果用i++那所获得的结果就是最近开的单子,其订单号也是最大的。

当然,这里仅仅是针对上述函数而已,如果在 Tk_minus() 函数中使用 break 语句,也就是找到就跳出,那么在 for 循环中用 i– 找到的就是最新开出的单子。

版权所有转载请注明标题及链接:峰汇在线 » mt4怎么找最小订单号?