Einen einfachen Backtest in einer Tabellenkalkulation aufbauen
Bauen Sie Spalte für Spalte einen vollständigen Backtest einer Regel mit gleitendem Durchschnitt in einer Tabellenkalkulation auf und prüfen Sie ihn auf Fehler.
Was Sie lernen werden
- Den Standard-Spaltenaufbau eines Backtests in einer Tabellenkalkulation.
- Die Formeln für Signal, Position, Strategierendite, Kapitalkurve und Drawdown.
- Wie Sie die Position um eine Zeile verschieben, um Look-ahead Bias zu vermeiden.
- Fünf Prüfungen, die die meisten Fehler in Tabellenkalkulationen aufdecken.
Erklärung
Ein Backtest in einer Tabellenkalkulation ist für große Tests langsam, aber jede Zahl ist sichtbar – deshalb ist er der beste Ort zum Lernen. Sie testen die Regel mit gleitendem Durchschnitt aus Lektion 2, hier mit einem 3-Monats-SMA (einfacher gleitender Durchschnitt), damit die Tabelle kurz bleibt.
Der Spaltenaufbau
Zeile 1 enthält die Überschriften; Monat 1 steht in Zeile 2, Monat m also in Zeile m+1. Zelle K1 enthält die Kosten pro Positionswechsel (hier 0.2%).
| Spalte | Inhalt | Formel (Zeile 5 = Monat 4) |
|---|---|---|
| A | Monat (oder Datum) | Daten |
| B | Bereinigter Schlusskurs | Daten |
| C | 3-Monats-SMA | =AVERAGE(B3:B5) |
| D | Signal zum Schlusskurs (1 = investiert, 0 = Cash; bei Gleichstand bleibt das vorherige Signal) | =IF(B5>C5,1,IF(B5<C5,0,D4)) |
| E | Im Monat gehaltene Position | =D4 |
| F | Rendite des Basiswerts | =B5/B4-1 |
| G | Strategierendite nach Kosten | =E5*F5-IF(E5<>E4,$K$1,0) |
| H | Kapital (Start 100) | =H4*(1+G5) |
| I | Laufendes Hoch | =MAX($H$4:H5) |
| J | Drawdown | =H5/I5-1 |
In deutschsprachigen Versionen von Tabellenkalkulationen unterscheiden sich Funktionsnamen und Trennzeichen, zum Beispiel MITTELWERT statt AVERAGE, WENN statt IF und Semikolons statt Kommas.
Der Kerngedanke: die Verschiebung um eine Zeile
Spalte E übernimmt das Signal aus der vorherigen Zeile. Das Signal ist erst zum Schlusskurs von Monat m bekannt und kann daher frühestens die Rendite von Monat m+1 erzielen. Wenn Sie das Signal einer Zeile mit der Rendite derselben Zeile multiplizieren, „kennt“ der Test das Monatsergebnis, bevor er entscheidet. Dieser eine Fehler lässt viele Backtests in Tabellenkalkulationen viel zu gut aussehen.
Kapital und Drawdown
Die Kapitalkurve (Equity-Kurve) ist der Kontowert im Zeitverlauf, hier als Index mit Startwert 100. Renditen werden verzinst: Jeder Monat multipliziert den vorherigen Wert. Der Drawdown ist der prozentuale Rückgang vom bisher höchsten erreichten Kapital (dem laufenden Hoch); die ausführliche Drawdown- und Erholungsmathematik wurde im Kurs „Risiko- und Trade-Management“ behandelt.
Rechenbeispiel
Hypothetisches Beispiel: Monatsschlusskurse €100, €104, €108, €106, €101, €97, €99, €104, €109, €112. Kosten: 0.2% pro Positionswechsel (ein einfacher Platzhalter für Spread und Gebühren, Lektion 8). Steuern und Zinsen auf Cash sind nicht berücksichtigt. Das Kapital startet mit 100 zum Schlusskurs von Monat 3, dem ersten Monat mit einem SMA; die Position davor ist 0.
| Monat | Schlusskurs | SMA | Signal | Position | Rendite Basiswert | Strategierendite | Kapital | Drawdown |
|---|---|---|---|---|---|---|---|---|
| 3 | 108 | 104.00 | 1 | 0 | – | – | 100.00 | 0.00% |
| 4 | 106 | 106.00 | 1 (Gleichstand) | 1 | −1.85% | −2.05% | 97.95 | −2.05% |
| 5 | 101 | 105.00 | 0 | 1 | −4.72% | −4.72% | 93.33 | −6.67% |
| 6 | 97 | 101.33 | 0 | 0 | −3.96% | −0.20% | 93.14 | −6.86% |
| 7 | 99 | 99.00 | 0 (Gleichstand) | 0 | +2.06% | 0.00% | 93.14 | −6.86% |
| 8 | 104 | 100.00 | 1 | 0 | +5.05% | 0.00% | 93.14 | −6.86% |
| 9 | 109 | 104.00 | 1 | 1 | +4.81% | +4.61% | 97.43 | −2.57% |
| 10 | 112 | 108.33 | 1 | 1 | +2.75% | +2.75% | 100.11 | 0.00% |
Kontrollen für drei Zeilen:
- Monat 4: Position 1 (aus Monat 3), Einstiegskosten fallen an: −1.85% − 0.20% = −2.05%. Kapital: 100 × (1 − 0.0205) = 97.95.
- Monat 6: Position wechselt auf 0, nur Ausstiegskosten: −0.20%. Kapital: 93.33 × 0.998 ≈ 93.14. Drawdown: 93.14 ÷ 100 − 1 = −6.86%.
- Monat 9: Wiedereinstieg: +4.81% − 0.20% = +4.61%. Kapital: 93.14 × 1.0461 ≈ 97.43.
Ergebnis: Kapital 100.11 (+0.11%) bei 3 Positionswechseln und einem maximalen Drawdown von −6.86%. Buy-and-Hold von Monat 3 bis 10: €112 ÷ €108 − 1 = +3.70%. Mit der einfacheren Formel =IF(B5>C5,1,0) hätte der Gleichstand in Monat 4 einen Ausstieg einen Monat früher bedeutet, und das Ergebnis wäre etwa +5.07% gewesen. Ein einziger Sonderfall hat das Ergebnis um etwa 5 Prozentpunkte verändert. Acht Monate beweisen nichts über die Regel; hier geht es um die Mechanik.
Häufiger Fehler
=D5*F5 statt =E5*F5 schreibt, lässt die Strategie die Rendite des Monats erzielen, in dem das Signal entstanden ist. Fragen Sie immer: „War diese Zelle bekannt, bevor die Rendite feststand, mit der sie multipliziert wird?“Übung
Fünf Prüfungen für jeden Backtest in einer Tabellenkalkulation. Wenden Sie sie auf Papier auf die obige Tabelle an und notieren Sie, was Sie sehen würden, wenn der Test korrekt wäre.
- Positionswechsel zählen und mit den berechneten Kosten vergleichen.
- Eine zufällige Zeile von Hand nachrechnen.
- Die Kosten auf 0 und die Position überall auf 1 setzen: Das Ergebnis muss Buy-and-Hold entsprechen.
- Prüfen, dass die erste Positionszeile ein Signal aus einer früheren Zeile verwendet.
- Prüfen, dass der Drawdown nie positiv ist.
Lösung anzeigen
1. Wechsel in den Monaten 4, 6 und 9 = 3; berechnete Kosten insgesamt 3 × 0.20% = 0.60%. Stimmt.
2. Beispiel Monat 5: Position 1 × (€101 ÷ €106 − 1) = −4.72%, kein Wechsel, also keine Kosten; 97.95 × 0.9528 ≈ 93.33. Stimmt.
3. Mit Position 1 und ohne Kosten wird das Kapital zu 100 × 112 ÷ 108 ≈ 103.70, dem Buy-and-Hold-Ergebnis von +3.70%.
4. Die Position von Monat 4 (1) stammt aus dem Signal von Monat 3. Korrekt.
5. Alle Drawdowns sind 0.00% oder negativ. Korrekt.
Einschränkungen: Die Tabelle unterstellt einen Handel zum Monatsschlusskurs zu festen Kosten; reale Ausführungen erfolgen zur nächsten Eröffnung mit variablen Spreads und Slippage (Lektion 8).
Das Wichtigste in Kürze
- Verwenden Sie getrennte Spalten für Signal und Position, wobei die Position um eine Zeile nach unten verschoben ist.
- Verzinsen Sie Renditen zu einer Kapitalkurve und berechnen Sie den Drawdown vom laufenden Hoch.
- Berechnen Sie Kosten immer dann, wenn sich die Position ändert, nicht jeden Monat.
- Führen Sie die fünf Prüfungen durch, bevor Sie einem Ergebnis aus einer Tabellenkalkulation vertrauen.
Nächster Schritt
In der nächsten Lektion machen Sie aus einer Kapitalkurve wie dieser Standard-Performancekennzahlen: CAGR, Drawdown, Sharpe Ratio und Profit Factor.
Selbsttest
Beantworten Sie die Fragen und prüfen Sie dann Ihre Antworten. Sie können es so oft wiederholen, wie Sie möchten.
Automatischer Selbsttest zur eigenen Wiederholung. Ihre Antworten werden in Ihrem Browser geprüft und von uns weder eingesehen noch bewertet. Es ist keine Prüfung und kein Abschluss.
Ihr Fortschritt
„Erledigt“ bedeutet nur, dass Sie die Lektion als abgeschlossen markiert haben. Es ist kein Test Ihres Verständnisses. Fortschritt und Notizen werden nur in diesem Browser auf diesem Gerät gespeichert — nicht in einem Konto.