HistorySelect

Recupera o histórico de transações e ordens para o período do tempo de servidor especificado.

bool  HistorySelect(
   datetime  from_date,     // a partir da data
   datetime  to_date        // até à data
   );

Parâmetros

from_date

[in]  Data de inicio do pedido.

to_date

[in]  Data de término do pedido.

Valor do Retorno

Retorna verdadeiro true se bem sucedido, caso contrário false.

Observação

HistorySelect() cria uma lista de pedidos e uma lista de comércios em um programa de MQL5, para posterior referindo-se aos elementos da lista usando as funções correspondentes. O tamanho da lista de negócios pode ser devolvido através da função HistoryDealsTotal() o tamanho da lista de encomendas na história pode ser obtida usando HistoryOrdersTotal(). Seleção na lista de pedidos deve ser melhor realizado por HistoryOrderGetTicket(), para itens na lista de negócios HistoryDealGetTicket() se encaixarem melhor.

Depois de usar HistoryOrderSelect(), a lista de pedidos de história disponíveis para o programa MQL5 é reposto e completada novamente pela ordem encontrada, se a busca de uma ordem do ticket foi concluída com sucesso. O mesmo aplica-se à lista de ofertas disponíveis para o programa MQL5 - é reiniciado pelo HistoryDealSelect() e preenchido novamente no caso de uma recepção bem sucedida de um negócio pelo número do ticket.

Exemplo:

void OnStart()
  {
   color BuyColor =clrBlue;
   color SellColor=clrRed;
//--- história do negócio pedido
   HistorySelect(0,TimeCurrent());
//--- cria objetos
   string   name;
   uint     total=HistoryDealsTotal();
   ulong    ticket=0;
   double   price;
   double   profit;
   datetime time;
   string   symbol;
   long     type;
   long     entry;
//--- para todos os negócios
   for(uint i=0;i<total;i++)
     {
      //--- tentar obter ticket negócios
      if((ticket=HistoryDealGetTicket(i))>0)
        {
         //--- obter as propriedades negócios
         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);
         //--- apenas para o símbolo atual
         if(price && time && symbol==Symbol())
           {
            //--- cria o preço do objeto
            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);
            //--- definir propriedades do objeto
            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));
           }
        }
     }
//--- aplicar no gráfico
   ChartRedraw();
  }

Também Veja

HistoryOrderSelect(), HistoryDealSelect()