HistoryDealGetInteger

La función devuelve la propiedad solicitada de una transacción. La propiedad de la transacción tiene que ser del tipo datetime, int. Existen 2 variantes de la función.

1. Devuelve el valor de la propiedad directamente.

long  HistoryDealGetInteger(
   ulong                       ticket_number,     // ticket
   ENUM_DEAL_PROPERTY_INTEGER  property_id        // identificador de la propiedad
   );

2. Devuelve true o false dependiendo del éxito de ejecución de la función. En caso del éxito el valor de la propiedad se coloca en una variable receptora que el último parámetro pasa por referencia.

bool  HistoryDealGetInteger(
   ulong                       ticket_number,     // ticket
   ENUM_DEAL_PROPERTY_INTEGER  property_id,       // identificador de la propiedad
   long&                       long_var           // aquí recibimos el valor de la propiedad
   );

Parámetros

ticket_number

[in]  Ticket de transacción.

property_id

[in]  Identificador de la propiedad de transacción. Su valor puede ser uno de los valores de la enumeración ENUM_DEAL_PROPERTY_INTEGER.

long_var

[out]  Variable del tipo long que recibe el valor de la propiedad requerida.

Valor devuelto

Valor del tipo long.

Nota

No se puede confundir las órdenes, transacciones y posiciones. Cada transacción es el resultado de la ejecución de una orden, mientras que cada posición es el resultado final de una o más transacciones.

Ejemplo:

//+------------------------------------------------------------------+
//| Trade function                                                   |
//+------------------------------------------------------------------+
void OnTrade()
  {
//--- obtenemos el ticket de la última transacción desde el historial de trading semanal
   ulong last_deal=GetLastDealTicket();
   if(HistoryDealSelect(last_deal))
     {
      //--- tiempo de ejecución de transacción en milisegundos desde 01.01.1970
      long deal_time_msc=HistoryDealGetInteger(last_deal,DEAL_TIME_MSC);
      PrintFormat("Deal #%d DEAL_TIME_MSC=%i64 => %s",
                  last_deal,deal_time_msc,TimeToString(deal_time_msc/1000));
     }
   else
      PrintFormat("HistoryDealSelect() failed for #%d. Eror code=%d",
                  last_deal,GetLastError());
//---
  }
//+------------------------------------------------------------------+
//|  devuelve el ticket de la última transacción en el historial o -1              |
//+------------------------------------------------------------------+
ulong GetLastDealTicket()
  {
//--- solicitamos el historial de los últimos 7 días
   if(!GetTradeHistory(7))
     {
      //--- avisamos sobre la llamada fallida y devolvemos -1
      Print(__FUNCTION__," HistorySelect() ha devuelto false");
      return -1;
     }
//--- 
   ulong first_deal,last_deal,deals=HistoryOrdersTotal();
//--- si hay órdenes, empezamos a trabajar con ellas
   if(deals>0)
     {
      Print("Deals = ",deals);
      first_deal=HistoryDealGetTicket(0);
      PrintFormat("first_deal = %d",first_deal);
      if(deals>1)
        {
         last_deal=HistoryDealGetTicket((int)deals-1);
         PrintFormat("last_deal = %d",last_deal);
         return last_deal;
        }
      return first_deal;
     }
//--- no hemos encontrado ninguna transacción, devolveremos -1
   return -1;
  }
//+------------------------------------------------------------------+
//| solicita el historial de los últimos días y devuelve false en caso de fallo  | 
//+------------------------------------------------------------------+
bool GetTradeHistory(int days)
  {
//--- fijamos un período de tiempo semanal para solicitar el historial de trading
   datetime to=TimeCurrent();
   datetime from=to-days*PeriodSeconds(PERIOD_D1);
   ResetLastError();
//--- hacemos la solicitud y comprobamos el resultado
   if(!HistorySelect(from,to))
     {
      Print(__FUNCTION__," HistorySelect=false. Error code=",GetLastError());
      return false;
     }
//--- historial recibido con éxito
   return true;
  }

Véase también

HistoryDealsTotal(), HistorySelect(), HistoryDealGetTicket(), Propiedades de transacciones