Diskussion zum Artikel "Welche Überprüfungen der Handelsroboter vor der Veröffentlichung in Market bestehen soll" - Seite 15
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
Hallo.
Wie kann ich überprüfen, ob ich genügend Speicherplatz habe?
Jetzt diese Meldung.
Beim dritten Versuch ging es, ohne dass ich etwas geändert habe
Hallo.
Wie kann ich überprüfen, ob ich genügend Speicherplatz habe?
Jetzt diese Meldung
Beim dritten Versuch klappte es, ohne dass irgendwelche Änderungen vorgenommen wurden
In diesem Fall ist die Meldung nicht ganz korrekt. Das Problem lag im RAM.
Der Speicher auf dem Server wurde hinzugefügt.
In diesem Fall ist die Meldung nicht ganz korrekt. Das Problem lag im RAM.
Der Speicher auf dem Server wurde hinzugefügt.
Ich danke Ihnen.
MT5-Terminal. Broker RoboForex, Instrument - CFD AAPL.
Beim ersten Lauf im Roboter-Tester 2021.05.05.05 16:30:00 erhielt ich die Meldung " failed market buy 0.1 AAPL [Market closed] ", Fehler 4756, retcode 10018.
Arbeitstag - Mittwoch, Handelszeit, Tick um 16:30:00 vergeht, aus welchem Grund der Markt geschlossen ist - es ist nicht klar.
Die Prüfung auf Markt geschlossen ist nicht in der Liste der obligatorischen Prüfungen, d.h. (theoretisch) würde die Eulen-Validierung bestehen.
Aber!
Wenn Sie nach Erhalt dieses Fehlers die Zeit nicht um 2-3 Stunden verzögern, wird sie nicht bestehen - der kritische Fehler "Stack is full" wird empfangen und der Tester wird abgeschaltet. Selbst wenn er bestehen würde - ich mag keine Fehler im Protokoll. Es sollte auch keine geben.
Ich habe alle Funktionen sorgfältig geprüft - ich habe nicht gefunden, wie ich das Ereignis " Markt geschlossen " erhalten kann. Es scheint, dass es nicht existiert.
Frage an den Autor des Artikels:
- Wie kann man damit umgehen?
Wenn es eine Funktion gibt, mit der dieser Fehler vermieden werden kann, wäre ich Ihnen für einen Hinweis dankbar.
Im realen Handel schließen fast alle Broker den Handel ein paar Minuten vor Tagesschluss und 5-10 Minuten nach Beginn eines neuen Tages. Aber die Notierungen laufen weiter. Wenn der Expert Advisor also auf dem Markt öffnet und ein zulässiges Signal vorhanden ist, gibt er Fehlerblätter aus. Es ist gut, dass diese "Rauchpause" im Tester nicht ausgearbeitet ist.
Ich habe alle Funktionen sorgfältig geprüft - ich habe nicht gefunden, wie ich das Ereignis " Markt geschlossen " erhalten kann. Es scheint, dass es nicht existiert.
Frage an den Autor des Artikels:
- Wie kann man damit umgehen?
Wenn es eine Funktion gibt, mit der dieser Fehler vermieden werden kann, wäre ich Ihnen für einen Hinweis dankbar.
Im realen Handel schließen fast alle Broker den Handel ein paar Minuten vor Tagesschluss und 5-10 Minuten nach Beginn eines neuen Tages. Aber die Notierungen laufen weiter. Wenn der Expert Advisor also auf dem Markt öffnet und ein zulässiges Signal vorhanden ist, gibt er Fehlerblätter aus. Es ist gut, dass diese "Rauchpause" im Tester nicht ausgearbeitet ist.
Die Kurse laufen, aber es gibt keine Ticks. OnTick() funktioniert nur, wenn es einen weiteren Tick gibt.
Es kommen Kurse, aber es gibt keine Ticks. OnTick() funktioniert nur, wenn es einen weiteren Tick gibt.
Zur Verdeutlichung:
- es handelt sich um den Tester
- die Eröffnung der CFD-Sitzung erfolgt in der Regel mit einer kleineren oder größeren Lücke, d.h. der vom Roboter berechnete Eröffnungskurs liegt auf dem Niveau von "open yesterday"
- am ersten Tick, genau um 16:30:00 Uhr, versucht der Roboter, ein Geschäft zu eröffnen.
Und genau hier liegt das Problem: - um genau 16:30:00 Uhr. ist der Markt noch geschlossen.. Vielleicht für einen Bruchteil einer Sekunde. Aber der Tester wirft zu diesem Zeitpunkt eine Reihe von Fehlern aus, bis der Stapel überläuft. Der Chart steht auf dem allerersten Tick.
Ich habe dieses Problem wie folgt gelöst:
- setze den Abstand vom aktuellen Kurs zum Eröffnungskurs.
- wenn ein Fehler auftritt, setze ich die Variable des Eröffnungskurses zurück. Er bekommt den Wert wieder, aber um 50-100 Pips vom aktuellen Preis entfernt.
- nur ein Fehler passiert, dann wird normal gehandelt.
Aber das ist eine Art Umweglösung. Es gibt noch ein paar andere Optionen:
- fügen Sie die Zeit der Session-Eröffnung in die Menüleiste ein und beginnen Sie den Handel mit einer Verzögerung von 5-10 Minuten
- kontrollieren Sie die Zeit zwischen dem Schließen des ersten Balkens und der Eröffnung des Null-Balkens. Wenn es eine Lücke gibt - machen Sie eine Verzögerung.
In diesem Fall hilft es, eine Menge Fehler zu vermeiden. Aber es löst nicht das "Mitternachtsproblem". Die Broker schließen den Handel für 10-15 Minuten, aber die Kurse fließen immer noch, der Roboter versucht zu handeln und erzeugt immer wieder den Fehler "Markt ist geschlossen".
Es ist unmöglich, dies mit den verfügbaren Tools zu verhindern.
Wenn es eine Funktion gäbe, die die tatsächliche Verfügbarkeit des Marktes erkennt, gäbe es keine Probleme.
Ach ja, wegen OnTick. Richtig, sagen Sie, aber...
Von OnTick aus rufe ich die Funktion Trade() nur einmal pro Minute bei der Eröffnung eines neuen Balkens auf, und weiter im Code , anstatt zurückzukehren; ich habe einen wiederholten Aufruf von Trade(), nicht immer wird alles, was benötigt wird, in einem Tick ausgeführt, d.h. in meiner Variante nach der Eröffnung oder Schließung eines Trades scrollt der Code noch mindestens 1 Mal. Offenbar ist dies der Grund, warum der Code bei dem Fehler "Market is closed" hängen bleibt
Zur Verdeutlichung:
- es handelt sich um den Tester
- die Eröffnung der CFD-Sitzung erfolgt in der Regel mit einer kleineren oder größeren, aber Lücke, d.h. der vom Roboter berechnete Eröffnungskurs liegt auf dem Niveau von "open yesterday"
- am ersten Tick, genau um 16:00 Uhr, versucht der Roboter, ein Geschäft zu eröffnen.
Vielleicht ist es besser, sich die Spezifikation anzusehen?
Warum der erste Tick um 16:00 Uhr, wenn der Zeitpunkt des ersten Ticks um 16:30 Uhr liegt?
Wäre es nicht besser, sich die Spezifikation anzusehen?
Warum der erste Tick um 16:00 Uhr, wenn die Zeit des ersten Ticks 16:30 Uhr ist?
Ja, natürlich ist es 16:30
Danke, dass Sie den Tippfehler bemerkt haben - ich habe den Text korrigiert.
Ich habe eine Zeile zu OnTick() hinzugefügt.
Dieses spezielle Problem wurde gelöst - ich habe einen Fehlerzähler in die Funktion zum Eröffnen von Trades eingefügt, beim jährlichen Durchlauf gibt es keine Fehler.
Das bedeutet, dass es sich nur um diese Sekundenbruchteile (oder Sekunden/Minuten) handelt, wenn eine Sitzung eröffnet wird.
Aber ich hätte immer noch gerne eine Funktion, die über die Verfügbarkeit des Marktes informiert.
Ich frage mich, ob die Leute, die sich die Mühe machen, die Probleme des Autotesters zu überwinden,
ob sie ihre Roboter überhaupt benutzen?
Es ist nur so, dass manchmal Fehler aussortiert werden, die im wirklichen Leben zumindest eine Schelte in den Zeitschriften nach sich ziehen würden.
Ich kann ja verstehen, wenn Autotester Tricks über seltsame Lose/Schritte/Posten/Balance_in_1 cent....
...aber die Sache, die der Roboter im normalen Betrieb betreten musste - Versuche, etwas außerhalb der Handelssitzung zu tun, oder das Flag trading_forbidden ist es wie ?
haben Sie Ihren Roboter nie laufen lassen, außer für den lokalen Tester????