HistoryDealGetInteger

Gibt die angeforderte Eigenschaft des Deals zurück. Eigenschaft des Deals muss des Typs datetime, int sein. Es gibt 2 Varianten der Funktion.

1. Gibt den wert der Eigenschaft sofort zurück.

long  HistoryDealGetInteger(
   ulong                       ticket_number,     // Ticket
   ENUM_DEAL_PROPERTY_INTEGER  property_id        // Identifikator der Eigeschaft
   );

2. Gibt true oder false zurück abhängig davon, ob die Funktion erfolgreich durchgeführt wird. Im Erfolgsfall wird der Wert der Eigenschaft in die Empfangsvariable gesetzt, die durch Referenz vom letzten Parameter übertragen wird.

bool  HistoryDealGetInteger(
   ulong                       ticket_number,     // Ticket
   ENUM_DEAL_PROPERTY_INTEGER  property_id,       // Identifikator der Eigenschaft
   long&                       long_var           // hier nehmen wir den Wert der Eigenschaft auf 
   );

Parameter

ticket_number

[in]  Ticket des Deals.

property_id

[in]  Identifikator der Eigenschaft des Deals. Wert kann einer der Enumerationswerte ENUM_DEAL_PROPERTY_INTEGER sein.

long_var

[out] Wert des Typs long.

Rückgabewert

Wert des Typs long.

Hinweis

Man muss nicht Ordern, Deals und Positionen verwechseln. Jeder Deal ist das Ergebnis der Ausführung einer Order, jede Position ist das Abschlussergebnis eines oder mehrerer Deals.

Beispiel:

//+------------------------------------------------------------------+
//| Trade function                                                   |
//+------------------------------------------------------------------+
void OnTrade()
  {
//--- Ticket des letzten Deals aus der Handelsgeschichte für eine Woche erhalten
   ulong last_deal=GetLastDealTicket();
   if(HistoryDealSelect(last_deal))
     {
      //--- Zeit des Deals in Millisekunden seit 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() failed for #%d. Eror code=%d",
                  last_deal,GetLastError());
//---
  }
//+------------------------------------------------------------------+
//| Gibt Ticket des letzten Deals in der Geschichte oder -1 zurück   |
//+------------------------------------------------------------------+
ulong GetLastDealTicket()
  {
//--- Geschichte für die letzte 7 Tagen erfordern
   if(!GetTradeHistory(7))
     {
      //--- Nachricht über fehlgeschlagenen Aufruf und Rückgabe -1
      Print(__FUNCTION__," HistorySelect() hat false zurückgegeben");
      return -1;
     }
//--- 
   ulong first_deal,last_deal,deals=HistoryOrdersTotal();
//--- wenn es Ordern gibt, anfangen wir mit ihnen zu arbeiten
   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;
     }
//--- keine Deals waren gefunden, Rückgabe -1
   return -1;
  }
//+------------------------------------------------------------------+
//| Geschichte für letzte Tage erfordert und gibt false beim Fehler zurück | 
//+------------------------------------------------------------------+
bool GetTradeHistory(int days)
  {
//--- definieren wir Wochenperiode, um eine Geschichte des Handels zu beantragen
   datetime to=TimeCurrent();
   datetime from=to-days*PeriodSeconds(PERIOD_D1);
   ResetLastError();
//--- Machen wir eine Anfrage und überprüfen wir die Ergebnisse
   if(!HistorySelect(from,to))
     {
      Print(__FUNCTION__," HistorySelect=false. Error code=",GetLastError());
      return false;
     }
//--- Geschichte erfolgreich empfangen
   return true;
  }

Sehen Sie auch

HistoryDealsTotal(), HistorySelect(), HistoryDealGetTicket(), Eigenschaften der Deals