MetaTrader 5 herunterladen

HistorySelect

Ruft die Geschichte der Deals und Ordern für die angegebene Periode der Serverzeit ab.

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

Parameter

from_date

[in]  Anfangsdatum der Anforderung.

to_date

[in]  Beendigungsdatum der Anforderung.

Rückgabewert

Gibt true im Erfolgsfall zurück, anderenfalls false.

Bemerkung

Funktion HistorySelect() erzeugt im mql5-Programm die Liste der Ordern und die Liste der Deals für weitere Aufrufe der Elemente der Liste mittels der entsprechenden Funktionen. Die Größe der Liste der Deals kann man mittels der Funktion HistoryDealsTotal() erfahren, die Grösse der Liste der Ordern in der Geschichte kann man mittels HistoryOrdersTotal() erfahren. Elemente der Liste der Ordern ist es am besten mittels der Funktion HistoryOrderGetTicket() durchzusehen, für Elemente der Liste der Deals passt die Funktion HistoryDealGetTicket().

Nach Verwendung der Funktion HistoryOrderSelect() wird die Liste der Ordern in der Geschichte, die für mql5-Programm zugänglich ist, gelöscht und von einer erneut gefundenen Order ausgefüllt, wenn die Suche der Order nach Ticket erfolgreich beendet hat. Dasselbe bezieht sich auf die Liste der Deals, die für mql5-Programm zugänglich ist — sie wird von der Funktion HistoryDealSelect() gelöscht und erneut ausgefüllt, wenn der Deal nach Ticketnummer erfolgreich erhalten ist.

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

Sehen Sie auch

HistoryOrderSelect(), HistoryDealSelect()