Startseite > Blog > MQL5 OnTick vs. OnTimer: Einsatz im EA-Design

MQL5EA-EntwicklungMT5

MQL5 OnTick vs. OnTimer: Einsatz im EA-Design

Veröffentlicht: 2026-10-29Lesezeit: ca. 2 Min
⏱ Dieser Artikel gibt den Stand zum Veröffentlichungsdatum wieder. Die Performance-Kennzahlen der EAs (PF, DD, Jahresrendite) ändern sich mit dem Live-Handel und erneuten Validierungen – die aktuellen Werte finden Sie auf den EA-Seiten. Aktuelle EA-Ergebnisse ansehen →

Fazit: Entscheidungen pro neuer Kerze, zeitgesteuerte Aufgaben über OnTimer

Zuerst das Fazit: Wenn ein EA seine Handelsentscheidungen auf längeren Zeiteinheiten wie H1 oder H4 trifft, genügt es, nur beim ersten Tick einer neuen Kerze zu entscheiden. Wer bei jedem Tick dieselbe Berechnung wiederholt, verbraucht nur CPU, ohne dass sich die Entscheidung ändert. Für Aufgaben, die auch ohne eintreffende Ticks laufen sollen, nutzt man dagegen OnTimer – etwa um am Wochenende einen Status zu schreiben oder zu festen Uhrzeiten Orders aufzuräumen.

Welche Variante die richtige ist, hängt allerdings von der Strategie ab. Dieser Artikel erklärt den Unterschied der beiden Mechanismen und zeigt, was Anwender beim EA-Kauf selbst prüfen können.

Empfohlene Broker-Vergleich →

🎁 Kostenlose EA herunterladen

📧 Kostenloser E-Mail-Kurs (8 E-Mails) + Paket mit 13 MT5-Indikatoren nur für Abonnenten

Direkt nach der Anmeldung erhalten Sie einen Download-Link für ein Paket nur für Abonnenten mit unseren 13 MT5-Indikatoren: kompilierte Dateien (.ex5), Quellcode und eine Einrichtungsanleitung. Danach folgen 8 E-Mails zu den Grundlagen des Algo-Tradings, zum richtigen Lesen von Backtests und zur Brokerwahl (in den ersten 5 Tagen täglich eine, dann 7, 14 und 30 Tage nach der Anmeldung). Außerdem erhalten Sie vor jeder Preiserhöhung der im MQL5 Market verkauften Versionen einen Hinweis (Einführungspreise, die mit steigenden Verkäufen stufenweise erhöht werden). Auf dieser Website sind unsere EAs mit einem Echtgeldkonto bei einem Partnerbroker kostenlos.

* Datenschutz streng geschützt. Sie können jederzeit kündigen.

Funktionsweise: tickgesteuert und zeitgesteuert

OnTick (tickgesteuert)

OnTick wird jedes Mal aufgerufen, wenn für das Symbol, auf dem der EA läuft, ein neuer Kurs (Tick) eintrifft. In bewegten Marktphasen geschieht das mehrmals pro Sekunde, am Wochenende bei ruhendem Markt kein einziges Mal.

Dabei gibt es eine wichtige Eigenheit: Ticks, die eintreffen, während die vorherige OnTick-Verarbeitung noch läuft, werden nicht in eine Warteschlange gestellt, sondern übersprungen. Ein EA, dessen einzelner Durchlauf zu schwer ist, verpasst also bei schnellen Kursbewegungen Ticks.

OnTimer (zeitgesteuert)

OnTimer wird in dem Intervall aufgerufen, das Sie mit EventSetTimer() festlegen. Da der Aufruf unabhängig von Kursbewegungen erfolgt, läuft er auch bei geschlossenem Markt. Pro EA gibt es nur einen Timer, und wenn die Verarbeitung hängt, werden Aufrufe genauso übersprungen. Zudem gibt es keine Garantie, dass der Aufruf exakt im eingestellten Intervall erfolgt.

PunktOnTickOnTimer
AuslöserKursaktualisierungAblauf einer festen Zeitspanne
Bei geschlossenem Marktwird nicht aufgerufenwird aufgerufen
Anzahl der Aufrufeumso mehr, je unruhiger der Marktnahezu konstant
Geeignet fürEntscheidungen zu Einstieg und Ausstiegperiodische Auswertungen, zeitgesteuerte Aufgaben
Wichtigster Hinweisschwere Verarbeitung führt zu verpassten Ticksläuft auch ohne neue Kurse

CPU-schonender Code für Strategien mit niedriger Frequenz

Bei einer Strategie, die auf H4 entscheidet, ändert sich der für die Entscheidung genutzte Wert der abgeschlossenen Kerze nicht, selbst wenn OnTick während der vier Stunden einer Kerze tausendfach aufgerufen wird. Deshalb setzen wir grundsätzlich auf folgende Form, bei der die schwere Verarbeitung nur bei einem Kerzenwechsel durchlaufen wird:

datetime g_lastBar = 0;

void OnTick()
{
   datetime cur = iTime(_Symbol, PERIOD_H4, 0);
   if(cur == g_lastBar) return;   // innerhalb derselben Kerze nichts tun
   g_lastBar = cur;
   // hier mit der abgeschlossenen Kerze (Shift 1) entscheiden
}

