Gut, aber das ist keine Echtzeitlösung, weil wir die Reaktionszeit für Nicht-Tick-Ereignisse nicht kontrollieren können. Im Falle von "sleep()" können wir das.
Wie gesagt, wenn diese Lösung in einem EA implementiert wird, besteht keine Notwendigkeit mehr für TimeCurrent() und die Schleife wird durch Sleep(Interval-Runtime) (in ms) gesteuert.
Der größte Teil des Codes bleibt derselbe, redraw() wird nicht mehr benötigt. Wenn Sie die Geschwindigkeit des Codes erhöhen wollen, können Sie auch einige (ah mir fehlt das englische Wort) Arrays mit Rotationsnullpunkt verwenden, um die Shift-Schleife loszuwerden.
AFAIK ist dies (oder ähnlich) die beste Lösung, die in reinem MQL in einem Indikator durchgeführt werden kann. Es gibt sicherlich bessere Lösungen, wenn man eine DLL verwendet und die Berechnungen in ein externes Programm exportiert
Sie können ein Skript an den Chart anhängen, das jede Sekunde einen gefälschten Tick an den Chart sendet. Das ist es, was ich normalerweise tue, um Multi-Pair-Indikatoren und EAs in regelmäßigen Abständen zu aktualisieren.
7bit: Sie können ein Skript an den Chart anhängen, das jede Sekunde einen gefälschten Tick an den Chart sendet. Das ist es, was ich normalerweise tue, um Multi-Pair-Indikatoren und EAs in regelmäßigen Abständen zu aktualisieren.
Benötigen Sie dafür eine DLL oder geht das auch ohne?
Ich habe dieses Skript in meinen Favoriten und wenn ich Ticks brauche, ziehe ich es einfach auf den Chart.
Ich habe auch eine Variante davon ohne die Schleife, die nur einen Tick sendet und dann beendet wird, und habe diese (one_tick.mq4) an die Tastenkombination ALT+T gebunden, und jetzt kann ich einen Tick an das aktive Diagramm senden, indem ich einfach ALT-T drücke. Ich brauche dies für einige meiner stat-arb EAs beim Experimentieren während des Wochenendes, um start() zu erzwingen, um ihre Berechnungen und das Plotten ihrer Graphen auszulösen (ich kann Linien auf dem Chart verschieben, um das Intervall zu ändern und dann brauche ich einen neuen Tick, um ihre Berechnungen zu aktualisieren).
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Erlauben Sie die Verwendung von Cookies, um sich auf der Website MQL5.com anzumelden.
Bitte aktivieren Sie die notwendige Einstellung in Ihrem Browser, da Sie sich sonst nicht einloggen können.
Sie sind angemeldet. Die Zwei-Faktor-Authentifizierung wurde deaktiviert. Richten Sie sie erneut ein und scannen Sie einen neuen QR-Code oder fahren Sie mit deaktivierter Zwei-Faktor-Authentifizierung fort.
Gut, aber das ist keine Echtzeitlösung, weil wir die Reaktionszeit für Nicht-Tick-Ereignisse nicht kontrollieren können.
Im Falle von "sleep()" können wir das.
Wenn wir also Tick-by-Tick und veraltete Preise mit Schlaf kombinieren, können wir eine Echtzeituhr haben :)
Wie gesagt, wenn diese Lösung in einem EA implementiert wird, besteht keine Notwendigkeit mehr für TimeCurrent() und die Schleife wird durch Sleep(Interval-Runtime) (in ms) gesteuert.
Der größte Teil des Codes bleibt derselbe, redraw() wird nicht mehr benötigt. Wenn Sie die Geschwindigkeit des Codes erhöhen wollen, können Sie auch einige (ah mir fehlt das englische Wort) Arrays mit Rotationsnullpunkt verwenden, um die Shift-Schleife loszuwerden.
AFAIK ist dies (oder ähnlich) die beste Lösung, die in reinem MQL in einem Indikator durchgeführt werden kann. Es gibt sicherlich bessere Lösungen, wenn man eine DLL verwendet und die Berechnungen in ein externes Programm exportiert
Wenn wir also Tick-by-Tick und veraltete Preise mit Schlaf kombinieren, können wir eine Echtzeituhr haben :)
Ja, aber Sleep ist nicht möglich in Indikatoren, das ist Ihr Problem seit Beginn dieses Threads
Kann ein EA einen Indikator aufrufen?
Sie können ein Skript an den Chart anhängen, das jede Sekunde einen gefälschten Tick an den Chart sendet. Das ist es, was ich normalerweise tue, um Multi-Pair-Indikatoren und EAs in regelmäßigen Abständen zu aktualisieren.
Braucht man dafür eine DLL oder geht das auch ohne?
Es ist nur eine Handvoll Zeilen in mql4 (natürlich müssen Sie DLL-Aufrufe erlaubt, die Windows-API aufrufen, aber Sie brauchen nicht zu installieren):
Ich habe dieses Skript in meinen Favoriten und wenn ich Ticks brauche, ziehe ich es einfach auf den Chart.
Ich habe auch eine Variante davon ohne die Schleife, die nur einen Tick sendet und dann beendet wird, und habe diese (one_tick.mq4) an die Tastenkombination ALT+T gebunden, und jetzt kann ich einen Tick an das aktive Diagramm senden, indem ich einfach ALT-T drücke. Ich brauche dies für einige meiner stat-arb EAs beim Experimentieren während des Wochenendes, um start() zu erzwingen, um ihre Berechnungen und das Plotten ihrer Graphen auszulösen (ich kann Linien auf dem Chart verschieben, um das Intervall zu ändern und dann brauche ich einen neuen Tick, um ihre Berechnungen zu aktualisieren).
Schöner Beitrag. Danke fürs Teilen