PositionGetInteger

La funzione restituisce la proprietà richiesta di una posizione aperta, pre-selezionata usando PositionGetSymbol o PositionSelect. La proprietà della posizione deve essere datetime, tipo int. Ci sono 2 varianti della funzione.

1. Restituisce immediatamente il valore della proprietà.

long PositionGetInteger(
ENUM_POSITION_PROPERTY_INTEGERPROPERTY_ID// Property identifier
   );

2. Restituisce true o false, a seconda del successo della esecuzione della funzione. In caso di successo, il valore della proprietà è posto in una variabile passata per riferimento per l'ultimo parametro.

bool  PositionGetInteger(
   ENUM_POSITION_PROPERTY_INTEGER  property_id,     // Property identifier
   long&                           long_var         // Qui si accettano i valori della proprietà
   );

Parametri

property_id

[in] Identificatore della proprietà della posizione. Il valore può essere uno dei valori dell'enumerazione ENUM_POSITION_PROPERTY_INTEGER.

long_var

[out] Variabile di tipo long che accetta il valore della proprietà richiesta.

Valore restituito

Valore del tipo long. Se la funzione fallisce, viene restituito 0.

Nota

For the "netting" interpretation of positions (ACCOUNT_MARGIN_MODE_RETAIL_NETTING and ACCOUNT_MARGIN_MODE_EXCHANGE), only one position can exist for a symbol at any moment of time. This position is a result of one or more deals. Do not confuse positions with valid pending orders, which are also displayed on the Trading tab of the Toolbox window.

If individual positions are allowed (ACCOUNT_MARGIN_MODE_RETAIL_HEDGING), multiple positions can be open for one symbol.

Per garantire la ricezione dei nuovi dati sulla posizione, si raccomanda di chiamare PositionSelect() giusto prima di fare riferimento ad essi.

Esempio:

//+--------------------------------------------------------------------------------+
//| Funzione di Trade                                                              |
//+--------------------------------------------------------------------------------+
void OnTrade()
  {
//--- controlla se una posizione è presente e visualizza l'orario del suo cambiamento
   if(PositionSelect(_Symbol))
     {     
//--- riceve l'ID della posizione per l'ulteriore lavoro
      ulong position_ID=PositionGetInteger(POSITION_IDENTIFIER);
      Print(_Symbol," posizione #",position_ID);
//--- riceve l'orario di formazione della posizione in millisecondi dal 01.01.1970
      long create_time_msc=PositionGetInteger(POSITION_TIME_MSC);
      PrintFormat("Posizione #%d  POSITION_TIME_MSC = %i64 millisecondi => %s",position_ID,
                  create_time_msc,TimeToString(create_time_msc/1000));
//--- riceve l'orario dell'ultimo cambiamento della posizione, in secondi, dal 01.01.1970
      long update_time_sec=PositionGetInteger(POSITION_TIME_UPDATE);
      PrintFormat("Position #%d  POSITION_TIME_UPDATE = %i64 secondi => %s",
                  position_ID,update_time_sec,TimeToString(update_time_sec));
//--- riceve l'orario dell'ultimo cambiamento della posizione, in millisecondi, dal 01.01.1970
      long update_time_msc=PositionGetInteger(POSITION_TIME_UPDATE_MSC);
      PrintFormat("Position #%d  POSITION_TIME_UPDATE_MSC = %i64 millisecondi => %s",
                  position_ID,update_time_msc,TimeToString(update_time_msc/1000));
     }
//---
  }

Vedi anche

PositionGetSymbol(), PositionSelect(), Proprietà Posizioni