在MT5中强制清算阵列? - 页 4 1234567 新评论 Nikolai Semko 2019.03.04 12:59 #31 我不知道在4中,在调整大小的过程中会出现零的初始化。这不是一种便利,而是某种胡闹,导致程序的速度降低。也就是说,如果我需要用-1的值来初始化数组,那么就会发生双重初始化。然后想知道为什么MT4的速度比较慢。 Реter Konow 2019.03.04 13:24 #32 Vasiliy Sokolov:...MQL5与MQL4不同,不试图理解用户的需求,这一点是正确的。我建议把它放在海报上。:)(只是开玩笑) Vasily,我理解有一些细微的差别,证明MT5的这种做法对程序员的方便是合理的。而且我并不介意。就这样吧。 Yury Kulikov 2019.03.04 13:26 #33 Реter Konow: 1.逻辑告诉我们,清除数组的程序是由编译器在编译时执行一次。是的,你在逻辑上有问题 :) Реter Konow 2019.03.04 13:32 #34 Nikolai Semko: 我不知道在4ka中,零的初始化是在调整大小时发生的。这不是方便,而是某种无稽之谈,导致程序速度降低。也就是说,如果我需要用-1的值来初始化数组,就会发生双重初始化。然后他们想知道为什么MT4的速度比较慢。原则上,我们可以在声明数组 的时候添加一些标志,告诉编译器清除数组。这将是方便或快速--你的选择。 Nikolai Semko 2019.03.04 13:48 #35 Реter Konow:原则上,我们可以在声明一个数组 时添加某种标志,告诉编译器清除该数组。这将是方便或快速--你的选择。 这有什么区别呢?你在调整大小后做初始化,这就是所有的标志。特别是在声明一个动态数组时,大小是不知道的。 Реter Konow 2019.03.04 14:00 #36 Nikolai Semko: 有什么区别。你在调整大小后做初始化,这就是整个标志。特别是在声明一个动态数组时,大小是不知道的。是的,在每个全局数组声明和每个数组调整大小之后。 但如果你有20-30个全局数组,其中一些在某些情况下会改变大小,怎么办?你需要到处在循环中写初始化吗?(数组可以是二维的)。这不是一个潜在的错误来源吗? Dmitry Fedoseev 2019.03.04 14:10 #37 Реter Konow:是的,在每个全局数组声明和每个数组调整大小之后。 但如果你有20到30个全局数组,其中一些在某些情况下会改变大小,怎么办?你需要到处在循环中写初始化吗?(数组可以是二维的)。这不是一个潜在的错误滋生地吗?这种外科手术做得很简单。把"ArrayResize"替换成其他的东西--它将是你调整大小的函数的名称。在其中检查,如果调整大小是向上的,那么在循环中穿过新的元素并给它们赋零。 另外,在inite中,初始化所有有大小的数组(如果有的话)。 在函数中也可以有一定大小的数组--那些也是。使用方括号搜索它们。 Nikolai Semko 2019.03.04 14:30 #38 Dmitry Fedoseev:这种外科手术做得很简单。把 "ArrayResize "这个词换成别的东西--这将是你的调整大小函数的名称。在它的检查中,如果调整大小是向上的,那么在循环中穿过新的元素,并将它们赋值为零。 另外,在inite中,初始化所有有大小的数组(如果有的话)。 在函数中也可以有一定大小的数组--那些也是。通过方括号寻找它们。 顺便说一句,是的。皮奥特,德米特里说的是一件明智的事。一个正确的定义将使你免于重写整个代码。 Реter Konow 2019.03.04 14:50 #39 Nikolai Semko: 顺便说一句,是的。彼得,迪米特里说的是明智之举。一个正确的定义将使你免于重写整个代码。我会试一试的。这是一个有趣的黑客。 Igor Makanu 2019.03.04 15:23 #40 我将支持这个话题的发起人,尽管对他的创作有很多疑问 )))) 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相当流行。 1234567 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
...MQL5与MQL4不同,不试图理解用户的需求,这一点是正确的。
我建议把它放在海报上。:)(只是开玩笑)
Vasily,我理解有一些细微的差别,证明MT5的这种做法对程序员的方便是合理的。而且我并不介意。就这样吧。
1.逻辑告诉我们,清除数组的程序是由编译器在编译时执行一次。
是的,你在逻辑上有问题 :)
我不知道在4ka中,零的初始化是在调整大小时发生的。这不是方便,而是某种无稽之谈,导致程序速度降低。也就是说,如果我需要用-1的值来初始化数组,就会发生双重初始化。
原则上,我们可以在声明数组 的时候添加一些标志,告诉编译器清除数组。这将是方便或快速--你的选择。
原则上,我们可以在声明一个数组 时添加某种标志,告诉编译器清除该数组。这将是方便或快速--你的选择。
有什么区别。你在调整大小后做初始化,这就是整个标志。
是的,在每个全局数组声明和每个数组调整大小之后。 但如果你有20-30个全局数组,其中一些在某些情况下会改变大小,怎么办?你需要到处在循环中写初始化吗?(数组可以是二维的)。这不是一个潜在的错误来源吗?
是的,在每个全局数组声明和每个数组调整大小之后。 但如果你有20到30个全局数组,其中一些在某些情况下会改变大小,怎么办?你需要到处在循环中写初始化吗?(数组可以是二维的)。这不是一个潜在的错误滋生地吗?
这种外科手术做得很简单。把"ArrayResize"替换成其他的东西--它将是你调整大小的函数的名称。在其中检查,如果调整大小是向上的,那么在循环中穿过新的元素并给它们赋零。
另外,在inite中,初始化所有有大小的数组(如果有的话)。
在函数中也可以有一定大小的数组--那些也是。使用方括号搜索它们。
这种外科手术做得很简单。把 "ArrayResize "这个词换成别的东西--这将是你的调整大小函数的名称。在它的检查中,如果调整大小是向上的,那么在循环中穿过新的元素,并将它们赋值为零。
另外,在inite中,初始化所有有大小的数组(如果有的话)。
在函数中也可以有一定大小的数组--那些也是。通过方括号寻找它们。
顺便说一句,是的。
我会试一试的。这是一个有趣的黑客。
我将支持这个话题的发起人,尽管对他的创作有很多疑问 ))))
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相当流行。