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
Ich habe es irgendwie ausgeheckt. Kritik ist willkommen.
Da es sich wahrscheinlich um einen Experten handeln wird:
и:
Ich wette darauf, dass das garantiert ist. Zumindest verlasse ich mich ständig darauf, und das Problem ist noch nie aufgetreten.
Verstehe. Wie auch immer, es ist ein heikler Moment.
OnkelVic
Das ist wahr. Aber in meinem Fall ist das überflüssig:
Wie Sie sehen können, gibt es keine Iteration, wenn im letzten Zyklus in OnTick ein Fehler in den Tools auftritt.
Verstehe. Wie auch immer, es ist ein heikler Moment.
OnkelVic
Das ist wahr. Aber in meinem Fall ist das überflüssig:
Wenn im letzten Zyklus ein Fehler in den Werkzeugen auftrat, gibt es keine einzige Iteration in OnTick.
Ich bestehe nicht darauf. Es ist nur richtig, das Ergebnis der Ausführung zu überprüfen.
Ich will es nicht übertreiben. Es ist richtig, nur das Ergebnis der Ausführung zu überprüfen.
Ich habe diesen Trick entdeckt. Wenn ich dieses Skript ausführe, bleibt es "hängen".
Wenn jedoch dieselben drei Zeilen (Code) zuerst in die OnInit()-Funktion des Expert Advisors eingefügt werden und dieser EA im Testmodus gestartet wird, sind die Ergebnisse wie folgt:
Erstens: Der Code funktioniert irgendwie im Testmodus.
Zweitens (und das ist noch wichtiger) geht die Geschichte der ersten paar Tage der Prüfung verloren. So wurde im obigen Beispiel die Prüfung am 03.01.2011 begonnen (wie aus den ersten beiden Zeilen ersichtlich), aber der Prüfer ist sofort nach der Codeverarbeitung um 17 Tage nach vorne gesprungen (in diesem Fall ist dies eine Zeile 2-3), und die Prüfung wird fortgesetzt, ohne diese 17 Tage zu berücksichtigen.
Daraus ergibt sich eine Wartezeit von 17,5 Tagen.
Sie haben sich gerade einen arithmetischen Überlauf in
eingefangen und warten nun seit 17,5 Tagen.
Sie haben auf triviale Weise einen arithmetischen Überlauf in
Das bedeutet, dass Sie 17,5 Tage warten müssen.
Ich streite nicht über den "gefangenen Überlauf", denn ich weiß es nicht :) Die Frage ist, ob eine solche Situation entweder durch den Compiler oder den Tester mit der Ausgabe eines kritischen Fehlers (oder auf andere Weise) unterdrückt werden sollte. Nicht jeder wird genau darauf achten, wie seine Programme funktionieren, wenn es keine Warnungen vom Terminal gibt.
Das Problem ist auch darin zu sehen, dass der Code in den ersten Zeilen von OnInit() platziert ist (d.h. bevor irgendwelche historischen Daten heruntergeladen werden) - aber aus irgendeinem Grund gehen die Daten der ersten 17,5 Tage verloren.
Ja, und es funktioniert im Testgerät, weil Sleep dort ignoriert wird.
Sind Sie so sicher, dass Sleep() ignoriert wird? - Sehen Sie sich den Unterschied in der Endzeit zwischen den Zeilen 2 und 3 an.