对OnBookEvent的订阅有时会脱落--有这种情况吗? - 页 14

 
fxsaber:

我无法让它删除。

关闭所有的图表如何?

 
Andrey Barinov:

如果所有的图表都被关闭呢?

当然,这不会有什么帮助。

 
Stanislav Korotky:

根据服务台的答复,整个图表的计数器应该是相同的(每个符号都是独立的),每个MQL-开发人员必须依靠其他MQL-开发人员在减少同一图表中的计数器时不会犯错的事实。解释将被添加到帮助中。

"拯救溺水者,是溺水者的事"。

服务台的回答 有点不同。而向服务台提出的请求并没有提到任何计数器。

尽管如此,计数器的处理将在下一个版本中得到修复。与我之前写的完全一样。

订阅会增加一个计数器,取消订阅会增加一个计数器。柜台在时间表内。对于每个工具(你可以订阅任何工具),它都有自己的计数器。这个计数器计算任何来自于附在给定图表上的程序的工具的订阅情况。当图表被关闭时,所有剩余的非零计数器将被取消订阅。

 
Slava:

服务台的答复 有点不同。而对服务台的要求并不涉及任何柜台。

然而,在未来的构建中,计数器的操作将得到纠正。与我之前写的完全一样。

订阅后会增加一个计数器,取消订阅后会增加一个计数器。柜台在时间表内。对于每个工具(你可以订阅任何工具),它都有自己的计数器。这个计数器计算任何来自于附在给定图表上的程序的工具的订阅情况。当图表被关闭时,所有剩余的非零计数器将被取消订阅。

你重复了服务台的说法。问题是,不能保证从一个有效的MQL程序中保存订阅,该程序已经订阅了一次,并且没有取消订阅,但有一个外来的MQL程序会取消订阅。由于计数器是用于图表而不是用于程序。至少听起来是这样。

 
fxsaber:

而如果一个无形的指标 "意外 "地被触发了(我肯定市场上有一些)...在你重新启动终端之前,你仍然要大惊小怪,无济于事。

随着服务业的到来,更加紧迫。

我已经为SD中的CPU(脚本)管理器的类似物写了很久的提案。

 

为了不至于没有证据,这里引用了一个新的(即将出版的)参考资料。

Начальное значение счетчика подписок равно нулю. При каждом вызове MarketBookAdd() счетчик подписок для указанного символа на данном графике увеличивается на единицу (символ графика и символ в MarketBookAdd() не обязаны совпадать). При вызове MarketBookRelease() счетчик подписок на указанный символ в пределах графика уменьшается на единицу. Трансляция событий BookEvent по любому символу в пределах графика продолжается до тех пор, пока счетчик подписок по данному символу не станет равным нулю. Поэтому важно, чтобы каждая MQL5-программа, которая содержит вызовы MarketBookAdd(), при завершении своей работы правильно отписывалась от получения событий по каждому использованному символу с помощью MarketBookRelease(). Для этого достаточно, чтобы количество вызовов MarketBookAdd() и  MarketBookRelease() по каждому вызову было четным за всё время жизни MQL5-программы. Использолвание флагов или собственных счетчиков подписок внутри программы позволяет безопасно работать с событиями BookEvent и предотвращает отключение подписок на получение этого события в чужих программах в пределах одного графика.

如果要进行新的行为修复,这个片段会是怎样的?黄色强调的建议,在其他人的程序中无法追踪其遵守情况,是潜在的错误来源。

 
Slava:

服务台的答复 有点关于其他事情。是的,对服务台的要求没有触及任何柜台。

然而,在未来的构建中,计数器的操作将得到纠正。与我之前写的完全一样。

订阅会增加一个计数器,取消订阅会增加一个计数器。柜台在时间表内。对于每个工具(你可以订阅任何工具),它都有自己的计数器。这个计数器计算任何来自于附在给定图表上的程序的工具的订阅情况。当图表被关闭时,所有剩余的非零计数器将被取消订阅。

非常等待新的建设(积累了很多bug)。