HistoryDealGetInteger

Retorna a propriedade solicitada de uma operação. A propriedade de operação deve ser de tipo datetime, int. Existem 2 variantes da função.

1. Imediatamente retorna o valor da propriedade.

long  HistoryDealGetInteger(
   ulong                       ticket_number,     // Ticket (bilhete)
   ENUM_DEAL_PROPERTY_INTEGER  property_id        // Identificador de propriedade
   );

2. Retorna true ou false dependendo do sucesso da função. Se for bem sucedido, o valor da propriedade está situada dentro de uma variável de destino passado por referência pelo último parâmetro.

bool  HistoryDealGetInteger(
   ulong                       ticket_number,     // Ticket (bilhete)
   ENUM_DEAL_PROPERTY_INTEGER  property_id,       // Identificador de propriedade
   long&                       long_var           // Aqui nós aceitamos o valor da propriedade
   );

Parâmetros

ticket_number

[in]  Ticket (bilhete) de negócio.

property_id

[in]  Identificador da propriedade de operação. O valor pode ser um dos valores da enumeração ENUM_DEAL_PROPERTY_INTEGER.

long_var

[out]  Variável do tipo long que aceita o valor da propriedade requerida.

Valor do Retorno

Valor do tipo long.

Observação

Não confunda ordens, operações e posições. Cada operação é o resultado da execução de uma ordem, cada posição é o resumo de um ou mais operações.

Exemplo:

//+------------------------------------------------------------------+
//| Função Trade                                                     |
//+------------------------------------------------------------------+
void OnTrade()
  {
//--- receber ticket da última operação do histórico comercial da semana
   ulong last_deal=GetLastDealTicket();
   if(HistoryDealSelect(last_deal))
     {
      //--- tempo de operações executadas em milissegundos 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() falhou por #%d. Código de erro=%d",
                  last_deal,GetLastError());
//---
  }
//+------------------------------------------------------------------+
//| Retorna o último bilhete de operação no histórico ou -1          |
//+------------------------------------------------------------------+
ulong GetLastDealTicket()
  {
requisita o histórico para os últimos 7 dias
   if(!GetTradeHistory(7))
     {
      //--- notificar sobre chamada sem sucesso e retorno -1
      Print(__FUNCTION__," HistorySelect() retornou false");
      return -1;
     }
//--- 
   ulong first_deal,last_deal,deals=HistoryOrdersTotal();
//--- trabalhar com ordens se houver alguma
   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;
     }
//--- nenhuma operação encontrada, retornar -1
   return -1;
  }
//+---------------------------------------------------------------------------------+
//| Solicitações de histórico para os últimos dias e retorna false em caso de falha |
//+---------------------------------------------------------------------------------+
bool GetTradeHistory(int days)
  {
//--- define um período da semana para solicitar histórico da operação
   datetime to=TimeCurrent();
   datetime from=to-days*PeriodSeconds(PERIOD_D1);
   ResetLastError();
//--- fazer um pedido e verificar o resultado
   if(!HistorySelect(from,to))
     {
      Print(__FUNCTION__," HistorySelect=false. Código de erro=",GetLastError());
      return false;
     }
//--- histórico recebido com sucesso
   return true;
  }

Também Veja

HistorySelect(), HistoryDealsTotal(), HistoryDealSelect(), Propriedades de uma Operação