PositionGetInteger

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

1. Restituisce immediatamente il valore della proprietà.

long PositionGetInteger(
ENUM_POSITION_PROPERTY_INTEGERPROPERTY_ID// Identificativo della proprietà
   );

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 dall'ultimo parametro.

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

Parametri

property_id

[in] Identificativo 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

Per l'interpretazione "netting" delle posizioni (ACCOUNT_MARGIN_MODE_RETAIL_NETTING e ACCOUNT_MARGIN_MODE_EXCHANGE), può esistere in qualsiasi momento una sola posizione per un simbolo. Questa posizione è il risultato di una o più operazioni. Non confondere le posizioni con gli ordini pendenti vigenti, che sono anche visualizzati nella scheda Trading della finestra BoxAttrezzi.

Se sono ammesse posizioni individuali (ACCOUNT_MARGIN_MODE_RETAIL_HEDGING), per un simbolo possono essere aperte più posizioni.

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à delle Posizioni