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 glaube, dass TesterStop() undExpertRemove() true zurückgeben sollten, wenn sie die Kontrolle nicht sofort an OnTester() übergeben können. Damit kann man zum Beispiel wie folgt reagieren:
In diesem Fall können wir genau das Ergebnis erhalten, das logischerweise erwartet wird, anstatt herumzutanzen und alle Fehler vorherzusehen, die theoretisch als Folge des Abbruchs des Tests auftreten können.
Und das ist die Option, die Sie sehen wollten.
Können wir in diesem Zusammenhang nicht die Kontrolle übernehmen?
Und wie kann man die erzwungene Beendigung verhindern/abbrechen, wenn sie bereits läuft? Ihre Beispiele sind ein wenig anders.
Lösen Sie keine Zwangsbeendigung aus. Dann ist es nicht nötig, sie zu stornieren.
Wahrscheinlich ist es wegen möglicher Softwarefehler nicht sinnvoll, einen bereits laufenden Abschluss zu erzwingen und ihn abzubrechen.
Aus diesem Grund ist es wahrscheinlich, dass es diese Möglichkeit nicht gibt. Das kann ich nicht mit Sicherheit sagen.
Das bedeutet, dass wir unseren Code logisch so anordnen sollten, dass wir nicht wieder zum laufenden Code zurückkehren müssen, wenn der erzwungene Abbruch eingeleitet wird.
Wenn wir aufhören, hören wir ausdrücklich auf.
Es ist unwahrscheinlich, dass es sinnvoll ist, eine bereits laufende Zwangsbeendigung wegen möglicher Softwarefehler abzubrechen.
Daher gibt es wahrscheinlich keine solche Option. Das kann ich nicht mit Sicherheit sagen.
Das bedeutet, dass wir unseren Code logisch so anordnen sollten, dass wir bei einem erzwungenen Abbruch nicht wieder zum laufenden Code zurückkehren müssen.
Wenn wir aufhören, hören wir ausdrücklich auf.
Irgendwie habe ich den Eindruck, dass Sie nicht alles zu diesem Thema gelesen haben. Irgendetwas stimmt nicht ganz mit Ihrer Meinung über das vorliegende Problem überein.
ps; Obwohl nein. In Ihrem ersten Beitrag zu diesem Thema schienen Sie genau meine Worte zu zitieren, aber nicht vollständig. Vielleicht hat sich dadurch die ganze Idee des Problems verschoben.Und das ist die Version, die Sie sehen wollten.
Das ist richtig.
Aber ist nicht
Einfacher und klarer als...
?
Aber jetzt habe ich genau das getan, was Sie mir geraten haben.
Solche Fragen und solche Antworten. Ihr könnt es mit euch selbst besprechen. Man versucht, ein Problem zu lösen, und die Leute mögen es trotzdem nicht. Viel Glück bei der Suche nach dem Problem.
Sie sollten nicht beleidigt sein. Man musste den ganzen Satz lesen, um ihn zu verstehen.
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien
MT-Version Archiv.
Alexey Viktorov, 2019.06.16 15:25
Sergey, es gibt nichts Unerwartetes. Im Gegenteil, alles ist logisch und konsequent. Es gibt verschiedene Fälle. Manchmal müssen Sie die Ereignisverarbeitung abschließen, bevor der Expert Advisor seine Arbeit beendet hat, manchmal, wie in Ihrem Fall, müssen Sie sie dringend beenden. Die Entwickler stehen vor der Frage, ob es richtig ist, sofort anzuhalten und damit die Unzufriedenheit derjenigen zu verursachen, die die Verarbeitung des Ereignisses abschließen müssen, oder nach Abschluss der Ereignisverarbeitung anzuhalten. Jeder Programmierer hat einen Return-Operator in seinem Arsenal, während es im Falle eines erzwungenen Abbruchs nichts gibt.
Und warum müssen Sie den Typ void bei bool ändern, denn auch hier gibt es im Arsenal des Programmierers statische Variablen, die vor oder nach TesterStop () geändert werden können, und im Prinzip wird alles so sein, wie Sie wollen. Aber Sie haben es aus irgendeinem Grund in meinem Beispiel ausgelassen.
Das ist richtig.
Aber ist es nicht
Einfacher und klarer als...
?
Aber jetzt habe ich genau das getan, was Sie mir geraten haben.
Es mag einfacher und klarer sein, aber von den Entwicklern etwas zu verlangen, was man leicht selbst schreiben kann, ist falsch. Aus irgendeinem Grund glaube ich nicht, dass irgendwelche Zusätze zur Sprache über C++ geschrieben und gefordert werden. Und ich bin sicher, dass diese Bemerkungen für viele ausreichen.
Es mag einfacher und klarer sein, aber es ist falsch, von den Entwicklern etwas zu verlangen, was sie leicht selbst schreiben können. Aus irgendeinem Grund glaube ich nicht, dass irgendwelche Zusätze zur Sprache über C++ geschrieben und gefordert werden. Und ich bin sicher, dass diese Bemerkungen für viele ausreichen.
Hier ist eine Überprüfung Ihrer Option. Das Ergebnis war eine Meldung wie diese:
Es ist eine Sackgasse...
Sie sollten nicht beleidigt sein. Man musste den ganzen Satz haben, um ihn zu verstehen.
Mit dem Beispiel IsStopped() habe ich versucht, den ersten Teil zu beantworten.
Manchmal ist es notwendig, die Verarbeitung des Ereignisses abzuschließen, bevor ein EA abgeschlossen wird, manchmal ist es dringend wie in Ihrem Fall.
Lesen Sie die Beschreibung dieser Funktion IsStopped() in der Dokumentation, vielleicht bringt sie Sie auf einige Ideen.
Aber für Sie scheint es aus einer anderen Richtung zu kommen. Wenn ja, entschuldigen Sie bitte eine mögliche Vermutung.
Aber wie man in möglichen Vorschlägen sagt, und das Problem löst.
Definitive Lösung wird nicht sagen, jemand, weil niemand weiß, alle die Logik seines Codes, und wahrscheinlich nicht in sie zu vertiefen.