Fehler, Irrtümer, Fragen - Seite 2484

 
Сергей Таболин:

Liebe Entwickler, ich bin auf ein Problem gestoßen. Es braucht Ihre Aufmerksamkeit.

Der Punkt ist, dass TesterStop() undExpertRemove() den Test nicht sofort beenden. Hier ist eine Illustration des Fehlers. Ich entschuldige mich für einige Unmäßigkeiten in diesem Beitrag.

Ich dachte, es wäre korrekter, die Konstante MQL_TESTER_STOP einzuführen - ein Zeichen für die Beendigung des Tests durch TesterStop() oder ExpertRemove().

In diesem Fall könnten wir weitere Aktionen auswählen:

Ein sofortiger Stopp des Expert Advisors bedeutet einen Speicherverlust. Ein sofortiges Anhalten des Expert Advisors kann nicht freigegebene Speicherblöcke hinterlassen. Daher wird das sofortige Anhalten des Expert Advisors nur verwendet, wenn das Client-Terminal oder der Tester-Agent beendet wird, und nur, wenn der Expert Advisor das Stopp-Flag nicht verarbeitet und die Ausführung fortsetzt.

TesterStop gibt den Befehl zum Beenden der Prüfung. Das bedeutet, dass nach Beendigung des aktuellen Handlers OnInit, OnTick, OnTimer, OnChartEvent keine weiteren Ereignisse des Testers mehr behandelt werden, da der Verarbeitungszyklus beendet ist. Und OnTester und OnDeinit werden aufgerufen

 
Slava:

Ein sofortiges Anhalten des EA bedeutet eine Beschädigung des Speichers. Beim sofortigen Stoppen des Expert Advisors können nicht freigegebene Speicherblöcke zurückbleiben. Daher wird der sofortige Stopp des Expert Advisors nur bei Beendigung des Client-Terminals oder des Tester-Agenten verwendet und nur dann, wenn der Expert Advisor das Stopp-Flag nicht verarbeitet und die Ausführung fortsetzt.

TesterStop gibt den Befehl zum Beenden der Prüfung. Das bedeutet, dass nach Beendigung des aktuellen Handlers OnInit, OnTick, OnTimer, OnChartEvent keine weiteren Ereignisse des Testers mehr behandelt werden, da der Verarbeitungszyklus beendet ist. Und OnTester und OnDeinit werden aufgerufen.

Danke, das habe ich schon herausgefunden. Aber das Problem ist damit nicht gelöst. Es kann entweder durch die KonstanteMQL_TESTER_STOP oder durchÄnderung der Rückgabe von void zu bool gelöst werden.

Eine unerwartete Lösung wurde vonAlexey Viktorov vorgeschlagen. Wenn return nach TesterStop() verwendet wird, scheint alles normalisiert zu sein. Wie und warum das passiert, kann ich persönlich nicht herausfinden. Trotzdem...

Fügen Sie daher entweder diesen Punkt in die Dokumentation ein oder ändern Sievoid in bool.

P.S. Dieses Problem ist bei mir in Build 2085 aufgetreten. Davor gab es keine Probleme. Sagt mir das etwas? )))

 

Hallo,

Warum werden im Prüfgerät manchmal verwendete Indikatoren nicht gezeichnet?

Ich starte das Terminal neu - sie werden angezeigt...

Dann hören sie wieder auf - obwohl sich der Code nicht geändert hat...

 

Ich möchte noch eine zweite Frage stellen:

warum werden grafische Objekte im Tester trotz erzwungenem ChartRedraw(0); nicht aktualisiert?

In der Tat aktualisiert der Tester sie danach, aber mit großen Verzögerungen und Rucklern...

Danke.

EDIT: sorry, falscher Alarm, das Problem ist behoben (das Problem lag in meinem fehlerhaften Code)

Die Frage nach den Indikatoren bleibt jedoch bestehen.

 
P.S. Version 2085 vom 13. Juni
 

@Slava sagen Sie mir, in der 2007 bauen TesterStop() übergeben Kontrolle nur in OnDeinit ? Es fand keine Übergabe der Kontrolle an OnTester? statt.

Deshalb hat mein Code gut funktioniert, und das Testergebnis war in einem solchen Fall 0.

 
Сергей Таболин:

@Slava sagen Sie mir, in der 2007 bauen TesterStop() übergeben Kontrolle nur in OnDeinit ? Es fand keine Übergabe der Kontrolle an OnTester? statt.

Deshalb hat mein Code gut funktioniert, und das Testergebnis war in einem solchen Fall 0.

Erstellen Sie Ihr globales Flag, setzen Sie es vor dem Aufruf von TesterStop, und analysieren Sie es in OnTester.

 
Andrey Khatimlianskii:

Starten Sie Ihr globales Flag, heben Sie es an, bevor Sie TesterStop aufrufen, und analysieren Sie es in OnTester.

Ich habe es )))) Es stellte sich heraus, dass es nicht so einfach war. Im Prinzip ist das Problem gelöst, ich möchte nur die Bestätigung hören, dass TesterStop vorher etwas anders funktioniert hat.

 
2085
Linux, Wein-4.0.1

Der Link, der zur Werkzeugbeschreibung führt, bleibt stecken.

Wenn die Beschreibung keinen Link enthält, wird der Effekt nicht angezeigt.


Dateien:
link.gif  5125 kb
 
Vladimir Karputov:

Sie haben möglicherweise ein 32x-Betriebssystem. Oder Ihnen geht der Arbeitsspeicher aus.

Computer. lenovo G50-45 (LAPTOR-46OAGFM3)
AMD A4-6210 APU mit AMD Radeon
R3-Grafik 1,80 GHz
2.00GB RAM
Systemtyp 64bit, x64 Prozessor