В MQL4 у вас есть доступ к предопределенной переменной int Digits . Эта функция возвращает количество цифр после десятичной точки.
В приведенном примере:
Print(DoubleToStr(Close[0], Digits));
Другой способ, и, возможно, лучший способ в вашем случае этоиспользовать MarketInfo . Здесь вы можете вернуть количество знаков после запятой на символ, вставив символ в виде строковой переменной.
В приведенном примере:
int vdigits = (int)MarketInfo("EURUSD",MODE_DIGITS);
В вашем случае вы могли быиметь функцию, подобную приведенной ниже:
int decimalPlacesForPairs(string sPair) {
return MarketInfo(sPair),MODE_DIGITS);
}
И звонить с вашего Main(){}
:
void Main()
{
decimalPlacesForPairs(Symbol());
//or
//decimalPlacesForPairs("EURUSD");
}