默认情况下,如何订购MQL4订单?

时间:2018-09-19 20:02:04

标签: mql4

在mql4中使用library( grid ) library( gridExtra ) data( iris ) grid.newpage() grid.rect( vp = viewport( x = 0.4, y = 0.4, width = 0.3, height = 0.3 ) ) grid.table( iris[ 1:3, 1:2 ], vp = viewport( x = 0.4, y = 0.4, width = 0.3, height = 0.3 ) ) 时,默认情况下是否根据票证号订购了订单?我的意图是对从打开的第一个订单到最近的订单使用OrderSelect()

3 个答案:

答案 0 :(得分:2)

除非在文档中明确指定,否则不要在MQL中假设任何内容。就是说,您需要先对票证号码进行排序,然后再依次进行排序。

   CArrayInt tickets;
   for(int i=0; OrderSelect(i, SELECT_BY_POS); i++)
      tickets.Add(OrderTicket());
   tickets.Sort();
   for(int i=0; i<tickets.Total(); i++)
      if(OrderSelect(tickets[i], SELECT_BY_TICKET))
         ...

答案 1 :(得分:0)

没有参数就无法调用OrderSelect()函数。您必须指定ID和选择订单的方式。如果您知道该订单的ID(在MT4终端窗口中看到),则可以致电OrderSelect( order_id, SELECT_BY_TICKET),如果您不知道或在历史交易中循环,则必须应用OrderSelect(i,SELECT_BY_POS)或{ {1}},其中OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)是0到iOrdersTotal()之间的整数。 如果您以OrdersHistoryTotal()为整数循环遍历交易数组,强烈建议您从最大值循环为零(反之亦然),您可以通过调用i获取票据ID。在OrderTicket()成功之后起作用。

答案 2 :(得分:0)

`enter code here`
int Magic = 12345;
// This reads the orders LIFO (last in...)
// the index is an integer and is incremented from 0 
// as the orders are placed. It is NOT 
// the ticket number. No sorting necessary.
for(int i=OrdersTotal()-1;i>=0;i--) 
    if(_Symbol=OrderSymbol() && Magic = OrderMagicNumber())
        if(OrderSelect(i, SELECT_BY_POS) {
            Print("Order Index: ",i,", Ticket: ",OrderTicket());