Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 1473

 
Alexander Sevastyanov #:

Ich glaube, dass die Chancen auf eine Rückerstattung von Beträgen in diesem Fall gleich Null sind.
Jeder hier hat bereits sehr richtig geantwortet.

Aber es ist trotzdem besser, es zu versuchen.

Alexander, vielen Dank für deine Hilfe. Viel Erfolg beim Programmieren und Handeln. Alles Gute für Sie.
 
Valeriy Yastremskiy #:

Bevor Sie irgendetwas mit Ihrem Geld tun, sollten Sie zumindest ein Minimum an Informationen einholen.

Das Gleiche gilt für Sie.

Hoffentlich kein Kredit... Gehen Sie auf jeden Fall zur Polizei.

Ich danke Ihnen allen für praktische Ratschläge und Hilfe. Moderatoren, bitte verzeihen Sie mir, dass ich gegen die Forenregeln verstoßen habe. Ich bin ein Neuling und wusste nicht, dass es nicht erlaubt ist, über Makler zu diskutieren. Ich werde die Regeln sorgfältig lesen und mich verpflichten, sie nicht zu verletzen. Nochmals vielen Dank an alle, die auf meinen Appell reagiert haben, und viel Glück.
 

Ich habe versucht, ein Analogon des Kommentars zu erstellen, aber die Buchstaben waren größer.

Im Allgemeinen hat es funktioniert, die Buchstaben sind jetzt lesbar.

Aber wegen meiner Unkenntnis von OOP, mein Kommentar wirkt sich nicht sehr gut auf die Arbeit des Computers,

Einige Zeit nachdem ich den Expert Advisor mit einem Kommentar auf mehreren Charts laufen ließ, passiert etwas Schlimmes, bis hin zum Ausblenden des Bildschirms und dem Neustart des Servers)))))

Im Terminal protokolliert ein Haufen dieser Datensätze.

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

Helfen Sie denen, die wissen, wie es geht, damit der Speicher nicht leckt.

Die Plugin-Kommentardatei sieht wie folgt aus:

#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);
  }

Beispiel für die Verwendung es so:

#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();
  }
//+------------------------------------------------------------------+


Es ist klar, dass ich etwas falsch machen mit der CCanvas-Klasse, aber was genau falsch ist, verstehe ich nicht.

Dateien:
Comm.mq5  2 kb
Comm.mqh  2 kb
 
Aleksandr Slavskii #:

Ich habe versucht, eine Analogie zu diesem Kommentar zu erstellen, aber die Buchstaben waren größer.

Die Buchstaben sind jetzt lesbar.

Aber da ich mich nicht mit OOP auskenne, wirkt sich mein Kommentar nicht sehr gut auf die Arbeit des Computers aus,

Einige Zeit nachdem ich den Expert Advisor mit einem Kommentar auf mehreren Charts laufen lasse, passiert etwas Schlimmes, bis hin zum Ausblenden des Bildschirms und dem Neustart des Servers))))))

Im Terminal wird ein Haufen dieser Einträge protokolliert.

Helfen Sie denen, die wissen, wie zu tun ist, so dass der Speicher nicht ausläuft.

Die beigefügte Kommentar-Datei sieht wie folgt aus:

Beispiel Verwendung wie diese:


Es ist klar, dass ich etwas mit der CCanvas-Klasse falsch mache, aber was genau falsch ist, verstehe ich nicht.

Wenn Sie in den Code ohne CCanvas Bibliothek interessiert sind, aber mit OBJ_BITMAP_LABEL Objekt, schauen Sie sich meinen Code ...

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

Wenn Sie an Code ohne CCanvas-Bibliothek, aber mit OBJ_BITMAP_LABEL-Objekt interessiert sind, sehen Sie sich meinen Code an ...

Danke, schöne Lösung, ich mag sie.


Aber, "ein Samurai hat kein Ziel , nur einen Weg ", die Lösung, wie man einen Kommentar zu machen ist weniger wichtig für mich als herauszufinden, was mein Fehler bei der Verwendung der Klasse ist.

 
Aleksandr Slavskii #:

Danke, schöne Lösung, hat mir gefallen.


Aber, "ein Samurai hat kein Ziel , nur einen Weg ", ich kümmere mich weniger darum, herauszufinden, wie man einen Kommentar macht, als herauszufinden, was mein Fehler bei der Verwendung der Klasse war.

