初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 1473

 
Alexander Sevastyanov #:

この場合、いくら返金される可能性はほとんどないと思います。
ここにいる皆さんはすでに非常に正しい答えを出しています。

しかし、やはりやってみるに越したことはありません。

アレクサンダー、ご協力ありがとうございました。プログラミングとトレードの成功を祈ります。お元気で。
 
Valeriy Yastremskiy #:

自分のお金で何かをする前に、少なくとも最低限のチェックはしておこう。

同様に。

クレジットでなければいいが...絶対に警察に行ってください。

皆さん、実践的なアドバイスと助けをありがとうございました。モデレーターの皆様、フォーラムのルール違反をお許しください。私は新参者で、ブローカーについて議論することが禁止されていることを知りませんでした。私の訴えに応えてくださった方々に改めてお礼を申し上げるとともに、幸運を祈ります。
 

コメントのアナログを作ろうとしたが、文字が大きくなってしまった。

一般的にはうまくいった。

ーOOPのー、

いくつかのチャートにコメントを付けてExpert Advisorを実行した後、しばらくすると、画面が消えたり、サーバーが再起動したりという悪いことが起こります)))))

ターミナルには、これらのレコードの束を記録します。

MQL5  VirtualAlloc failed in large allocator, size=101104
MemoryException 101142 bytes not available, 0 heapmin result

メモリがリークしないように、行う方法を知っている人を助ける。

プラグインのコメントファイルはこんな感じ:

#include <Canvas\Canvas.mqh>
void Comm(string txt, color clr = clrYellow, int FontSize = 20, string Font = "Consolas", int flag = FW_BOLD)
  {
   CCanvas canvas;

   int shift = 0;
   if(ChartGetInteger(0, CHART_SHOW_ONE_CLICK))
      shift = 60;
   canvas.Erase(0x00FFFFFF);
   canvas.FontNameSet(Font);
   canvas.FontFlagsSet(flag);
   canvas.FontSizeSet(FontSize);

   int width = 0, height = 0;
   string result[];
   int size = StringSplit(txt, StringGetCharacter("\n", 0), result);
   height = (int)(FontSize * 1.8 * size);

   for(int i = 0; i < size; i++)
     {
      int w = canvas.TextWidth(result[i]);
      if(width < w)
         width = w;
     }

   canvas.CreateBitmapLabel(0, 0, "Comment", 5, 20 + shift, width, height, COLOR_FORMAT_ARGB_NORMALIZE);
   for(int i = 0; i < size; i++)
      canvas.TextOut(0, (int)(FontSize * 0.8 * i), result[i], ColorToARGB(clr, 255));

   canvas.Update(true);
  }

このように使用する例:

#include <Comm.mqh>
//+------------------------------------------------------------------+
void OnTick()
  {
   MqlTick tick;
   SymbolInfoTick(_Symbol, tick);
   if(tick.ask != 0 && tick.bid != 0)
      Comm(StringFormat("ask = %.5f\nbid = %.5f\ntime = %s", tick.ask, tick.bid, TimeToString(tick.time, TIME_DATE | TIME_SECONDS)));
  }
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   ObjectDelete(0, "Comment");
   ChartRedraw();
  }
//+------------------------------------------------------------------+


CCanvasクラスで間違って間違って、CCanvasクラスで、、りがりがりがりがりがりがりがりががががががががががががががががががが数CCanvasクラス。

ファイル:
Comm.mq5  2 kb
Comm.mqh  2 kb
 
Aleksandr Slavskii #:

コメントのアナログを作ろうとしたが、文字が大きくなってしまった。

文字が読めるようになりました。

しかし、私はOOPを知らないので、私のコメントはコンピュータの仕事にあまり影響を与えない、

いくつかのチャートにコメントを入れてExpert Advisorを実行した後、しばらくすると、画面が消えたり、サーバーが再起動したりと悪いことが起こります。)

ターミナルには、これらのレコードの束を記録します。

