Как заказы MQL4 заказываются по умолчанию? - PullRequest
0 голосов
/ 19 сентября 2018

При использовании OrderSelect() в mql4 заказы упорядочены по номеру заявки по умолчанию?Я намерен использовать OrderModify() для ордеров, начиная с первого, который был открыт до самого последнего.

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018

Никогда не принимайте что-либо на 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))
         ...
0 голосов
/ 20 сентября 2018

Вы не можете вызвать функцию OrderSelect() без параметров.Вы должны указать идентификатор и способ выбора заказов.Если вы знаете идентификатор ордера в том виде, в каком он виден в окне терминала MT4, вы можете позвонить OrderSelect( order_id, SELECT_BY_TICKET), если вы не знаете или если вы зациклились на исторических сделках, вы должны применить OrderSelect(i,SELECT_BY_POS) или OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) где i - целое число от 0 до OrdersTotal() или OrdersHistoryTotal() соответственно.Если вы зациклились на массиве сделок с i в качестве целого числа, настоятельно рекомендуется выполнить цикл от максимального значения до нуля (а не наоборот), и вы можете получить идентификатор билета, вызвав функцию OrderTicket() после OrderSelect(*,*[,MODE_HISTORY]) успешно.

...