Backtest eines Expert Advisors in MetaTrader 4

Für den Backtest eines Expert Advisors in MT4 laden Sie die Kurshistorie im History Center (F2), öffnen den Strategy Tester (Ctrl+R), wählen EA, Symbol, Periode, Modell und Spread, drücken Start und lesen den Tab Report. Ein guter Bericht allein beweist wenig: Der MT4-Tester ignoriert variable Spreads, Ausführungsgeschwindigkeit und Slippage, und wenn viele Einstellungen probiert wurden, ist die beste womöglich einfach die glücklichste.

Im Folgenden gehen wir den Test Schritt für Schritt durch und kommen dann zu den Fragen, die danach zählen: warum ein Backtest zu gut aussehen kann, wie Sie ihn auf Daten prüfen, die der Optimierer nie gesehen hat, und warum eine Live-Bilanz mehr zählt. Magische Zahlen gibt es hier nicht. Jede Zahl stammt aus einer genannten Quelle oder aus einer Rechnung, die wir zeigen und als unsere kennzeichnen. Menü- und Feldnamen entsprechen der englischen MT4-Oberfläche, wie auf den Screenshots.

Schritt 1: Kurshistorie laden

Ein Backtest ist nur so gut wie die Historie dahinter. Gehen Sie in MT4 auf Tools → History Center oder drücken Sie F2, wählen Sie ein Symbol und drücken Sie Download. Das Terminal lädt M1-Daten und baut daraus die anderen Timeframes auf.

Fenster History Center in MetaTrader 4 mit der Liste der Währungspaare

Drei Dinge sollten Sie über diese Daten wissen:

  • Es sind womöglich nicht die Daten Ihres Brokers. Der Download-Button nutzt den Historien-Server von MetaTrader, und die MT4-Hilfe warnt, dass diese Daten von der Historie auf dem Handelsserver des Brokers abweichen können.
  • Sie können eigene Daten importieren. Der Import-Button im History Center akzeptiert CSV-, PRN-, TXT-, HTM- und HST-Dateien, zum Beispiel die Historie Ihres Brokers.
  • Prüfen Sie, ob die Daten da sind. Findet der Tester keine Historie für Symbol und Periode, lädt er nur die letzten 512 Bars. Achten Sie auf die Testdaten und die Anzahl der Bars, bevor Sie dem Ergebnis trauen.

Schritt 2: Strategy Tester einrichten

Der EA muss kompiliert sein und im Experts-Ordner des Terminals liegen. Erscheint er nicht in der Liste, lesen Sie Wie man einen EA auf MT4 installiert und ausführt. Öffnen Sie dann den Tester über View → Strategy Tester oder Ctrl+R und füllen Sie im Tab Settings diese Felder aus:

Tab Settings des MT4 Strategy Testers: Felder Expert Advisor, Symbol, Model, Period und Spread

  1. Expert Advisor: der zu testende EA.
  2. Symbol: das Paar. Nehmen Sie eines, für das der EA gebaut wurde. Der Tester handelt nur das getestete Symbol, ein EA für mehrere Paare lässt sich hier also nicht als Ganzes testen.
  3. Model: wie der Tester die Kursbewegung nachbildet (siehe Tabelle unten).
  4. Period: der Timeframe, auf dem der EA läuft.
  5. Spread: siehe Hinweis unter der Tabelle.
  6. Use date: Setzen Sie das Häkchen, um die Daten From und To festzulegen. Wählen Sie einen Zeitraum mit unterschiedlichen Marktphasen und notieren Sie, welchen Teil Sie für den später beschriebenen Out-of-Sample-Test aufheben.
  7. Expert properties: Im Tab Testing legen Sie die Ersteinlage und die Positionsarten fest (Long, Short oder beide). Im Tab Inputs stellen Sie die Parameter des EA ein. In der Spalte Value steht, was ein Einzeltest verwendet, während Start, Step and Stop nur für die Optimierung gelten.

Fenster Expert properties in MT4 mit den Tabs Testing, Inputs und Optimization

Schalten Sie das Money Management des EA ab und nutzen Sie ein festes Lot. Wächst das Lot mit dem Kontostand, wiegen spätere Trades schwerer als frühere, und zwei Tests lassen sich kaum noch vergleichen. Bei 0,10 Lot auf EUR/USD ist ein Pip 1 $ wert, was die Rechnung einfach hält (siehe Was ist ein Pip im Forex?).

