MT版本存档。 - 页 3 1234567 新评论 Alexey Viktorov 2019.06.16 16:37 #21 Сергей Таболин:我认为TesterStop()和ExpertRemove() 如果不能立即将控制权传递给OnTester(),应该返回true。它将允许以某种方式作出反应,例如,像这样。 bool tester_stop = false; // флаг проверки выхода по TesterStop ....... void OnTick() { //--- пропустить бесполезные проходы оптимизации if(!check_init && (MQLInfoInteger(MQL_OPTIMIZATION) || MQLInfoInteger(MQL_TESTER))) { if(недопустимый параметр) tester_stop = TesterStop(); ........ } double OnTester() { if(tester_stop) return(-99999999999.99); 在这种情况下,我们可以准确地得到逻辑上预期的结果,而不是手忙脚乱地预见理论上由于停止测试而可能发生的所有错误。而这是你想看到的选项。 bool tester_stop = false; // флаг проверки выхода по TesterStop ....... void OnTick() { //--- пропустить бесполезные проходы оптимизации if(!check_init && (MQLInfoInteger(MQL_OPTIMIZATION) || MQLInfoInteger(MQL_TESTER))) { if(недопустимый параметр) { TesterStop(); tester_stop = true; return; } ........ } double OnTester() { if(tester_stop) return(-99999999999.99); Alexey Viktorov 2019.06.16 16:42 #22 Roman:在这种情况下,我们不能做检查吗? 如果它已经在运行,我们如何防止/取消强制终止?你的例子有点不同。 Roman 2019.06.16 17:24 #23 Alexey Viktorov: 如果它已经在运行,你如何防止/取消强制终止?你的例子有点不同。不要触发强制终止。那么就没有必要取消它。 可能,强制完成已经在运行的,取消它是没有意义的,因为可能出现软件故障。 由于这个原因,很可能没有这种可能性。我不能确定。 这意味着我们应该从逻辑上安排我们的代码,使我们在强制终止后不需要再次回到运行的代码。 如果我们退出,我们就明确地退出。 Alexey Viktorov 2019.06.16 17:28 #24 Roman:由于可能的软件故障,已经运行的强制终止不太可能有取消的意义。 因此,可能没有这样的选择。我不能肯定地说。 这意味着我们应该从逻辑上安排我们的代码,使我们在运行强制终止时不需要再次回到运行的代码。 如果我们退出,我们就明确地退出。不知何故,我的印象是你没有读完这个主题的所有内容。有些东西与你对手头问题的看法不太吻合。 ps;虽然没有。在你这个主题的第一个帖子中,你似乎引用了我的原话,但并不完全。也许因为这个原因,整个问题的想法发生了转变。 Roman 2019.06.16 17:33 #25 不管是什么问题,这就是答案。那就自言自语吧。你试图进入这个问题,人们还是不喜欢它。祝你找到问题所在。 [删除] 2019.06.16 17:33 #26 Alexey Viktorov:而这是你想看到的版本。 这就对了。 但不是 if(недопустимый параметр) tester_stop = TesterStop(); 更加简单明了,比... if(недопустимый параметр) { TesterStop(); tester_stop = true; return; } ? 但现在我已经完全按照你的建议做了。 Alexey Viktorov 2019.06.16 17:39 #27 Roman: 这样的问题和这样的答案。你们可以和自己讨论。你试图进入一个问题,人们仍然不喜欢它。祝你找到问题所在。你不应该被冒犯。你必须阅读整个句子才能理解它。 关于交易、自动交易系统和测试交易策略的论坛 MT版本存档。 Alexey Viktorov, 2019.06.16 15:25 谢尔盖,没有什么意外。相反,一切都符合逻辑和一致。有不同的情况。有时你必须在专家顾问完成其工作之前完成事件处理,有时,就像你的情况一样,你必须紧急完成它。 开发人员面临的问题是,什么是正确的做法,是立即停止,引起那些需要完成事件处理的人的不满,还是在完成事件处理后停止。任何程序员在他/她的武器库中都有返回操作符,而在强制终止的情况下却没有任何东西。为什么你需要改变bool的无效类型,因为在程序员的武器库中,有一些静态变量可以在TesterStop()之前或之后改变,原则上,一切都会如你所愿。但你在我的例子中出于某种原因省略了它。 而你只是断章取义,没有注意到第一部分。 Alexey Viktorov 2019.06.16 17:42 #28 Сергей Таболин:这就对了。 但不是吗? 更加简单明了,比... ? 但现在我已经完全按照你的建议做了。它可能更简单、更清晰,但要求开发者提供自己可以轻易写出的东西是错误的。由于某些原因,我不相信任何关于C++语言的添加物都是关于C++和需求的写法。而这些话,我相信对很多人来说已经足够了。 [删除] 2019.06.16 17:54 #29 Alexey Viktorov:它可能更简单、更清晰,但向开发者要求自己可以轻易写出的东西是错误的。由于某些原因,我不相信任何关于C++语言的添加物都是关于C++和需求的书写。而这些话,我相信对很多人来说已经足够了。这里是对你的选择的检查。结果是这样的信息。 2019.06.16 18:49:25.464 Core 1 TesterStop() called on 0% of testing interval 这是个死胡同... Roman 2019.06.16 17:57 #30 Alexey Viktorov:你不应该被冒犯。你必须掌握整个短语,才能理解它。 而你只是断章取义,没有注意到第一部分。通过给你一个IsStopped()的例子,我试图回答第一部分。有时有必要在完成EA之前完成对事件的处理,有时则像你的情况一样紧急。 请阅读文档中对这个函数IsStopped() 的描述,也许它能带来一些想法。 但在你看来,这是来自另一个方向。如果是这样,对不起,可能会有猜测。 但正如他们所说,在可能的建议中,并解决了问题。 确定的解决方案不会告诉任何人,因为没有人知道他代码的所有逻辑,可能也不会深入研究。 1234567 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我认为TesterStop()和ExpertRemove() 如果不能立即将控制权传递给OnTester(),应该返回true。它将允许以某种方式作出反应,例如,像这样。
在这种情况下,我们可以准确地得到逻辑上预期的结果,而不是手忙脚乱地预见理论上由于停止测试而可能发生的所有错误。
而这是你想看到的选项。
在这种情况下,我们不能做检查吗?
如果它已经在运行,你如何防止/取消强制终止?你的例子有点不同。
不要触发强制终止。那么就没有必要取消它。
可能,强制完成已经在运行的,取消它是没有意义的,因为可能出现软件故障。
由于这个原因,很可能没有这种可能性。我不能确定。
这意味着我们应该从逻辑上安排我们的代码,使我们在强制终止后不需要再次回到运行的代码。
如果我们退出,我们就明确地退出。
由于可能的软件故障,已经运行的强制终止不太可能有取消的意义。
因此,可能没有这样的选择。我不能肯定地说。
这意味着我们应该从逻辑上安排我们的代码,使我们在运行强制终止时不需要再次回到运行的代码。
如果我们退出,我们就明确地退出。
不知何故,我的印象是你没有读完这个主题的所有内容。有些东西与你对手头问题的看法不太吻合。
ps;虽然没有。在你这个主题的第一个帖子中,你似乎引用了我的原话,但并不完全。也许因为这个原因,整个问题的想法发生了转变。而这是你想看到的版本。
这就对了。
但不是
更加简单明了,比...
?
但现在我已经完全按照你的建议做了。
这样的问题和这样的答案。你们可以和自己讨论。你试图进入一个问题,人们仍然不喜欢它。祝你找到问题所在。
你不应该被冒犯。你必须阅读整个句子才能理解它。
关于交易、自动交易系统和测试交易策略的论坛
MT版本存档。
Alexey Viktorov, 2019.06.16 15:25
谢尔盖,没有什么意外。相反,一切都符合逻辑和一致。有不同的情况。有时你必须在专家顾问完成其工作之前完成事件处理,有时,就像你的情况一样,你必须紧急完成它。 开发人员面临的问题是,什么是正确的做法,是立即停止,引起那些需要完成事件处理的人的不满,还是在完成事件处理后停止。任何程序员在他/她的武器库中都有返回操作符,而在强制终止的情况下却没有任何东西。
为什么你需要改变bool的无效类型,因为在程序员的武器库中,有一些静态变量可以在TesterStop()之前或之后改变,原则上,一切都会如你所愿。但你在我的例子中出于某种原因省略了它。
这就对了。
但不是吗?
更加简单明了,比...
?
但现在我已经完全按照你的建议做了。
它可能更简单、更清晰,但要求开发者提供自己可以轻易写出的东西是错误的。由于某些原因,我不相信任何关于C++语言的添加物都是关于C++和需求的写法。而这些话,我相信对很多人来说已经足够了。
它可能更简单、更清晰,但向开发者要求自己可以轻易写出的东西是错误的。由于某些原因,我不相信任何关于C++语言的添加物都是关于C++和需求的书写。而这些话,我相信对很多人来说已经足够了。
这里是对你的选择的检查。结果是这样的信息。
这是个死胡同...
你不应该被冒犯。你必须掌握整个短语,才能理解它。
通过给你一个IsStopped()的例子,我试图回答第一部分。
有时有必要在完成EA之前完成对事件的处理,有时则像你的情况一样紧急。
请阅读文档中对这个函数IsStopped() 的描述,也许它能带来一些想法。
但在你看来,这是来自另一个方向。如果是这样,对不起,可能会有猜测。
但正如他们所说,在可能的建议中,并解决了问题。
确定的解决方案不会告诉任何人,因为没有人知道他代码的所有逻辑,可能也不会深入研究。