Deflated Sharpe Ratio: die ehrliche Korrektur für Backtest-Overfitting.
Eine nackte Sharpe Ratio sagt nichts über Overfitting. Sie ignoriert nicht-normale Returns, sie ignoriert die Anzahl getesteter Varianten — und genau diese beiden Dinge bestimmen, ob die Zahl real ist. Die Deflated Sharpe Ratio nach Bailey/Lopez de Prado liefert die Korrektur. Bei mir gibt es seitdem nur noch DSR plus PBO im Report.
„Wir haben einen Sharpe von 2,3 erreicht.“ Standardsatz aus Strategie-Pitches. Frage zurück: aus wie vielen getesteten Varianten ist diese eine entstanden? Antwort meist: 300. Effektive Information dahinter: gering. Die Deflated Sharpe Ratio (DSR) macht diese versteckte Inflation explizit messbar.
Was die klassische Sharpe Ratio ignoriert.
Sharpe = Mittelwert / Standardabweichung, annualisiert. Drei stille Annahmen, die in der Realität alle verletzt sind:
- Normalverteilung — Trading-Returns haben fast immer Skewness und exzessive Kurtosis. Tail-Risiken sind massiv unterschätzt.
- Einzelner Test — der Backtest, dessen Sharpe Sie berichten, ist der Sieger aus einer Suche. Selection-Bias ist nicht eingepreist.
- Bekannte Verteilungs-Parameter — Sample-Mittelwert und Sample-Standardabweichung sind Schätzungen. Bei kurzen Historien sehr wackelig.
Die DSR adressiert die ersten beiden Punkte direkt. Den dritten implizit über den Sample-Length-Term.
Die DSR-Formel.
Bailey und Lopez de Prado (2014) definieren:
DSR = Φ( (SR - SR₀) · √(T - 1) /
√(1 - γ₃·SR + (γ₄ - 1)/4 · SR²) )
mit
SR = beobachteter Sharpe (annualisiert)
SR₀ = Erwartungswert des Maximum-Sharpe unter Null-Hypothese
T = Anzahl der Beobachtungen (Returns)
γ₃ = Skewness der Returns
γ₄ = Kurtosis der Returns (nicht "exzess")
Φ = Standardnormal-CDF
SR₀ = √V[SR] · ((1 - γ) · Φ⁻¹(1 - 1/N)
+ γ · Φ⁻¹(1 - 1/(N·e)) )
mit
N = Anzahl getesteter Strategien
γ = Euler-Mascheroni-Konstante ≈ 0,5772
V[SR]= Varianz der Sharpes über alle getesteten Strategien
Drei Effekte sind eingebaut: negative Skewness erhöht den Korrekturterm, hohe Kurtosis ebenso, und je mehr Strategien getestet wurden, desto höher liegt SR₀ — der Hürdenwert, den der echte Sharpe schlagen muss.
Interpretation: DSR ist eine Wahrscheinlichkeit zwischen 0 und 1. DSR > 0,95 bedeutet: mit 95 % Wahrscheinlichkeit ist die echte Sharpe Ratio größer als Null, gegeben alle Korrekturen.
Python-Implementation.
# Deflated Sharpe Ratio import numpy as np from scipy.stats import norm, skew, kurtosis EULER = 0.5772156649 def expected_max_sharpe(n_trials, sharpe_variance): # SR₀: erwarteter Max-Sharpe unter H₀ return np.sqrt(sharpe_variance) * ( (1 - EULER) * norm.ppf(1 - 1.0 / n_trials) + EULER * norm.ppf(1 - 1.0 / (n_trials * np.e)) ) def deflated_sharpe(returns, sharpe_observed, sharpe_variance, n_trials, periods=252): T = len(returns) sr = sharpe_observed / np.sqrt(periods) # auf Perioden-Basis g3 = skew(returns) g4 = kurtosis(returns, fisher=False) # nicht-exzess sr0 = expected_max_sharpe(n_trials, sharpe_variance) numerator = (sr - sr0) * np.sqrt(T - 1) denominator = np.sqrt(1 - g3*sr + (g4 - 1)/4 * sr**2) return norm.cdf(numerator / denominator) # Aufruf # returns: tägliche Strategie-Returns (echt, nicht annualisiert) # sharpe_observed: annualisierter Sharpe der Sieger-Strategie # sharpe_variance: Varianz der Sharpes ALLER getesteten Strategien # n_trials: Anzahl getesteter Strategien dsr = deflated_sharpe(returns, sharpe_observed=1.5, sharpe_variance=0.25, n_trials=100) print(f"DSR: {dsr:.4f}")
Konkretes Rechenbeispiel.
Eine Strategie mit Daily-Sharpe-Equivalent. Beispielzahlen aus einem realen Projekt:
- Annualisierter Sharpe: 1,50
- T = 5 Jahre Daily = 1.260 Beobachtungen
- Skewness der Returns: -0,8 (typisch für Risk-Premium-Strategien)
- Kurtosis: 7,2 (Fat Tails)
- Anzahl getesteter Strategien: 100
- Varianz der Sharpes über alle Tests: 0,18
Eingesetzt:
SR (daily) = 1,50 / √252 = 0,0945
SR₀ (daily) ≈ 0,094 # expected max
Numerator = (0,0945 - 0,094) · √1259 ≈ 0,18
Denominator = √(1 - (-0,8)·0,0945 + (7,2-1)/4 · 0,0945²) ≈ 1,04
Z = 0,18 / 1,04 = 0,17
DSR = Φ(0,17) ≈ 0,57
Der nackte Sharpe von 1,50 wirkt stark — die DSR von 0,57 zeigt: gegeben 100 getestete Varianten, Skewness und Kurtosis ist die Wahrscheinlichkeit, dass die echte Sharpe positiv ist, nur etwa 57 %. Das ist Münzwurf-Niveau.
Probability of Backtest Overfitting (PBO).
Ergänzend zur DSR liefert Bailey/Lopez de Prado die PBO — die Wahrscheinlichkeit, dass die im Backtest beste Strategie out-of-sample unter dem Median liegt. Vorgehen:
- Teilen Sie die Daten zufällig in zwei Hälften (oft mit Combinatorial Splitting).
- Identifizieren Sie auf Hälfte A die beste Strategie nach Sharpe.
- Schauen Sie, wie diese Strategie auf Hälfte B rankt (relativ zu allen anderen).
- Wiederholen Sie viele Splits.
- PBO = Anteil der Splits, in denen die A-Beste auf B unter dem Median ist.
PBO > 0,5 = die Strategie-Selektion ist überangepasst, der Auswahlprozess produziert systematisch Verlierer in Sample B. PBO < 0,2 = robuste Selektion.
Caveats.
- Varianz der Sharpes: braucht die volle Strategie-Familie, nicht nur die Sieger. Wenn nur Sieger gespeichert wurden, ist DSR nicht direkt berechenbar.
- n_trials ist oft unterschätzt: jede manuelle Anpassung eines Parameters zählt als zusätzlicher Test. Wer auf 500 Backtests besteht, hat oft 5.000 effektive Tests gemacht.
- Skewness/Kurtosis-Schätzung: bei kurzen Historien (T < 500) sind γ₃ und γ₄ instabil. DSR-Konfidenz dann selbst rauschig.
- DSR ersetzt keine Strategie-Validierung: sie ist ein Filter, kein Beweis. Eine DSR von 0,95 mit miesem Walk-Forward ist immer noch Schrott.
Was ich nicht mehr durchgehen lasse.
Backtest-Reports ohne DSR und PBO landen bei mir im Stapel „nochmal mit Korrektur“. Konkret heißt das in meiner Praxis:
- Jeder Backtest-Report enthält DSR, PBO und CPCV-Verteilung — nicht nur die nackte Sharpe.
- Minimumwerte: DSR > 0,95, PBO < 0,3 für Kapital-Allokation.
- n_trials wird ehrlich gezählt — inklusive Hyperparameter, Feature-Variationen, Asset-Universen.
- Die Varianz der Sharpes über die Familie wird mitgeloggt — das ist beim ersten Mal ein Verhaltens-Schock für den Mandanten, der Strategien jetzt verständlich teurer macht.
Warum das die einzig ehrliche Größe ist.
Ich habe Mandanten erlebt, die Strategien mit nackten Sharpes von 2,5 bauten und nach 6 Monaten Live auf Sharpe 0,4 herunter waren. Wenn man die DSR retroaktiv berechnete, lag sie bei 0,33. Das hätte gewarnt — die Strategie war ein Selection-Bias-Produkt. Sie hatte keine ökonomische Edge, nur einen extremen In-Sample-Glücksfall unter sehr vielen Versuchen.
Die DSR ist sperrig. Sie braucht Datenpflege während des Strategie-Designs, sie fordert Disziplin beim Logging. Aber sie ist die einzige Single-Number-Metrik, die ich verteidigen kann, wenn ein Mandant mich fragt: „Ist diese Strategie real?“ Sharpe allein kann ich nicht verteidigen. DSR plus PBO schon.
Sie wollen Ihre Backtest-Reports auf DSR und PBO umstellen? Erstgespräch buchen — wir bauen das Reporting gemeinsam um.