Drücken Sie Start. Mit Visual mode läuft der Test auf einem Chart ab, so sehen Sie gut, wie der EA tatsächlich handelt. Die Tabs Results, Graph und Report erscheinen nach dem Test.

Welches Modell Sie wählen sollten

ModellFunktionsweiseGeeignet für
Every tickNutzt alle verfügbaren niedrigeren Timeframes und füllt Lücken durch InterpolationAbschlusstests von EAs, die innerhalb eines Bars handeln
Control pointsNutzt den nächstniedrigeren TimeframeGrobe Schätzungen und Optimierung
Open prices onlyArbeitet nur mit abgeschlossenen BarsEAs, die nur bei Eröffnung eines neuen Bars handeln

Der Name „Every tick“ führt in die Irre. Mit der Standardhistorie werden diese Ticks aus Minutenbars erzeugt, nicht aufgezeichnet. MetaQuotes rät von diesem Modell ab, wenn niedrigere Timeframes nicht den ganzen Testzeitraum abdecken, weil das Ergebnis dann nicht genau ist.

Das Feld Spread

Die MT4-Historie enthält nur Bid-Kurse, daher fügt der Tester selbst einen Spread hinzu, und ein Wert gilt für den gesamten Test. „Current“ übernimmt den Spread in dem Moment, in dem Sie Start drücken. Führen Sie denselben Test an einem ruhigen Dienstag und in einer späten Freitagssitzung durch, und Sie erhalten womöglich zwei verschiedene Ergebnisse. Geben Sie stattdessen eine Zahl in Punkten ein: Bei einer 5-stelligen Quotierung sind 19 Punkte = 1,9 Pips. Nehmen Sie einen für Ihren Broker typischen Wert. Wenn Ihnen die Grundlagen noch fehlen, lesen Sie Spread im Devisenhandel: Was es bedeutet und wie man es berechnet.

Schritt 3: Bericht lesen

Hier ist der Bericht eines älteren EUR/USD-Tests und die Bedeutung seiner wichtigsten Zeilen laut MT4-Hilfe:

Tab Report des MT4 Strategy Testers: Modelling quality 90 %, 34 Trades, Profit Factor 1,51

ZeileIn diesem BerichtBedeutung
Modelling quality90,00 %Wie gut die Ticks aus niedrigeren Timeframes modelliert wurden
SpreadCurrent (19)Ein Spread für den ganzen Test, 1,9 Pips
Total trades34Die Größe der Stichprobe
Profit factor1,51Bruttogewinn ÷ Bruttoverlust: 746,77 ÷ 493,14. Der Wert 1 bedeutet, dass beide gleich sind
Expected payoff7,46Durchschnittliches Ergebnis je Trade: 253,63 ÷ 34
Absolute drawdown48,82Der größte Verlust unter die Ersteinlage
Maximal drawdown256,58 (2,51 %)Der größte Rückgang von einem Equity-Hoch zum Tief danach

Die Modelling quality zeigt, wie die Ticks entstanden sind, nicht wie gut der EA ist. Nach der von MetaQuotes veröffentlichten Formel erhalten aus Minutendaten modellierte Bars ein Gewicht von 0,9, deshalb ist bei M1-Historie bei 90 % Schluss. Bei „Open prices only“ zeigt das Feld n/a, und das ist normal. Trader, die Tickdaten mit Drittanbieter-Tools laden, berichten von Werten bis 99 %. Das kann den Kursverlauf innerhalb eines Bars verbessern, ändert aber nichts an Ausführung oder Overfitting. Die MT4-Hilfe definiert Mismatched charts errors nicht, doch Trader werten einen Wert ungleich null meist als Zeichen inkonsistenter Historie und laden die Daten neu.

Einen allgemein „guten“ Profit Factor oder Drawdown gibt es nicht, und wir erfinden auch keinen. Ein Profit Factor wird auf dieser Stichprobe zu den Kosten des Testers gemessen, und ein Optimierer kann ihn zufällig nach oben treiben. Ein Maximal Drawdown ist der schlimmste Rückgang in diesem Test, nicht der schlimmste, der passieren kann. Was ein Drawdown mit einem Konto macht, lesen Sie unter Money Management im Forex.

