MetaTrader 5 HilfeAlgorithmisches Trading, HandelsroboterWie der Tester historische Daten herunterlädt

Wie der Tester historische Daten herunterlädt

Laden historischer Daten, Vorbereiten der Prüfung und Anpassen des Startdatums der Prüfung

Der Strategietester schafft eine äußerst realistische Marktsimulation. Um dies zu erreichen, werden ausreichend historische Daten für das ausgewählte Symbol geladen.

Bevor ein Test durchgeführt wird, synchronisiert die Plattform die historischen Daten:

  • Vom Handelsserver werden M1-Balken und Tick-Daten für das ausgewählte Symbol auf das Terminal heruntergeladen. Beim ersten Start des Testers lädt das Terminal den gesamten verfügbaren Verlauf für das Symbol herunter.
  • Vom Terminal aus wird der Verlauf in komprimierter Form auf den Prüfagenten kopiert. Der Agent generiert dann lokal Ticks oder verwendet aktuelle Tickdaten (falls verfügbar).
  • Bei Tests mit mehreren Währungen wird der Test angehalten, wenn die Strategie zum ersten Mal auf ein neues Symbol oder einen neuen Zeitrahmen zugreift, während die fehlenden Daten heruntergeladen werden. Das System lädt auch einen zusätzlichen Datenpuffer herunter, sodass die Indikatoren bereits ab dem ersten Balken Werte berechnen können.

Mindestanforderungen an historische Daten

Um die Stabilität der Berechnungen zu gewährleisten, lädt das Prüfgerät immer einen „Pre-Start History Buffer“:

  • D1 und darunter — ab dem Beginn des vorangegangenen Kalenderjahres. Damit steht mindestens 1 Jahr lang eine Historie zur Verfügung. Beispiel: Wenn das Startdatum der Prüfung der 01.03.2023 ist, lädt das Terminal die Daten vom 01.01.2022 herunter. Dies entspricht 14 Monaten vor Beginn der Prüfung.
  • W1 — mindestens 100 Wochen-Balken (~2 Jahre).
  • MN1 — mindestens 100 Wochen-Balken (~8 Jahre).

Wenn die verfügbare Historie nicht ausreicht, verschiebt der Prüfer das tatsächliche Startdatum automatisch auf den nächstliegenden Zeitpunkt, der den Anforderungen entspricht.

In solchen Fällen beginnt die Prüfung später als zu dem vom Nutzer angegebenen Datum. Im Protokoll des Testers wird eine entsprechende Meldung angezeigt, z. B:

Startzeit auf 2024.03.15 00:00 geändert, um die Anfangsdaten bereitzustellen

Dies ist kein Fehler, sondern ein integrierter Mechanismus, der korrekte Berechnungen gewährleistet.

Bei Tests mit mehreren Währungen wird jedes Mal, wenn die Strategie auf ein neues Symbol oder einen neuen Zeitrahmen zugreift, eine Pause eingelegt, um zusätzliche Daten zu laden. Dazu gehört auch das Herunterladen eines zusätzlichen Puffers für die Berechnung von Indikatoren und die Neuberechnung von Margen.

Der Strategietester speichert die Historie für jedes Symbol zentral, sodass alle lokalen Agenten darauf zugreifen können. Beispiel (EURUSD):

\Program Files\MetaTrader 5 Strategy Tester\Tester\bases\<trading_server_name>\history\EURUSD

Die Tick-Historie wird auf ähnliche Weise gespeichert:

\Program Files\MetaTrader 5 Strategy Tester\Tester\bases\<trading_server_name>\ticks\EURUSD

Wie man eine Verschiebung des Prüfungsbeginns reduziert oder vermeidet

Verwenden Sie einen niedrigeren Zeitrahmen.

Der Tester benötigt mindestens 100 Balken im ausgewählten Zeitrahmen, bevor die Modellierung beginnen kann.

Dies gewährleistet stabile Indikatorberechnungen und eine ordnungsgemäße Initialisierung.

  • Wenn Sie einen Test auf D1 durchführen, werden mindestens 100 Tagesbalken (~5 Monate) benötigt.
  • Bei H1 oder M15 werden nur 100 Stunden- oder 15-Minuten-Balken benötigt. Diese Datenmenge ist fast immer verfügbar, auch wenn die Historie begrenzt ist.
  • Wenn die historischen Daten unzureichend sind, ist die Verschiebung des Anfangsdatums bei niedrigeren Zeiträumen daher geringer als bei höheren Zeiträumen.