メモリがリークしないように、行う方法を知っている人を助ける。

添付されたコメントファイルは次のようになります:

使用例はこんな感じです:


CCanvasクラスで何か間違ったことをしているのは明らかだが、具体的に何が間違っているのか理解できない。

CCanvas ライブラリなしで、 OBJ_BITMAP_LABEL オブジェクトを 使ったコードに興味があれば、 私のコードを見て ください。

ClosingLots
ClosingLots
  • www.mql5.com
Индикатор информер.
 
Alexey Viktorov #:

CCanvas ライブラリを使用せずOBJ_BITMAP_LABEL オブジェクトを 使用したコードに興味がある場合は、 私のコードを参照してください ...

ありがとう。


しかし、「侍に ゴールは ない 、ただ 道が あるだけだ。

 
Aleksandr Slavskii #:

ありがとう、美しい解決策だ。


しかし、「サムライに ゴールは ない 、ただ 道が あるだけだ」。私は、コメントをどう作るかよりも、クラスを使った 私の 間違いを見つけることの方が重要だ。

BitmapLabelはいくつ作られるのか?(Ctrl+B --> All)。

 
Artyom Trishkin #:

BitmapLabelは何枚、何個作成されますか?(Ctrl+B→すべて)。

1つのチャートに1つのオブジェクト。

どうして複数あるのでしょうか?作成されたオブジェクトの名前はすべて同じです - "Comment"。


書き忘れた。

この問題は、1コア1GBメモリの超貧弱なサーバーで発生する。そして、すぐにではなく、しばらくしてからです。

しかし、コードが正常であれば問題はないと思います。何かがRAMを詰まらせているのだと思う。

なぜそれが重要な のですか?

サーバーの容量を買ってもいいし、メモリを買ってもいいし、無限にアップグレードしてもいい。

 
Aleksandr Slavskii #:

一つのチャート、一つのオブジェクト。

どうして複数あるのでしょうか?作成されたオブジェクトの名前はすべて同じ「コメント」です。


書き忘れました。

この問題は、1コア、1GBメモリの超貧弱なサーバーで発生する。しかもすぐにではなく、しばらくしてからだ。

しかし、コードが正常であれば問題はないはずだ。何かがRAMを詰まらせているようだ。

なぜ理解することが重要な のでしょうか?

サーバーの容量を増やしてもいいし、メモリを増やしてもいいし、際限なくアップグレードしてもいい。

Expert Advisorがチャートから削除されたとき、ログには何が表示されますか?通常、どのオブジェクトがリークしているかを教えてくれます。

 
Artyom Trishkin #:

EAがチャートから削除されたときのログには何が書かれていますか?通常、どのオブジェクトがリークしているかを教えてくれます。

ログは削除しました。でも問題ない。今、私はサーバー上のExpert Advisorを起動し、午前中に(多分早く)ログになります。

しかし、私が覚えている限りでは、メモリが漏れている場所の兆候は見つからなかった。

また、Expert Advisorはチャートから削除されず、サーバーを再起動するだけである可能性が高い。しかし、これは確かではない。

 
Aleksandr Slavskii #:

ログは削除しました。でも問題ない。今すぐサーバーでExpert Advisorを起動して、朝には(もっと早くかもしれないが)ログを見ることにしよう。

しかし、私が覚えている限りでは、メモリが漏れている場所の兆候は見つからなかった。

また、Expert Advisorはチャートから削除されず、サーバーを再起動するだけである可能性が高い。メモリがー

あなたは私の質問の意味を理解していない。サーバーがメモリを使い果たしてバーストするのを待つ必要はない。

コードにオブジェクト・リークがある場合は、Expert Advisor が実行されているときに、自宅のローカル・コンピュータで再コンパイルしてください。リークしたオブジェクトの数とタイプに関するメッセージがログに表示されるはずです。または、チャート上で実行し、すぐに削除してください。もちろん、リークがある場合は、リークに関するメッセージも表示されるはずです。

理由: