Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1392

 

Grüße. Können Sie mir einen Tipp geben?

Wenn ich es richtig verstehe, erfolgt die Ausführung von OnTick(), wenn ein neuer Tick eintrifft und sofern die Ausführung (nach dem vorherigen Tick) bereits abgeschlossen ist.

Daher die Frage: Welcher Zeitpunkt der Ausführung vonOnTick() gilt als normal und was ist bereits eine lange Zeit?

 
Und noch eine Frage: Der Expert Advisor hat einen algorithmischen Handel und ein grafisches Design. Ist es möglich, den Vorrang des algorithmischen Handels gegenüber der visuellen Gestaltung zu organisieren? Und wenn ja, wie?
 
Andrey Sokolov:

Grüße. Können Sie mir einen Tipp geben?

Wenn ich es richtig verstehe, erfolgt die Ausführung von OnTick(), wenn ein neuer Tick eintrifft und sofern die Ausführung (nach dem vorherigen Tick) bereits abgeschlossen ist.

Daher die Frage: Welcher Zeitpunkt der Ausführung vonOnTick() gilt als normal und welcher Zeitpunkt ist bereits lang?

Das hängt vom jeweiligen Werkzeug ab. Wenn zwischen den Ticks nur 3-5 Millisekunden liegen, sollte die Ausführung von OnTick() nicht länger dauern. Und es gibt solche Tools, bei denen der Tick bis zu 1 Sekunde oder sogar mehr verzögert wird.

 
Andrey Sokolov:
Und noch eine Frage: Mein Expert Advisor verfügt über algorithmischen Handel und grafische Visualisierung. Ist es möglich, den Handelsalgorithmen Vorrang vor der visuellen Gestaltung zu geben? Und wenn ja, wie?

Ändert sich dieses visuelle Design bei jedem Ticken? Reicht es aus, sie in OnInit() einzufügen?

 
Alexey Viktorov:

Ändert sich dieses visuelle Design bei jedem Ticken? Vielleicht ist es genug, um es in OnInit() einzufügen?

Es gibt verschiedene Zählungen im Panel und Objekte im Diagramm, die sich ändern.


Wenn zum Zeitpunkt der Ausführung von OnTimer() ein neuer Tick auftritt, was wird dann ausgeführt und in welcher Reihenfolge?

 
Andrey Sokolov:

Es gibt verschiedene Zählungen im Panel und Objekte im Diagramm, die sich ändern.


Wenn ein neuer Tick auftritt, während OnTimer() läuft, was wird dann getan und in welcher Reihenfolge?

Wer zuerst kommt, mahlt zuerst
 
MakarFX:
In der Reihenfolge ihrer Priorität

Wenn es sich nicht um ein Geheimnis handelt, kann ich dann einen Link zur Quelle der Informationen erhalten?

Es besteht ein gewisser Zweifel, dassOnTick() in diesem Fall ausgeführt wird.

 
Andrey Sokolov:

Wenn während der Ausführung von OnTimer() ein neuer Tick auftritt, was und in welcher Reihenfolge wird er ausgeführt?

nicht in beliebiger Reihenfolge

wenn ein neues Ereignis während komplexer Berechnungen innerhalb der Funktion OnTimer() oder OnTick() auftritt, wird es übersprungen

Suche durch das Forum "tick skipping" sollte eine Diskussion zu finden und Admins haben wiederholt über sie geschrieben

Übrigens, in MT4 gab es für die Synchronisation mit neuen Tickdaten RefreshRates() - vielleicht findet sich in der Hilfe zu dieser Funktion sogar ein Hinweis auf Tick-Skipping

 
Andrey Sokolov:

Wenn es sich nicht um ein Geheimnis handelt, kann ich dann einen Link zur Quelle der Informationen erhalten?

Es besteht ein gewisser Zweifel, dassOnTick() in diesem Fall ausgeführt wird.

Andrej Sokolow:

Es gibt verschiedene Zählungen im Panel und Objekte im Diagramm, die sich ändern.

Wenn ein neuer Tick während OnTimer() ausgeführt wird, was wird dann ausgeführt und in welcher Reihenfolge?

Wenn es OnTimer() gibt, wird alles andere in die Warteschlange gestellt, außer dem neuen OnTimer() - er wird übersprungen.

Ich hatte eine ähnliche Situation und setzte OnTimer() vor OnTick() und führte EventSetMillisecondTimer(100).

Endlich habe ich mein Problem gelöst.

 

Igor Makanu, MakarFX, wer von Ihnen hat Recht? Versuchen wir, die Beschreibung zu finden und herauszufinden. Ich habe es einmal gesehen, aber ich kann es den ganzen Tag lang nicht finden.


Ein weiterer Tipp, bitte: wenn es mehr als ein EA im Terminal, in welcher Reihenfolge werden sie verarbeiten Ticks, wenn ihre Verarbeitung dauert mehr Zeit als Pause zwischen Ticks?