OnBookEventのサブスクリプションが落ちることがあるのですが、そのようなことはあるのでしょうか?

 

タンブラーを使い始め、OnBookEventに署名したいくつかのインディケータを追加した後、それらのいくつかは静かに落ちることがわかりました、特に、異なるシンボル上の1つのエキスパートと1つのインディケータ。ログにエラーはありません。名言が続いた。その他の記号は継続した。休止中のMQLプログラムを手動で再起動したところ、market depthのイベントが再び動き出しました。

同じようなことを観察された方はいらっしゃいますか?自分を守るには?とりあえず、カップの最後のイベントと新しいティックの間のタイムアウトを見るというものです。しかし、タイムアウトが発生した場合はどうすればいいのでしょうか? もう一度MarketBookAddを 呼び出すだけでいいのでしょうか?

 

以前は「ゾンビ」と呼ばれていました。おそらく、検索すると古いスレッドがまだ見つかるでしょう。

これは、エキスパート/インジケーターがタンブラーから退会する回数が退会する回数よりも多い場合に起こります。

例えば、2人の専門家がいて、それぞれ1回ずつ登録したとする。その後、1つは閉鎖され、2回配信停止になりました。採用され続けた2人目の専門家は、更新を受けなくなる。

何度か見たことがあります。

専門家による調整後、問題は解消され、1年以上再発していない。

 
Ilya Baranov:

以前は「ゾンビ」と呼ばれていましたので、おそらく検索すると古いトピックがまだ見つかるでしょう。

エキスパート/インディケーターが登録した回数よりも多くタンブラーから退会した場合に起こります。

厳密には、合わないんです。initeで一度購読を行い、deiniteで購読を解除しているのですが。DeInitが何らかの原因でOnInitより多く呼ばれている可能性は否定できませんが。

 
Stanislav Korotky:

厳密には、合わないんです。Initで一度購読を行い、DeInitで購読を解除しています。DeInitが何らかの原因でOnInitより多く呼ばれている可能性は否定できませんが。

指標についてなら、この スレッドをご覧ください。

Последовательность выполнение Init() и DeInit()
Последовательность выполнение Init() и DeInit()
  • 2017.04.07
  • www.mql5.com
Всем привет ! Столкнулся с такой проблемой Написан индикатор или советник...
 
Sergey Savinkin:

インジケータについてなら、この スレッドを見てください。

たしかにそういう話題はあったし、私も参加したのだが、どうやら問題は残っているようだ。しかし、今回のケースでは、1つのExpert Advisorもサブスクリプションが失効しています。

よし、タンバリンダンスをしよう。

 
Stanislav Korotky:

タンブラーを使い始め、OnBookEventに署名したいくつかのインディケータを追加した後、それらのいくつかは静かに落ちることがわかりました、特に、異なるシンボル上の1つのエキスパートと1つのインディケータ。ログにエラーはありません。名言が続いた。その他の記号は継続した。休止中のMQLプログラムを手動で再起動したところ、market depthのイベントが再び動き出しました。

同じようなことを観察された方はいらっしゃいますか?自分を守るには?とりあえず、カップの最後のイベントと新しいティックの間のタイムアウトを見るというものです。しかし、タイムアウトが発生した場合はどうすればいいのでしょうか? もう一度MarketBookAddを呼び出すだけでいいのでしょうか?

スイッチには、ボタンとスイッチの2種類があります。1つ目はパルスを送信して動作を終了させるもの、2つ目は動作モードの変更を伴うものです。1つ目の例としては、理想的なイベントであるドアベルが挙げられます。例えば、電気のスイッチは、押せば光ります。これはイベントというより、もっと別のものなんです。

 
Алексей Тарабанов:

スイッチには、押しボタンとスイッチの2種類があります。1つ目はパルスを送信して動作を終了させるもので、2つ目は動作モードの変更を伴うものです。1つ目の例として、理想的なイベントであるドアベルが挙げられます。例えば、電気のスイッチは、押せば光ります。ほら、イベントというより、何かあるでしょ。

いいえ、そんなことはありません。ドキュメントから判断すると、購読すると内部カウンタが増加し、購読を解除すると1減少する。0になると、イベントは送信されません。