Wie viele, in wie vielen BitmapLabel werden erstellt? (Strg+B --> Alle).

 
Artyom Trishkin #:

Wie viele, in welcher Menge wird ein BitmapLabel erstellt? (Strg+B --> Alle).

In einem Diagramm, ein Objekt.

Wie kann es mehr als eines geben? Der Name aller erstellten Objekte ist derselbe - "Kommentar".


Ich habe vergessen zu schreiben.

Das Problem tritt auf einem superarmen Server mit einem Kern und 1gb Speicher auf. Und dann nicht sofort, sondern erst nach einiger Zeit.

Aber ich denke, dass, wenn alles normal mit dem Code war, würde es kein Problem sein. Irgendetwas verstopft den Arbeitsspeicher, ich kann nicht verstehen, was es ist.

Warum ist es für mich wichtig , das zu wissen?

Man kann Serverkapazitäten kaufen, man kann Arbeitsspeicher kaufen, man kann endlos aufrüsten, aber das wird meinen Code nicht richtig machen.

 
Aleksandr Slavskii #:

Auf einer Karte, ein Objekt.

Wie kann es mehr als eines geben? Der Name aller erstellten Objekte ist derselbe - "Kommentar".


Ich habe vergessen zu schreiben.

Das Problem tritt auf einem superarmen Server mit einem Kern und 1gb Speicher auf. Und nicht sofort, aber nach einiger Zeit.

Aber ich denke, dass, wenn alles normal mit dem Code war, würde es kein Problem sein. Irgendetwas verstopft den RAM, ich kann nicht verstehen, was es ist.

Warum ist es für mich wichtig, das zu verstehen ?

Sie können mehr Serverkapazität kaufen, Sie können mehr Speicher kaufen, Sie können endlos aufrüsten, aber das wird meinen Code nicht korrigieren.

Was steht im Protokoll, wenn ein Expert Advisor aus dem Chart entfernt wird? Normalerweise steht dort, welche Objekte undicht sind, was Ihnen eine Suchrichtung gibt.

 
Artyom Trishkin #:

Was steht im Protokoll, wenn EA aus dem Diagramm entfernt wird? Normalerweise steht dort, welche Objekte undicht sind, was Ihnen eine Suchrichtung gibt

Mm-hmm. Ich habe die Protokolle gelöscht. Aber kein Problem, es wird nicht lange dauern, es wieder zu tun. Jetzt werde ich den Expert Advisor auf dem Server starten, am Morgen (vielleicht früher) werden die Logs da sein.

Aber soweit ich mich erinnere, konnte ich in ihnen keinen Hinweis darauf finden, wo der Speicher leckt.

Und der Expert Advisor wird nicht aus dem Chart entfernt, höchstwahrscheinlich startet er nur den Server neu, da es keine Aufzeichnung über das Schließen des Terminals in den Protokollen gibt. Aber das ist nicht sicher.

 
Aleksandr Slavskii #:

Ich habe die Protokolle gelöscht. Aber kein Problem, es wird nicht lange dauern, es wieder zu tun. Ich werde jetzt den Expert Advisor auf dem Server starten, die Logs habe ich dann morgen früh (vielleicht auch früher).

Aber soweit ich mich erinnere, konnte ich darin keinen Hinweis darauf finden, wo der Speicher leckt.

Und der Expert Advisor wird nicht aus dem Chart entfernt, sondern startet höchstwahrscheinlich nur den Server neu, da in den Protokollen kein Hinweis auf das Schließen des Terminals zu finden ist. Aber das ist nicht sicher.

Sie haben den Sinn meiner Frage nicht verstanden. Sie brauchen nicht auf den Server zu warten, wenn er keinen Speicher mehr hat und ausbricht.

Wenn der Code ein Objektleck aufweist, kompilieren Sie ihn auf Ihrem lokalen Computer neu, während der Expert Advisor läuft - in den Protokollen sollte eine Meldung über die Anzahl und Art der ausgelaufenen Objekte angezeigt werden. Oder lassen Sie ihn auf einem Diagramm laufen und nehmen Sie ihn sofort herunter - auch hier sollte eine Meldung über das Leck erscheinen, falls es eines gibt, natürlich.

Grund der Beschwerde: