HistorySelect

Recupera la cronistoria degli affari e degli ordini per il periodo di tempo specificato del server time

bool  HistorySelect(
   datetime  from_date,     // Dalla data di
   datetime  to_date        // Alla data di
   );

Parametri

from_date

[in] Data di inizio della richiesta.

to_date

[in]  Fine della data della richiesta.

Valore restituito

Restituisce true se ha successo, altrimenti restituisce false.

Nota

HistorySelect() crea un elenco di ordini e un elenco di trades in un programma-mql5, per l'ulteriore riferimento agli elementi di lista che usano le funzioni corrispondenti. La grandezza dell'elenco degli affari può essere restituita con la funzione HistoryDealsTotal (), la grandezza della lista degli ordini nella cronistoria può essere ottenuta usando HistoryOrdersTotal(). La selezione nella lista degli ordini dovrebbe essere meglio eseguita da HistoryOrderGetTicket(), per gli elementi nella lista delle offerte HistoryDealGetTicket() si adatta meglio.

Dopo aver usato HistoryOrderSelect(), l'elenco degli ordini nella cronistoria disponibile per il programma mql5 è resettata e nuovamente riempita dall'ordine trovato, se la ricerca di un ordine da parte del ticket è stata completata con successo. Lo stesso vale per l'elenco delle offerte disponibili per il programma mql5 - è resettato da HistoryDealSelect() e riempito nuovamente in caso di avvenuta ricezione di un numero di ticket di un affare.

Esempio:

voidOnStart()
  {
   color BuyColor =clrBlue;
   color SellColor=clrRed;
//--- richiede la cronistoria di trade
   HistorySelect(0,TimeCurrent());
//--- crea oggetti
   string   name;
   uint     total=HistoryDealsTotal();
   ulong    ticket=0;
   double   price;
   double   profit;
   datetime time;
   string   symbol;
   long     type;
   long     entry;
//--- per tutti gli affari
   for(uint i=0;i<total;i++)
     {
//--- cerca di ottenere i ticket degli affari
      if((ticket=HistoryDealGetTicket(i))>0)
        {
         //--- ottiene le proprietà delle offerte
         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);
         //--- solo per simbolo corrente
         if(price && time && symbol==Symbol())
           {
            //--- crea l'oggetto prezzo
            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);
            //--- imposta le proprietà dell'oggetto
            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));
           }
        }
     }
//--- applica sul grafico
   ChartRedraw();
  }

Vedi anche

HistoryOrderSelect(), HistoryDealSelect()