Descargar MetaTrader 5

HistorySelect

Solicita el historial de transacciones y órdenes del período especificado de la hora del servidor.

bool  HistorySelect(
   datetime  from_date,     // desde la fecha
   datetime  to_date        // hasta la fecha
   );

Parámetros

from_date

[in]  Fecha inicial de solicitud.

to_date

[in]  Fecha final de solicitud.

Valor devuelto

Devuelve true en caso de éxito, de lo contrario devuelve false.

Nota

La función HistorySelect() crea en el programa mql5 la lista de órdenes y la de transacciones para recurrir posteriormente a estos elementos a través de las funciones correspondientes. El tamaño de la lista de transacciones se puede saber usando la función HistoryDealsTotal(), el tamaño de la lista de órdenes en el historial se puede averiguar con HistoryOrdersTotal(). La selección de los elementos de la lista de órdenes es mejor realizar usando la función HistoryOrderGetTicket(), para los elementos de la lista de transacciones mejor conviene la función HistoryDealGetTicket().

Después de usar la función HistoryOrderSelect() la lista de órdenes en el historial, que están disponibles para el programa mql5, se pone a cero y se llena de nuevo con la orden encontrada, si la búsqueda de orden por el ticket ha sido completada con éxito. Lo mismo se refiere a la lista de transacciones disponibles en el programa mql5, es decir, se pone a cero con la función HistoryDealSelect() y vuelve a llenarse en caso de recibir con éxito una transacción por el número del ticket.

Ejemplo:

void OnStart()
  {
   color BuyColor =clrBlue;
   color SellColor=clrRed;
//--- request trade history
   HistorySelect(0,TimeCurrent());
//--- create objects
   string   name;
   uint     total=HistoryDealsTotal();
   ulong    ticket=0;
   double   price;
   double   profit;
   datetime time;
   string   symbol;
   long     type;
   long     entry;
//--- for all deals
   for(uint i=0;i<total;i++)
     {
      //--- try to get deals ticket
      if((ticket=HistoryDealGetTicket(i))>0)
        {
         //--- get deals properties
         price =HistoryDealGetDouble(ticket,DEAL_PRICE);
         time  =(datetime)HistoryDealGetInteger(ticket,DEAL_TIME);
         symbol=HistoryDealGetString(ticket,DEAL_SYMBOL);
         type  =HistoryDealGetInteger(ticket,DEAL_TYPE);
         entry =HistoryDealGetInteger(ticket,DEAL_ENTRY);
         profit=HistoryDealGetDouble(ticket,DEAL_PROFIT);
         //--- only for current symbol
         if(price && time && symbol==Symbol())
           {
            //--- create price object
            name="TradeHistory_Deal_"+string(ticket);
            if(entry) ObjectCreate(0,name,OBJ_ARROW_RIGHT_PRICE,0,time,price,0,0);
            else      ObjectCreate(0,name,OBJ_ARROW_LEFT_PRICE,0,time,price,0,0);
            //--- set object properties
            ObjectSetInteger(0,name,OBJPROP_SELECTABLE,0);
            ObjectSetInteger(0,name,OBJPROP_BACK,0);
            ObjectSetInteger(0,name,OBJPROP_COLOR,type?BuyColor:SellColor);
            if(profit!=0) ObjectSetString(0,name,OBJPROP_TEXT,"Profit: "+string(profit));
           }
        }
     }
//--- apply on chart
   ChartRedraw();
  }

Véase también

HistoryOrderSelect(), HistoryDealSelect()