Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 593

 

Eine weitere Frage: Wie gut funktioniert der Tester mit EAs, die Daten von mehreren TFs kopieren?

Wenn dies zutrifft, ist es dann wichtig, welche TF beim Testen zu wählen?

 
Juer:

Bei der Durchführung eines Tests wird ein Fehler wegen Speichermangels angezeigt (der Test startet nicht). Wie kann man das beheben?

Nach dem Neustart des Terminals beginnt der Test, und nach mehreren Tests ist der Speicher wieder leer.

Verringern Sie die Anzahl der sichtbaren und der Balken in der Historie (in diesem Fall verschwindet jedoch die Deep-Quotes-Historie, also entscheiden Sie, was wichtiger ist). Es ist auch möglich, dass zu viele Charts im Terminal geöffnet sind. Manchmal öffnet ein Benutzer etwa 50 Charts mit 1 Million Balken in der Historie. Kein Speicher ist in diesem Fall ausreichend.

 
Artyom Trishkin:

Hier werden sie genau antworten können.

Der Code besteht aus mehreren zehntausend Zeilen. In den Protokollen Fehler nur nach Prüfung xxx ungelöschte Objekte links. Ich kann im Durchschnitt etwa 9 Tests durchführen und habe dann keinen Speicher mehr.

 
Ihor Herasko:

Reduzieren Sie die Anzahl der sichtbaren und der Balken in der Historie (nur in diesem Fall verschwindet die Deep-Quotes-Historie, also entscheiden Sie, was wichtiger ist). Es ist auch möglich, dass zu viele Charts im Terminal geöffnet sind. Manchmal öffnet ein Benutzer etwa 50 Charts mit 1 Million Balken in der Historie. Kein Speicher ist in diesem Fall ausreichend.

Nein, es hilft nicht und beeinflusst nichts. Ich teste mit einem Diagramm und reduziere die Historie auf ein Minimum. Ich wiederhole, es kann getestet werden, aber nur eine begrenzte Anzahl von Malen. Ungefähr beim 10. Test erscheint eine Fehlermeldung, dass der Speicher voll ist.

 
Juer:

Der Code besteht aus mehreren zehntausend Zeilen. In den Protokollen Fehler nur nach Prüfung xxx ungelöschte Objekte übrig. Im Durchschnitt kann ich 9 Tests durchführen und habe dann keinen Speicher mehr.

Dies sind alles Speicherlecks. Sie müssen beseitigt werden, indem der den einzelnen Objekten zugewiesene Speicher mit dem Befehl delete freigegeben wird.

 
Ihor Herasko:

Dies sind alles Speicherlecks. Sie müssen beseitigt werden, indem der den einzelnen Objekten zugewiesene Speicher mit dem Befehl delete freigegeben wird.

Zur Verdeutlichung: Löschen Sie alle Objekte in OnDeinit() - grafische Objekte, Klassenobjekte, falls vorhanden...

 
Artyom Trishkin:

Zur Verdeutlichung: Löschen Sie alle Objekte in OnDeinit() - grafische Objekte, Klassenobjekte, falls vorhanden...

Wie lösche ich sie dort, wenn sie nicht sichtbar sind...

Ich habe eine Sammlung von Objekten (Klasse geerbt von CArrayObj), Sie sind wiederum zu einer Liste von ähnlichen Objekten hinzugefügt, und diese zu das endgültige Objekt (auch geerbt von CArrayObj), die bereits auf globaler Ebene sichtbar ist und die ich in OnDeinit löschen... Und ich lösche sie nicht, wenn ich sie lösche, sondern ich brauche sie, während das Programm läuft.

 
Juer:

Wie lösche ich sie dort, wenn sie nicht sichtbar sind...

Ich habe eine Sammlung von Objekten (Klasse geerbt von CArrayObj), Sie sind wiederum zu einer Liste von ähnlichen Objekten hinzugefügt, und diese zu das endgültige Objekt (auch geerbt von CArrayObj), die bereits auf globaler Ebene sichtbar ist und die ich in OnDeinit löschen... Und ich lösche sie nicht, wenn ich sie lösche, sondern ich brauche sie, während das Programm läuft.

Es kommt nicht vor, dass die von Ihnen erstellten Objekte unsichtbar sind.

Sie können von der einen oder anderen Funktion aus unzugänglich sein, aber sie müssen im Objekt selbst zugänglich sein. Dies ist das Objekt, bei dem Sie den Speicher löschen müssen. Dies geschieht in der Regel mit dem Destruktor der Klasse. Um sicherzugehen, sollten Sie Prints in alle Destruktoren und in OnDeinit einfügen.

 
Bitte sagen Sie mir, wer weiß, wie ich feststellen kann, ob ein OCT-Panel auf dem Diagramm vorhanden ist.
 
Stanislav Dray:
Bitte sagen Sie mir, wie ich das Vorhandensein eines OCT-Panels in einem Diagramm erkennen kann.

Was ist ein OCT-Panel?

Grund der Beschwerde: