Funkcja double MarketInfo() zwraca informację o instrumentach finansowych, znajdujących się w oknie "Rynek" (MarketWatch). Więcej informacji można znaleźć w specyfikacji MQL4.
Skrypt do wyświetlenia bieżącej ceny rynkowej kupna MODE_ASK, bieżącej ceny rynkowej sprzedaży MODE_BID, wartości jednego punktu MODE_POINT, ilości cyfr po znaku dziesiętnym MODE_DIGITS oraz różnicy pomiędzy Ask i Bid w punktach MODE_SPREAD dla EURUSD.
#property strict
void OnStart()
{
//--- znaleźć wartości
double CurrentAsk_EURUSD = MarketInfo("EURUSD", MODE_ASK);
double CurrentBid_EURUSD = MarketInfo("EURUSD", MODE_BID);
double Point_EURUSD = MarketInfo("EURUSD", MODE_POINT);
double Digits_EURUSD = MarketInfo("EURUSD", MODE_DIGITS);
double Spread_EURUSD = MarketInfo("EURUSD", MODE_SPREAD);
//--- wyświetlić wyniki
Print("EURUSD: bieżąca cena Ask = ",CurrentAsk_EURUSD);
Print("EURUSD: bieżąca cena Bid = ",CurrentBid_EURUSD);
Print("EURUSD: wartość 1 punktu = ",Point_EURUSD);
Print("EURUSD: dokładność notowania ceny = ",(int)Digits_EURUSD);
Print("EURUSD: spread = ",(int)Spread_EURUSD);
}
Rys. 1. Przykład stosowania funkcji MarketInfo().
Skrypt do wyświetlenia ilości cyfr po znaku dziesiętnym (MODE_DIGITS) dla wybranych instrumentów finansowych.
#property strict
void OnStart()
{
//--- tablica z symbolami
string SymbolsArray[] = {"GBPUSD", "USDCHF", "USDJPY", "EURJPY", "GOLD"};
//--- znaleźć i wyświetlić dokładność notowania dla każdego symbolu
for(int i = ArraySize(SymbolsArray)-1; i >= 0; i--)
{
string DigitsSymbol = DoubleToString(MarketInfo(SymbolsArray[i], MODE_DIGITS), 0);
Print("Dla ",SymbolsArray[i]," dokładność notowania ceny = ",DigitsSymbol," cyfr po przecinku.");
}
}
Rys. 2. Przykład stosowania funkcji MarketInfo().