プリントを入れました。EAとインジケータが同じチャートに存在する場合の問題の再現を実現しました。それぞれ、OnInitでMarketBookAdd、OnDeinitでMarketBookReleaseを行う。そのため、Expert Advisorをチャートから削除(MarketBookReleaseを 1回コール)すると、インジケータはカップを取得しなくなります(考え方としては、自身のMarketBookAddのコールはまだキャンセルされませんが)。逆に、インジケータを削除すると、Expert Advisorでの購読は失われます。もちろん、私はそれを検知して再度購読していますが、そのような仕組みになってはいけないと思います、イミフ。

 
Stanislav Korotky:

いいえ、そんなことはありません。ドキュメントによると、購読すると内部カウンタが増加し、購読を解除すると1減少する。0になると、イベントは送出されない。

プリンターを配置しました。EAとインジケータが同じチャートにある場合の問題の再現を実現しました。それぞれ、OnInitでMarketBookAdd、OnDeinitでMarketBookReleaseを行う。そこで、Expert Advisorをチャートから削除(MarketBookReleaseを 1回コール)すると、インジケータがカップを取得しなくなりました。逆に、インジケータを削除すると、Expert Advisorでの購読が失われてしまいます。もちろん、私はそれを検知して再度購読していますが、そのように動作しないはずです、イミフ。

もう言い尽くされています。私は一言も言いません。

 
Stanislav Korotky:

いいえ、そんなことはありません。ドキュメントによると、購読すると内部カウンタが増加し、購読を解除すると1減少する。0になると、イベントは送出されない。

プリンターを配置しました。EAとインジケータが同じチャートにある場合の問題の再現を実現しました。それぞれ、OnInitでMarketBookAdd、OnDeinitでMarketBookReleaseを行う。そのため、Expert Advisorをチャートから削除(MarketBookReleaseを 1回コール)すると、インジケータはカップを取得しなくなります(考え方としては、自身のMarketBookAddのコールはまだキャンセルされませんが)。逆に、インジケータを削除すると、Expert Advisorでの購読は失われます。もちろん、私はすでにそれを検出して、再び購読していますが、それはこのように動作しないはずです、イミフ。

BookEvent イベントを放送する。こちらの OnBookEventの説明をよくお読みください。

Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
В языке MQL5 предусмотрена обработка некоторых предопределенных событий. Функции для обработки этих событий должны быть определены в программе MQL5: имя функции, тип возвращаемого значения, состав параметров (если они есть) и их типы должны строго соответствовать описанию функции-обработчика события. Именно по типу возвращаемого значения и по...
 
Stanislav Korotky:

タンブラーを使い始め、OnBookEventに署名したいくつかのインディケータを追加した後、それらのうちのいくつかは静かに落ちることがわかりました、特に、異なるシンボル上の1エキスパートと1インディケータ。ログにエラーはありません。名言が続いた。その他の記号は継続した。休止中のMQLプログラムを手動で再起動したところ、market depthのイベントが再び動き出しました。

同じようなことを観察された方はいらっしゃいますか?自分を守るには?とりあえず、カップの最後のイベントと新しいティックの間のタイムアウトを見るというものです。しかし、タイムアウトした場合はどうすればいいのでしょうか? もう一度MarketBookAddを呼び出すだけでいいのでしょうか?

これを読む

https://www.mql5.com/ru/forum/95131

invalid book transaction
invalid book transaction
  • 2016.09.06
  • www.mql5.com
Раньше не было, появилось сегодня (реал). Что это...
 

ありがとうございます;-)。もちろん、ドキュメントやフォーラムも読みました。もし、私の質問に対する答えがあるのなら、それを明確にするか、ここで強調してくれると非常に親切です。

特に、ドキュメントの中に魅力的なフレーズがあります。

В отличие от других событий, событие BookEvent является широковещательным. Это означает, что достаточно одному эксперту подписаться на получение события BookEvent с помощью функции MarketBookAdd, все остальные эксперты, имеющие обработчик OnBookEvent(), будут получать это событие.

ただし、「ある専門家がイベントの受信を停止するほど、他のすべての専門家もその受信を停止する」という例えを続けるかどうか、推測の域を出ないが?そんなのありえないと思う、バグでしょう(笑)。

理由: