PositionGetSymbol

Gibt das Symbol der entsprechenden offenen Position zurück und wählt automatisch die Position für die weitere Arbeit mit den Funktionen PositionGetDouble,PositionGetInteger, PositionGetString aus.

string  PositionGetSymbol(
   int  index      // Index in der Positionenliste
   );

Parameter

index

[in]  Positionsnummer in der Liste offener Positionen.

Rückgabewert

Wert vom Typ string. Wenn die Position nicht gefunden wird, wird eine leere Zeichenkette zurückgegeben. Um den Fehlercode zu erhalten, rufen Sie die Funktion GetLastError().

Hinweis

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 mehrerer Handelsgeschäfte darstellt. Man darf Positionen und aktuelle Pending Orders, die auch im Tab Handel in der Werkzeugleiste angezeigt werden, nicht miteinander verwechseln.

Bei einer unabhängigen Verrechnung von Positionen (ACCOUNT_MARGIN_MODE_RETAIL_HEDGING) können gleichzeitig mehrere Positionen für ein Symbol existieren.

Beispiel:

//+------------------------------------------------------------------+
//| Skript Programm Start Funktion                                   |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- Anzahl der offenen Positionen auf dem Konto abrufen
   int total=PositionsTotal();
   for(int i=0i<totali++)
     {
      //--- Positionssymbol über den Schleifenindex i abrufen
      ResetLastError();
      string symbol=PositionGetSymbol(i);
      
      //--- wenn das Positionssymbol erfolgreich empfangen wurde, wird die Position mit dem Index i automatisch ausgewählt
      //--- und wir können dann weitere Eigenschaften mit PositionGetDouble, PositionGetInteger und PositionGetString abrufen
      if(symbol!="")
        {
         ENUM_POSITION_TYPE type=(ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE);
         PrintFormat("Position symbol at index %d: %s, position type: %s"isymbolStringSubstr(EnumToString(type), 14));
        }
      else
        {
         PrintFormat("PositionGetSymbol(%d) failed. Error %d"iGetLastError());
         continue;
        }
     }
   /*
   Ergebnis:
   Position symbol at index 0GBPUSDposition typeSELL
   Position symbol at index 1EURUSDposition typeBUY
   */
  }

Siehe auch

PositionsTotal(), PositionSelect(), Eigenschaften der Positionen