对MT5的祝愿 - 页 51 1...444546474849505152535455565758...117 新评论 Rashid Umarov 2011.01.24 13:24 #501 Yedelkin:解释一下。如果一个专家顾问不处理它所连接到图表上的符号的ticks,那么该符号的NewTick 事件的连续产生将导致该专家顾问处理的事件队列溢出。https://www.mql5.com/ru/docs/runtime/running客户端产生的所有事件都堆积在公共队列中。因此,事件是按照收到的顺序一个接一个地处理的。唯一的例外是NewTick事件。如果队列中已经有一个事件,或者事件正在被处理,一个新的NewTick事件就不会被放入队列中。 事件队列的大小是有限的。当队列变满时,旧的事件被移除而不进行处理,以便为新的事件腾出空间。这就是为什么强烈建议编写高效的事件处理程序,不要使用无限循环(除了处理单一开始事件的脚本)。 Документация по MQL5: Программы MQL5 / Выполнение программ www.mql5.com Программы MQL5 / Выполнение программ - Документация по MQL5 Yedelkin 2011.01.24 13:48 #502 Rosh: https://www.mql5.com/ru/docs/runtime/running 客户端将所有发生的事件存储在一个公共队列中。这样一来,事件就按照收到的顺序一个接一个地处理。NewTick事件是个例外。如果队列中已经有一个事件,或者事件正在被处理,一个新的NewTick事件就不会被放入队列中。 事件队列的大小是有限的。当队列变满时,旧的事件被移除而不被处理,以便为新的事件腾出空间。由于这个原因,强烈建议编写高效的事件处理程序,不要使用无限循环(处理单个开始事件的脚本除外)。 因此, 无论 EA中是否存在OnTick()函数,"一个NewTick 事件适用于整个公共队列 "的规则总是有效的。 谢谢你的澄清! 还有一个问题是,在测试器中关闭不必要的蜱虫生成过程。 [删除] 2011.01.24 14:48 #503 Yedelkin:问题仍然是关于禁用在测试器中生成不必要的刻度线的过程。不要在那里处理它们,从逻辑上讲一切都会好起来。 Yedelkin 2011.01.24 15:04 #504 Interesting: 不要在那里处理它们,从逻辑上讲一切都会好起来。 我认为测试器中的刻度是在整个测试/优化期间强行产生的,这只是乍一看 "一切都会好起来"。你同意吗?如果是这样,将强制生成符号,专家顾问连接到该符号,而这些符号(刻度)不被该EA处理。也就是说,尽管这个符号没有刻度线处理(你的建议),但测试人员会把时间浪费在刻度线的生成上。 如果有什么我不明白的地方,我愿意愉快地学习新东西。 Andrey Khatimlianskii 2011.01.24 16:11 #505 Yedelkin: 好吧,我再次告诉你:专家顾问根本不与它所连接的符号一起工作。而且他不需要跟踪这个符号的任何SL和TP。也就是说,专家顾问不需要这个符号的刻度。EA只在需要的时候附加在符号上,因为它至少需要在某个地方附加才能运行。 咳咳...你为什么要在一个你没有交易的符号上测试专家顾问?在你需要交易的那个地方进行测试。如果你根本不需要交易,那么你也不需要测试--用实时运行的EA的报价历史来工作。 Andrey Khatimlianskii 2011.01.24 16:15 #506 Rosh:客户端将所有发生的事件存储在一个公共队列中。这样一来,事件就按照收到的顺序一个接一个地处理。拉希德,那些没有被EA/脚本/指标处理的事件会怎样?这就是问题的关键所在。它们是否真的被放在队列中,并且只有在响应所针对的事件的处理 被激活时才被移除?或者说,我假设每个人都有自己的队列,只有需要处理的事件才会被收集在那里,这样做还是对的吗? Документация по MQL5: Основы языка / Функции / Функции обработки событий www.mql5.com Основы языка / Функции / Функции обработки событий - Документация по MQL5 [删除] 2011.01.24 16:30 #507 Yedelkin: 只是乍一看,"一切都会好起来的"。 我想,测试器中的刻度是强行产生的,在整个测试/优化期间。你同意吗?如果是这样的话,就会为该EA所依附的符号强制产生点数,而这些(点数)是不被该EA处理的。也就是说,尽管没有对这个符号进行处理(你的建议),但测试人员会浪费时间来生成它们。 如果有什么我不明白的地方,我很乐意学习新东西。让我们来谈谈 "所有刻度 "模式。我明白,它们不是强行生成的,所有的符号都是在专家顾问中选择和交易的(没有它就没有办法)。测试员设置中所选择的符号(主符号)的刻度可以在OnTick中处理或不处理(在这种情况下,如果这种类型的事件已经被处理或存在于队列中,它不会被添加到队列中)。至少,我是这样理解开发者的逻辑的。3.基于你所描述的任务,我们通过自定义事件 获得与ChartEvent有关的额外符号上的刻度信息。ChartEvent进入队列,并将在队列满时被执行或删除。从上述情况来看,很明显,如果对来自 "额外符号"(Expert Advisor的外部)的ticks的处理是无效的,那就是ChartEvent的处理会出现问题,并会使整个事件队列堆叠。我可能不完全理解你的专家顾问的逻辑,但在这些条件下,我会在一个定时器中放入一个块,以收集所有符号的价格信息和其他关于额外符号的重要信息。而使用ChartEvent,我将只传输关于出现的信息,比如说,一个新的柱子。你也可以在OnTick块中处理其他符号的信息(如果使用的话),就像在MT4中那样。但定时器在这里有一些优势,因为定时器是定期处理的,不会超过每秒一次。 Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Типы событий графика www.mql5.com Стандартные константы, перечисления и структуры / Константы графиков / Типы событий графика - Документация по MQL5 [删除] 2011.01.24 16:34 #508 komposter:拉希德,那些没有被EA/脚本/指示器处理的事件会发生什么?这就是问题所在,不是吗?它们是否真的被放在队列中,并且只有在响应所针对的事件的处理 被激活时才被移除?或者说,我假设每个人都有自己的队列,只有需要处理的事件才会被收集在那里,这样做还是对的吗? 据我所知,如果没有处理,当有新的事件到来时,队列中的事件就会被 "放弃"(如果队列已满)。 Rashid Umarov 2011.01.24 16:53 #509 komposter:拉希德,那些没有被EA/脚本/指示器处理的事件会发生什么?这就是问题所在,不是吗?它们是否真的被放在队列中,并且只有在提供响应的事件处理 被启用时才从队列中移除?还是我认为每个队列都有自己的队列,而且只有需要处理的事件才会被收集在那里,这样的假设还是正确的?开发商的回答。每个专家顾问/脚本/指示器都有自己的队列。当然,如果处理程序不可用,队列中的任何东西都不会被冻结。好吧,如果没有,就读出来,跳过。 Yedelkin 2011.01.24 18:02 #510 komposter: 咳咳...你为什么要在你不交易的工具上测试一个EA? 你可能没有仔细阅读我的帖子,其中已经阐述了工作原理。我建议在这一点上结束这个话题。 我想解释我为什么这么做,但无论如何,谢谢你。 1...444546474849505152535455565758...117 新评论 原因: 取消 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
解释一下。如果一个专家顾问不处理它所连接到图表上的符号的ticks,那么该符号的NewTick 事件的连续产生将导致该专家顾问处理的事件队列溢出。
https://www.mql5.com/ru/docs/runtime/running
客户端产生的所有事件都堆积在公共队列中。因此,事件是按照收到的顺序一个接一个地处理的。唯一的例外是NewTick事件。如果队列中已经有一个事件,或者事件正在被处理,一个新的NewTick事件就不会被放入队列中。
事件队列的大小是有限的。当队列变满时,旧的事件被移除而不进行处理,以便为新的事件腾出空间。这就是为什么强烈建议编写高效的事件处理程序,不要使用无限循环(除了处理单一开始事件的脚本)。
https://www.mql5.com/ru/docs/runtime/running
客户端将所有发生的事件存储在一个公共队列中。这样一来,事件就按照收到的顺序一个接一个地处理。NewTick事件是个例外。如果队列中已经有一个事件,或者事件正在被处理,一个新的NewTick事件就不会被放入队列中。
事件队列的大小是有限的。当队列变满时,旧的事件被移除而不被处理,以便为新的事件腾出空间。由于这个原因,强烈建议编写高效的事件处理程序,不要使用无限循环(处理单个开始事件的脚本除外)。
因此, 无论 EA中是否存在OnTick()函数,"一个NewTick 事件适用于整个公共队列 "的规则总是有效的。 谢谢你的澄清!
还有一个问题是,在测试器中关闭不必要的蜱虫生成过程。
Yedelkin:
问题仍然是关于禁用在测试器中生成不必要的刻度线的过程。
不要在那里处理它们,从逻辑上讲一切都会好起来。
不要在那里处理它们,从逻辑上讲一切都会好起来。
我认为测试器中的刻度是在整个测试/优化期间强行产生的,这只是乍一看 "一切都会好起来"。你同意吗?如果是这样,将强制生成符号,专家顾问连接到该符号,而这些符号(刻度)不被该EA处理。也就是说,尽管这个符号没有刻度线处理(你的建议),但测试人员会把时间浪费在刻度线的生成上。 如果有什么我不明白的地方,我愿意愉快地学习新东西。
好吧,我再次告诉你:专家顾问根本不与它所连接的符号一起工作。而且他不需要跟踪这个符号的任何SL和TP。也就是说,专家顾问不需要这个符号的刻度。EA只在需要的时候附加在符号上,因为它至少需要在某个地方附加才能运行。
咳咳...你为什么要在一个你没有交易的符号上测试专家顾问?在你需要交易的那个地方进行测试。
如果你根本不需要交易,那么你也不需要测试--用实时运行的EA的报价历史来工作。
客户端将所有发生的事件存储在一个公共队列中。这样一来,事件就按照收到的顺序一个接一个地处理。
拉希德,那些没有被EA/脚本/指标处理的事件会怎样?这就是问题的关键所在。
它们是否真的被放在队列中,并且只有在响应所针对的事件的处理 被激活时才被移除?
或者说,我假设每个人都有自己的队列,只有需要处理的事件才会被收集在那里,这样做还是对的吗?
只是乍一看,"一切都会好起来的"。 我想,测试器中的刻度是强行产生的,在整个测试/优化期间。你同意吗?如果是这样的话,就会为该EA所依附的符号强制产生点数,而这些(点数)是不被该EA处理的。也就是说,尽管没有对这个符号进行处理(你的建议),但测试人员会浪费时间来生成它们。 如果有什么我不明白的地方,我很乐意学习新东西。
让我们来谈谈 "所有刻度 "模式。
我明白,它们不是强行生成的,所有的符号都是在专家顾问中选择和交易的(没有它就没有办法)。
测试员设置中所选择的符号(主符号)的刻度可以在OnTick中处理或不处理(在这种情况下,如果这种类型的事件已经被处理或存在于队列中,它不会被添加到队列中)。
至少,我是这样理解开发者的逻辑的。
3.基于你所描述的任务,我们通过自定义事件 获得与ChartEvent有关的额外符号上的刻度信息。ChartEvent进入队列,并将在队列满时被执行或删除。
从上述情况来看,很明显,如果对来自 "额外符号"(Expert Advisor的外部)的ticks的处理是无效的,那就是ChartEvent的处理会出现问题,并会使整个事件队列堆叠。
我可能不完全理解你的专家顾问的逻辑,但在这些条件下,我会在一个定时器中放入一个块,以收集所有符号的价格信息和其他关于额外符号的重要信息。而使用ChartEvent,我将只传输关于出现的信息,比如说,一个新的柱子。
你也可以在OnTick块中处理其他符号的信息(如果使用的话),就像在MT4中那样。但定时器在这里有一些优势,因为定时器是定期处理的,不会超过每秒一次。
拉希德,那些没有被EA/脚本/指示器处理的事件会发生什么?这就是问题所在,不是吗?
它们是否真的被放在队列中,并且只有在响应所针对的事件的处理 被激活时才被移除?
或者说,我假设每个人都有自己的队列,只有需要处理的事件才会被收集在那里,这样做还是对的吗?
拉希德,那些没有被EA/脚本/指示器处理的事件会发生什么?这就是问题所在,不是吗?
它们是否真的被放在队列中,并且只有在提供响应的事件处理 被启用时才从队列中移除?
还是我认为每个队列都有自己的队列,而且只有需要处理的事件才会被收集在那里,这样的假设还是正确的?
开发商的回答。
每个专家顾问/脚本/指示器都有自己的队列。当然,如果处理程序不可用,队列中的任何东西都不会被冻结。好吧,如果没有,就读出来,跳过。
咳咳...你为什么要在你不交易的工具上测试一个EA?
你可能没有仔细阅读我的帖子,其中已经阐述了工作原理。我建议在这一点上结束这个话题。
我想解释我为什么这么做,但无论如何,谢谢你。