Dostęp do danych handlowych:   SymbolInfoString()

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:

  • zwrócenie wartości,
  • zwrócenie true lub false w zależności od wykonanej operacji.

Zwrócenie wartości


Przykład 1

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().


Zwrócenie true lub false w zależności od wykonanej operacji


Przykład 2

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().