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

 
fxsaber:

また、有償マーケット製品の自動削除も可能です。無料デモモードでは、すべてのリソース(アイコン、カーソルなど)を削除します。アルファチャンネルとかで。

できます。そして、ビクビクするのをやめて、「なぜ、イベントにはエンディングが必要なのか」と考えることもできます。

 
A100:

信じられない!- マーケットにあるものはすべて安全であると書かれています

自社で輸入して いるのでは?)

 
A100:

信じられない!- すべてマーケットで安全に保護されていると書かれています

本気なのか皮肉なのかわからない。もし真剣なら、ResourceSaveはすべての頭脳である。

でも、こんなやり方もあるんですね。

トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム

mql5言語の特徴、微妙なニュアンスとコツ

fxsaber さん 2017.10.31 08:11

// Сохранение Bitmap-объекта в bmp/gif/png-файле (прозрачность не учитывается)
bool BitmapObjectToFile( const long chartID, const string ObjName, const string FileName, const bool FullImage = false )
{  
  const ENUM_OBJECT Type = (ENUM_OBJECT)ObjectGetInteger(chartID, ObjName, OBJPROP_TYPE);  
  bool Res = (Type == OBJ_BITMAP_LABEL) || (Type == OBJ_BITMAP);
             
  if (Res)
  {
    const string Name = __FUNCTION__ + (string)MathRand();

    ObjectCreate(chartID, Name, OBJ_CHART, 0, 0, 0);
    ObjectSetInteger(chartID, Name, OBJPROP_XDISTANCE, -1 e3);
    
    const long chart = ObjectGetInteger(chartID, Name, OBJPROP_CHART_ID);
        
    Res = ChartSetInteger(chart, CHART_SHOW, false) && ObjectCreate(chart, Name, OBJ_BITMAP_LABEL, 0, 0, 0) &&
          ObjectSetString(chart, Name, OBJPROP_BMPFILE, ObjectGetString(chartID, ObjName, OBJPROP_BMPFILE)) &&
          (FullImage || (ObjectSetInteger(chart, Name, OBJPROP_XSIZE, ObjectGetInteger(chartID, ObjName, OBJPROP_XSIZE)) &&
                         ObjectSetInteger(chart, Name, OBJPROP_YSIZE, ObjectGetInteger(chartID, ObjName, OBJPROP_YSIZE)) &&
                         ObjectSetInteger(chart, Name, OBJPROP_XOFFSET, ObjectGetInteger(chartID, ObjName, OBJPROP_XOFFSET)) &&
                         ObjectSetInteger(chart, Name, OBJPROP_YOFFSET, ObjectGetInteger(chartID, ObjName, OBJPROP_YOFFSET)))) &&
                         ChartScreenShot(chart, FileName, (int)ObjectGetInteger(chart, Name, OBJPROP_XSIZE),
                                                          (int)ObjectGetInteger(chart, Name, OBJPROP_YSIZE));
    ObjectDelete(chartID, Name);
  }                    

  return(Res);
}


アプリケーション

// Сохраняет в png-файлах все Bitmap-объекты текущего чарта
void OnStart()
{  
  for (int i = ObjectsTotal(0) - 1; i >= 0; i--)
  {
    const string Name = ObjectName(0, i);
    
    BitmapObjectToFile(0, Name, (string)ChartID() + "\\" + Name + ".png");    
  }      
}


ZZY BMP->GIF/PNGファイルコンバータも実装しました。

 
A100:

どこで変更するのですか?MetaTraderやドキュメントでは...。たとえば

ワイドイベントの場合 OnChartEventはより具体的に書くと、 チャート上の すべてのmql5プログラム(つまりサブスクリプションユニットはチャート)にイベントメッセージを送信します。

実際どうなんだろう

CheckBookEventCount()関数が追加されるかも?

つまり、カウンタが1より大きい場合は、配信停止を呼び出さないということです。

 
prostotrader:

CheckBookEventCount()関数を追加するとよいでしょう。

つまり、countが1より大きい場合は delete subscriptionを呼び出さない。

なぜダメなのか?

しかし、疑問は残ります。

  • カウンターを減少させる関数はどれでしょうか?
  • カップを閉じるのはどちらか?

もし、すべてをMarketBookReleaseに 置くのであれば、なぜCheckBookEventCountなのか、なぜ私たちが カウンターチェックをするのか?

 

一般に、ブロードバンド加入の単位がグラフであれば、このような名前のグローバル変数 に基づいてプログラム間加入 countersubscription を編成することで、何もしないでも済む。

string GVName( string symbol ) { return IntegerToString(ChartID()) + ":" + symbol; }

暗黙の了解で

 
A100:
サンドボックス内ではそうですが、ガラスに結びついた外部コードは、あなたを壊してしまう可能性があります。
 
prostotrader:

まあ、予想通り、間違っていますね。

私が間違っていることもあるが、今回は違う。もっと他の人の書き込みをよく読んでほしいです。何が問題なのか何度も繰り返したが、無駄だった...。

 
fxsaber:

InitおよびDeinitは、サブスクリプションの一部ではありません。もしかしたら、この状況が役に立つかもしれません。

いいえ、そんなことはどうでもいいのです。インジケータのリロード時にOnInit/OnDeinitの呼び出しが予測できない問題は、オブジェクトの生成/破壊に 依存しても解消されず、同じパラドックスが存在するのです。

しかし、もう一度言いますが、この配列(インジケータ)はエラーの原因ではありません。

 
Stanislav Korotky:

私が間違っていることもあるが、今回は違う。もっと他の人の書き込みをよく読んでほしいです。何が問題なのか何度も繰り返したが、無駄だった...。

なるほど、すべての投稿を読むのがいいんですね。

https://www.mql5.com/ru/forum/267154/page7#comment_8170755
Подписка на OnBookEvent иногда отваливается - есть такое?
Подписка на OnBookEvent иногда отваливается - есть такое?
  • 2018.07.24
  • www.mql5.com
После того как поплотнее занялся стаканом и повесил на чарты несколько экспертов и индикаторов, подписанных на OnBookEvent, обнаружил, что некоторы...