初学者的问题 MQL5 MT5 MetaTrader 5 - 页 1109

 
Vitaly Muzichenko:

那么我就不会得到一个小数。

你可能需要这样的东西。

typename(TralingStop)=="double"? ...。

 
Artyom Trishkin:

typename(TralingStop)=="double" ?

不完全是,如果你在输入参数中输入了 "输入",例如15或15.0,那么在输入栏中 就只显示15,也就是一个整数。如果你在输入参数中输入12.3,在输入栏中显示12.3

 
Vitaly Muzichenko:

不完全是,如果你在输入参数中输入了 "输入",例如15或15.0,那么在输入栏中 就只显示15,也就是一个整数。如果你在输入参数中输入了12.3,在输入栏中显示12.3。

那么这就是一个确定任何数字的小数位数的问题。在某个地方有这样的一个话题--在那里讨论过。

 
Artyom Trishkin:

那么就是要确定任何数字的小数点后的位数。在某个地方有这样的一个话题--在那里讨论过。

我想有一个,但我找不到了,所以我把它写在这里(

 
Vitaly Muzichenko:

不完全是,如果你在输入参数中输入了 "输入",例如15或15.0,那么在输入栏中 就只显示15,也就是一个整数。如果你在输入参数中输入了12.3,那么输入栏应该显示12.3。

用这样的脚本进行实验。

#property script_show_inputs
input double inp1 = 15.0;
input double inp2 = 12.3;
//+------------------------------------------------------------------+
void OnStart()
  {
   int dig1 = GetDigitsInDouble(inp1);
   int dig2 = GetDigitsInDouble(inp2);
   printf("inp1 = %f --> %s",inp1,DoubleToString(inp1,dig1));
   printf("inp2 = %f --> %s",inp2,DoubleToString(inp2,dig2));
  }
//_______________________________________________________________________
int      GetDigitsInDouble(double doublevalue)
  {
   long l=long(doublevalue/0.0000001);int result=0,i=10000000; while(result<7 && l%i>0)
     {i/=10; result++;}return result;
  }

2019.08.06 22:40:44.668 tst1 (EURUSD,H1) inp1 = 15.000000 --> 15

2019.08.06 22:40:44.668 tst1 (EURUSD,H1) inp2 = 12.300000 --> 12.3


似乎小数点后第7位有时会出错

 
Vitaly Muzichenko:

似乎是这样,但我找不到了,所以我在这里写了(

Получаем количество десятичных знаков после запятой любых чисел (не только котировок) в обход Digits() на MQL4 и MQL5
Получаем количество десятичных знаков после запятой любых чисел (не только котировок) в обход Digits() на MQL4 и MQL5
  • 2018.11.03
  • www.mql5.com
Думаю не у одного меня была редкая ситуация когда нужно было получить количество десятичных знаков после запятой, а функция Digits() работает тольк...
 
Igor Makanu:

用这样的脚本做实验。

2019.08.06 22:40:44.668 tst1 (EURUSD,H1) inp1 = 15.000000 --> 15

2019.08.06 22:40:44.668 tst1 (EURUSD,H1) inp2 = 12.300000 --> 12.3


我认为小数点后第7位有时会出错

阿尔乔姆-特里什金

谢谢大家,我一定要试试!

 
如何记录未结头寸 的信息(手数、类型),以便可以从另一个MT5终端的EA中读取该信息?
 
伙计们,你们能解释一下这个问题吗?如果在远程代理上有优化,并且EA将数据写入文件,那么我理解我不会得到这些数据,因为只有我的本地代理在测试者文件夹中,而没有远程代理...
还是我找错了地方?
,如果是这样,是否有办法实现从远程代理处获取文件的可能性?
 
Vitaly Muzichenko:

我想有一个,但我找不到了,所以我把它贴在这里(

文件中是这样描述的。在fmod中,你把除数定为1,得到数字的小数部分 或0,你不关心在字段或输入变量中输入多少个小数位。

Документация по MQL5: Математические функции / MathMod
Документация по MQL5: Математические функции / MathMod
  • www.mql5.com
Функция MathMod рассчитывает вещественный остаток f от val / y таким образом, что val = i * y + f , где i является целым числом, f имеет тот же знак, что и val, и абсолютное значение f меньше, чем абсолютное значение y.