Discusión sobre el artículo "Biblioteca para el desarrollo rápido y sencillo de programas para MetaTrader (Parte V): Clases y colección de eventos comerciales, envío de eventos al programa" - página 2

 
Alvaro Arioni:

Por favor, edite su mensaje y

utilice el botón de código (Alt+S) al pegar el código

 
Artyom Trishkin:

Puede haber más de un pedido perdido

De acuerdo, pero la función sigue devolviendo sólo una de las órdenes perdidas, la más cercana a cero.

En este caso, ¿no sería lo mismo iterar de 0 a start-1 con un break?


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; 
  } 

Sé que es sólo un detalle, pero pensé que esto podría ser una pequeña mejora, sobre todo en caso de un historial de órdenes demasiado grande.

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 :

Vale, pero la función sigue devolviendo sólo una de las órdenes perdidas, la más cercana a cero.

En este caso, ¿no sería lo mismo iterar de 0 a start-1 con un break?


Sé que es sólo un detalle, pero pensé que esto podría ser una pequeña mejora, sobre todo en caso de un historial de pedidos demasiado grande.

Ok, gracias, lo comprobaré y probaré todo.

Puede ser que el "break" sea muy útil.