HistoryOrderGetTicket

Gibt Ticket der entsprechenden Order in der Geschichte zurück. Vor dem Aufruf von HistorySelect() muss man die Historie der Deals und Orders mit der Funktion HistorySelectByPosition() oder HistorySelectByPosition() abrufen.

ulong  HistoryOrderGetTicket(
   int  index      // Nummer in der Orderliste
   );

Parameter

index

[in] Ordernummer in der Orderliste.

Rückgabewert

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

Hinweis

Man muss nicht Ordern aus der Handelsgeschichte und geltende Warteordern verwechseln, die in der Registerkarte "Handel" in der Werkzeugleiste "Instrumente" dargestellt werden. Die Liste der Ordern, die annulliert wurden oder zur Ausführung der Handelsoperation geführt haben, kann man in der Registerkarte "Geschichte" in der Werkzeugleiste "Instrumente" des Client-Terminals sehen.

Beispiel:

void OnStart()
  {
   datetime from=0;
   datetime to=TimeCurrent();
//--- fordern wir die ganze Geschichte an 
   HistorySelect(from,to);
//--- Variablen für Erhaltung der Werte aus Ordereigenschaften 
   ulong    ticket;
   double   open_price;
   double   initial_volume;
   datetime time_setup;
   datetime time_done;
   string   symbol;
   string   type;
   long     order_magic;
   long     positionID;
//--- Anzahl der laufenden suspendierten Order 
   uint     total=HistoryOrdersTotal();
//--- Gehen wir im Zyklus durch alle Order 
   for(uint i=0;i<total;i++)
     {
      //--- Erhalten wir Ticket der Order nach ihrer Position in der Liste 
      if((ticket=HistoryOrderGetTicket(i))>0)
        {
         //--- Erhalten wir Eigenschaften der Order 
         open_price=       HistoryOrderGetDouble(ticket,ORDER_PRICE_OPEN);
         time_setup=       (datetime)HistoryOrderGetInteger(ticket,ORDER_TIME_SETUP);
         time_done=        (datetime)HistoryOrderGetInteger(ticket,ORDER_TIME_DONE);
         symbol=           HistoryOrderGetString(ticket,ORDER_SYMBOL);
         order_magic=      HistoryOrderGetInteger(ticket,ORDER_MAGIC);
         positionID =      HistoryOrderGetInteger(ticket,ORDER_POSITION_ID);
         initial_volume=   HistoryOrderGetDouble(ticket,ORDER_VOLUME_INITIAL);
         type=GetOrderType(HistoryOrderGetInteger(ticket,ORDER_TYPE));
         //--- bereiten wir die information über Order vor und geben sie aus 
         printf("#ticket %d %s %G %s at %G was set up at %s => done at %s, pos ID=%d",
                ticket,                  // Orderticket
                type,                    // Typ
                initial_volume,          // das gestellte Volumen 
                symbol,                  // Symbol, für das gestellt wird 
                open_price,              // der angegeben Eroeffnungspreis 
                TimeToString(time_setup),// Zeit der Ordereinstellung 
                TimeToString(time_done), // Zeit der Durchführung oder der Entfernung 
                positionID               // ID der Position, in die das Ordergeschaeft einbeschlossen ist  
                );
        }
     }
//---
  }
//+------------------------------------------------------------------+
//| Gibt die Zeilenbenennung des Ordertyps zurück                    |
//+------------------------------------------------------------------+
string GetOrderType(long type)
  {
   string str_type="unknown operation";
   switch(type)
     {
      case (ORDER_TYPE_BUY):            return("buy");
      case (ORDER_TYPE_SELL):           return("sell");
      case (ORDER_TYPE_BUY_LIMIT):      return("buy limit");
      case (ORDER_TYPE_SELL_LIMIT):     return("sell limit");
      case (ORDER_TYPE_BUY_STOP):       return("buy stop");
      case (ORDER_TYPE_SELL_STOP):      return("sell stop");
      case (ORDER_TYPE_BUY_STOP_LIMIT): return("buy stop limit");
      case (ORDER_TYPE_SELL_STOP_LIMIT):return("sell stop limit");
     }
   return(str_type);
  }

Sehen Sie auch

HistorySelect(), HistoryOrdersTotal(), HistoryOrderSelect(), Ordereigenschaften