如何获取每个 Symbol() 价格的小数位数
How to get the number of decimal places for every Symbol() price
某些货币对显示值到小数点后 5 位 (EURUSD),其他货币对显示到小数点后 4 位,依此类推。我把下面的代码写成 return 小数位减一的整数值。此功能仅考虑几对。我想扩展它以满足所有对。如何找到每个 Symbol() 价格的小数位数?
int decimalPlacesForPairs() {
if ((_Symbol == "XAUUSD") || (_Symbol == "USOIL")) {
return 1;
}
else if (_Symbol == "CADJPY") {
return 2;
}
else return 3;
}
在 MQL4 中,您可以访问预定义变量 int Digits。此函数returns 小数点后的位数。
给出的例子是:
Print(DoubleToStr(Close[0], Digits));
另一种方法,也许对您来说更好的方法是使用 MarketInfo。在这里,您可以通过将符号作为字符串变量插入来 return 每个符号的小数位数。
给出的例子:
int vdigits = (int)MarketInfo("EURUSD",MODE_DIGITS);
在您的情况下,您可以使用如下函数:
int decimalPlacesForPairs(string sPair) {
return MarketInfo(sPair),MODE_DIGITS);
}
并从您的 Main(){}
呼叫:
void Main()
{
decimalPlacesForPairs(Symbol());
//or
//decimalPlacesForPairs("EURUSD");
}
将您的数字或点数放在全球区域。
double pips;
double ticksize = MarketInfo(NULL,MODE_DIGITS);
if(ticksize==2||ticksize==3||ticksize==4||ticksize==5)
pips=ticksize*10;
else pips =ticksize;
某些货币对显示值到小数点后 5 位 (EURUSD),其他货币对显示到小数点后 4 位,依此类推。我把下面的代码写成 return 小数位减一的整数值。此功能仅考虑几对。我想扩展它以满足所有对。如何找到每个 Symbol() 价格的小数位数?
int decimalPlacesForPairs() {
if ((_Symbol == "XAUUSD") || (_Symbol == "USOIL")) {
return 1;
}
else if (_Symbol == "CADJPY") {
return 2;
}
else return 3;
}
在 MQL4 中,您可以访问预定义变量 int Digits。此函数returns 小数点后的位数。
给出的例子是:
Print(DoubleToStr(Close[0], Digits));
另一种方法,也许对您来说更好的方法是使用 MarketInfo。在这里,您可以通过将符号作为字符串变量插入来 return 每个符号的小数位数。
给出的例子:
int vdigits = (int)MarketInfo("EURUSD",MODE_DIGITS);
在您的情况下,您可以使用如下函数:
int decimalPlacesForPairs(string sPair) {
return MarketInfo(sPair),MODE_DIGITS);
}
并从您的 Main(){}
呼叫:
void Main()
{
decimalPlacesForPairs(Symbol());
//or
//decimalPlacesForPairs("EURUSD");
}
将您的数字或点数放在全球区域。
double pips;
double ticksize = MarketInfo(NULL,MODE_DIGITS);
if(ticksize==2||ticksize==3||ticksize==4||ticksize==5)
pips=ticksize*10;
else pips =ticksize;