文章 "交易员生存技巧: 由指标制作的快餐" - 页 13 1...678910111213 新评论 Rashid Umarov 2018.01.29 14:14 #121 Vladimir Karputov:- 你有一个很好的代码和对测量结果的描述。我没有机会查看代码 fxsaber 2018.01.29 14:18 #122 调用指标 时,速度降低了 40%。MQL5 模式 i = 0 Pass = 0 OnTester = 7.679 s.: Count = 9986677, 1300517.9 unit/sec, Agent = C:\Program Files\Alpari Limited MT5\Tester\Agent-127.0.0.1-3000 build = 1755 i = 1 Pass = 1 OnTester = 7.645 s.: Count = 9986677, 1306301.8 unit/sec, Agent = C:\Program Files\Alpari Limited MT5\Tester\Agent-127.0.0.1-3000 build = 1755 MQL4 样式(无缓存) i = 0 Pass = 0 OnTester = 14.117 s.: Count = 9986677, 707422.0 unit/sec, Agent = C:\Program Files\Alpari Limited MT5\Tester\Agent-127.0.0.1-3000 build = 1755 i = 1 Pass = 1 OnTester = 14.067 s.: Count = 9986677, 709936.5 unit/sec, Agent = C:\Program Files\Alpari Limited MT5\Tester\Agent-127.0.0.1-3000 build = 1755 MQL4 样式(带缓存) i = 0 Pass = 0 OnTester = 10.077 s.: Count = 9986677, 991036.7 unit/sec, Agent = C:\Program Files\Alpari Limited MT5\Tester\Agent-127.0.0.1-3000 build = 1755 i = 1 Pass = 1 OnTester = 10.104 s.: Count = 9986677, 988388.5 unit/sec, Agent = C:\Program Files\Alpari Limited MT5\Tester\Agent-127.0.0.1-3000 build = 1755 有缓存变量比 MQL5 风格变量慢 32%。至于无缓存版本,则无法达到上述 40% 的速度。和以前一样,它的速度慢了一倍。但是,在利润方面的巧合是肯定存在的。 Alain Verleyen 2018.03.11 21:09 #123 对不起,我不明白 Metaquotes 为什么允许发表这篇文章。 mql5 中指标句柄的主要优点是从缓冲区获取多个值的能力,您可以完全丢弃它。而且,提供的代码在大多数情况下效率较低!我甚至没有提到不检查函数 返回值的不良编码实践。 这篇文章毫无用处,甚至是最糟糕的。不要惊讶人们会继续使用 mql4。 Carl Schreiber 2018.03.11 22:48 #124 Alain Verleyen:抱歉,我甚至不明白 Metaquotes 为何允许发表这篇文章。mql5 中指标句柄的主要优点是从缓冲区获取多个值的能力,您可以完全丢弃它。而且,提供的代码在大多数情况下效率较低!我说的甚至不是不检查函数 返回值的不良编码实践。这篇文章毫无用处,甚至是最糟糕的。不要惊讶人们会继续使用 mql4。 我不认为你是对的。这篇文章首先帮助受教育程度不高、头脑灵活的业余程序员了解 mql5 与 mql4 相比对指标的处理,其次向他们展示了如何以他们在 MQL4 中习惯的方式使用指标。 Marco vd Heijden 2018.03.11 23:21 #125 如果我在 MQL5 中通过所有可用的工具循环运行一个简单的 iVolume,那么平台就会冻结,大量的copybuffer 调用 就像对操作系统的 ddos 攻击一样,它就会跳闸,而如果我在 MQL4 中执行相同的过程,它就会像一包热熔黄油一样平稳运行。 在同一台机器上,这告诉了我更多我需要知道的东西。 结合来自社区的所有信号和噪音,我认为我的结论一直都是正确的。 okwh 2018.03.17 01:30 #126 仅标记 Ludovico Mattiuzzo 2018.06.25 21:52 #127 问题是:为什么每次读取指标值时都要复制缓冲区?缓冲区就在那里,已经计算过了,为什么我不能直接访问它的值呢? 这是不合理的! 我只能直接访问指标缓冲区,反复复制只会降低性能。 我真不明白 Metaquotes 为什么要采用这种工作方式。 CopyBuffer(...) vs buffer[i] ? Alain Verleyen 2018.06.25 22:24 #128 ludoz:问题是:为什么每次读取指标值时都要复制缓冲区?缓冲区就在那里,已经计算过了,为什么我不能直接访问它的值呢?这完全是无稽之谈!我只能直接访问指标缓冲区,反复复制只会降低性能。我真不明白 Metaquotes 为什么要采用这种工作方式。CopyBuffer(...) 与缓冲区[i]?因为这并不简单。指标运行在一个线程上,EA 运行在另一个线程上(您可以有多个指标/多个 EA)。如果你对 handle/CopyBuffer 这样一个简单的过程有意见,相信我,你不会想继续使用多线程应用程序。 mql5 提供了通用解决方案,能够处理大多数 "正常 "情况。如果您的项目中存在特殊问题,总有解决方案。 -whkh18- 2018.09.06 02:06 #129 现在怎么都是MQL5了 可是大部分人还用的mt4哦 1...678910111213 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
- 你有一个很好的代码和对测量结果的描述。
我没有机会查看代码
调用指标 时,速度降低了 40%。
MQL5 模式
MQL4 样式(无缓存)
MQL4 样式(带缓存)
有缓存变量比 MQL5 风格变量慢 32%。至于无缓存版本,则无法达到上述 40% 的速度。和以前一样,它的速度慢了一倍。但是,在利润方面的巧合是肯定存在的。
对不起,我不明白 Metaquotes 为什么允许发表这篇文章。
mql5 中指标句柄的主要优点是从缓冲区获取多个值的能力,您可以完全丢弃它。而且,提供的代码在大多数情况下效率较低!我甚至没有提到不检查函数 返回值的不良编码实践。
这篇文章毫无用处,甚至是最糟糕的。不要惊讶人们会继续使用 mql4。
抱歉,我甚至不明白 Metaquotes 为何允许发表这篇文章。
mql5 中指标句柄的主要优点是从缓冲区获取多个值的能力,您可以完全丢弃它。而且,提供的代码在大多数情况下效率较低!我说的甚至不是不检查函数 返回值的不良编码实践。
这篇文章毫无用处,甚至是最糟糕的。不要惊讶人们会继续使用 mql4。
如果我在 MQL5 中通过所有可用的工具循环运行一个简单的 iVolume,那么平台就会冻结,大量的copybuffer 调用 就像对操作系统的 ddos 攻击一样,它就会跳闸,而如果我在 MQL4 中执行相同的过程,它就会像一包热熔黄油一样平稳运行。
在同一台机器上,这告诉了我更多我需要知道的东西。
结合来自社区的所有信号和噪音,我认为我的结论一直都是正确的。
问题是:为什么每次读取指标值时都要复制缓冲区?缓冲区就在那里,已经计算过了,为什么我不能直接访问它的值呢?
这是不合理的!
我只能直接访问指标缓冲区,反复复制只会降低性能。
我真不明白 Metaquotes 为什么要采用这种工作方式。
CopyBuffer(...) vs buffer[i] ?
问题是:为什么每次读取指标值时都要复制缓冲区?缓冲区就在那里,已经计算过了,为什么我不能直接访问它的值呢?
这完全是无稽之谈!
我只能直接访问指标缓冲区,反复复制只会降低性能。
我真不明白 Metaquotes 为什么要采用这种工作方式。
CopyBuffer(...) 与缓冲区[i]?
因为这并不简单。指标运行在一个线程上,EA 运行在另一个线程上(您可以有多个指标/多个 EA)。如果你对 handle/CopyBuffer 这样一个简单的过程有意见,相信我,你不会想继续使用多线程应用程序。
mql5 提供了通用解决方案,能够处理大多数 "正常 "情况。如果您的项目中存在特殊问题,总有解决方案。