在MT5中强制清算阵列? - 页 4

 
我不知道在4中,在调整大小的过程中会出现零的初始化。这不是一种便利,而是某种胡闹,导致程序的速度降低。也就是说,如果我需要用-1的值来初始化数组,那么就会发生双重初始化。
然后想知道为什么MT4的速度比较慢。
 
Vasiliy Sokolov:

...MQL5与MQL4不同,不试图理解用户的需求,这一点是正确的。

我建议把它放在海报上。:)(只是开玩笑)

Vasily,我理解有一些细微的差别,证明MT5的这种做法对程序员的方便是合理的。而且我并不介意。就这样吧。

 
Реter Konow:

1.逻辑告诉我们,清除数组的程序是由编译器在编译时执行一次。

是的,你在逻辑上有问题 :)

 
Nikolai Semko:
我不知道在4ka中,零的初始化是在调整大小时发生的。这不是方便,而是某种无稽之谈,导致程序速度降低。也就是说,如果我需要用-1的值来初始化数组,就会发生双重初始化。
然后他们想知道为什么MT4的速度比较慢。

原则上,我们可以在声明数组 的时候添加一些标志,告诉编译器清除数组。这将是方便或快速--你的选择。

 
Реter Konow:

原则上,我们可以在声明一个数组 时添加某种标志,告诉编译器清除该数组。这将是方便或快速--你的选择。

这有什么区别呢?你在调整大小后做初始化,这就是所有的标志。
特别是在声明一个动态数组时,大小是不知道的。
 
Nikolai Semko:
有什么区别。你在调整大小后做初始化,这就是整个标志。
特别是在声明一个动态数组时,大小是不知道的。

是的,在每个全局数组声明和每个数组调整大小之后。 但如果你有20-30个全局数组,其中一些在某些情况下会改变大小,怎么办?你需要到处在循环中写初始化吗?(数组可以是二维的)。这不是一个潜在的错误来源吗?

 
Реter Konow:

是的,在每个全局数组声明和每个数组调整大小之后。 但如果你有20到30个全局数组,其中一些在某些情况下会改变大小,怎么办?你需要到处在循环中写初始化吗?(数组可以是二维的)。这不是一个潜在的错误滋生地吗?

这种外科手术做得很简单。把"ArrayResize"替换成其他的东西--它将是你调整大小的函数的名称。在其中检查,如果调整大小是向上的,那么在循环中穿过新的元素并给它们赋零。

另外,在inite中,初始化所有有大小的数组(如果有的话)。

在函数中也可以有一定大小的数组--那些也是。使用方括号搜索它们。

 
Dmitry Fedoseev:

这种外科手术做得很简单。把 "ArrayResize "这个词换成别的东西--这将是你的调整大小函数的名称。在它的检查中,如果调整大小是向上的,那么在循环中穿过新的元素,并将它们赋值为零。

另外,在inite中,初始化所有有大小的数组(如果有的话)。

在函数中也可以有一定大小的数组--那些也是。通过方括号寻找它们。

顺便说一句,是的。
皮奥特,德米特里说的是一件明智的事。
一个正确的定义将使你免于重写整个代码。
 
Nikolai Semko:
顺便说一句,是的。
彼得,迪米特里说的是明智之举。
一个正确的定义将使你免于重写整个代码。

我会试一试的。这是一个有趣的黑客。

 

我将支持这个话题的发起人,尽管对他的创作有很多疑问 ))))

MQL5的开发者,为了追求计算速度(或其他一些美丽的数字?),已经删除了所有使MQL4更加友好的 "小插件"。

如果在MQL5中有一个经验法则,基于MQL4的指标 将成为MQL5中的 "引子",而这个 "引子 "需要在交易终端中阅读。

1.当调用OnInit()时,指标缓冲区没有被自动初始化

2.我在kodobase中查看了大约一百个指标,唉,在MQL5编程的幌子下,他们以MQL4的风格编写指标--他们扩大了数组和时间序列的编号

3. iHighest / iLowest 符合逻辑 - 他们寻找具有最高/最低值的条形图,其方向是增加时间序列的编号...也就是说,如果我们使用MQL4中指标的标准方案--从以前的数据计算到现在,这个问题在iHighest和iLowest中没有得到解决,因为最左边的柱子是0,而当iLowest被调用时,我们正在搜索未来的值....。

4.ArrayMaximum()也有同样的问题--它很难在指标中使用......很难不增加时间序列的编号,我们从起始el-ta中不断减去一些条数,得到ArrayMaximum(high[i], i -Period,Period)

5.唉,即使是MQL5专家也使用有问题的结构....比方说,在从MT4过渡的过程中保存的某一基数的拐杖仍被随身携带。


MQL并没有假装是纯粹的С++,为什么他们为用户删除了更简单的实现......我已经审查了大约一个月的Python,为什么这么多作品在它......这有什么意义?现在我才明白,Python允许人们忽略这些小东西,而且有一个更友好的用户界面;)- 对于一个有经验的程序员来说,这一切似乎都是错误的,但人们都在使用它,而且Python相当流行。