SymbolInfoString

Retourne la propriété correspondante du symbole indiqué. Il y a 2 variantes à la fonction.

1. Retourne directement la valeur de la propriété.

string  SymbolInfoString(
   string                    name,       // symbole
   ENUM_SYMBOL_INFO_STRING   prop_id     // identificateur de la propriété
   );

2. Retourne true ou false en fonction du succès de l'exécution de la fonction. En cas du succès, la valeur de la propriété est placée dans la variable 'string_var' transmise par référence.

bool  SymbolInfoString(
   string                   name,        // symbole
   ENUM_SYMBOL_INFO_STRING  prop_id,     // identificateur de la propriété
   string&                  string_var   // valeur obtenue
   );

Paramètres

name

[in]   Le nom du symbole.

prop_id

[in]   L'identificateur de la propriété du symbole. La valeur peut être l'une des valeurs de ENUM_SYMBOL_INFO_STRING.

string_var

[out]  Une valeur de type string pour obtenir la valeur de la propriété demandée.

Valeur de retour

Une valeur de type string. En cas de mauvaise exécution, des informations sur l'erreur obtenue peuvent être récupérées à l'aide de la fonctionGetLastError() :

  • 5040 — chaîne de caractères incorrecte pour le nom du symbole,
  • 4301 — symbole inconnu (instrument financier),
  • 4302 — le symbole n'est pas sélectionné dans le Market Depth (il n'est pas dans la liste des instruments disponibles),
  • 4303 — identificateur invalide de propriété du symbole.

Note

Il est recommandé d'utiliser SymbolInfoTick() si la fonction est utilisée pour obtenir des informations sur le dernier tick.. Il est possible qu'aucune cotation ne soit encore apparue puisque le terminal est connecté à un compte de trading. Dans ce cas, la valeur demandée sera indéfinie.

Dans la plupart des cas, il suffit d'appeler la fonction SymbolInfoTick() pour obtenir les valeurs Ask, Bid, Last, Volume et l'heure arrivée du dernier tick.

Exemple :

#define SYMBOL_NAME "USDJPY"
 
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- récupère les données de type string pour le symbole SYMBOL_NAME
   string currency_base   = SymbolInfoString(SYMBOL_NAMESYMBOL_CURRENCY_BASE);    // devise de base du symbole
   string currency_profit = SymbolInfoString(SYMBOL_NAMESYMBOL_CURRENCY_PROFIT);  // devise de profit
   string currency_margin = SymbolInfoString(SYMBOL_NAMESYMBOL_CURRENCY_MARGIN);  // devise de marge
   string symbol_descript = SymbolInfoString(SYMBOL_NAMESYMBOL_DESCRIPTION);      // description textuelle du symbole
 
//--- crée un texte avec les données obtenues
   string text=StringFormat("Symbol %s:\n"+
                            "- Currency Base: %s\n"+
                            "- Currensy Profit: %s\n"+
                            "- Currency Margin: %s\n"+
                            "- Symbol Description: %s",
                            SYMBOL_NAMEcurrency_base,
                            currency_profitcurrency_margin,
                            symbol_descript);
 
//--- envoie dans le journal les données obtenues
   Print(text);
   /*
   Symbol USDJPY:
   - Currency BaseUSD
   - Currensy ProfitJPY
   - Currency MarginUSD
   - Symbol DescriptionUS Dollar vs Yen
   */
  }