PositionGetSymbol

Retourne le symbole correspondant à la position ouverte et sélectionne automatiquement la position pour l'utiliser ensuite avec les fonctions PositionGetDouble, PositionGetInteger, PositionGetString.

string  PositionGetSymbol(
   int  index      // indice dans la liste des positions
   );

Paramètres

index

[in]  Numéro de la position dans la liste des positions ouvertes.

Valeur de Retour

Valeur de type string. Si la position n'est pas trouvée, retourne une chaîne vide. Pour connaître le code d'erreur, utilisez la fonction GetLastError().

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.

Exemple :

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- récupère le nombre de positions ouvertes sur le compte
   int total=PositionsTotal();
   for(int i=0i<totali++)
     {
      //--- récupère le symbole de la position par son index dans la boucle sur i
      ResetLastError();
      string symbol=PositionGetSymbol(i);
      
      //--- si le symbole de la position est reçu avec succès, alors la position à l'index i est sélectionnée automatiquement
      //--- et nous pouvons obtenir ses propriétés en utilisant PositionGetDouble, PositionGetInteger et PositionGetString
      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;
        }
     }
   /*
   résultat :
   Position symbol at index 0GBPUSDposition typeSELL
   Position symbol at index 1EURUSDposition typeBUY
   */
  }

Voir également

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