PositionGetInteger

La fonction retourne la propriété demandée d'une position ouverte, pré-sélectionnée avec PositionGetSymbol ou PositionSelect. La propriété de la position doit être de type datetime ou int. Il existe 2 variantes de cette fonction.

1. Retourne immédiatement la valeur de la propriété.

long  PositionGetInteger(
   ENUM_POSITION_PROPERTY_INTEGER  property_id      // Identifiant de la propriété
   );

2. Retourne true ou false, suivant le succès de la fonction. En cas de succès, la valeur de la propriété est placée dans la variable correspondante passée par référénce (le dernier paramètre).

bool  PositionGetInteger(
   ENUM_POSITION_PROPERTY_INTEGER  property_id,     // Identifiant de la propriété
   long&                           long_var         // Valeur de la propriété
   );

Parameters

property_id

[in]  Identifiant de la propriété de la position. La valeur peut être l'une des valeurs de l'énumération ENUM_POSITION_PROPERTY_INTEGER

long_var

[out]  Variable de type long qui prendra la valeur de la propriété demandée.

Valeur de Retour

Valeur de type long. Si la fonction échoue, retourne 0.

Note

Pour le "netting" des positions (ACCOUNT_MARGIN_MODE_RETAIL_NETTING et ACCOUNT_MARGIN_MODE_EXCHANGE), seule une position peut exister pour un même symbole à tout moment. Cette position est le résultat d'une ou plusieurs transactions. Ne confondez pas les positions avec les ordres en attente valides, qui sont également affichés dans l'onglet Trading de la fenêtre Boîte à Outils.

Si les positions individuelles sont autorisées (ACCOUNT_MARGIN_MODE_RETAIL_HEDGING), plusieurs positions peuvent être ouvertes pour un même symbole.

Pour être sûr d'utiliser les données à jour d'une position, il est recommandé d'appeler PositionSelect() juste avant son utilisation.

Exemple :

//+------------------------------------------------------------------+
//| Fonction Trade                                                   |
//+------------------------------------------------------------------+
void OnTrade()
  {
//--- vérifie si la position est présente et affiche l'heure de son changement
   if(PositionSelect(_Symbol))
     {     
//--- récupère l'identifiant de la position pour pouvoir l'utiliser ensuite
      ulong position_ID=PositionGetInteger(POSITION_IDENTIFIER);
      Print(_Symbol," position #",position_ID);
//--- récupère l'heure de création de la position en millisecondes depuis le 01.01.1970
      long create_time_msc=PositionGetInteger(POSITION_TIME_MSC);
      PrintFormat("Position #%d  POSITION_TIME_MSC = %i64 millisecondes => %s",position_ID,
                  create_time_msc,TimeToString(create_time_msc/1000));
//--- récupère l'heure du dernier changement de la position en secondes depuis le 01.01.1970
      long update_time_sec=PositionGetInteger(POSITION_TIME_UPDATE);
      PrintFormat("Position #%d  POSITION_TIME_UPDATE = %i64 secondes => %s",
                  position_ID,update_time_sec,TimeToString(update_time_sec));
//--- récupère l'heure du dernier changement de la position en millisecondes depuis le 01.01.1970
      long update_time_msc=PositionGetInteger(POSITION_TIME_UPDATE_MSC);
      PrintFormat("Position #%d  POSITION_TIME_UPDATE_MSC = %i64 millisecondes => %s",
                  position_ID,update_time_msc,TimeToString(update_time_msc/1000));
     }
//---
  }

Voir également

PositionGetSymbol(), PositionSelect(), Propriétés d'une Position