Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Es ist klar, dass die Nullsetzung aus Kompatibilitätsgründen vorgenommen wurde, aber es ist nicht klar, warum das unbenutzte enum = WRONG_VALUE nicht korrekt funktioniert, wenn es korrekt initialisiert wurde. Dieser Ansatz ist nicht übertragbar und erhöht die Wahrscheinlichkeit von versteckten Fehlern erheblich.
Erinnern Sie sich an diese Regel?
Regel: Wenn einer benannten Konstante - Mitglied einer Aufzählung - nicht ausdrücklich ein bestimmter Wert zugewiesen wird, wird ihr Wert automatisch generiert. Handelt es sich um das erste Mitglied der Aufzählung, wird der Wert 0 zugewiesen. Für alle nachfolgenden Mitglieder werden die Werte auf der Grundlage des Wertes des vorherigen Mitglieds berechnet, indem ein Wert addiert wird.
Höchstwahrscheinlich wird bei der Überprüfung der Korrektheit der Abfragefelder davon ausgegangen, dass der Wert eines Aufzählungselements nicht negativ sein kann. Die Möglichkeit der Zuweisung von WRONG_VALUE an ein Aufzählungsmitglied wird nicht berücksichtigt.
Die Möglichkeit, einem Aufzählungselement WRONG_VALUE zuzuweisen, wird jedoch nicht berücksichtigt.
Ich denke, genau hier liegt der Fehler. Wenn eine konkrete Aufzählung nicht verwendet wird, ist es logisch, dass ihr Wert WRONG_VALUE ist und nicht z. B. ORDER_TYPE_BUY, der tatsächlich = 0 ist.
und - was am wichtigsten ist - nichts hindert Sie daran, die Logik von OrderCheck() und OrderSend() zu ändern und dabei die Kompatibilität zu wahren
und, was am wichtigsten ist, nichts hindert Sie daran, die Logik von OrderCheck() und OrderSend() zu ändern und dabei die Kompatibilität zu wahren
Ich habe einen seltsamen "Fehler" entdeckt.
Ich verwende diesen Code in meinem EA:
Ein einzelner Durchlauf im Tester verläuft ohne Probleme, aber sobald ich Parameter mit vollständiger Suche auswähle, arbeitet der Tester zehn oder zehn Mal langsamer. Ich verstehe nicht, warum die Geschwindigkeit bei einem Durchlauf ausreichend ist und bei der Optimierung merklich abfällt. Sie geht geometrisch zurück. Anhand des Prozentsatzes können Sie sehen, dass am Anfang alles in Ordnung ist, aber gegen Ende wird die Geschwindigkeit immer langsamer und langsamer. Ich habe nach Problemen in meinem Code gesucht und nach Schleifen oder so etwas gesucht, aber ich habe sie nicht gefunden. Danach habe ich den oben erwähnten Code durch meinen eigenen Algorithmus ersetzt und oh mein Gott! Die Optimierung läuft jetzt mit normaler, gleichmäßiger Geschwindigkeit. Dies führt mich zu dem Schluss, dass das Problem innerhalb von MQL5 liegt, irgendwo im Körper der OnTradeTransaction-Funktion. Ich werde die Entwickler bitten, dies zu beachten.
p.s. Ich kann den Expert Advisor Code nicht posten. Versuchen Sie, den obigen Code in einem Ihrer EAs zu verwenden, und betrachten Sie die Geschwindigkeit der Optimierung im OHLC M5 für den Zeitraum von 2000 bis heute.
Ich habe einen seltsamen "Fehler" entdeckt.
Ich verwende diesen Code in meinem EA:
Ein einzelner Durchlauf im Tester verläuft ohne Probleme, aber sobald ich Parameter mit vollständiger Suche wähle, arbeitet der Tester zehn oder zehn Mal langsamer. Ich verstehe nicht, warum die Geschwindigkeit bei einem Durchlauf ausreichend ist und bei der Optimierung merklich abfällt. Sie geht geometrisch zurück. Anhand des Prozentsatzes können Sie sehen, dass am Anfang alles in Ordnung ist, aber gegen Ende wird die Geschwindigkeit immer langsamer und langsamer. Ich habe nach Problemen in meinem Code gesucht und nach Schleifen oder so etwas gesucht, aber ich habe sie nicht gefunden. Danach habe ich den oben erwähnten Code durch meinen eigenen Algorithmus ersetzt und oh mein Gott! Die Optimierung läuft jetzt mit normaler, gleichmäßiger Geschwindigkeit. Dies führt mich zu dem Schluss, dass das Problem innerhalb von MQL5 liegt, irgendwo im Körper der OnTradeTransaction-Funktion. Ich werde die Entwickler bitten, dies zu beachten.
p.s. Ich kann den Expert Advisor Code nicht posten. Versuchen Sie, den obigen Code in einem Ihrer EAs zu verwenden, und betrachten Sie die Geschwindigkeit der Optimierung im OHLC M5 für den Zeitraum von 2000 bis heute.
Bei verschiedenen Parametern kann der EA unterschiedlich lange laufen
Nachdem Sie den obigen Code durch Ihren Algorithmus ersetzt haben
D.h. sie haben die Verwendung von OnTradeTransaction() aufgegeben? - dann ist es logisch, dass sich die Geschwindigkeit erhöht hat - sie wird bei jeder Gelegenheit aufgerufen
Was hält Sie davon ab, einen minimalen Testfall durchzuführen und dem Service Desk Bericht zu erstatten?