OrderGetTicket

Gibt Ticket der ensprechenden Order zurück und waehlt automatisch Order für die weitere Arbeit damit mittels Funktionen .

ulong  OrderGetTicket(
   int  index      // Nummer in Orderliste
   );

Parameter

index

[in]  Ordernummer in Orderliste.

Rückgabewert

Wert der Art ulong.

Hinweis

Man muss nicht geltende Warteordern und Positionen verwechseln, die auch in der Registerkarte "Handel" in der Werkzeigleiste "Instrumente" dargestellt werden. Order ist ein Befehl, eine Handelsoperation durchzuführen, und Position ist das Ergebnis eines oder mehrerer Deals.

Im Netting Mode (ACCOUNT_MARGIN_MODE_RETAIL_NETTING und ACCOUNT_MARGIN_MODE_EXCHANGE) kann nur eine Position pro Symbol vorhanden sein, die das Ergebnis eines oder mehreren Trades darstellt. Man darf Positionen und aktuelle Pending Orders, die auch im Tab Handel in der Werkzeugleiste angezeigt werden, nicht verwechseln.

Bei einer unabhängigen Verrechnung von Positionen (ACCOUNT_MARGIN_MODE_RETAIL_HEDGING)können gleichzeitig mehrere Positionen auf einem Symbol vorhanden sein.

Funktion OrderGetTicket() kopiert Daten über die Order ins Programmumfeld und weitere Aufrufe OrderGetDouble(), OrderGetInteger(), OrderGetString() geben die früher kopierten Daten zurück. Das bedeutet, dass die Order selbst nicht mehr sein (oder darin haben sich Eröffnungspreis, Levels Stop Loss / Take Profitoder Gültigkeitsfrist verändert), aber die Daten nach dieser Order können noch erhalten werden. Für bestimmte Erhaltung der frischen Daten über die Position ist es empfehlenswert, die Funktion OrderGetTicket() aufzurufen, bevor man frische Daten aufruft

Beispiel:

void OnStart()
  {
//--- Variablen für Erhaltung der Werte aus Ordereigenschaften 
   ulong    ticket;
   double   open_price;
   double   initial_volume;
   datetime time_setup;
   string   symbol;
   string   type;
   long     order_magic;
   long     positionID;
//--- Anzahl der laufenden Warteorder 
   uint     total=OrdersTotal();
//--- gehen wir im Zyklus durch alle Ordern 
   for(uint i=0;i<total;i++)
     {
      //--- erhalten wir Orderticket in Bezug auf seine Position in der Liste 
      if((ticket=OrderGetTicket(i))>0)
        {
         //--- erhlaten wir Ordereigenschaften 
         open_price    =OrderGetDouble(ORDER_PRICE_OPEN);
         time_setup    =(datetime)OrderGetInteger(ORDER_TIME_SETUP);
         symbol        =OrderGetString(ORDER_SYMBOL);
         order_magic   =OrderGetInteger(ORDER_MAGIC);
         positionID    =OrderGetInteger(ORDER_POSITION_ID);
         initial_volume=OrderGetDouble(ORDER_VOLUME_INITIAL);
         type          =EnumToString(ENUM_ORDER_TYPE(OrderGetInteger(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",
                ticket,                 // Orderticket
                type,                   // Typ
                initial_volume,         // das gestellte Volumen 
                symbol,                 // Symbol, für das gestellt ist 
                open_price,             // der angegebene Eroeffnungspreis  
                TimeToString(time_setup)// Zeit der Orderstellung 
                );
        }
     }
//---
  }

Sehen Sie auch

OrdersTotal(), OrderSelect(), OrderGetInteger()