某些货币对显示的值显示为小数点后5位(EURUSD),其他则为4,依此类推。我编写了以下代码,以返回小数位减一的整数值。该功能仅考虑了几对。我想扩展它以适应所有对。如何找到每个Symbol()价格的小数位数?
int decimalPlacesForPairs() {
if ((_Symbol == "XAUUSD") || (_Symbol == "USOIL")) {
return 1;
}
else if (_Symbol == "CADJPY") {
return 2;
}
else return 3;
}
在MQL4中,您可以访问预定义变量int Digits。此函数返回小数点后的位数。
给出的示例是:
Print(DoubleToStr(Close[0], Digits));
另一种方法,也许是一种更好的方法,是使用MarketInfo。在这里,您可以通过将符号作为字符串变量插入来返回每个符号的小数位数。
给出的示例:
int vdigits = (int)MarketInfo("EURUSD",MODE_DIGITS);