Die Stichprobengröße bestimmt, wie viel eine Zahl aussagen kann. In diesem Bericht waren 27 von 34 Trades Gewinner, also 79 %. Bei 34 Trades reicht ein 95-%-Konfidenzintervall für die Trefferquote von etwa 63 % bis 90 %. Bei 340 Trades und denselben 79 % läge es bei etwa 75 % bis 83 % (unsere Rechnung, Wilson-Intervall). Es gibt keine feste Trade-Anzahl, die einen Test gültig macht, aber je weniger Trades, desto breiter die Spanne dessen, was die Zahlen bedeuten können.

Was der MT4-Tester auslässt

Der Tester modelliert Swaps, Margin-Anforderungen und Pending Orders, aber nicht alles, was einem echten Konto begegnet:

  • Variable Spreads. Ein Spread für den ganzen Test. Bei Nachrichten und zum täglichen Rollover weiten sich echte Spreads aus.
  • Ausführungsgeschwindigkeit. MetaQuotes beschreibt den Tester als frei von Verzögerungen bei Handelsoperationen, und sein Tab Settings hat kein Feld für eine Verzögerung.
  • Slippage. Trades werden ohne Slippage verarbeitet, jede Ausführung ist also sauberer, als ein Live-Konto erwarten kann.

Wie stark das ins Gewicht fällt, hängt davon ab, wie viel ein EA je Trade verdient. Eine einfache Illustration (unsere Rechnung, keine Daten eines echten EA): Angenommen, echter Handel kostet je Trade 0,5 bis 2 Pips extra.

Mehrkosten je TradeEA mit Ø 5 PipsEA mit Ø 50 Pips
0,5 Pip−10 %−1 %
1 Pip−20 %−2 %
2 Pips−40 %−4 %

Der Backtest eines Scalpers sagt also weit weniger aus als der eines langfristigen EA. Ein günstiger Stresstest: Erhöhen Sie das Feld Spread und wiederholen Sie den Test. Bricht das Ergebnis zusammen, hat der EA wenig Spielraum für echte Kosten.

MT5 kommt näher heran. Sein Tester kann „Every tick based on real ticks“ nutzen und hat Einstellungen für feste und zufällige Ausführungsverzögerung (siehe MT4 vs MT5). Es bleibt aber ein Test, kein Live-Konto.

Warum der beste Backtest vielleicht nur der glücklichste ist

Die meisten EAs haben Parameter: Perioden, Levels, Filter. Die Tester-Option Optimization lässt den EA immer wieder über die von Ihnen gesetzten Werte Start, Step und Stop laufen und sortiert die Ergebnisse. Ein nützliches Werkzeug mit eingebauter Falle. Ein Optimierer liefert das beste gefundene Ergebnis. Können von Glück unterscheiden kann er nicht.

Diese Falle heißt Overfitting oder Curve Fitting: Einstellungen, die auf vergangenes Rauschen abgestimmt sind statt auf ein Muster, das sich wiederholt. Der Test sieht hervorragend aus, weil die Einstellungen genau für diesen Abschnitt der Historie ausgewählt wurden.

Die Mathematiker Bailey, Borwein, López de Prado und Zhu haben das in Pseudo-Mathematics and Financial Charlatanism (Notices of the AMS, 2014) beziffert. Sie nehmen Strategien ohne echten Vorteil und fragen, wie viele unabhängige Versuche nötig sind, bis die beste im Test eine Sharpe Ratio von 1 erreicht, während die erwartete Sharpe Ratio danach 0 ist. Die Sharpe Ratio misst die Rendite im Verhältnis zu ihrer Schwankung. Der MT4-Bericht zeigt sie nicht, aber die Überlegung lässt sich übertragen.

Verfügbare DatenVersuche, bis Glück wie Können aussieht
2 Jahre7
5 Jahre45

Das ist nicht viel. Sieben An/Aus-Optionen ergeben schon 27 = 128 Kombinationen. Drei Parameter mit je zehn Werten ergeben 1.000 Durchläufe. Wären diese Durchläufe unabhängig, bräuchte man laut der Formel des Papers etwa 6,8 Jahre Daten für 128 Versuche und etwa 10,6 Jahre für 1.000, nur um die beste zufällige Sharpe Ratio bei 1 zu halten (unsere Rechnung nach Gleichung 3.2, die auch 1,9 Jahre für 7 Versuche und 5,0 Jahre für 45 ergibt).