Ebenso wichtig: Indikator-Handles werden einmalig in OnInit erzeugt und nicht bei jedem OnTick neu angelegt. Wenn Sie OnTimer verwenden, stoppen Sie den Timer in OnDeinit mit EventKillTimer().

Wenn auf einem VPS mehrere Charts mit EAs laufen, zeigen sich solche Unterschiede in der CPU-Last. Hinweise zur Wahl eines VPS finden Sie unter VPS-Informationen.

Was Anwender beim EA-Kauf prüfen können

Auch ohne Einblick in den Quellcode lässt sich einiges bis zu einem gewissen Grad überprüfen:

  • Beschreibung und Parameter: Gibt es eine Einstellung wie „nur bei neuer Kerze entscheiden"?
  • CPU-Auslastung des VPS: Sinkt die Last deutlich, wenn Sie einen einzelnen EA entfernen, verarbeitet dieser möglicherweise bei jedem Tick aufwendig.
  • Experten-Log: Stehen identische Ausgaben bei jedem Tick untereinander?
  • Tester-Ergebnisse: Bei einem EA, der auf den Eröffnungskurs der Kerze entscheidet, sollten „nur Eröffnungskurse" und „jeder Tick" keine großen Unterschiede zeigen. Weichen sie stark ab, reagiert der EA auch auf Kursbewegungen innerhalb der Kerze.

Grundlagen zum Einrichten und Konfigurieren von EAs finden Sie unter EA einrichten.

Grenzen und Hinweise

Auch die unbequemen Seiten gehören dazu:

  • Das Risiko innerhalb der Kerze bleibt unbeachtet: Wer Entscheidungen auf neue Kerzen beschränkt, reagiert nicht auf plötzliche Bewegungen mitten in der Kerze. Der Verlustschutz muss über einen Stop-Loss an der Order selbst abgesichert sein, sonst drohen unerwartete Verluste.
  • Verzögerung bei neuer Kerze: Auch wenn eine neue Kerze entstanden ist, läuft die Verarbeitung erst, wenn der erste Tick dieser Kerze eintrifft. Bei ruhigen Symbolen oder Zeiten kann die Entscheidung dadurch später als der Kerzenbeginn erfolgen.
  • OnTimer weicht im Tester leicht vom Live-Betrieb ab: Im Tester wird der Timer mit virtueller Zeit aufgerufen, daher entspricht das Intervall nicht zwingend dem auf einem echten Konto.
  • Leichtere Verarbeitung verbessert die Performance nicht: Eine geringere CPU-Last macht eine Strategie nicht erfolgreicher. Ob eine Strategie gut ist, ist eine andere Frage.

Bei H4-EAs, etwa dem ETHEREUM EA, sind solche Designunterschiede bei Strategien mit wenigen Trades umso schwerer zu erkennen. Was sich von außen überprüfen lässt, ist jedoch begrenzt. Verbindliche Aussagen können wir nur über den Code machen, den wir selbst geschrieben haben.

Zusammenfassung

  • OnTick wird aufgerufen, wenn ein Kurs eintrifft, OnTimer in festen Zeitabständen
  • Ereignisse, die während einer laufenden Verarbeitung eintreffen, werden nicht in eine Warteschlange gestellt, sondern übersprungen. Schwere Verarbeitung führt zu verpassten Ticks
  • Bei Strategien mit niedriger Frequenz schont die Form „nur bei neuer Kerze entscheiden" die CPU
  • Für Aufgaben, die auch in tickfreien Zeiten laufen sollen, verwendet man OnTimer
  • Das Risiko innerhalb der Kerze sichert man über einen Stop-Loss ab. Leichte Verarbeitung verbessert die Performance nicht
  • Weiteres Know-how finden Sie unter EA- und MT5-Know-how

📧 Kostenloser E-Mail-Kurs (8 E-Mails) + Paket mit 13 MT5-Indikatoren nur für Abonnenten

Direkt nach der Anmeldung erhalten Sie einen Download-Link für ein Paket nur für Abonnenten mit unseren 13 MT5-Indikatoren: kompilierte Dateien (.ex5), Quellcode und eine Einrichtungsanleitung. Danach folgen 8 E-Mails zu den Grundlagen des Algo-Tradings, zum richtigen Lesen von Backtests und zur Brokerwahl (in den ersten 5 Tagen täglich eine, dann 7, 14 und 30 Tage nach der Anmeldung). Außerdem erhalten Sie vor jeder Preiserhöhung der im MQL5 Market verkauften Versionen einen Hinweis (Einführungspreise, die mit steigenden Verkäufen stufenweise erhöht werden). Auf dieser Website sind unsere EAs mit einem Echtgeldkonto bei einem Partnerbroker kostenlos.

* Datenschutz streng geschützt. Sie können jederzeit kündigen.

Fragen zu EAs oder Forex?

Stelle sie im Trading-Forum von Nattzy (kostenlose Registrierung). Auch Fragen über diesen Artikel hinaus sind willkommen – etwa zu EA-Einstellungen oder zur Brokerwahl.

Auf Nattzy fragen ↗

Kommentare & Fragen