alert_icon Der Expert Advisor muss jedoch auf dem gewählten Zeitrahmen korrekt funktionieren. Wenn eine Strategie ursprünglich für D1 entwickelt wurde, müssen Sie beim Testen auf M15 oder H1 sicherstellen, dass die Berechnungen richtig synchronisiert werden und die Signale nicht zu häufig neu berechnet werden.

Mindesthistorie nach Zeitrahmen und potenzieller Startverschiebung des Tests

Zeitrahmen des Tests

Mindestens geladene Daten

Mögliche Startverschiebung

M1

≥100 Balken (≈1h 40m)        

Praktisch keine

M15

>100 Balken (~25h)

Minimal

H1

≥100 Balken (~4 Tage)        

Minimal

D1

≥100 Balken (~5 Monate)        

Bis zu 5 Monate

W1

≥100 Wochen (~2 Jahre)            

Bis zu 2 Jahre

MN1

≥100 Monate (~8 Jahre)            

Bis zu 8 Jahre (wenn die Historie begrenzt ist)

Wie man die Tabelle liest

  • Bei D1 verschiebt der Tester das Startdatum immer nach vorne, bis mindestens 100 Tagesbalken verfügbar sind.
  • Bei H1 oder M15 werden nur wenige Tage an Daten benötigt, die in der Regel verfügbar sind, sodass der Test viel näher am gewählten Datum beginnt.
  • Bei höheren Zeitrahmen (W1 und MN1) kann die Verschiebung sehr groß sein, da eine jahrelange Historie erforderlich ist.

Zusätzliche Eigenschaften des Testers

  • Modi der Tick-Erzeugung:
    • Jeder Tick — Ticks werden aus M1-Balken generiert, was für maximalen Realismus sorgt. Dies ist der ressourcenintensivste und zeitaufwändigste Testmodus.
    • 1 Minute OHLC — schneller, aber weniger realistisch. Tick-Sequenzen werden nur aus M1-OHLC-Kursen gebildet. Die Anzahl der erzeugten Kontrollpunkte wird erheblich reduziert, was die Testdauer verkürzt. Die Funktion OnTick() wird bei allen OHLC-Punkten ausgelöst.
    • Nur Öffnungspreise — verwendet nur die Eröffnungskurse der Balken im ausgewählten Zeitrahmen. Sehr schnell, aber weniger genau, und bei Tests mit mehreren Währungen ist Vorsicht geboten. OnTick() wird nur zu Beginn eines jeden Balkens zu seinem Eröffnungskurs aufgerufen. Aus diesem Grund kann es vorkommen, dass Stop-Levels und schwebende Aufträge nicht zu exakten Kursen ausgelöst werden (insbesondere auf höheren Zeitrahmen). Dieser Modus eignet sich jedoch am besten für schnelle vorläufige Expert Advisor-Tests. Dies ist die schnellste und am wenigsten genaue Art der Prüfung.
    • Jeder Tick anhand realer Ticks — maximale Genauigkeit. Anstelle von generierten Tick-Sequenzen verwendet der Tester vom Broker zur Verfügung gestellte Tick-Daten. M1-Balken werden auch im Real-Tick-Modus verwendet. Die Balken werden zur Überprüfung und Korrektur der Tick-Historie verwendet. Dadurch werden auch Diskrepanzen zwischen den Charts des Testers und den des aktiven Terminals vermieden.
  • Zeitsimulation:
    • TimeLocal(), TimeTradeServer() und TimeGMT() geben bei Tests identische Werte zurück.
  • OnTimer und Sleep:
    • Diese Funktionen werden während der Tests unterstützt. Timer verlangsamen die Simulation, während Sleep() Pausen simuliert (aber Endlosschleifen verursachen Fehler).

Agenten-Cache und Wiederverwendung

  • Die historischen Daten werden in komprimierter Form gespeichert und wiederverwendet, wenn das Prüfintervall und die Einstellungen unverändert bleiben.
  • Lokale Agentenprozesse bleiben nach Beendigung eines Tests noch etwa 5 Minuten lang aktiv, sodass nachfolgende Tests schneller gestartet werden können.