对OnBookEvent的订阅有时会脱落--有这种情况吗? - 页 4 1234567891011...14 新评论 A100 2018.07.23 18:02 #31 Stanislav Korotky:顺便说一下,所有其他 类型的事件 都是广播事件,只是它们不需要连接或断开--一切都在脚本初始化时自动沟通。OnChartEvent有广播事件 - 以及普通事件。 如果你能在那里做普通的 - 你也可以在这里做。 Stanislav Korotky 2018.07.23 21:42 #32 A100:完全没有--OnChartEvent接收广播事件--以及普通事件。如果你能在那里做广播,你也可以在这里做广播。那么其他事件OnTick或OnCalculate呢?对他们的广播有反对意见吗?OnChartEvent 也是广播式的,尽管有附件。如果反对的是 "所有 "这个词,我就用 "许多 "来代替。问题是,到目前为止,所有的选择都排除了别人禁用的可能性。 我们将看看是否会有修正。 Stanislav Korotky 2018.07.23 21:43 #33 prostotrader:好消息。 那是关于哪个错误?我看到关于残疾交易的帖子完全一样。 A100 2018.07.23 22:27 #34 prostotrader:由于无效的图书交易 错误,您的订阅失败了 失败的原因是间接调用MarketBookRelease--奇怪的是,你现在还没有发现这一点。 A100 2018.07.23 22:51 #35 prostotrader: 我没有调用MarketBookRelease,但当无效的图书交易出现在日志中时OnBookEvent停止拨号(你可以说订阅 "脱落")。这是一个完全不同的错误原因,与本主题中讨论的错误原因不同。如果你消除了一个原因,另一个原因就不会自己消失。 就像这里https://www.mql5.com/ru/forum/1111/page2237#comment_8159123,错误在形式上是一样的,但解决一个问题的方式不适合另一个问题--所以原因是不同的。 Ошибки, баги, вопросы 2018.07.23www.mql5.com Общее обсуждение: Ошибки, баги, вопросы A100 2018.07.23 23:01 #36 prostotrader:我确信这就是出现错误的原因。开发人员已经修复了它,当新的版本出来时,我们将检查 "你的 "错误。 测试的例子很简单:在第一个专家顾问中调用MarketBookAdd( x ),然后在第二个专家顾问中调用MarketBookRelease( x )...。然后在第一个专家中等待OnBookEvent( x ) 事件。 prostotrader 2018.07.23 23:03 #37 A100: 检查的例子很简单:在第一个EA中调用MarketBookAdd( x ),然后在第二个EA中调用MarketBookRelease( x )...。并等待1个事件如果你在同一个符号上做了你所写的事情,自然订阅的内容就会在同一个终端上被那个符号所破坏! 而这是正确的。 由以下人员添加 你只需要正确使用订阅。 //+------------------------------------------------------------------+ //| Books.mq5 | //| Copyright 2018 prostotrader | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2018 prostotrader" #property link "https://www.mql5.com" #property version "1.00" bool is_book; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { is_book = false; //--- Add books if(!MarketBookAdd(Symbol())) { MessageBox("Не добавлен стакан фьючерса!", "Ошибка", MB_OK | MB_ICONHAND); return(INIT_FAILED); } else is_book = true; return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { if(is_book = true) MarketBookRelease(Symbol()); } //+------------------------------------------------------------------+ //| BookEvent function | //+------------------------------------------------------------------+ void OnBookEvent(const string &symbol) { if(symbol == Symbol()) { //Plece you code here } } //+------------------------------------------------------------------+ A100 2018.07.23 23:14 #38 prostotrader:如果你在同一个符号上做了你所写的事情,自然订阅的内容就会在同一个终端上被那个符号所破坏!而这是正确的。 然后做以下工作:在第一个EA中调用MarketBookAdd( x ),然后在第二个EA中调用MarketBookAdd( x )和MarketBookRelease( x )。然后在第一个专家中等待OnBookEvent( x ) 事件。 prostotrader 2018.07.23 23:17 #39 A100: 然后做以下工作:在第一个专家中调用MarketBookAdd( x ),然后在第二个专家中调用MarketBookAdd( x )和MarketBookRelease( x )。然后在第一个专家中等待OnBookEvent( x ) 事件。使用我的代码,你就不会有订阅的问题。 A100 2018.07.24 02:36 #40 prostotrader:使用我的代码,你的订阅就不会有问题。 明天我将检查你的代码的魔力......与此同时,我想听听你的意见打开/关闭玻璃 的功能能否与订阅/取消订阅该玻璃上的事件的功能相结合,还是应该将它们分开。 1234567891011...14 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
顺便说一下,所有其他 类型的事件 都是广播事件,只是它们不需要连接或断开--一切都在脚本初始化时自动沟通。
OnChartEvent有广播事件 - 以及普通事件。
如果你能在那里做普通的 - 你也可以在这里做。
完全没有--OnChartEvent接收广播事件--以及普通事件。
如果你能在那里做广播,你也可以在这里做广播。
那么其他事件OnTick或OnCalculate呢?对他们的广播有反对意见吗?OnChartEvent 也是广播式的,尽管有附件。如果反对的是 "所有 "这个词,我就用 "许多 "来代替。问题是,到目前为止,所有的选择都排除了别人禁用的可能性。
我们将看看是否会有修正。
好消息。
那是关于哪个错误?我看到关于残疾交易的帖子完全一样。
由于无效的图书交易 错误,您的订阅失败了
我没有调用MarketBookRelease,但当无效的图书交易出现在日志中时
OnBookEvent停止拨号(你可以说订阅 "脱落")。
这是一个完全不同的错误原因,与本主题中讨论的错误原因不同。如果你消除了一个原因,另一个原因就不会自己消失。
就像这里https://www.mql5.com/ru/forum/1111/page2237#comment_8159123,错误在形式上是一样的,但解决一个问题的方式不适合另一个问题--所以原因是不同的。
我确信这就是出现错误的原因。
开发人员已经修复了它,当新的版本出来时,我们将检查 "你的 "错误。
检查的例子很简单:在第一个EA中调用MarketBookAdd( x ),然后在第二个EA中调用MarketBookRelease( x )...。并等待1个事件
如果你在同一个符号上做了你所写的事情,自然订阅的内容就会在同一个终端上被那个符号所破坏!
而这是正确的。
由以下人员添加
你只需要正确使用订阅。
如果你在同一个符号上做了你所写的事情,自然订阅的内容就会在同一个终端上被那个符号所破坏!
而这是正确的。
然后做以下工作:在第一个专家中调用MarketBookAdd( x ),然后在第二个专家中调用MarketBookAdd( x )和MarketBookRelease( x )。然后在第一个专家中等待OnBookEvent( x ) 事件。
使用我的代码,你就不会有订阅的问题。
使用我的代码,你的订阅就不会有问题。