SymbolInfoString

Gibt die entsprechende Eigenschaft des angegebenen Symbols zurück. Es gibt 2 Varianten der Funktion.

1. Gibt den Eigenschaftswert sofort zurück.  

string  SymbolInfoString(
   string                   name,       // Symbol 
   ENUM_SYMBOL_INFO_STRING  prop_id     // Identifikator der Eigenschaft  
   );

2. Gibt true oder false zurück, abhängig davon, ob die Funktion erfolgreich durchgeführt wurde. Im Erfolgsfall wird der Eigenschaftswert in die Empfangsvariable gestellt, die durch Referenz vom letzten Parameter übertragen wird.

bool  SymbolInfoString(
   string                   name,       // Symbol
   ENUM_SYMBOL_INFO_STRING  prop_id,    // Identifikator der Eigenschaft 
   string&                  string_var  // ihr wird der Eigenschaftswert zugewiesen 
   );

Parameter

name

[in]  Symbolname.

prop_id

[in]  Identifikator der Symboleigenschaft. Wert kann einer der Enumerationswerte ENUM_SYMBOL_INFO_STRING sein .

string_var

[out]  Variable des Typs string, der den Wert der angeforderten Eigenschaft zugewiesen wird.

Rückgabewert

Wert des Typs string. Im Falle der Nichtausführung können Sie Fehlerinformation durch die Funktion GetLastError() erhalten:

  • 5040 – ungültiger string-Parameter für die Angabe des Symbolnamens,
  • 4301 - unbekanntes Symbol (Finanzinstrument)
  • 4302 - das Symbol nicht in der "Marktübersicht" ausgewählt (ist in der Liste nicht verfügbar),
  • 4303 - ungültiger Identifikator der Symboleigenschaft.

Hinweis

Wenn die Funktion verwendet werden soll, um Informationen über den letzten Tick zu bekommen, ist es besser SymbolInfoTick() zu verwenden. Es ist möglich, dass seit Verbinden des Terminals an das Handelskonto keine Preise des Symbols empfangen wurden. In einem solchen Fall ist der Wert unbestimmt.

In den meisten Fällen reicht es aus, SymbolInfoTick() zu verwenden. Mit dieser Funktion können Sie durch einen einzelnen Aufruf die Werte von Ask, Bid, Last, Volume und Zeit des letzten Ticks erhalten.

Beispiel:

#define SYMBOL_NAME "USDJPY"
 
//+------------------------------------------------------------------+
//| Skript Programm Start Funktion                                   |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- Abrufen von Daten des Typs string des Symbols SYMBOL_NAME
   string currency_base   = SymbolInfoString(SYMBOL_NAMESYMBOL_CURRENCY_BASE);    // Base currency of the symbol
   string currency_profit = SymbolInfoString(SYMBOL_NAMESYMBOL_CURRENCY_PROFIT);  // Profit currency
   string currency_margin = SymbolInfoString(SYMBOL_NAMESYMBOL_CURRENCY_MARGIN);  // Margin currency
   string symbol_descript = SymbolInfoString(SYMBOL_NAMESYMBOL_DESCRIPTION);      // String description of the symbol
 
//--- Erstellen eines Nachrichtentextes mit den erhaltenen Daten
   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);
 
//--- sende die erhaltenen Daten an das Journal
   Print(text);
   /*
   Symbol USDJPY:
   - Currency BaseUSD
   - Currensy ProfitJPY
   - Currency MarginUSD
   - Symbol DescriptionUS Dollar vs Yen
   */
  }