错误、漏洞、问题 - 页 1998 1...199119921993199419951996199719981999200020012002200320042005...3184 新评论 Alexey Viktorov 2017.09.12 10:50 #19971 Stanislav Korotky:这就是我不理解的论点(当它被MQ提出来的时候),我现在也不理解。初始化是不会有任何进展的。现在,它被委托给应用程序的程序员,他无论如何都要做,但正如实践所显示的,有时会出现错误。如果是由内核完成,性能不会受到影响,也不会出现错误。例如,让我们拿一个数组的指标缓冲区:初始化指标时,缓冲区的长度为零。有什么可以用零来初始化?当添加另一个索引时,它是否被强制归零,然后填入一些数值?这个归零或填充EMPTY_VALUE 是为了什么?而如果有必要指定PLOT_EMPTY_VALUE而不是0或 EMPTY_VALUE,或者强制指定一个,但我们需要另一个......无论你如何切割它,你最终都是在浪费时间......。还有一个自定义阵列...数组被声明为一些不同于零的数据, EMPTY_VALUE。那么,为什么要强行用东西来初始化呢?所以事实证明,在大多数情况下,它影响了性能。 fxsaber 2017.09.12 11:00 #19972 Alexey Viktorov:但是,一个自定义的阵列...数组被声明为零和EMPTY_VALUE以外的一些数据。那么,用东西强行初始化它的目的是什么?要少一些 "测试者的结果不匹配"。 Alexey Viktorov 2017.09.12 11:03 #19973 fxsaber:为了使它不那么 "测试者结果不匹配"。谁需要它?写一篇文章,在每一段中都说你不应该随便向任何人订购EA。你必须正确编写你的EA。 fxsaber 2017.09.12 11:07 #19974 Alexey Viktorov:谁需要它?我和,我很确定,开发商。 Alexey Viktorov 2017.09.12 11:12 #19975 fxsaber:对我来说,我很肯定,对开发者来说也是如此。我非常怀疑这种小事会让你陷入困境。要么就是有其他原因。 fxsaber 2017.09.12 11:18 #19976 Alexey Viktorov:我很怀疑这样的小事能难住你。要么是其他的原因。即使我写得很完美(没有犯错--事实并非如此),拿着别人的库(有时没有源代码--在市场上)并使用它是很正常的,希望它写得称职。而且没有任何保险,在那之后你会在测试器中遇到不同的结果。而找到真正的原因将非常困难。而修复它有时是不可能的。目标是,从运行到运行,结果是可重复的--相同的,即使有错误。 Andrey Khatimlianskii 2017.09.12 11:35 #19977 fxsaber:理想的解决方案可能是在默认情况下对所有程序进行强制初始化,并有一个编译开关来禁用它(对于那些有信心并想加快几个百分点的人)。 Anton Ohmat 2017.09.12 12:12 #19978 初始化确实需要大量的资源。我抛出了一段强制初始化的代码,在优化中得到了几乎2倍的速度)而我偶然发现了一件有趣的事情。缩水120%,同时结果是在上和加,这怎么可能呢? 当我测试该策略时,我得到了109%的缩减,而且没有追加保证金,而余额一直在增长。 fxsaber 2017.09.12 12:33 #19979 Anton Ohmat:初始化确实需要大量的资源。我抛出了一段强制初始化的代码--它的优化速度几乎提高了2倍)你写的东西不对。 Stanislav Korotky 2017.09.12 15:43 #19980 Andrey Khatimlianskii:完全初始化并不总是必要的。例如,对于一个在循环中为每个条形图填充缓冲值的指标(并且不管指标缓冲区 是否被初始化,都要这样做)。在这种情况下,不强制归零会更经济。而为什么要编造这种不切实际的情况,实际上是MQL程序员的错误?很明显,完全初始化只做一次,或者在检测到数据抽水时进行。在这种情况下,由内核来完成会更有效率。 1...199119921993199419951996199719981999200020012002200320042005...3184 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
这就是我不理解的论点(当它被MQ提出来的时候),我现在也不理解。初始化是不会有任何进展的。现在,它被委托给应用程序的程序员,他无论如何都要做,但正如实践所显示的,有时会出现错误。如果是由内核完成,性能不会受到影响,也不会出现错误。
例如,让我们拿一个数组的指标缓冲区:初始化指标时,缓冲区的长度为零。有什么可以用零来初始化?当添加另一个索引时,它是否被强制归零,然后填入一些数值?这个归零或填充EMPTY_VALUE 是为了什么?而如果有必要指定PLOT_EMPTY_VALUE而不是0或 EMPTY_VALUE,或者强制指定一个,但我们需要另一个......无论你如何切割它,你最终都是在浪费时间......。
还有一个自定义阵列...数组被声明为一些不同于零的数据, EMPTY_VALUE。那么,为什么要强行用东西来初始化呢?
所以事实证明,在大多数情况下,它影响了性能。
但是,一个自定义的阵列...数组被声明为零和EMPTY_VALUE以外的一些数据。那么,用东西强行初始化它的目的是什么?
要少一些 "测试者的结果不匹配"。
为了使它不那么 "测试者结果不匹配"。
谁需要它?
写一篇文章,在每一段中都说你不应该随便向任何人订购EA。你必须正确编写你的EA。
谁需要它?
我和,我很确定,开发商。
对我来说,我很肯定,对开发者来说也是如此。
我非常怀疑这种小事会让你陷入困境。要么就是有其他原因。
我很怀疑这样的小事能难住你。要么是其他的原因。
即使我写得很完美(没有犯错--事实并非如此),拿着别人的库(有时没有源代码--在市场上)并使用它是很正常的,希望它写得称职。而且没有任何保险,在那之后你会在测试器中遇到不同的结果。而找到真正的原因将非常困难。而修复它有时是不可能的。
目标是,从运行到运行,结果是可重复的--相同的,即使有错误。
理想的解决方案可能是在默认情况下对所有程序进行强制初始化,并有一个编译开关来禁用它(对于那些有信心并想加快几个百分点的人)。
初始化确实需要大量的资源。我抛出了一段强制初始化的代码,在优化中得到了几乎2倍的速度)
而我偶然发现了一件有趣的事情。缩水120%,同时结果是在上和加,这怎么可能呢?
当我测试该策略时,我得到了109%的缩减,而且没有追加保证金,而余额一直在增长。初始化确实需要大量的资源。我抛出了一段强制初始化的代码--它的优化速度几乎提高了2倍)
你写的东西不对。
完全初始化并不总是必要的。例如,对于一个在循环中为每个条形图填充缓冲值的指标(并且不管指标缓冲区 是否被初始化,都要这样做)。
在这种情况下,不强制归零会更经济。
而为什么要编造这种不切实际的情况,实际上是MQL程序员的错误?很明显,完全初始化只做一次,或者在检测到数据抽水时进行。在这种情况下,由内核来完成会更有效率。