Funkcja string / bool SymbolInfoString() zwraca odpowiednią właściwość wybranego instrumentu finansowego. Identyfikator właściwości może być jednym z wartości ENUM_SYMBOL_INFO_STRING . Więcej informacji można znaleźć w specyfikacji MQL4.
Istnieje 2 warianty funkcji:
Skrypt do wyświetlenia nazwy waluty bazowej SYMBOL_CURRENCY_BASE, waluty zysku SYMBOL_CURRENCY_PROFIT i ścieżki w drzewie symboli SYMBOL_PATH dla EURUSD.
#property strict
void OnStart()
{
//--- znaleźć wartości
string baseCurrency_EURUSD = SymbolInfoString("EURUSD", SYMBOL_CURRENCY_BASE);
string profitCurrency_EURUSD = SymbolInfoString("EURUSD", SYMBOL_CURRENCY_PROFIT);
string path_EURUSD = SymbolInfoString("EURUSD", SYMBOL_PATH);
//--- wyświetlić wyniki
Print("EURUSD: waluta bazowa = ",baseCurrency_EURUSD);
Print("EURUSD: waluta zysku = ",profitCurrency_EURUSD);
Print("EURUSD: ścieżka w drzewie symboli = ",path_EURUSD);
}
Rys. 1. Przykład stosowania funkcji SymbolInfoString().
W odróżnieniu od powyższego przykładu, znalezioną wartość funkcja przypisuje trzeciemu argumentowi i zwraca true jeśli operacja się powiodła lub false jeśli nie. Poniższy skrypt wyświetli bazowe waluty dla wybranych instrumentów finansowych.
#property strict
void OnStart()
{
//---
string baseCurrency_EURUSD;
string baseCurrency_GOLD;
string baseCurrency_NoSymbol;
//---
if(SymbolInfoString("EURUSD", SYMBOL_CURRENCY_BASE, baseCurrency_EURUSD) == true)
Print("EURUSD: waluta bazowa = ",baseCurrency_EURUSD);
else
Print("Nie udało się znaleźć walutę bazową dla EURUSD. Błąd = ",GetLastError());
//---
if(SymbolInfoString("GOLD", SYMBOL_CURRENCY_BASE, baseCurrency_GOLD) == true)
Print("GOLD: waluta bazowa = ",baseCurrency_GOLD);
else
Print("Nie udało się znaleźć walutę bazową dla GOLD. Błąd = ",GetLastError());
//---
if(SymbolInfoString("NoSymbol", SYMBOL_CURRENCY_BASE, baseCurrency_NoSymbol) == true)
Print("NoSymbol: waluta bazowa = ",baseCurrency_NoSymbol);
else
Print("Nie udało się znaleźć walutę bazową dla NoSymbol. Błąd = ",GetLastError());
}
Rys. 2. Przykład stosowania funkcji SymbolInfoString().