Lesen Sie das als Warnung, nicht als Grenze. Benachbarte Einstellungen sind nicht unabhängig, die wirkliche Zahl der Versuche eines Optimierers liegt also unter der Zahl seiner Durchläufe, und das Paper nennt die Unabhängigkeitsannahme recht konservativ. Andererseits sagt es auch, dass ein Test, der länger als dieses Minimum ist, trotzdem überangepasst sein kann.

Die Hauptaussage der Autoren ist einfach: Bei einem Backtest ohne Angabe der Anzahl der Versuche lässt sich das Overfitting-Risiko nicht beurteilen. Wenn Ihnen also jemand einen schönen Bericht zeigt, fragen Sie, wie viele Einstellungen dafür probiert wurden.

Drei Prüfungen gegen Overfitting

  1. Auch benachbarte Einstellungen funktionieren. Verschieben Sie jeden Parameter etwas nach oben und unten. Hält das Ergebnis im ganzen Umfeld, hängt der EA seltener an einem einzelnen glücklichen Wert. Funktioniert nur ein exakter Wert, seien Sie misstrauisch.
  2. Es hält auf ungesehenen Daten. Testen Sie die festgelegten Einstellungen auf einem Zeitraum, der bei ihrer Auswahl keine Rolle gespielt hat. Das ist der Out-of-Sample-Test unten.
  3. Wenige Parameter, viele Trades. Je mehr Parameter ein EA hat, desto mehr Wege hat er, sich an Rauschen anzupassen. Je mehr Trades ein Test hat, desto schwerer kann Glück allein das Ergebnis erklären.

Out-of-Sample-Test in MT4

MT4 hat dafür keinen eigenen Modus, aber Use date genügt:

  1. Teilen Sie Ihre Historie in zwei Teile. Der ältere ist In-Sample, der neuere Out-of-Sample. Legen Sie die Teilung fest, bevor Sie irgendwelche Ergebnisse ansehen.
  2. Führen Sie die Optimierung mit Use date nur auf dem älteren Teil durch und wählen Sie Ihre Einstellungen.
  3. Entfernen Sie das Häkchen bei Optimization, tragen Sie die gewählten Werte in die Spalte Value ein und führen Sie einen Test auf dem neueren Teil durch.
  4. Vergleichen Sie beide Berichte: durchschnittliches Ergebnis je Trade, Drawdown, Anzahl der Trades. Ein starker Einbruch im zweiten Zeitraum ist das klassische Zeichen für Overfitting.

Der MT5-Tester nimmt Ihnen diese Teilung ab: Sein Forward-Modus verwendet 1/2, 1/3, 1/4 oder einen benutzerdefinierten Teil des Zeitraums und nutzt für den Forward-Test immer den neuesten Teil.

Ein Out-of-Sample-Zeitraum funktioniert nur einmal. Gehen Sie zurück, ändern die Einstellungen und testen erneut darauf, ist er nicht mehr ungesehen, und Sie haben einen weiteren Versuch hinzugefügt. Das Paper sagt dasselbe über Hold-out-Tests: Sie berücksichtigen nicht, wie viele Versuche vorausgingen.

Wenn Sie den EA gekauft haben, hat jemand anderes optimiert. Wie viele Versuche in den Standardeinstellungen stecken, können Sie meist nicht wissen, also fragen Sie nach. Testen Sie diese Einstellungen dann auf den Daten Ihres Brokers und achten Sie vor allem auf den Zeitraum nach der Veröffentlichung der Einstellungen. Für den Verkäufer kann dieser Zeitraum nicht Teil der Anpassung gewesen sein.

Warum Live-Ergebnisse mehr zählen

Ein Backtest ist der schnellste Weg, einen EA zu verwerfen, aber ein schwacher Weg, ihn zu bestätigen. Ein Live-Konto schließt die beiden größten Lücken auf einmal. Es läuft mit echten Spreads, Verzögerungen und Slippage, und jeder Tag nach dem Einfrieren der Einstellungen ist von Natur aus Out-of-Sample.

