如何获得同一货币订单编号

 

比如 欧美 我做 了 4单  怎么把这 4单的订单编号都找到啊

我目前只能找一个  不会其他的 应该是数组问题

int fendan3()
{
  int total=OrdersTotal();
  int count[];
  int kk=0;
  int count2[];
  int ff=0;
  int ff2=0;
  for(int pos=total;pos>0;pos--)
   {
      if(OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)==true&&OrderSymbol()==Symbol()&&OrderType( ) ==0)kk=OrderTicket();
    
      //if(OrderSelect(pos,SELECT_BY_POS,MODE_TRADES)==true&&OrderSymbol()==Symbol()&&OrderType( ) ==0&&pos!=ff2)ff=OrderTicket();
   }

 return(kk);
}

 

MT5中一个货币对只会有一个未平仓头寸。 MQL4问题最好去MQL4论坛。

我简单写个函数你参考下:

void OrderTicketRecord(long & ticket[],string _symbol)
{  
   int total = OrdersTotal();
   if(total == 0) return;
   ArrayResize(ticket,total);
   for(int i=0;i<total;i++)
   {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
      {
         if(OrderSymbol()== _symbol/* your symbol*/)
            ticket[i] = OrderTicket();
         else
            continue;
      }
   }
}
 
luenbo:

MT5中一个货币对只会有一个未平仓头寸。 MQL4问题最好去MQL4论坛。

我简单写个函数你参考下:

果然厉害  我去MT4 在提问一下 因为 我要找到 订单编号 才能修改订单  这样我可以设置 我希望的盈利和亏损 谢谢
 
caohongbin520:
果然厉害  我去MT4 在提问一下 因为 我要找到 订单编号 才能修改订单  这样我可以设置 我希望的盈利和亏损 谢谢

 OrderTicketRecord(long & ticket[],string _symbol)

 long & ticket[] 请问这个事什么意思  不太明白  这个参数含义

 

我希望 就是 可以得到 返回的订单  比如 ticket[1]=1111  ticket[2]=222

这样 我以后只要修改 序号就能找到订单编号 

 
如何调用 这个  
 
   long ticket[100];
   TicketOrderRecord(ticket,Symbol());
   for(int i=0;i<ArraySize(ticket);i++) //打印测试 
      Print(ticket[i]);
 
caohongbin520:

 OrderTicketRecord(long & ticket[],string _symbol)

 long & ticket[] 请问这个事什么意思  不太明白  这个参数含义

数组,通过引用方式传值。
 
 15:35:52 888 EURUSD,M1: 0
15:35:52 888 EURUSD,M1: 63663918394963332
15:35:52 888 EURUSD,M1: 342697725470441521
15:35:52 888 EURUSD,M1: 63394864463672720
15:35:52 888 EURUSD,M1: 3457372
15:35:52 888 EURUSD,M1: 3457401
15:35:52 888 EURUSD,M1: 3457413
15:35:52 888 EURUSD,M1: 3457526
15:35:52 888 EURUSD,M1: 3457527
15:35:52 888 EURUSD,M1: 3457528
15:35:52 888 EURUSD,M1: 3457529
15:35:52 888 EURUSD,M1: 3457552

15:35:52 888 EURUSD,M1: 3457553

这个的确能找到  

我想 精确的找到  某一个订单号  比如以上 9个订单  在一个数组里面   我 希望  0号位置是第一个订单   1 号是 第二个 调用的时候  以 return方式调用 引用调用 目前 不会 不知道如何找到具体的

帮我过滤一下 找到具体某一个订单号

void OnStart()
  {
//---
   long ticket[20];
   OrderTicketRecord(ticket);
   for(int i=0;i<ArraySize(ticket);i++)
    if(ticket[i]!=0) Print(ticket[i]);
     
      
  }
//+------------------------------------------------------------------+
void OrderTicketRecord(long & ticket[])
{  
   int total = OrdersTotal();
   if(total == 0) return;
   ArrayResize(ticket,total);
   for(int i=0;i<total;i++)
   {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
      {
         if(OrderSymbol()== Symbol()/* your symbol*/)
            ticket[i] = OrderTicket();
         else
            continue;
      }
   }
}

 

 

 
void OnStart()
  {
//---
   long ticket[20];
   long kkk[];
   OrderTicketRecord(ticket);
   for(int i=0;i<ArraySize(ticket);i++)
    if(ticket[i]!=0) 
    ArrayCopy(ticket,kkk,0,0,20);

    Print(kkk[i]);
     
      
  }
这段代码是错误的 我的 想法是 希望把原来的数组复制  然后按照原来的 顺序排列  比如第一单 就是 0号位置 第二单 就是 1号 位置  我 想找 那个 输入 ticket[0]  就能找到我第一次下的单就是这个意思 不过我目前不会写 不过已经接近 理想 还差一步 我估计许多人多需要这段代码 他可以实现 你的任何订单 平仓 盈利 设置等等 包括资金管理
 
是不是需要数组排序功能啊
原因: