Forex-Backtesting: Strategien ohne Zukunftswissen testen
Beim Forex-Backtesting werden klar festgelegte Handelsregeln auf vergangene Kurse angewendet. Erfasst werden die Geschäfte, die sich daraus unter ausdrücklich genannten Ausführungsannahmen ergeben hätten. Ein brauchbarer Test legt Zeitablauf, Daten und Kosten offen. Er belegt weder tatsächliche Broker-Ausführungen noch künftige Erträge einer Strategie.
Autor · Redakteur
- Autor
- Mykola Zavarov
- Redakteur
- Andrey Bondarenko
Geprüft

Das Wesentliche
Ein Signal darf einen vollständigen Balken erst nach dessen Schluss verwenden. Die Ausführung folgt bei einem späteren Ereignis, das das Testmodell zulässt.
Spread, Slippage und Provision brauchen eine einheitliche Berechnungsgrundlage. Bereits im Ausführungskurs enthaltene Kosten dürfen nicht erneut abgezogen werden.
Ein historischer Prüfzeitraum verliert seine Unabhängigkeit, sobald seine Ergebnisse weitere Entscheidungen beeinflussen. Das fiktive Replay hier dient dem Lernen, nicht der Validierung.
Was ist Forex-Backtesting?
Ein Backtest rekonstruiert einen Ablauf: Eine festgelegte Regel verarbeitet die verfügbaren Beobachtungen in zeitlicher Reihenfolge und dokumentiert Entscheidungen, angenommene Ausführungen und Ergebnisse. Bei einer Forex-Strategie müssen dazu Währungspaar, Kursdaten, Positionsgröße, Ein- und Ausstiege sowie Transaktionskosten definiert sein. Untersucht wird, was diese Regeln in diesem Modell ergeben hätten. Nachträglich attraktive Trades herauszusuchen, beantwortet diese Frage nicht.
Ein manueller Test kann mit einem Chart-Replay und einem Handelsprotokoll arbeiten. Ein automatisierter Test überträgt denselben Ablauf an Software. Automatisierung erleichtert Wiederholungen; sie korrigiert jedoch weder eine Regel, die unbemerkt zukünftige Kurse verwendet, noch eine Ausführungsannahme, die sich mit den vorhandenen Daten nicht begründen lässt.
Angenommen, Sie prüfen nur, ob der Kurs irgendwann ein Gewinnziel erreicht hat. Damit bleibt offen, ob zuvor ein Stop ausgelöst worden wäre, welche Seite der Kursstellung handelbar war und ob das Signal beim Einstieg bereits existierte. Ein nachvollziehbarer Test hält diese Entscheidungen fest, bevor seine Endsumme interpretiert wird.
Trennen Sie drei Fragen: Was konnte die Regel beobachten? Welche Ausführung ließ das Modell zu? Welche Buchungen stehen anschließend im Protokoll?
Regeln festlegen, bevor Sie das Ergebnis ansehen
Schreiben Sie eine kurze Spezifikation, die eine andere Person ohne Rückfragen zu Ihren bevorzugten Trades anwenden könnte. „Kaufen, wenn sich das Momentum verbessert“ reicht nicht. Legen Sie fest, welche Kurse das Momentum bestimmen, wann sie bekannt sind und was bei widersprüchlichen Bedingungen geschieht. Versehen Sie die Regeln mit einem Datum und einer Versionsnummer, damit Änderungen den ursprünglich getesteten Stand nicht unbemerkt ersetzen.
- Instrument und Beobachtungen: Symbol, Zeitrahmen, Handelszeiten, Zeitzone und zulässiger Umgang mit Datenlücken.
- Ein- und Ausstieg: genaue Bedingungen, Zeitpunkt des Signals, zulässiges Ausführungsereignis und Positionszustand.
- Positionsgröße: feste Einheiten oder eine vollständig definierte Größenregel; außerdem, ob bestehende Positionen aufgestockt werden dürfen.
- Ausführung und Kosten: Kursseite, Spread, Provision, Slippage und gegebenenfalls Finanzierung über Nacht.
- Zeitraumgrenzen: Vorlauf für Indikatoren sowie Behandlung offener Positionen und Signale am letzten Beobachtungspunkt.
Das Replay verwendet bewusst eine einfache Regel, die nur Long-Positionen eröffnet. Nach jedem abgeschlossenen Fünf-Minuten-Balken wird dessen Schlusskurs mit dem einfachen Durchschnitt der letzten drei Schlusskurse verglichen, einschließlich des gerade abgeschlossenen Balkens. Ohne Position und bei einem Schlusskurs über dem SMA3 wird ein Kauf zur nächsten Balkeneröffnung vorgemerkt. Bei bestehender Long-Position und einem Schlusskurs unter dem SMA3 wird ein Ausstieg zur nächsten Eröffnung vorgemerkt. Gleichheit verändert nichts. Ein weiterer Schlusskurs über dem Durchschnitt vergrößert eine bereits offene Position nicht.
Die Regel prüft „darüber oder darunter“; sie setzt kein Kreuzen voraus und ist keine Strategieempfehlung. Die Position umfasst stets 10.000 EUR. Für eigene Untersuchungen können andere Regeln sinnvoll sein. Wer nach Sichtung der Ergebnisse mehrere Regeln ändert, beginnt jedoch ein neues Experiment. Die Trading-Plan-Vorlage hilft, die aktuelle Spezifikation von geplanten Änderungen zu trennen.
Daten wählen, die das Ausführungsmodell tragen
Beginnen Sie mit der Frage, welche Aussagen die Daten erlauben. Ein OHLC-Balken enthält Eröffnung, Hoch, Tief und Schluss. Diese vier Werte zeigen weder jeden Zwischenkurs noch die Reihenfolge, in der Hoch und Tief entstanden. Liegen Stop und Gewinnziel innerhalb desselben Balkens, lässt sich daraus allein in der Regel nicht entscheiden, welches zuerst erreicht wurde. Der hier verwendete Mittelkurs (midpoint) ist (Bid + Ask) / 2 zu einem bestimmten Zeitpunkt. SMA3 ist der Durchschnitt der Mittelkurse am Schluss von drei aufeinanderfolgenden Balken.
Daten oder Einstellung | Vor dem Test klären |
|---|---|
Bid, Ask, Mittelkurs oder Last | Stellen Sie fest, welche Kursbasis aufgezeichnet wurde. Der Mittelkurs ist selbst weder ein Kauf- noch ein Verkaufskurs. |
Balken oder Ticks | Die Auflösung muss zur Orderlogik passen. Aus vier Kursen darf kein präziser Verlauf innerhalb des Balkens erfunden werden. |
Zeitstempel und Handelssitzungen | Halten Sie Zeitzone, Balkengrenzen, Wochenendlücken und fehlende Intervalle fest. |
Symbolspezifikation | Prüfen Sie Kursschritte, Kontraktgröße, Gewinnwährung und die Bedeutung des angegebenen Spreads. |
Seitlich scrollen, um alle Spalten zu vergleichen ↔
Die MetaTrader-5-Dokumentation zu Ticks erläutert, weshalb Chartkurse und Ausführungskurse getrennt betrachtet werden müssen: Käufe und Verkäufe verwenden unterschiedliche Seiten der Kursstellung, während verfügbare Charts nicht zwingend beide anzeigen. Bei kursabhängigen Regeln kann dies verändern, ob eine Order auslösbar ist und welches Ergebnis sie erzielt.
Auch bei „echten Ticks“ ist die Datenbasis zu prüfen. Die MQL5-Dokumentation zum Testen beschreibt Situationen, in denen der Tester Ticks erzeugt, wenn echte Tickdaten fehlen oder widersprüchlich sind. Dokumentieren Sie den gewählten Modus und untersuchen Sie Hinweise auf Datenlücken. Die Bezeichnung des Modus beschreibt nicht automatisch jede tatsächlich verwendete Beobachtung.
Unser Replay enthält 36 fiktive EURUSD-Balken auf Mittelkursbasis im Abstand von fünf Minuten innerhalb einer erfundenen Intraday-Sitzung. Es handelt sich nicht um heruntergeladene Markthistorie. Stop-, Limit- oder Zielorders, deren Ausführung innerhalb eines Balkens geklärt werden müsste, kommen nicht vor. Das Beispiel erklärt Ereignisreihenfolge und Kostenrechnung; es zeigt nicht, ob eine SMA-Regel bei EURUSD funktioniert.
Ein Signal bis zur nächsten möglichen Ausführung verfolgen
Einen Backtest Entscheidung für Entscheidung nachvollziehen
Verfolgen Sie eine feste Regel über 36 erfundene Fünf-Minuten-Balken für EUR/USD mit Mittelkursen. Der Mittelkurs ist (Bid + Ask) / 2 zu einem Zeitpunkt, kein Durchschnitt über mehrere Zeitpunkte. Ändern Sie die Kostenannahmen und prüfen Sie Signal, nächste Eröffnung und Ergebnisbuchung.
Nur Beispieldaten. Diese Balken sind erfunden: keine Markthistorie und kein Nachweis, dass die Regel funktioniert.
Die Regel bleibt unverändert
Nach Balkenschluss wird der Mittelkurs-Schluss mit dem Durchschnitt dieses und der beiden vorherigen Schlusskurse verglichen. Über SMA3: kaufen, falls keine Position besteht. Unter SMA3: eine Long-Position schließen. Bei Gleichheit bleibt der Zustand erhalten. Jede Position umfasst 10.000 EUR; Ergebnisse stehen in USD.
Eine Entscheidung kann erst zur nächsten Eröffnung innerhalb des gewählten Fensters ausgeführt werden. Wiederholte Kaufsignale erhöhen die Position nicht. Es gibt keine Shorts, Stop- oder Limitorders, Übernachtfinanzierung oder Parameteroptimierung.
Balken 36 im gewählten Fenster (1–36) · 11:55
Ergebnis abstimmen
- Geschlossene Trades · Netto-P/L
- -3,70 USD
- Offene Position · Bewertungs-P/L nach Einstiegsprovision
- 16,25 USD
- Gesamtes Modell-P/L
- 12,55 USD
Geschlossen netto -3,70 USD + offen bewertet netto 16,25 USD = gesamt 12,55 USD.
Geschlossene Positionen: 4. Bisherige Ausführungen: 9.
Die offene Long-Position wird zum letzten Mittelkurs bei Balkenschluss abzüglich des halben Spreads bewertet. Die bezahlte Einstiegsprovision wird einmal abgezogen. Eine zukünftige Ausstiegsprovision oder Slippage beim Ausstieg ist nicht enthalten.
Verkaufssignal bei Balken 36: noch offen. Die Position bleibt bestehen; es wurde keine Ausstiegsgebühr berechnet. Innerhalb dieses Fensters folgt keine weitere Eröffnung. Das letzte Signal wird hier deshalb nicht ausgeführt.
Wo die Kosten enthalten sind
- Geschlossenes P/L aus Ausführungskursen
- -0,90 USD
- Provisionen geschlossener Positionen
- 2,80 USD
- Offenes Bewertungs-P/L vor Einstiegsprovision
- 16,60 USD
- Bezahlte Provision des offenen Einstiegs
- 0,35 USD
- Alle bisher bezahlten Provisionen
- 3,15 USD
- Bereits in Ausführungen enthaltener Spreadeffekt
- 5,40 USD
- Bereits in Ausführungen enthaltene Slippage
- 1,80 USD
- Zusätzlicher halber Spread in der offenen Bewertung
- 0,60 USD
Spread und Slippage stecken bereits in den Ausführungskursen. Ziehen Sie die angezeigten Effekte nicht erneut ab. Die Provision ist eine separate Belastung. Eine offene Bewertung ist kein ausgeführter Ausstieg.
Frühes und spätes Fenster sind getrennte Zeitbeispiele. Sie sind weder eine Out-of-Sample-Validierung noch ein Forward-Test mit künftig beobachteten Kursen. Eine frühe offene Position wird weder stillschweigend geschlossen noch ins späte Fenster übertragen. Addieren Sie ihre Ergebnisse nicht zu einer durchgehenden Kontohistorie.
Gezeigt werden nur bereits erreichte Balken. Die durchgezogene Linie verbindet Mittelkurs-Schlüsse, die gestrichelte zeigt SMA3. Dreiecke nach oben und unten markieren hypothetische Käufe und Verkäufe zur jeweiligen Balkeneröffnung. Die senkrechte Achse zeigt USD je EUR.
USD je EUR
Fünf-Minuten-Balken
- Mittelkurs-Schluss
- SMA3
- Kauf zur Eröffnung
- Verkauf zur Eröffnung
Signal → nächste Eröffnung → Position
Lesen Sie jede Zeile zeitlich: zuerst die vorherige Entscheidung zur Eröffnung ausführen, dann den aktuellen Schluss auswerten. Eine Linie zwischen Balken erzeugt keine Zwischenkurse oder Ausführungen.
| Balken · Beispieluhrzeit | An dieser Eröffnung | Mittelkurs-Schluss / SMA3 | An diesem Schluss | Nach Balkenschluss | Gesamtes Modell-P/L |
|---|---|---|---|---|---|
| 109:00 | Keine Ausführung | 1,10000— | Weniger als drei Schlusskurse: keine Entscheidung | Ohne Position | 0,00 USD |
| 209:05 | Keine Ausführung | 1,10020— | Weniger als drei Schlusskurse: keine Entscheidung | Ohne Position | 0,00 USD |
| 309:10 | Keine Ausführung | 1,100401,10020 | Über SMA3: zur nächsten Eröffnung kaufen | Ohne Position | 0,00 USD |
| 409:15 | Kauf zu 1,10058; Signal aus Balken 3 | 1,100801,1004667 | Über SMA3: Long behalten, keine neue Order | Long 10.000 EUR | 1,25 USD |
| 509:20 | Keine Ausführung | 1,101201,10080 | Über SMA3: Long behalten, keine neue Order | Long 10.000 EUR | 5,25 USD |
| 609:25 | Keine Ausführung | 1,101601,10120 | Über SMA3: Long behalten, keine neue Order | Long 10.000 EUR | 9,25 USD |
| 709:30 | Keine Ausführung | 1,101801,1015333 | Über SMA3: Long behalten, keine neue Order | Long 10.000 EUR | 11,25 USD |
| 809:35 | Keine Ausführung | 1,101601,1016667 | Unter SMA3: zur nächsten Eröffnung verkaufen | Long 10.000 EUR | 9,25 USD |
| 909:40 | Verkauf zu 1,10142; Signal aus Balken 8 | 1,101301,1015667 | Unter SMA3: ohne Position bleiben | Ohne Position | 7,70 USD |
| 1009:45 | Keine Ausführung | 1,101001,10130 | Unter SMA3: ohne Position bleiben | Ohne Position | 7,70 USD |
| 1109:50 | Keine Ausführung | 1,100801,1010333 | Unter SMA3: ohne Position bleiben | Ohne Position | 7,70 USD |
| 1209:55 | Keine Ausführung | 1,101001,1009333 | Über SMA3: zur nächsten Eröffnung kaufen | Ohne Position | 7,70 USD |
| 1310:00 | Kauf zu 1,10118; Signal aus Balken 12 | 1,101201,10100 | Über SMA3: Long behalten, keine neue Order | Long 10.000 EUR | 6,95 USD |
| 1410:05 | Keine Ausführung | 1,101001,1010667 | Unter SMA3: zur nächsten Eröffnung verkaufen | Long 10.000 EUR | 4,95 USD |
| 1510:10 | Verkauf zu 1,10072; Signal aus Balken 14 | 1,100701,1009667 | Unter SMA3: ohne Position bleiben | Ohne Position | 2,40 USD |
| 1610:15 | Keine Ausführung | 1,100901,1008667 | Über SMA3: zur nächsten Eröffnung kaufen | Ohne Position | 2,40 USD |
| 1710:20 | Kauf zu 1,10108; Signal aus Balken 16 | 1,101301,1009667 | Über SMA3: Long behalten, keine neue Order | Long 10.000 EUR | 3,65 USD |
| 1810:25 | Keine Ausführung | 1,101601,1012667 | Über SMA3: Long behalten, keine neue Order | Long 10.000 EUR | 6,65 USD |
| 1910:30 | Keine Ausführung | 1,101801,1015667 | Über SMA3: Long behalten, keine neue Order | Long 10.000 EUR | 8,65 USD |
| 2010:35 | Keine Ausführung | 1,101401,10160 | Unter SMA3: zur nächsten Eröffnung verkaufen | Long 10.000 EUR | 4,65 USD |
| 2110:40 | Verkauf zu 1,10122; Signal aus Balken 20 | 1,101001,10140 | Unter SMA3: ohne Position bleiben | Ohne Position | 3,10 USD |
| 2210:45 | Keine Ausführung | 1,101201,10120 | Gleich SMA3: ohne Position bleiben | Ohne Position | 3,10 USD |
| 2310:50 | Keine Ausführung | 1,100801,10100 | Unter SMA3: ohne Position bleiben | Ohne Position | 3,10 USD |
| 2410:55 | Keine Ausführung | 1,100401,10080 | Unter SMA3: ohne Position bleiben | Ohne Position | 3,10 USD |
| 2511:00 | Keine Ausführung | 1,100601,10060 | Gleich SMA3: ohne Position bleiben | Ohne Position | 3,10 USD |
| 2611:05 | Keine Ausführung | 1,100901,1006333 | Über SMA3: zur nächsten Eröffnung kaufen | Ohne Position | 3,10 USD |
| 2711:10 | Kauf zu 1,10103; Signal aus Balken 26 | 1,100601,10070 | Unter SMA3: zur nächsten Eröffnung verkaufen | Long 10.000 EUR | -2,15 USD |
| 2811:15 | Verkauf zu 1,10042; Signal aus Balken 27 | 1,100301,10060 | Unter SMA3: ohne Position bleiben | Ohne Position | -3,70 USD |
| 2911:20 | Keine Ausführung | 1,100601,10050 | Über SMA3: zur nächsten Eröffnung kaufen | Ohne Position | -3,70 USD |
| 3011:25 | Kauf zu 1,10078; Signal aus Balken 29 | 1,101101,1006667 | Über SMA3: Long behalten, keine neue Order | Long 10.000 EUR | -1,45 USD |
| 3111:30 | Keine Ausführung | 1,101501,1010667 | Über SMA3: Long behalten, keine neue Order | Long 10.000 EUR | 2,55 USD |
| 3211:35 | Keine Ausführung | 1,101901,10150 | Über SMA3: Long behalten, keine neue Order | Long 10.000 EUR | 6,55 USD |
| 3311:40 | Keine Ausführung | 1,102301,10190 | Über SMA3: Long behalten, keine neue Order | Long 10.000 EUR | 10,55 USD |
| 3411:45 | Keine Ausführung | 1,102701,10230 | Über SMA3: Long behalten, keine neue Order | Long 10.000 EUR | 14,55 USD |
| 3511:50 | Keine Ausführung | 1,103101,10270 | Über SMA3: Long behalten, keine neue Order | Long 10.000 EUR | 18,55 USD |
| 3611:55 | Keine Ausführung | 1,102501,1027667 | Unter SMA3: zur nächsten Eröffnung verkaufen | Long 10.000 EUR | 12,55 USD |
Tabellen lassen sich horizontal verschieben. Fokussieren Sie bei Bedarf den Tabellenbereich und verwenden Sie die Pfeiltasten.
Positionsjournal
Eine geschlossene Zeile enthält beide bezahlten Provisionen. Eine offene Zeile enthält nur die Einstiegsprovision und eine Bid-Bewertung, keinen erfundenen Ausstieg.
| Position | Einstiegsausführung | Ausstieg / offene Bewertung | Mittelkurs-P/L vor Kosten | Ausführungs- / Bewertungs-P/L | Bezahlte Provision | Netto-P/L geschlossen / bewertet |
|---|---|---|---|---|---|---|
| 1Geschlossen | Balken 4 · 1,10058 | Balken 9 · 1,10142 | 10,00 USD | 8,40 USD | 0,70 USD | 7,70 USD |
| 2Geschlossen | Balken 13 · 1,10118 | Balken 15 · 1,10072 | -3,00 USD | -4,60 USD | 0,70 USD | -5,30 USD |
| 3Geschlossen | Balken 17 · 1,10108 | Balken 21 · 1,10122 | 3,00 USD | 1,40 USD | 0,70 USD | 0,70 USD |
| 4Geschlossen | Balken 27 · 1,10103 | Balken 28 · 1,10042 | -4,50 USD | -6,10 USD | 0,70 USD | -6,80 USD |
| 5Offen · nur bewertet | Balken 30 · 1,10078 | Balken 36 · 1,10244 | 18,00 USD | 16,60 USD | 0,35 USD | 16,25 USD |
Die CSV enthält nur die gültige Wiedergabe bis zum ausgewählten Balken. Stabile englische Feldnamen, Dezimalpunkte und die volle Modellgenauigkeit ermöglichen eine Nachrechnung. Gerundet wird nur die Anzeige.
Tabellen lassen sich horizontal verschieben. Fokussieren Sie bei Bedarf den Tabellenbereich und verwenden Sie die Pfeiltasten.
Erfundene OHLC-Daten prüfen
Alle folgenden Kurse sind Mittelkurse: (Bid + Ask) / 2. Hoch und Tief dienen der Datenprüfung; die Regel von Schluss zu nächster Eröffnung leitet daraus keine Ausführungen ab. Frühere Vorlaufzeilen sind gekennzeichnet und erzeugen keine Trades.
| Balken · Beispieluhrzeit | Eröffnung | Hoch | Tief | Schluss |
|---|---|---|---|---|
| 1 · 09:00 | 1,09980 | 1,10010 | 1,09970 | 1,10000 |
| 2 · 09:05 | 1,10000 | 1,10035 | 1,09980 | 1,10020 |
| 3 · 09:10 | 1,10020 | 1,10060 | 1,10005 | 1,10040 |
| 4 · 09:15 | 1,10050 | 1,10090 | 1,10040 | 1,10080 |
| 5 · 09:20 | 1,10080 | 1,10135 | 1,10060 | 1,10120 |
| 6 · 09:25 | 1,10120 | 1,10180 | 1,10105 | 1,10160 |
| 7 · 09:30 | 1,10160 | 1,10190 | 1,10150 | 1,10180 |
| 8 · 09:35 | 1,10180 | 1,10195 | 1,10140 | 1,10160 |
| 9 · 09:40 | 1,10150 | 1,10170 | 1,10115 | 1,10130 |
| 10 · 09:45 | 1,10130 | 1,10140 | 1,10090 | 1,10100 |
| 11 · 09:50 | 1,10100 | 1,10115 | 1,10060 | 1,10080 |
| 12 · 09:55 | 1,10080 | 1,10120 | 1,10065 | 1,10100 |
| 13 · 10:00 | 1,10110 | 1,10130 | 1,10100 | 1,10120 |
| 14 · 10:05 | 1,10120 | 1,10135 | 1,10080 | 1,10100 |
| 15 · 10:10 | 1,10080 | 1,10100 | 1,10055 | 1,10070 |
| 16 · 10:15 | 1,10070 | 1,10100 | 1,10060 | 1,10090 |
| 17 · 10:20 | 1,10100 | 1,10145 | 1,10080 | 1,10130 |
| 18 · 10:25 | 1,10130 | 1,10180 | 1,10115 | 1,10160 |
| 19 · 10:30 | 1,10165 | 1,10190 | 1,10155 | 1,10180 |
| 20 · 10:35 | 1,10175 | 1,10190 | 1,10120 | 1,10140 |
| 21 · 10:40 | 1,10130 | 1,10150 | 1,10085 | 1,10100 |
| 22 · 10:45 | 1,10100 | 1,10130 | 1,10090 | 1,10120 |
| 23 · 10:50 | 1,10120 | 1,10135 | 1,10060 | 1,10080 |
| 24 · 10:55 | 1,10080 | 1,10100 | 1,10025 | 1,10040 |
| 25 · 11:00 | 1,10040 | 1,10070 | 1,10030 | 1,10060 |
| 26 · 11:05 | 1,10060 | 1,10105 | 1,10040 | 1,10090 |
| 27 · 11:10 | 1,10095 | 1,10115 | 1,10045 | 1,10060 |
| 28 · 11:15 | 1,10050 | 1,10060 | 1,10020 | 1,10030 |
| 29 · 11:20 | 1,10030 | 1,10075 | 1,10010 | 1,10060 |
| 30 · 11:25 | 1,10070 | 1,10130 | 1,10055 | 1,10110 |
| 31 · 11:30 | 1,10110 | 1,10160 | 1,10100 | 1,10150 |
| 32 · 11:35 | 1,10150 | 1,10205 | 1,10130 | 1,10190 |
| 33 · 11:40 | 1,10190 | 1,10250 | 1,10175 | 1,10230 |
| 34 · 11:45 | 1,10230 | 1,10280 | 1,10220 | 1,10270 |
| 35 · 11:50 | 1,10270 | 1,10325 | 1,10250 | 1,10310 |
| 36 · 11:55 | 1,10310 | 1,10330 | 1,10235 | 1,10250 |
Tabellen lassen sich horizontal verschieben. Fokussieren Sie bei Bedarf den Tabellenbereich und verwenden Sie die Pfeiltasten.
Forschungsprotokoll herunterladen
Mit der bearbeitbaren Textcheckliste legen Sie einen eigenen Versuch fest, bevor Sie dessen Ergebnisse ansehen. Sie bestätigt keinen Test und macht erfundene Kurse nicht zu Marktbelegen.
Protokoll herunterladen · TXTGrenzen des Modells
Feste Menge, vollständige Ausführungen, konstante Annahmen zu Spread, Slippage und Provision; Verzögerung nur bis zur nächsten Eröffnung. Keine Livekurse, Teilausführungen, Hebel, Margin-Liquidation, Ein- oder Auszahlungen oder brokerspezifischen Ausführungsregeln. Das Beispiel erklärt Reihenfolge und Buchung, nicht einen Broker oder eine Strategieoptimierung.
Diese Komponente rechnet in diesem Browser-Tab, ohne Eingaben zu versenden oder im Browserspeicher abzulegen. Dateien entstehen nur auf Ihre Download-Anforderung. Diese Aussage gilt für das Lab, nicht für die übrige Website.
Gehen Sie das Replay Balken für Balken durch. Bei der Eröffnung eines Balkens wird eine zulässige, nach dem vorherigen Schluss vorgemerkte Anweisung anhand dieses Eröffnungskurses und der gewählten Kosten ausgeführt. Erst danach verarbeitet das Modell den Schlusskurs des aktuellen Balkens und berechnet ein neues Signal. Kein Trade darf einen Schlusskurs verwenden, der zu diesem Zeitpunkt noch nicht vorlag.
Ein nach Schluss von Balken 3 entstandenes Kaufsignal kann beispielsweise zur Eröffnung von Balken 4 ausgeführt werden. Den Eröffnungskurs von Balken 3 darf es nicht erhalten. Eine Kurslücke zwischen den beiden Balken wirkt sich deshalb aus. Auch die Strategiedokumentation von TradingView unterscheidet bei den standardmäßigen Zeiteinstellungen zwischen der Erstellung einer Order und dem späteren Tick, an dem der Broker-Emulator sie ausführen kann.
Vergleichen Sie den gesamten Zeitraum mit der ersten oder zweiten Hälfte. Jeder gewählte Zeitraum beginnt ohne Position. Frühere Schlusskurse dürfen den Durchschnitt vorbereiten, übernehmen aber weder eine Position noch frühere Gebühren oder eine vorgemerkte Order. Es sind getrennte Lernläufe. Ihre Ergebnisse dürfen nicht addiert und als durchgehender Kontoverlauf dargestellt werden.
Am Ende des ausgewählten Zeitraums bleibt ein neues Signal unausgeführt, wenn die nächste Eröffnung außerhalb dieses Zeitraums liegt. Eine bestehende Position bleibt sichtbar und wird getrennt bewertet. Das Modell erfindet keinen Ausstieg, nur damit alle Trades abgeschlossen erscheinen. Ein anderer Zeitraum kann daher sowohl die Anzahl der Trades als auch den offenen Endzustand verändern.
Die beiden Hälften sind keine Out-of-Sample-Validierung. Beide gehören zu einem kleinen fiktiven Beispiel; der Neustart ohne Position verändert zudem das Experiment.
Kosten genau einmal und auf einheitlicher Basis erfassen
In diesem Modell auf Mittelkursbasis erfolgt ein Kauf zum Eröffnungsmittelkurs zuzüglich halbem Spread und nachteiliger Slippage. Der Verkauf zum Schließen erfolgt zum Eröffnungsmittelkurs abzüglich halbem Spread und nachteiliger Slippage. Die Provision wird getrennt in USD für jede Ausführung der festen Position von 10.000 EUR berechnet. In diesem EURUSD-Beispiel entspricht ein Pip 0,0001 USD je EUR.
Beispiel für einen vollständigen Trade | Berechnung |
|---|---|
Mittelkurs beim Einstieg / Ausstieg | 1,10000 / 1,10200 |
Annahmen | Spread 1,2 Pips; nachteilige Slippage 0,2 Pips je Ausführung; Provision 0,35 USD je Ausführung |
Ausführungskurs beim Einstieg / Ausstieg | 1,10008 / 1,10192 |
Kursgewinn nach Spread und Slippage | 10.000 × (1,10192 − 1,10008) = 18,40 USD |
Nettoergebnis des geschlossenen Trades | 18,40 USD − 0,35 USD − 0,35 USD = 17,70 USD |
Seitlich scrollen, um alle Spalten zu vergleichen ↔
Die reine Mittelkursbewegung ergäbe 20,00 USD. Ziehen Sie Spread und Slippage nicht erneut von den 18,40 USD ab: Beide stecken bereits in den Ausführungskursen. Bei unverändertem Mittelkurs zwischen Einstieg und Ausstieg ergeben dieselben Annahmen −2,30 USD. Ein um einen Pip höherer Spread verringert das Ergebnis dieses vollständigen Trades um 1,00 USD, weil auf jede Seite die Hälfte des zusätzlichen Spreads entfällt.
Bleibt eine Position offen, bewertet das Replay sie zum letzten modellierten Bid und berücksichtigt die bereits gezahlte Einstiegsprovision. Eine künftige Ausstiegsprovision oder Slippage beim Ausstieg wird vor einer tatsächlichen Ausstiegsbuchung nicht berechnet. Die angezeigte Summe ist ein modellierter Gewinn oder Verlust, keine vollständige Berechnung des Kontoeigenkapitals.
Konstante Kosten machen ihren Einfluss nachvollziehbar; sie versprechen keine tatsächlich verfügbaren Kurse. Ein realer Test kann wechselnde Spreads, andere Provisionen und Finanzierung beim Rollover benötigen. Dieses Intraday-Beispiel enthält keinen Übernacht-Swap. Der Leitfaden zu Slippage erklärt den Unterschied zwischen gewünschtem Kurs, verfügbarer Kursstellung und tatsächlicher Ausführung.
Entwicklung, historischen Prüfzeitraum und künftige Beobachtung trennen
Legen Sie vor Sichtung des Prüfzeitraums fest, welche historischen Beobachtungen die Entwicklung beeinflussen dürfen. Ein späterer Zeitraum kann eine zuvor gewählte Regel auf die Probe stellen, wenn seine Ergebnisse außerhalb des Auswahlprozesses bleiben. Wer den zurückgehaltenen Prüfzeitraum wiederholt betrachtet und die Strategie danach anpasst, macht ihn zu Entwicklungsdaten.
Stufe | Zweck | Was damit nicht belegt ist |
|---|---|---|
Entwicklung | Regeln ausarbeiten und Annahmen anhand der dafür vorgesehenen Daten untersuchen. | Dass die ausgewählte Version auf andere Situationen übertragbar ist. |
Historischer Prüfzeitraum | Eine unveränderte Version auf spätere, bisher ungenutzte Beobachtungen anwenden. | Tatsächliche Broker-Ausführungen oder künftige Profitabilität. |
Forward-Beobachtung | Neu eintreffende Kurse beobachten, nachdem die Regeln festgelegt wurden. | Dass simulierte Ausführungen der Live-Ausführung entsprechen. |
Seitlich scrollen, um alle Spalten zu vergleichen ↔
Die Forward-Einstellung in MetaTrader 5 verwendet einen späteren Teil des ausgewählten historischen Intervalls. Trotz ihrer Bezeichnung ist dies nicht dasselbe wie das Warten auf zukünftige Marktdaten. Benennen Sie in Ihren Aufzeichnungen sowohl die Plattformfunktion als auch die tatsächlich angewendete Untersuchungsmethode.
Die zeitliche Reihenfolge gilt auch für die Vorbereitung von Indikatoren. Frühere Beobachtungen können die nötige Vorgeschichte liefern, um einen Indikator zu Beginn des Prüfzeitraums zu berechnen. Dabei darf weder ein zukünftiger Schlusskurs in die Berechnung gelangen noch unbemerkt eine Position entstehen, obwohl das Experiment ohne Position beginnen soll.
Zeigt der Prüfzeitraum ein Problem, dokumentieren Sie es. Eine überarbeitete Strategie kann ein neues Experiment rechtfertigen. Der bisherige Prüfzeitraum ist inzwischen jedoch bekannt. Die Bezeichnung „ungesehener Test“ wird nicht dadurch wieder zutreffend, dass eine Datei umbenannt oder eine andere Leistungskennzahl gewählt wird.
Fehler prüfen, bevor Sie Erträge interpretieren
Ein günstiges Ergebnis ist Anlass, das Protokoll genauer zu prüfen, nicht die Prüfung zu beenden. Wählen Sie mehrere Ein- und Ausstiege, darunter einen schwierigen Grenzfall, und rekonstruieren Sie die zu jedem Entscheidungszeitpunkt verfügbaren Informationen. Besonders aufschlussreich kann ein unausgeführtes Signal oder ein unattraktiver Trade sein, der bei einer freien Chartdurchsicht leicht übersehen würde.
- Lookahead-Bias: Eine Entscheidung verwendet einen späteren Schlusskurs, ein erst künftig bestätigtes Muster oder einen zum angegebenen Zeitpunkt noch unbekannten Wert.
- Überanpassung: Viele Einstellungen werden ausprobiert, aber nur der Gewinner wird behalten und die Suche nicht dokumentiert.
- Auswahlverzerrung: Günstige Zeiträume, Instrumente oder Trades bleiben erhalten, während unbequeme Beobachtungen verschwinden.
- Unpassendes Ausführungsmodell: Balkendaten sollen eine genaue Ausführungsreihenfolge innerhalb des Balkens belegen, die sie gar nicht enthalten.
- Buchungsfehler: Wiederholte Signale erzeugen unbeabsichtigte Zusatzpositionen, Kosten werden doppelt abgezogen oder eine offene Position verschwindet an der Zeitraumgrenze.
Die Lookahead-Beispiele von TradingView zeigen, wie Zugriff auf zukünftige Informationen unrealistische historische Ergebnisse erzeugen kann. Fragen Sie konkret, ob sich dasselbe Signal auch beim schrittweisen Eintreffen der Beobachtungen hätte festhalten lassen. Wenn spätere Daten eine frühere Entscheidung verändern, muss diese Abhängigkeit untersucht werden, bevor der Ergebnisbericht als belastbar gilt.
Variieren Sie Annahmen mit einer klaren Fragestellung, nicht so lange, bis das Ergebnis gefällt. Vergleichen Sie etwa dieselbe feste Regel mit mehreren ausdrücklich angegebenen Kostenansätzen. Kippt das Ergebnis schon bei einer kleinen Kostenänderung, gehört diese Empfindlichkeit in den Bericht. Sie ist eine Eigenschaft des Experiments und kein Grund, das anspruchsvollere Szenario wegzulassen.
Einen reproduzierbaren Test dokumentieren
Laden Sie nach Auswahl von Zeitraum und Kosten das Versuchsprotokoll aus dem Replay herunter. Bewahren Sie es gemeinsam mit dem angezeigten Szenario und dem Handelsprotokoll auf. Die Kennzeichnung als fiktive Daten ist wesentlich: Ohne diesen Zusammenhang könnten die Zahlen eine Lernübung als vermeintlichen Leistungsnachweis erscheinen lassen.
Für eigene Untersuchungen sollte ein Protokoll auch einen Monat später erkennen lassen, was tatsächlich getestet wurde. Ein Screenshot des Endgewinns genügt nicht, wenn sich Daten, Signalzeitpunkt oder Kostenbasis inzwischen geändert haben.
- Notieren Sie Regelversion, Fragestellung und Änderungen seit dem vorherigen Durchlauf.
- Benennen Sie Datensatz, Kursbasis, Zeitzone, Intervall, Auslassungen und Aufbereitungsschritte.
- Halten Sie Signalzeitpunkte, Ausführungsannahmen, Positionsgröße, Kosten und die Behandlung einer am Ende offenen Position fest.
- Trennen Sie Entwicklungs- und Prüfzeiträume. Dokumentieren Sie, ob Prüfergebnisse bereits Entscheidungen beeinflusst haben.
- Speichern Sie neben der Zusammenfassung auch Handelsanzahl, Ausführungsbuchungen, offene Zustände und fehlgeschlagene Prüfungen.
Die Trading-Journal-Vorlage hilft beim Ordnen einzelner Beobachtungen. Das Versuchsprotokoll beschreibt dagegen das Experiment, aus dem sie stammen. Bewahren Sie einen enttäuschenden Durchlauf ebenso sorgfältig auf wie einen attraktiven. Sonst wird bereits die eigene Untersuchungshistorie zu einer gezielt ausgewählten Stichprobe.
Kennzahlen im Zusammenhang lesen
Beginnen Sie mit den Anzahlen: verfügbare Beobachtungen, abgeschlossene Trades, kostenpflichtige Ausführungen und noch offene Positionen. Eine Prozentzahl ohne Bezugsgröße kann eine winzige Stichprobe überzeugender erscheinen lassen, als sie ist. Ein am Ende vorgemerktes Signal ist kein abgeschlossener Trade; eine offene Position ist weder ein abgeschlossener Gewinn noch ein abgeschlossener Verlust.
Gleichen Sie anschließend geschlossene Nettoergebnisse, die Bewertung offener Positionen und bereits gezahlte Gebühren miteinander ab. Untersuchen Sie, wo Verluste entstehen und wie stark das Ergebnis von wenigen Trades abhängt. Das Replay enthält weder Einzahlungen noch ein Margin-Modell oder Auszahlungen. Sein Gewinn-und-Verlust-Verlauf ist deshalb kein Broker-Kontostand.
Der Leitfaden zum Profitfaktor, der Equity-Curve-Simulator und der Leitfaden zur Calmar-Ratio erläutern Definitionen und Grenzen dieser Größen. Eine gute Kennzahl beseitigt weder Zukunftswissen noch unrealistische Ausführungen. Ebenso wenig rechtfertigen wenige Stunden fiktiver Beobachtungen eine annualisierte Rendite oder eine Aussage zum langfristigen Drawdown.
Eine brauchbare Schlussfolgerung benennt die Bedingungen: welche Regel auf welchen Daten unter welchen Annahmen geprüft wurde und welche Unsicherheiten bleiben. „Diese Version verlor bei höheren Kosten Geld“ ist ein klareres Untersuchungsergebnis als das unbelegte Versprechen, die nächste Version werde profitabel sein.
Häufige Fragen
Kann ich eine Forex-Strategie manuell backtesten?
Ja. Decken Sie Beobachtungen in zeitlicher Reihenfolge auf, wenden Sie schriftliche Regeln an und dokumentieren Sie jeden zulässigen Trade samt Annahmen. Suchen Sie nicht in einem bereits vollständig sichtbaren Chart nur nach bekannten Setups. Für manuelle Tests gelten dieselben Anforderungen an Kosten und Zeitraumgrenzen wie für automatisierte Tests.
Sollte ich MetaTrader 5 oder TradingView verwenden?
Das hängt von Regelwerk, Daten und dem zu untersuchenden Ausführungsverhalten ab. Lesen Sie die Einstellungen des jeweiligen Testers oder Broker-Emulators und prüfen Sie einzelne Ausführungen. Unterschiedliche Standardwerte können unterschiedliche Ergebnisse erzeugen, ohne dass eine der Plattformen damit die Profitabilität einer Strategie belegt.
Sind echte Ticks immer erforderlich?
Die nötige Detailtiefe hängt von der Regel ab. Eine Strategie, die auf Ereignisse innerhalb eines Balkens reagiert, benötigt Informationen, die Balkendaten möglicherweise nicht liefern. Tickdaten können Details ergänzen. Dennoch müssen Kursabdeckung, Kursseiten und Ausführungsannahmen geprüft werden. Mehr Datenzeilen beseitigen die Grenzen des Modells nicht.
Wie viele Trades machen einen Backtest zuverlässig?
Es gibt keine universelle Anzahl, die jede Strategie validiert. Handelshäufigkeit, Abhängigkeiten zwischen Trades, Marktbedingungen und die Zahl ausprobierter Varianten beeinflussen die Interpretation. Geben Sie Stichprobe und Grenzen an. Das kleine fiktive Replay hier ist bewusst ungeeignet, statistische Leistungsbehauptungen zu begründen.
Warum können Live-Ergebnisse vom Backtest abweichen?
Kurse, Zeitabläufe, Spread, verfügbare Liquidität, Gebühren und Orderverarbeitung können anders ausfallen als im Modell. Außerdem kann ein Test keine Marktbedingungen enthalten, die in seinen Daten nicht vorkommen. Historische Ergebnisse bleiben an Voraussetzungen gebundene Hinweise. Forward-Beobachtungen und tatsächliche Ausführungen sollten getrennt dokumentiert werden.
Belegt ein profitabler Backtest einen Handelsvorteil?
Nein. Schließen Sie zuerst Informationslecks und Buchungsfehler aus. Prüfen Sie dann, wie die Strategie ausgewählt und getestet wurde. Ein Ergebnis kann in sich stimmig sein und dennoch von einem kleinen oder unrepräsentativen Zeitraum abhängen. Backtesting unterstützt eine Untersuchung, garantiert aber keinen zukünftigen Ausgang.
Quellen und weiterführende Lektüre
- TradingView — StrategiesGeprüft