Validierungsfehler bei der Freigabe des Handelsroboters für den Markt. - Seite 4

 

Hallo!

Heute hat der Validator eine Meldung ausgegeben:

Geprüft mit drei Prüfern, 10 Sekunden und er fällt durch. Was kann das Problem sein, vielleicht haben Sie etwas mit der Software!

P.S. Ich habe zur Kontrolle in OnTick() die erste Zeile des Ausdrucks eingefügt:

Das kann kein leerer Testerbericht sein!!! Meine Logs sind voll:


 
Andrey Kaunov:

Heute hat der Validator begonnen, eine Meldung auszugeben:

Das war es, es ist vorbei. Validator-Fehler.

 
Andrey Kaunov:

Hallo!

Der Validator gibt seit heute eine Meldung aus:

Vielen Dank für Ihre Nachricht. Korrigiert.

 

Ja, der Validator ist eingerichtet und läuft. Aber jetzt gibt es eine weitere seltsame Sache. Der Validator, der zu diesem Ergebnis führt

Zur gleichen Zeit auf meinem Testgerät geht alles gut. Ich habe eine Krücke eingesetzt, um den Code zu überprüfen (Division durch Null):


Und bekam:

Es stellt sich heraus, dass der Prüfer während des Tests immer noch auf die Funktion der Auftragseröffnung verzichtet. Es ist völlig unklar, warum er ausgibt:keine Handelsgeschäfte

 
Andrey Kaunov:

Ja, der Validator ist eingerichtet und läuft. Aber jetzt gibt es eine weitere seltsame Sache. Der Validator, der zu diesem Ergebnis führt

Zur gleichen Zeit auf meinem Testgerät geht alles gut. Ich habe eine Krücke eingesetzt, um den Code zu überprüfen (Division durch Null):


Und bekam:

Es stellt sich heraus, dass der Prüfer während des Tests immer noch auf die Funktion der Auftragseröffnung verzichtet. Ich verstehe nicht, warum der Analysatorkeine Handelsoperationen erzeugt.

Höchstwahrscheinlich tritt beim Senden einer Bestellung ein Fehler auf und das Protokoll enthält etwas wie GetLastError. Es wäre großartig, wenn eine Funktion vom Typ Throw(code) zu MQL hinzugefügt würde, die zu einem Stopp wie Division durch Null führt, aber den Code zurückgibt, und dann könnten wir Throw(GetLastError()) schreiben, um einen Hinweis im Protokoll zu erhalten. Es gibt übrigens die Funktion TerminalClose(retcode) - Sie können versuchen, sie zu verwenden, aber ich vermute, dass sie im Autotester einfach deaktiviert ist.

 

Ich stimme völlig zu.

Idealerweise würde der Validator natürlich Testprotokolle und nicht nur einen dreizeiligen Bericht versenden. Dann gäbe es eine Chance, herauszufinden, was falsch läuft, anstatt mit dem Finger auf den Himmel zu zeigen.

Bitte denken Sie darüber nach.

 
Andrey Kaunov:

Ich stimme völlig zu.

Idealerweise würde der Validator natürlich Testprotokolle und nicht nur einen dreizeiligen Bericht versenden. Dann gäbe es eine Chance, herauszufinden, was falsch läuft, anstatt mit dem Finger auf den Himmel zu zeigen.

Bitte denken Sie darüber nach.

Vielmehr wird es Möglichkeiten geben, einen bestimmten Fehler zu umgehen (zu verstecken), anstatt die Logik der Handelsfunktionen korrekt zu entwerfen. Es sollte keine Validierungsfehler geben, wenn "idiotische" Eingabeparameter richtig berücksichtigt und gehandhabt werden, oder wenn die Handelsbedingungen für den Handel falsch berechnet werden.

 

Hier liegt kein Fehler vor, ich verstehe überhaupt nicht, was hier los ist. Ich habe eine Krücke (Division durch Null) vor die Handelsfunktion gesetzt:

Es funktioniert:

Wenn ich sie herausnehme, erhalte ich das gleiche

Keine Handelsgeschäfte.

Ich verstehe nicht, was den Validator von OrderSend() abhält. Denn wenn sie bei ihm ankommt, muss es sich um Abrechnungsfehler handeln (obwohl ich sie alle behoben habe) 130, 131, 134, ..., aber nicht"keine Handelsgeschäfte". Alles, was ich jetzt tun muss, ist, in OnInit() einen schwebenden Auftrag irgendwo weit weg von ihm einzufügen, ich weiß nicht, wie ich damit kämpfen soll.

 
Andrey Kaunov:

Hier liegt kein Fehler vor, ich verstehe überhaupt nicht, was hier los ist. Ich habe eine Krücke (Division durch Null) vor die Handelsfunktion gesetzt:

Es funktioniert:

Wenn ich sie herausnehme, erhalte ich das gleiche

Keine Handelsgeschäfte.

Ich verstehe nicht, was den Validator von OrderSend() abhält. Denn wenn sie bei ihm ankommt, muss es sich um Abrechnungsfehler handeln (obwohl ich sie alle behoben habe) 130, 131, 134, ..., aber nicht"keine Handelsgeschäfte". Alles, was ich jetzt tun muss, ist, in OnInit() einen schwebenden Auftrag irgendwo weit weg von ihm einzufügen, ich weiß nicht, wie ich damit kämpfen soll.

Guten Tag. Versuchen Sie, die Funktion hinzuzufügen, über die ich hier bereits geschrieben habe.
 
Wahrscheinlich ist es nur sie.