Обсуждение статьи "Библиотека для простого и быстрого создания программ для MetaTrader (Часть V). Классы и коллекция торговых событий, отправка событий в программу" - страница 2

 
Alvaro Arioni:

Пожалуйста, отредактируйте свое сообщение и

используйте кнопку "код" (Alt+S) при вставке кода

 
Artyom Trishkin:

Может быть несколько потерянных заказов

Хорошо, но функция все равно возвращает только один из потерянных ордеров, тот, который ближе всего к нулю.

В этом случае не будет ли итерация от 0 до start-1 с прерыванием?


ulong CHistoryCollection::OrderSearch(const int start,ENUM_ORDER_TYPE &order_type) 
  { 
   ulong order_ticket=0; 
   for(int i=0; i < start ;i++) 
     { 
      ulong ticket=::HistoryOrderGetTicket(i); 
      if(ticket==0) 
         continue; 
      ENUM_ORDER_TYPE type=(ENUM_ORDER_TYPE)::HistoryOrderGetInteger(ticket,ORDER_TYPE); 
      if(this.IsPresentOrderInList(ticket,type)) 
         continue; 
      order_ticket=ticket; 
      order_type=type; 
      break; 
     } 
   return order_ticket; 
  } 

Я знаю, что это всего лишь деталь, но я подумал, что это может быть небольшим улучшением, особенно в случае слишком большой истории ордеров.

Documentation on MQL5: Constants, Enumerations and Structures / Named Constants / Predefined Macro Substitutions
Documentation on MQL5: Constants, Enumerations and Structures / Named Constants / Predefined Macro Substitutions
  • www.mql5.com
//| Expert initialization function                                   | //| Expert deinitialization function                                 | //| Expert tick function                                             | //| test1                                                            |...
 
Alvaro Arioni :

Хорошо, но функция все равно возвращает только один из потерянных ордеров, тот, который ближе всего к нулю.

В этом случае не будет ли итерация от 0 до start-1 с прерыванием?


Я знаю, что это всего лишь деталь, но я подумал, что это может быть небольшим улучшением, особенно в случае слишком большой истории ордеров.

Хорошо, спасибо, я все проверю и протестирую.

Вполне возможно, что "перерыв" пригодится.