HistoryDealGetTicket

Waehlt den Deal für die weitere Verarbeitung und gibt Ticket des Deales in der Geschichte zurück. Prior to calling HistoryDealGetTicket(), first it is necessary to receive the history of deals and orders using the HistorySelect() or HistorySelectByPosition() function.

ulong  HistoryDealGetTicket(
   int  index      // Nummer des Deals
   );

Parameter

index

[in]  Nummer des Deals in der Dealsliste.

Rückgabewert

Wert des Typs ulong. Im Fall der fehlerhaften Ausführung gibt 0 zurück.

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:

void OnStart()
  {
   ulong deal_ticket;            // Ticket des Deals
   ulong order_ticket;           // Ticket der Order, für den Deal durchgeführt wurde 
   datetime transaction_time;    // Zeit der Transaktion  
   long deal_type ;              // Typ der Handelsoperation 
   long position_ID;             // Identifikator der Position 
   string deal_description;      // Beschreibung der Operation 
   double volume;                // Volumen der Operation
   string symbol;                // Symbol des Deals 
//--- stellen wir das Anfangsdatum und das Schlussdatum für Anforderung der Dealssgeschichte 
   datetime from_date=0;          // vom Anfang 
   datetime to_date=TimeCurrent();// bis zum laufenden Zeitpunkt 
//--- fordern wir die Dealsgeschichte im angegebenen Interval an 
   HistorySelect(from_date,to_date);
//--- gesamte Anzahl in der Liste der Deals 
   int deals=HistoryDealsTotal();
//--- jetzt verarbeiten wir jeden Deal
   for(int i=0;i<deals;i++)
     {
      deal_ticket=               HistoryDealGetTicket(i);
      volume=                    HistoryDealGetDouble(deal_ticket,DEAL_VOLUME);
      transaction_time=(datetime)HistoryDealGetInteger(deal_ticket,DEAL_TIME);
      order_ticket=              HistoryDealGetInteger(deal_ticket,DEAL_ORDER);
      deal_type=                 HistoryDealGetInteger(deal_ticket,DEAL_TYPE);
      symbol=                    HistoryDealGetString(deal_ticket,DEAL_SYMBOL);
      position_ID=               HistoryDealGetInteger(deal_ticket,DEAL_POSITION_ID);
      deal_description=          GetDealDescription(deal_type,volume,symbol,order_ticket,position_ID);
      //--- machen wir das schoene Formatieren für Dealnummer  
      string print_index=StringFormat("% 3d",i);
      //--- geben wir Information über den Deal aus 
      Print(print_index+": deal #",deal_ticket," at ",transaction_time,deal_description);
     }
  }
//+------------------------------------------------------------------+
//| Gibt die Zeilenbeschreibung der Operation zurück                 |
//+------------------------------------------------------------------+
string GetDealDescription(long deal_type,double volume,string symbol,long ticket,long pos_ID)
  {
   string descr;
//---
   switch(deal_type)
     {
      case DEAL_TYPE_BALANCE:                  return ("balance");
      case DEAL_TYPE_CREDIT:                   return ("credit");
      case DEAL_TYPE_CHARGE:                   return ("charge");
      case DEAL_TYPE_CORRECTION:               return ("correction");
      case DEAL_TYPE_BUY:                      descr="buy"break;
      case DEAL_TYPE_SELL:                     descr="sell"break;
      case DEAL_TYPE_BONUS:                    return ("bonus");
      case DEAL_TYPE_COMMISSION:               return ("additional commission");
      case DEAL_TYPE_COMMISSION_DAILY:         return ("daily commission");
      case DEAL_TYPE_COMMISSION_MONTHLY:       return ("monthly commission");
      case DEAL_TYPE_COMMISSION_AGENT_DAILY:   return ("daily agent commission");
      case DEAL_TYPE_COMMISSION_AGENT_MONTHLYreturn ("monthly agent commission");
      case DEAL_TYPE_INTEREST:                 return ("interest rate");
      case DEAL_TYPE_BUY_CANCELED:             descr="cancelled buy deal"break;
      case DEAL_TYPE_SELL_CANCELED:            descr="cancelled sell deal"break;
     }
   descr=StringFormat("%s %G %s (order #%d, position ID %d)",
                      descr,  // laufender Zustand
                      volume, // Dealsvolumen
                      symbol, // Symbol des Deals 
                      ticket, // Ticket der Order, die den Deal aufgerufen hat 
                      pos_ID  // ID der Position des Deals
                      );
   return(descr);
//---
  }

Sehen Sie auch

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