HistorySelect

Fragt die Historie von Deals und Orders für den angegebenen Zeitraum der Serverzeit ab.

bool  HistorySelect(
   datetime  from_date,     // von
   datetime  to_date        // bis
   );

Parameter

from_date

[in]  Anfangsdatum der Abfrage.

to_date

[in]  Enddatum der Abfrage.

Rückgabewert

Gibt true im Erfolgsfall zurück, andernfalls false.

Hinweis

Die Funktion HistorySelect() erstellt im mql5-Programm eine Liste von Orders und eine Liste von Deals für den weiteren Zugriff auf die Elemente der Liste mithilfe der entsprechenden Funktionen. Die Größe der Liste von Deals kann mithilfe der Funktion HistoryDealsTotal() festgestellt werden, die Größe der Liste von Orders in der Historie - mit HistoryOrdersTotal(). Am besten iteriert man über die Liste von Orders mit der Funktion HistoryOrderGetTicket(), für die Elemente der Liste von Deals ist die Funktion HistoryDealGetTicket() geeignet.

Nach der Verwendung der Funktion HistoryOrderSelect() wird die Liste der Orders in der Historie, die für das mql5-Programm zugänglich sind, gelöscht und mit der gefundene Order ausgefüllt, wenn die Suche der Order nach Ticket erfolgreich abgeschlossen wurde. Das Gleiche gilt für die Liste der Deals, die für das mql5-Programm zugänglich sind: die Liste wird mit der Funktion HistoryDealSelect() gelöscht und erneut ausgefüllt, wenn ein Deal nach Ticketnummer erfolgreich gefunden wurde.

Beispiel:

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();
  }

Siehe auch

HistoryOrderSelect(), HistoryDealSelect()