Predefiniowana zmienna int _Digits przechowuje ilość cyfr po znaku dziesiętnym, które określają dokładność notowania ceny instrumentu finansowego na tym wykresie notowań, gdzie program MQL4 został uruchomiony. Więcej informacji można znaleźć w specyfikacji MQL4.
Jeśli poniższy skrypt uruchomić na EURUSD, gdzie dokładność notowania stanowiła by 5 cyfr, to wynik będzie 5 (rys. 1). Jeśli ten sam skrypt uruchomić na USDJPY, gdzie dokładność notowania stanowiła by 3, to wynik będzie odpowiednio 3 (rys. 2).
#property strict
void OnStart()
{
Print("Dla ",_Symbol," dokładność notowania ceny = ",_Digits);
}
Rys. 1. Przykład stosowania predefiniowanej zmiennej _Digits.
Rys. 2. Przykład stosowania predefiniowanej zmiennej _Digits.
Jeśli trzeba znaleźć dokładność notowania ceny dla innego instrumentu finansowego niż na wykresie notowań, należy zastosować funkcję MarketInfo() z identyfikatorem MODE_DIGITS (przykład 2).
Skrypt do wyświetlenia dokładności notowań dla USDJPY, USDCHF i GOLD.
#property strict
void OnStart()
{
//--- znaleźć dokładność notowania dla poszczególnych symboli
//--- i prekonwertować je do wartości tekstowych
string Precision_USDJPY = DoubleToString(MarketInfo("USDJPY", MODE_DIGITS), 0);
string Precision_USDCHF = DoubleToString(MarketInfo("USDCHF", MODE_DIGITS), 0);
string Precision_GOLD = DoubleToString(MarketInfo("GOLD", MODE_DIGITS), 0);
//--- wyświetlić wyniki
Print("Dla USDJPY dokładność notowania ceny = ",Precision_USDJPY);
Print("Dla USDCHF dokładność notowania ceny = ",Precision_USDCHF);
Print("Dla GOLD dokładność notowania ceny = ", Precision_GOLD);
}