OnBookEventのサブスクリプションが落ちることがあるのですが、そのようなことはあるのでしょうか? - ページ 11 1...4567891011121314 新しいコメント prostotrader 2018.07.27 14:59 #101 Stanislav Korotky:ええ、それに対してあなたは、まず問題がないと主張し、次に別の解決策を提示しますが、それらは一般的なケースではうまくいきません。解決策を提供したと言って、人々に不利益を与えている。謝罪の必要はありません。これからは真相究明をしたほうがいい。しかし、あなたは何も読まずに私が書いたのですから、謝る必要があります。 "同じシンボルの異なるウィンドウでこれらのインジケータを実行しましたが、問題なく 動作しました。が、1つのシンボルウィンドウで 両方のインジケータを実行したところ、 本当にサブスクリプションは、インジケータを1つ外すと「落ちる」のです。SDに書き込む(もしかしたら新ビルドで修正する時間があるかもしれない)" 追加 お願いです、スタニスラフさん、このまま極論を続けないでください、謝りたくないんです。 prostotrader 2018.07.27 15:01 #102 Slava:加入すると、カウンターが1つ増えます。 退会するとカウンターが1つ減ります。 あなたのEAがtumblrのイベントを必要とする場合、彼は誰かが彼が購読することを可能にすることを他のEAに依存してはいけません。彼はOnInitで自分自身をサブスクライブする必要があります。そして OnDeinit で - unsubscribe します。あなたが書いていることは、誰もがしていることです。 しかし、問題は、1つのウィンドウで2つのサブスクリプションが呼び出されていた場合、一方のサブスクリプションを削除すると、もう一方(2つ目)も削除されることです。 Slava 2018.07.27 15:03 #103 prostotrader:あなたが書いたこと、みんなそうなんです。 しかし、問題は、1つのウィンドウで2回サブスクリプションが呼び出された場合、1つのサブスクリプションを削除すると、もう1つ(2つ目)が削除されることです。いや、そんなことはないはずだ。2 サブスクリプション - 2 AddRef.1 配信停止 - 1 リリースその結果、カウンターは1になります。 カウンタが0になった後、サブスクリプションは破棄される A100 2018.07.27 15:04 #104 prostotrader: しかし、問題は、1つのウィンドウで2つのサブスクリプションが呼び出されていた場合、一方のサブスクリプションを削除すると、もう一方(2つ目)も削除されることです。つまり、エキスパート/エキスパートカウンターはありますが(ただし、1つのチャートに存在できるのは1人のエキスパートのみ)、エキスパート/インジケーターカウンターやインジケーター/インジケーターカウンターは存在しません。 prostotrader 2018.07.27 15:06 #105 A100: つまり、エキスパート/エキスパートカウンターはあるが、エキスパート/インジケーターカウンターはない1つのウィンドウには、1人のエキスパートしか入れません。 A100 2018.07.27 15:10 #106 prostotrader:1つのウィンドウには、1人のアセッサーしか配置できません。まさにその通り...。ウィンドウやチャートの間はカウントされますが、内側はカウントされません。 prostotrader 2018.07.27 15:11 #107 Slava:いや、そんなことはないはずだ。2 サブスクリプション - 2 AddRef.1 配信停止 - 1 リリースその結果、カウンターは1になります。 カウンタが0になった後、サブスクリプションは破棄されるこのスレッドには、指標のコードがあります。同じウィンドウで同じシンボル(砦)でそれらを実行すると、あなた自身のために表示されます。 追加 チェックに要する時間は2分 1 インジケータ //+------------------------------------------------------------------+ //| Test_ind_1.mq5 | //| Copyright 2018 prostotrader | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2018 prostotrader" #property link "https://www.mql5.com" #property version "1.00" #define on_call -111 #property indicator_separate_window bool is_book = false; double Buff[]; int event_cnt =0; #property indicator_buffers 1 #property indicator_plots 1 //--- plot Label1 #property indicator_label1 "Test_1" #property indicator_type1 DRAW_LINE #property indicator_color1 clrAqua #property indicator_style1 STYLE_SOLID #property indicator_width1 1 //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- Set buffers IndicatorSetInteger(INDICATOR_DIGITS,0); IndicatorSetString(INDICATOR_SHORTNAME,"Test_ind_1"); //---Set buffers SetIndexBuffer(0,Buff,INDICATOR_DATA); PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,EMPTY_VALUE); ArraySetAsSeries(Buff,true); is_book = MarketBookAdd(Symbol()); if(is_book == true) { Print(__FUNCTION__, ": Подписка на стакан добавлена. Символ ", Symbol()); } //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { if(is_book == true) { MarketBookRelease(Symbol()); Print(__FUNCTION__, ": Подписка на стакан удалена. Символ ", Symbol()); } } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const int begin, const double &price[]) { if(prev_calculated == 0) { ArrayInitialize(Buff, EMPTY_VALUE); } Buff[0] = 2; //--- return value of prev_calculated for next call event_cnt = rates_total; return(rates_total); } //+------------------------------------------------------------------+ //| BookEvent function | //+------------------------------------------------------------------+ void OnBookEvent(const string &symbol) { if(symbol == Symbol()) { Print(__FUNCTION__, ": Подписка работает. Символ ", symbol); double price[]; OnCalculate(event_cnt,event_cnt,on_call,price); } } //+------------------------------------------------------------------+ 2 インジケータ //+------------------------------------------------------------------+ //| Test_ind_1.mq5 | //| Copyright 2018 prostotrader | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2018 prostotrader" #property link "https://www.mql5.com" #property version "1.00" #define on_call -111 #property indicator_separate_window bool is_book = false; double Buff[]; int event_cnt =0; #property indicator_buffers 1 #property indicator_plots 1 //--- plot Label1 #property indicator_label1 "Test_2" #property indicator_type1 DRAW_LINE #property indicator_color1 clrLime #property indicator_style1 STYLE_SOLID #property indicator_width1 1 //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- Set buffers IndicatorSetInteger(INDICATOR_DIGITS,0); IndicatorSetString(INDICATOR_SHORTNAME,"Test_ind_2"); //---Set buffers SetIndexBuffer(0,Buff,INDICATOR_DATA); PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,EMPTY_VALUE); ArraySetAsSeries(Buff,true); is_book = MarketBookAdd(Symbol()); if(is_book == true) { Print(__FUNCTION__, ": Подписка 2 на стакан добавлена. Символ ", Symbol()); } //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { if(is_book == true) { MarketBookRelease(Symbol()); Print(__FUNCTION__, ": Подписка 2 на стакан удалена. Символ ", Symbol()); } } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const int begin, const double &price[]) { if(prev_calculated == 0) { ArrayInitialize(Buff, EMPTY_VALUE); } Buff[0] = 2; //--- return value of prev_calculated for next call event_cnt = rates_total; return(rates_total); } //+------------------------------------------------------------------+ //| BookEvent function | //+------------------------------------------------------------------+ void OnBookEvent(const string &symbol) { if(symbol == Symbol()) { Print(__FUNCTION__, ": Подписка 2 работает. Символ ", symbol); double price[]; OnCalculate(event_cnt,event_cnt,on_call,price); } } //+------------------------------------------------------------------+ Slava 2018.07.27 15:23 #108 問題点は理解している。 まだ答えられない prostotrader 2018.07.27 15:24 #109 Slava:問題点は理解している。 まだ答えられないありがとうございます!解くのがとても楽しみです。 Stanislav Korotky 2018.07.27 15:41 #110 prostotrader:でも、逆に謝る必要があるのは、何も読まないあなたで、私は書いたんです。 "同じシンボルの異なるウィンドウでこれらのインジケータを実行しましたが、問題なく動作 しています。が、1つのシンボルウィンドウで 両方のインジケータを実行したところ、 本当にサブスクリプションは、インジケータを1つ外すと「落ちる」のです。SDに書き込む(もしかしたら新ビルドで修正する時間があるかもしれない)" 追加 お願い、スタニスラフ、この議論を続けないでください、謝罪したくない - しないでください。始めたからには、最後までやり遂げなければならない。謝ることは何もない。私はあなたと違って、すべてを要領よく書きました。 あなたの投稿を全部見たよ。自分の都合のいいところだけ引用して、それ以前やそれ以降のことはまるで書いていないかのように無視してるだけだろう。確かに、1回目から問題を再現することができましたね。それに大体、このスレッドに来たのは、話題とは関係ないあなたの問題でしょう。 1...4567891011121314 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
ええ、それに対してあなたは、まず問題がないと主張し、次に別の解決策を提示しますが、それらは一般的なケースではうまくいきません。解決策を提供したと言って、人々に不利益を与えている。謝罪の必要はありません。これからは真相究明をしたほうがいい。
しかし、あなたは何も読まずに私が書いたのですから、謝る必要があります。
"同じシンボルの異なるウィンドウでこれらのインジケータを実行しましたが、問題なく 動作しました。
が、1つのシンボルウィンドウで 両方のインジケータを実行したところ、 本当に
サブスクリプションは、インジケータを1つ外すと「落ちる」のです。
SDに書き込む(もしかしたら新ビルドで修正する時間があるかもしれない)"
追加
お願いです、スタニスラフさん、このまま極論を続けないでください、謝りたくないんです。
加入すると、カウンターが1つ増えます。
退会するとカウンターが1つ減ります。
あなたのEAがtumblrのイベントを必要とする場合、彼は誰かが彼が購読することを可能にすることを他のEAに依存してはいけません。彼はOnInitで自分自身をサブスクライブする必要があります。そして OnDeinit で - unsubscribe します。
あなたが書いていることは、誰もがしていることです。
しかし、問題は、1つのウィンドウで2つのサブスクリプションが呼び出されていた場合、一方のサブスクリプションを削除すると、もう一方(2つ目)も削除されることです。
あなたが書いたこと、みんなそうなんです。
しかし、問題は、1つのウィンドウで2回サブスクリプションが呼び出された場合、1つのサブスクリプションを削除すると、もう1つ(2つ目)が削除されることです。
いや、そんなことはないはずだ。2 サブスクリプション - 2 AddRef.1 配信停止 - 1 リリースその結果、カウンターは1になります。
カウンタが0になった後、サブスクリプションは破棄される
しかし、問題は、1つのウィンドウで2つのサブスクリプションが呼び出されていた場合、一方のサブスクリプションを削除すると、もう一方(2つ目)も削除されることです。
つまり、エキスパート/エキスパートカウンターはありますが(ただし、1つのチャートに存在できるのは1人のエキスパートのみ)、エキスパート/インジケーターカウンターやインジケーター/インジケーターカウンターは存在しません。
つまり、エキスパート/エキスパートカウンターはあるが、エキスパート/インジケーターカウンターはない
1つのウィンドウには、1人のエキスパートしか入れません。
1つのウィンドウには、1人のアセッサーしか配置できません。
まさにその通り...。ウィンドウやチャートの間はカウントされますが、内側はカウントされません。
いや、そんなことはないはずだ。2 サブスクリプション - 2 AddRef.1 配信停止 - 1 リリースその結果、カウンターは1になります。
カウンタが0になった後、サブスクリプションは破棄される
このスレッドには、指標のコードがあります。同じウィンドウで同じシンボル(砦)でそれらを実行すると、あなた自身のために表示されます。
追加
チェックに要する時間は2分
1 インジケータ
2 インジケータ
問題点は理解している。
まだ答えられない
問題点は理解している。
まだ答えられない
ありがとうございます!解くのがとても楽しみです。
でも、逆に謝る必要があるのは、何も読まないあなたで、私は書いたんです。
"同じシンボルの異なるウィンドウでこれらのインジケータを実行しましたが、問題なく動作 しています。
が、1つのシンボルウィンドウで 両方のインジケータを実行したところ、 本当に
サブスクリプションは、インジケータを1つ外すと「落ちる」のです。
SDに書き込む(もしかしたら新ビルドで修正する時間があるかもしれない)"
追加
お願い、スタニスラフ、この議論を続けないでください、謝罪したくない - しないでください。
始めたからには、最後までやり遂げなければならない。謝ることは何もない。私はあなたと違って、すべてを要領よく書きました。
あなたの投稿を全部見たよ。自分の都合のいいところだけ引用して、それ以前やそれ以降のことはまるで書いていないかのように無視してるだけだろう。確かに、1回目から問題を再現することができましたね。それに大体、このスレッドに来たのは、話題とは関係ないあなたの問題でしょう。