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
Oh, Licht am Ende des Tunnels! Sie sollten den EventSetTimer() innerhalb von OnTimer() selbst aufrufen? Ich werde es auf jeden Fall ausprobieren, wenn ich am Terminal bin. Danke für die intelligente Lösung!
Ich habe diese Lösung schon die ganze Zeit gesehen.
Ich habe einfach noch nicht ausprobiert, wie man am besten
EventKillTimer() oder EventSetTimer(0); um den Timer zu beenden.
Millisekunden ist sehr erwünscht. Ich schließe mich den Wünschen an.
In Expert Advisor ist es jetzt gefährlich. Zum Beispiel kann die synchrone Funktion MessageBox() schnell eine Warteschlange bilden, wenn der Benutzer das Terminal verlässt (natürlich kann man sagen, dass der Timer vor solchen Funktionen deaktiviert werden kann).
Aber wenn sie die Unterbrechungsbearbeitung...
Es ist nicht mehr möglich, auf Millisekunden zu gehen.
Wie viele Expert Advisors, die bereits geschrieben wurden, werden 1000 Mal mehr Timer-Ereignisse generieren als vom Autor beabsichtigt?
Nein, nein... Sie müssen es nicht auf diese Weise ändern . Sie müssen lediglich eine neue Funktion EventSetTimerMS(long ms) hinzufügen;
Aus Gründen der Kompatibilität ist es notwendig, die alte Version beizubehalten. (Es kann leicht emuliert werden , indem man EventSetTimerMS(1000); aufruft)
Dies ist jetzt im Expert Advisor gefährlich. Zum Beispiel kann die synchrone Funktion MessageBox() schnell eine Warteschlange bilden, wenn der Benutzer das Terminal verlässt (natürlich kann man sagen, dass der Timer vor solchen Funktionen deaktiviert werden kann).
Wenn sie doch nur die Unterbrechungsbearbeitung übernehmen würden...
Ich weiß nicht, was Sie meinen, aber vielleicht ist es ein gutes Beispiel... :)
Über Warteschlangen - Sekunden können auch verwendet werden, wenn Sie schlafen gehen. :) Verwenden Sie es nicht, wenn Sie nicht wissen, wie Sie die Folgen verarbeiten können - es ist ein einfaches und universelles Rezept.
......... Zum Beispiel kann die synchrone Funktion MessageBox() sich schnell in die Warteschlange einreihen, wenn der Benutzer das Terminal verlässt. (Natürlich kann man sagen, dass man den Timer vor solchen Funktionen deaktivieren kann) ........
Wie viele bereits geschriebene Experten werden 1000-mal mehr Timer-Ereignisse erzeugen als vom Autor beabsichtigt?
Nur eine Meinung: und wenn es die Möglichkeit gibt, Millisekunden für diejenigen hinzuzufügen, die es wünschen, und der Haken nur in alten EAs ist, warum dann nicht eine neue Funktion einführen
Machen Sie alles mehrsekündig, und wenn der Schalter==false, multiplizieren Sie den Wert der Sekunden einmal mit 1000 (für alte EAs, zum Beispiel).
Dies ist jetzt im Expert Advisor gefährlich. Zum Beispiel kann die synchrone Funktion MessageBox() schnell eine Warteschlange bilden, wenn der Benutzer das Terminal verlässt (natürlich kann man sagen, dass der Timer vor solchen Funktionen deaktiviert werden kann).
Aber wenn sie die Unterbrechungsbearbeitung...
OnTimer, OnTick, OnTrade... Dies sind die Unterbrechungen.
OnTimer, OnTick, OnTrade... Das sind Unterbrechungen.
Eine Unterbrechung liegt vor, wenn OnTick ausgeführt wird und ein wichtigeres Ereignis, wie OnTimer, eingetroffen ist. OnTick wird angehalten, der OnTimer-Code wird ausgeführt, dann läuft OnTick wieder weiter.