MetaTrader 5 herunterladen

PositionGetInteger

Funktion gibt die angeforderte Eigenschaft der offenen Position zurück, vorher gewaehlt durch die Funktionen PositionGetSymbol oder PositionSelect. Positionseigenschaft muss der Art , int. sein. Es gibt zwei Arten der Funktion.

1. Gibt Wert der Eigenschaft direkt zurück.

long  PositionGetInteger(
   ENUM_POSITION_PROPERTY_INTEGER  property_id      // Eigenschaftsidentifikator
   );

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

bool  PositionGetInteger(
   ENUM_POSITION_PROPERTY_INTEGER  property_id,     // Iegenschaftsidentifikator
   long&                           long_var         // hier nehmen wir den Wert der Eigenschaft auf 
   );

Parameter

property_id

[in]  Identifikator der Positionseigenschaft . Wert kann einer der Enumerationswerte ENUM_POSITION_PROPERTY_INTEGER sein.

long_var

[out]  Variable der Art  long, die den Wert der angeforderten Eigenschaft annimmt.

Rückgabewert

Wert der Art long. Im Fall der fehlerhaften Ausführung gibt 0 zurück.

Bemerkung

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.

Für bestimmte Erhaltung der frischen Daten über die Position ist es empfehlenswert, die Funktion PositionSelect() aufzurufen, bevor man frische Daten aufruft.

Beispiel:

//+------------------------------------------------------------------+
//| Trade function                                                   |
//+------------------------------------------------------------------+
void OnTrade()
  {
//--- Überprüfen wir die Verfügbarkeit der Position und daraus Zeit ihrer Änderungen
   if(PositionSelect(_Symbol))
     {     
//--- Indikator der Position für weitere Arbeit mit ihr erhalten
      ulong position_ID=PositionGetInteger(POSITION_IDENTIFIER);
      Print(_Symbol," postion #",position_ID);
//--- Zeit der Positionerstellung in Millisekunden seit 01.01.1970 erhalten
      long create_time_msc=PositionGetInteger(POSITION_TIME_MSC);
      PrintFormat("Position #%d  POSITION_TIME_MSC = %i64 milliseconds => %s",position_ID,
                  create_time_msc,TimeToString(create_time_msc/1000));
//--- Zeit der letzte Änderung der Position in Millisekunden seit 01.01.1970 erhalten
      long update_time_sec=PositionGetInteger(POSITION_TIME_UPDATE);
      PrintFormat("Position #%d  POSITION_TIME_UPDATE = %i64 seconds => %s",
                  position_ID,update_time_sec,TimeToString(update_time_sec));
//--- Zeit der letzte Änderung der Position in Millisekunden seit 01.01.1970 erhalten
      long update_time_msc=PositionGetInteger(POSITION_TIME_UPDATE_MSC);
      PrintFormat("Position #%d  POSITION_TIME_UPDATE_MSC = %i64 milliseconds => %s",
                  position_ID,update_time_msc,TimeToString(update_time_msc/1000));
     }
//---
  }

Sehen Sie auch

PositionGetSymbol(), PositionSelect(), Eigenschaften der Positionen