Eine sinnvolle Reihenfolge ist Backtest, Out-of-Sample-Test, Demo, dann ein kleines Live-Konto oder eine verifizierte Live-Bilanz des Verkäufers. Beim Lesen einer Live-Bilanz gilt dieselbe Logik:

  • Ist sie von Dritten verifiziert, und ist es ein Echtgeldkonto statt einer Demo?
  • Wie lange läuft sie, und wie viele Trades hat sie? Ein paar gute Monate beweisen wenig.
  • Wann wurden die Einstellungen festgelegt? Ergebnisse vor diesem Datum können ebenfalls angepasst sein.
  • Ist es das einzige Konto? Das beste von zehn Konten zu zeigen, ist dieselbe Falle wie den besten von zehn Backtests zu zeigen.

Deshalb verlinkt bei ForexStore jede Roboter-Seite auf ihr Live-Konto, und unser Ranking der Forex-Roboter beruht auf Live-Handelsergebnissen statt auf Backtests. Eine Live-Bilanz ist der stärkere Beleg, aber kein Versprechen: Vergangene Ergebnisse garantieren keine zukünftigen.

FAQ

Welche Modelling Quality braucht ein MT4-Backtest?

Ein allgemeines Minimum gibt es nicht. Mit M1-Historie liegt das Maximum bei 90 %, und „Open prices only“ zeigt n/a, was für einen EA, der auf abgeschlossenen Bars handelt, normal ist. Die Modelling Quality beschreibt, wie die Ticks entstanden sind. Über Overfitting oder Ausführung sagt sie nichts, ein hoher Wert allein macht einen Test also nicht zuverlässig.

Was ist ein guter Profit Factor im Backtest?

Einen allgemeinen Wert gibt es nicht. Der Profit Factor ist der Bruttogewinn geteilt durch den Bruttoverlust, und ein Wert über 1 bedeutet, dass der Test auf dem Papier Geld verdient hat. Wie viel das aussagt, hängt von der Anzahl der Trades, den Kosten im Test und davon ab, wie viele Einstellungen dafür probiert wurden.

Was ist Overfitting im Backtest?

Overfitting bedeutet, dass Einstellungen auf vergangenes Rauschen abgestimmt sind statt auf ein Muster, das sich wiederholt. Bailey und Koautoren (Notices of the AMS, 2014) zeigen, dass bei 2 Jahren Daten etwa 7 unabhängige Versuche genügen, damit der beste im Test eine Sharpe Ratio von 1 erreicht, während das erwartete Ergebnis danach 0 ist. Bei 5 Jahren sind es etwa 45.

Warum weichen Live-Ergebnisse vom Backtest ab?

Der MT4-Tester nutzt einen Spread für den ganzen Test und kennt weder Ausführungsverzögerung noch Slippage, während ein Live-Konto alle drei erlebt. Waren die Einstellungen überangepasst, existiert das Muster, das sie in der Vergangenheit getroffen haben, in neuen Daten vielleicht auch gar nicht.

Fazit

  • Für einen Backtest brauchen Sie Historie (F2), den Tester (Ctrl+R), das richtige Modell und einen selbst gesetzten Spread.
  • Die Modelling Quality beschreibt die Ticks, nicht den EA. Nutzen Sie weder sie noch den Profit Factor als Bestehensgrenze.
  • Der MT4-Tester ignoriert variable Spreads, Ausführungsgeschwindigkeit und Slippage, daher leiden EAs mit kleinem Gewinn je Trade im Live-Handel am meisten.
  • Die beste von vielen Einstellungen ist vielleicht die glücklichste: etwa 7 unabhängige Versuche bei 2 Jahren Daten, etwa 45 bei 5.
  • Prüfen Sie benachbarte Einstellungen, testen Sie auf ungesehenen Daten, bevorzugen Sie wenige Parameter und viele Trades und fragen Sie, wie viele Versuche gemacht wurden.
  • Dann eine Demo und danach eine verifizierte Live-Bilanz.

Neu in diesem Thema? Beginnen Sie mit unserem Schritt-für-Schritt-Leitfaden für den Einstieg ins Trading.

Quellen: MetaTrader 4 Help, Strategy Testing und History Center; MetaTrader 5 Help, Testing; MetaQuotes-Artikel What the Numbers in the Expert Testing Report Mean und Testing Features and Limits in MetaTrader 4; MQL4 Reference, Testing; Bailey, Borwein, López de Prado und Zhu, Pseudo-Mathematics and Financial Charlatanism, Notices of the AMS, 2014.

Dieser Artikel dient der Bildung und ist keine Anlageberatung. Der Handel mit gehebelten Produkten ist mit dem Risiko von Verlusten verbunden.