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

 

研究数学。在两棵松树之间混淆不清...

有这个。

int OnCalculate (const int rates_total,      // размер массива price[] 
                 const int prev_calculated,  // обработано баров на предыдущем вызове 
                 const int begin,            // откуда начинаются значимые данные 
                 const double& price[]       // массив для расчета 

关于开始的 问题。

1.它是什么?其值=0。它是一个索引吗?

2.它本质上是什么?什么是有意义的数据?还有哪些其他类型的数据?

3.这一数值的计算依据是什么?那么在原则上有哪些变化是可能的呢?例如,有意义的数据可以不从索引0开始,而从索引5开始吗?

4.为什么这个参数被插入到OnCalculate 中?

如果我错过了帮助中写的地方,请指出来。

 

谁能告诉我如何在调试窗口中摆脱这些多位数的数值(变量是正常化的)?


 
Андрей:

谁能告诉我如何在调试窗口中摆脱这些多位数的数值(变量已被规范化)?


添加一个字符串 变量,将其设置为DoubleToString(),并在调试窗口中观察它

你可以把它全部放在一个宏里 #ifdef _DEBUG

 
Alexey Viktorov:

添加一个字符串 变量,将其设置为DoubleToString(),并在调试窗口中观察它

你可以把它全部放在一个宏里 #ifdef _DEBUG

谢谢,但问题来了--这些多位数的数值,它们是否与现实相符,还是如此,"光玩"。

问题的关键不在于它应该看起来很好,而在于哪些数值被用于进一步的计算。

 
Андрей:

谢谢你,但问题来了--这些多价值的价值是真实的,还是只是 "光玩"。

这不是为了让它看起来漂亮,而是为了进一步计算时使用什么值。

这些多位数的数值与现实相符。而且它们有时会破坏画面,特别是在表达比较的时候。
为了确定这一点,建议使用NormalizeDouble(),并且要有一定的精度。
 
而且,甚至没有人费心去说什么乞丐的事。这一定是完全陌生的东西...
 
User_mt5:
这些都是多义词的。而且它们有时会破坏画面,特别是在对比表达方面。
为了确定,建议使用 指定精度的NormalizeDouble()
所以这些 "爬行者 "是从正常化的价值中出现的。看来这碗汤(MT5)里还缺了点东西。
 
Андрей:
因此,这些 "窃听器 "来自于规范化的数值。这碗汤(MT5)里似乎少了点什么。

直到现在我还天真地认为,正常化是最后的真相。
你能不能给我看一下出现问题的代码片段。也许原因是其他方面。

 
User_mt5:

直到现在,我还天真地认为,正常化是最后的真理。
你能不能给我看一下出现问题的代码片段。也许原因是其他方面。

不过,这里有一个片段,足以看出 "效果"。

下面是结果。

无论是否正常化,都是一样的。

 

Андрей:

无论是否正常化,都是一样的。

是的。

实际上,在比较表达式中(就像 "飞行 "一样),规范化是有效的。
据我所知,问题出现在简单计算的过程中。
但如果一个数字被归一化,归一化的数字 也应该被存储。

但可惜的是。

我想知道开发者对此有什么看法。