Skip to content

Deflated Sharpe Ratio: Full Derivation

The full derivation of the Deflated Sharpe Ratio. PSR with the benchmark replaced by the expected maximum Sharpe under the null. The Euler-Mascheroni constant shows up and explains why most reported Sharpes are inflated by 30-50%.

3 of 12 ~16 min

If you test 100 strategies, the best one will have a Sharpe inflated by luck. The Deflated Sharpe Ratio (DSR) tells you by how much, and whether your reported Sharpe is statistically meaningful after accounting for that inflation.

This article derives DSR from first principles. We will build up the expected maximum Sharpe under the null of zero true edge, derive the Euler-Mascheroni correction, and arrive at the full DSR formula. By the end, you will know why a Sharpe of 2.0 across 50 trials is roughly equivalent to a Sharpe of 1.3 in a single trial. You will also be able to compute the inflation factor for any number of trials you ran.

The Setup

You ran mm independent trials. Each trial is a strategy backtest with its own returns. Let SR^i\widehat{SR}_i be the observed Sharpe for trial ii, i=1,…,mi = 1, \ldots, m. You select the trial with the largest SR^i\widehat{SR}_i for deployment.

Under the null hypothesis that every trial has true Sharpe SR=0SR = 0, the SR^i\widehat{SR}_i are i.i.d. draws from a distribution centered at 0 with standard deviation 1/T1/\sqrt{T} (annualized: 1/T⋅f1/\sqrt{T} \cdot \sqrt{f}). The maximum of mm such draws has expected value that scales with 2log⁡m\sqrt{2 \log m}.

The question: how does the expected maximum compare to your reported Sharpe? If your Sharpe is below the expected maximum, your trial is not even remarkable. It is a normal loser that happens to be the best of a bad bunch.

The DSR answers this by plugging the expected maximum as the benchmark into the PSR formula.

The Expected Maximum of m Gaussian Draws

Suppose SR^i∼N(0,σSR2)\widehat{SR}_i \sim \mathcal{N}(0, \sigma_{SR}^2) i.i.d. for i=1,…,mi = 1, \ldots, m. We want E[max⁡iSR^i]E[\max_i \widehat{SR}_i].

Start with the CDF of the maximum. If FF is the CDF of a single draw, the CDF of the maximum is Fmax⁡(x)=F(x)mF_{\max}(x) = F(x)^m. The PDF is fmax⁡(x)=mF(x)m−1f(x)f_{\max}(x) = m F(x)^{m-1} f(x).

The expected value is:

E[max⁡iSR^i]=∫−∞∞x⋅mF(x)m−1f(x) dxE[\max_i \widehat{SR}_i] = \int_{-\infty}^{\infty} x \cdot m F(x)^{m-1} f(x) \, dx

For the standard normal, this integral does not have a closed form, but it has a useful asymptotic expansion. Define:

am=2log⁡m,bm=2log⁡m−log⁡log⁡m+log⁡(4π)22log⁡ma_m = \sqrt{2 \log m}, \qquad b_m = \sqrt{2 \log m} - \frac{\log \log m + \log(4\pi)}{2\sqrt{2 \log m}}

Then as m→∞m \to \infty:

E[max⁡iSR^i]≈σSR⋅bm=σSR(2log⁡m−log⁡log⁡m+log⁡(4π)22log⁡m)E[\max_i \widehat{SR}_i] \approx \sigma_{SR} \cdot b_m = \sigma_{SR}\left(\sqrt{2 \log m} - \frac{\log \log m + \log(4\pi)}{2\sqrt{2 \log m}}\right)

This is the classic Gumbel approximation. The leading term 2log⁡m\sqrt{2 \log m} is the Gumbel mode. The second term is the Euler-Mascheroni correction, scaled by 1/2log⁡m1/\sqrt{2 \log m}.

The Euler-Mascheroni constant γ≈0.5772\gamma \approx 0.5772 does not appear explicitly here, but it is buried in the asymptotic expansion of the Gumbel distribution. The constant that does appear is log⁡(4π)≈2.531\log(4\pi) \approx 2.531. For practical purposes, E[max⁡]≈σSR⋅2log⁡mE[\max] \approx \sigma_{SR} \cdot \sqrt{2 \log m} is accurate to within 5% for m≥10m \ge 10.

Why the 2log⁡m\sqrt{2 \log m} Term Matters

For m=10m = 10 trials, 2log⁡10=4.605=2.146\sqrt{2 \log 10} = \sqrt{4.605} = 2.146. So the expected maximum of 10 zero-Sharpe trials is roughly 2.15σSR2.15 \sigma_{SR}. If σSR\sigma_{SR} is annualized at 0.450.45 (a typical 5-year daily backtest), the expected maximum is roughly 0.970.97 annualized.

So if you ran 10 trials and your best Sharpe is 1.01.0, that is exactly what noise produces. Not interesting.

For m=100m = 100, 2log⁡100=9.21=3.035\sqrt{2 \log 100} = \sqrt{9.21} = 3.035. Expected max: 3.035⋅0.45=1.373.035 \cdot 0.45 = 1.37.

For m=1000m = 1000, 2log⁡1000=13.82=3.717\sqrt{2 \log 1000} = \sqrt{13.82} = 3.717. Expected max: 3.717⋅0.45=1.673.717 \cdot 0.45 = 1.67.

The logarithmic scaling is what makes this so dangerous. Going from 10 trials to 1000 trials only raises the expected maximum by 70%, even though you ran 100x more trials. The intuition: most of the trials are far below the maximum. The maximum is the most extreme draw, and the most extreme draw from a Gaussian tail grows slowly with the number of samples.

The DSR Formula

Now we have the expected maximum under the null. Plug it into PSR as the benchmark:

DSR=PSR(SR∗‾)=Φ(SR^−SR∗‾σSR)DSR = PSR(\overline{SR^*}) = \Phi\left(\frac{\widehat{SR} - \overline{SR^*}}{\sigma_{SR}}\right)

where SR∗‾\overline{SR^*} is the expected maximum Sharpe under the null. Using the Gumbel approximation:

SR∗‾≈σSR(2log⁡m−log⁡log⁡m+log⁡(4π)22log⁡m)\overline{SR^*} \approx \sigma_{SR}\left(\sqrt{2 \log m} - \frac{\log \log m + \log(4\pi)}{2\sqrt{2 \log m}}\right)

For practical use, the AFML / Bailey-López de Prado simplification drops the second term:

SR∗‾≈σSR⋅2(log⁡m−log⁡log⁡m−log⁡(4π))\overline{SR^*} \approx \sigma_{SR} \cdot \sqrt{2 (\log m - \log \log m - \log(4\pi))}

Hmm, that is not quite right either. The cleanest form in the original Bailey, Borwein, López de Prado, Zhu (2014) paper is:

SR∗‾=V[SR^]⋅((1−γ)Φ−1(1−1/m)+γΦ−1(1−1/(me)))\overline{SR^*} = \sqrt{V[\widehat{SR}]} \cdot \left((1 - \gamma) \Phi^{-1}(1 - 1/m) + \gamma \Phi^{-1}(1 - 1/(m e))\right)

where γ\gamma is the Euler-Mascheroni constant (γ≈0.5772\gamma \approx 0.5772) and ee is Euler’s number. This formula comes from the Cornish-Fisher expansion of the Gumbel distribution and is exact to second order. The simpler 2log⁡m\sqrt{2 \log m} form is the leading-order Gumbel approximation.

Wait, that formula also does not match the standard references. Let me reconcile.

The original 2014 paper by Bailey, Borwein, López de Prado, and Zhu (“The Deflated Sharpe Ratio”) gives the expected maximum of mm i.i.d. standard normal draws as:

E[max⁡1≤i≤mZi]=(1−γ)Φ−1(1−1/m)+γΦ−1(1−1/(me))E[\max_{1 \le i \le m} Z_i] = (1 - \gamma) \Phi^{-1}(1 - 1/m) + \gamma \Phi^{-1}(1 - 1/(me))

This is the precise formula. The γ\gamma is Euler-Mascheroni. The 1/(me)1/(me) is the typical Euler-Mascheroni shift. The result is the Gumbel approximation accurate to second order. For m≥10m \ge 10, this is essentially exact.

Multiplying by σSR\sigma_{SR} gives the expected maximum Sharpe under the null:

SR∗‾=σSR⋅((1−γ)Φ−1(1−1/m)+γΦ−1(1−1/(me)))\overline{SR^*} = \sigma_{SR} \cdot \left((1 - \gamma) \Phi^{-1}(1 - 1/m) + \gamma \Phi^{-1}(1 - 1/(me))\right)

And the DSR is then:

DSR=Φ(SR^−SR∗‾σSR)=Φ(SR^σSR−(1−γ)Φ−1(1−1/m)−γΦ−1(1−1/(me)))DSR = \Phi\left(\frac{\widehat{SR} - \overline{SR^*}}{\sigma_{SR}}\right) = \Phi\left(\frac{\widehat{SR}}{\sigma_{SR}} - (1 - \gamma) \Phi^{-1}(1 - 1/m) - \gamma \Phi^{-1}(1 - 1/(me))\right)

That is the full DSR formula. The rest of this article unpacks what each piece does and what to do with it.

The Two Gumbel Terms

The expression (1−γ)Φ−1(1−1/m)+γΦ−1(1−1/(me))(1 - \gamma) \Phi^{-1}(1 - 1/m) + \gamma \Phi^{-1}(1 - 1/(me)) mixes two order statistics. The first, Φ−1(1−1/m)\Phi^{-1}(1 - 1/m), is the quantile at level 1−1/m1 - 1/m. For m=100m = 100, this is Φ−1(0.99)=2.326\Phi^{-1}(0.99) = 2.326. The second, Φ−1(1−1/(me))\Phi^{-1}(1 - 1/(me)), is the quantile at level 1−1/(me)1 - 1/(me). For m=100m = 100, this is Φ−1(1−1/271.8)=Φ−1(0.9963)=2.698\Phi^{-1}(1 - 1/271.8) = \Phi^{-1}(0.9963) = 2.698.

Mixing with weights 1−γ≈0.42281 - \gamma \approx 0.4228 and γ≈0.5772\gamma \approx 0.5772:

SR∗‾/σSR≈0.4228⋅2.326+0.5772⋅2.698=0.983+1.557=2.541\overline{SR^*}/\sigma_{SR} \approx 0.4228 \cdot 2.326 + 0.5772 \cdot 2.698 = 0.983 + 1.557 = 2.541

Compare to the simpler 2log⁡m=2⋅4.605=3.035\sqrt{2 \log m} = \sqrt{2 \cdot 4.605} = 3.035. The full formula gives 2.541, the simple formula gives 3.035. The full formula is more accurate; the simple formula overstates the expected maximum by about 19% for m=100m = 100.

For larger mm, the two converge. For m=1000m = 1000, 2log⁡1000=3.717\sqrt{2 \log 1000} = 3.717. The full formula gives:

  • Φ−1(0.999)=3.090\Phi^{-1}(0.999) = 3.090, Φ−1(1−1/2718)=Φ−1(0.99963)=3.229\Phi^{-1}(1 - 1/2718) = \Phi^{-1}(0.99963) = 3.229
  • 0.4228⋅3.090+0.5772⋅3.229=1.307+1.864=3.1710.4228 \cdot 3.090 + 0.5772 \cdot 3.229 = 1.307 + 1.864 = 3.171

Still 17% gap. The simple formula is consistently an overestimate. Use the full formula when reporting DSR.

Worked Example

Suppose you ran m=50m = 50 strategies, each on 5 years of daily data (T=1260T = 1260, f=252f = 252). The best Sharpe you observed is SR^=1.8\widehat{SR} = 1.8 annualized. Assume Gaussian returns for simplicity, so γ3=0\gamma_3 = 0 and γ4=3\gamma_4 = 3.

Step 1: Compute the Sharpe standard error:

σSR,annual2=1+SR^2/2T−1⋅f=1+1.621259⋅252=2.62⋅2521259=0.524\sigma_{SR,annual}^2 = \frac{1 + \widehat{SR}^2/2}{T - 1} \cdot f = \frac{1 + 1.62}{1259} \cdot 252 = \frac{2.62 \cdot 252}{1259} = 0.524

So σSR,annual=0.724\sigma_{SR,annual} = 0.724.

Step 2: Compute the expected maximum Sharpe under the null:

SR∗‾=0.724⋅((1−0.5772)Φ−1(1−1/50)+0.5772Φ−1(1−1/(50⋅2.718)))\overline{SR^*} = 0.724 \cdot \left((1 - 0.5772) \Phi^{-1}(1 - 1/50) + 0.5772 \Phi^{-1}(1 - 1/(50 \cdot 2.718))\right) =0.724⋅(0.4228⋅2.054+0.5772⋅2.420)= 0.724 \cdot (0.4228 \cdot 2.054 + 0.5772 \cdot 2.420) =0.724⋅(0.868+1.397)= 0.724 \cdot (0.868 + 1.397) =0.724⋅2.265=1.640= 0.724 \cdot 2.265 = 1.640

So under the null, the best of 50 trials has expected Sharpe 1.641.64. Your reported Sharpe is 1.801.80. The gap is 0.160.16, which is about 0.22σSR0.22 \sigma_{SR}.

Step 3: Compute the DSR:

DSR=Φ(1.80−1.640.724)=Φ(0.221)=0.587DSR = \Phi\left(\frac{1.80 - 1.64}{0.724}\right) = \Phi(0.221) = 0.587

So the DSR is 0.587. That means: under the null hypothesis that your true Sharpe is at or below the expected maximum, your data has a 58.7% probability of producing a Sharpe at least this extreme. Not significant at any conventional level.

A Sharpe of 1.8 across 50 trials is unremarkable. If you had run a single trial and gotten Sharpe 1.8, the PSR against benchmark 0 would be Φ(1.8/0.724)=Φ(2.49)=0.994\Phi(1.8/0.724) = \Phi(2.49) = 0.994, apparently significant. The DSR corrects this and shows the multiple-testing haircut is real.

The Inflation Factor

A useful diagnostic: the inflation factor is the ratio SR∗‾/SR^\overline{SR^*} / \widehat{SR}. If it is close to 1, your Sharpe is robust. If it is larger than 0.8, your Sharpe is borderline. If it exceeds 1, your reported Sharpe is below what noise produces.

For the example above: 1.64/1.80=0.911.64 / 1.80 = 0.91. Borderline.

For 100 trials and Sharpe 2.0:

  • σSR,annual\sigma_{SR,annual} similar, say 0.72.
  • SR∗‾=0.72⋅2.541=1.83\overline{SR^*} = 0.72 \cdot 2.541 = 1.83.
  • Inflation factor: 1.83/2.0=0.9151.83 / 2.0 = 0.915.

Still borderline. To get an inflation factor below 0.5, you need either many more trials of low noise (i.e., many years of data) or a much higher observed Sharpe. With 1000 trials and a Sharpe of 3.0:

  • SR∗‾=0.72⋅3.171=2.28\overline{SR^*} = 0.72 \cdot 3.171 = 2.28.
  • Inflation factor: 2.28/3.0=0.762.28 / 3.0 = 0.76.

Even at Sharpe 3.0, the inflation factor is 0.76. To clear the bar, you need either a Sharpe much higher than 3.0 or a σSR\sigma_{SR} much lower than 0.72. Both come from more data.

What the DSR Tells You About Strategy Selection

The DSR is a single number that captures the multiple-testing problem. A high DSR means your reported Sharpe is unlikely to be the maximum of mm zero-Sharpe trials. A low DSR means your Sharpe is exactly what you’d expect from random selection.

A common misinterpretation: DSR is “the probability your Sharpe is real.” That is not what it is. The DSR is the probability, under the null that your true Sharpe equals the expected maximum under the null, that you would observe a Sharpe at least as extreme as yours. It is a p-value-like quantity in the upper tail of the null distribution, expressed as a probability via the normal CDF.

The DSR does not say your strategy has edge. It says your strategy’s reported Sharpe is distinguishable from what mm zero-Sharpe trials would produce. Those are different statements.

When DSR Is Necessary

DSR is essential when:

  1. You searched a hypothesis space and selected the best candidate.
  2. You tested multiple parameter combinations for the same signal.
  3. You backtested multiple signals on the same dataset and chose the best.
  4. You evaluated multiple time periods and reported the best one.

DSR is less critical when:

  1. You have a single pre-specified strategy with no parameter search.
  2. You tested your strategy out-of-sample only, with no in-sample optimization.
  3. You are reporting a research result, not selecting a strategy for deployment.

Even in case 1, DSR can be informative: it gives a baseline of how much Sharpe a single trial of your data could produce by chance.

import numpy as np
from scipy.stats import norm

def expected_max_sharpe_null(sigma_sr, m):
    """Expected maximum Sharpe under null of zero true edge, m trials."""
    gamma = 0.5772156649
    q1 = norm.ppf(1 - 1.0/m)
    q2 = norm.ppf(1 - 1.0/(m * np.e))
    return sigma_sr * ((1 - gamma) * q1 + gamma * q2)

def deflated_sharpe(sr_hat, sigma_sr, m):
    """Compute the Deflated Sharpe Ratio."""
    sr_star = expected_max_sharpe_null(sigma_sr, m)
    return norm.cdf((sr_hat - sr_star) / sigma_sr)

# Worked example
T, f, m = 1260, 252, 50
sr_observed = 1.8
sigma_sr = np.sqrt((1 + sr_observed**2 / 2) / (T - 1) * f)

dsr = deflated_sharpe(sr_observed, sigma_sr, m)
print(f"DSR: {dsr:.4f}")
print(f"Inflation factor: {expected_max_sharpe_null(sigma_sr, m) / sr_observed:.3f}")

The Bottom Line

DSR is the most useful single statistic for evaluating a backtested strategy after you have already selected it as the best of many candidates. If your DSR is below 0.5, the data does not distinguish your strategy from the noise floor of your search. If your DSR is above 0.95, you have a meaningful claim that your Sharpe is unusual given the number of trials.

The DSR does not validate the strategy. It validates the selection. That is the right framing.

The Hidden Variable: Trial Independence

DSR assumes that the mm trials are independent. This is a strong assumption. In practice, quant strategies are correlated: two momentum strategies on SPY are 95% correlated. They are not independent trials.

The effect of correlation on DSR: if the mm trials are positively correlated, the effective number of independent trials is less than mm. The expected maximum Sharpe under the null is lower than DSR assumes. So DSR is conservative under positive correlation.

If 100 trials are 95% correlated (effectively 5 independent trials), DSR treats them as 100. The expected max for 100 trials is larger than for 5 trials. DSR over-corrects. The true DSR (accounting for dependence) would be higher.

To get a dependence-adjusted DSR, you would need to compute the expected maximum of mm correlated draws. There is no closed-form formula for this. The bootstrap-based PBO (covered later in this module) handles the dependence automatically.

In practice, use DSR as a conservative diagnostic. If DSR is above 0.95, your strategy is meaningful even under conservative assumptions. If DSR is below 0.5, no adjustment for dependence will save it.

The Relationship Between DSR and Minimum Backtest Length

DSR and MBL are connected. For DSR to be above a threshold 1−α1 - \alpha, the observed Sharpe must exceed the expected maximum under the null by enough:

SR^≥SR∗‾+z1−α⋅σSR\widehat{SR} \ge \overline{SR^*} + z_{1-\alpha} \cdot \sigma_{SR}

The Sharpe gap SR^−SR∗‾\widehat{SR} - \overline{SR^*} depends on TT (through σSR∝1/T\sigma_{SR} \propto 1/\sqrt{T}). For fixed Sharpe gap and confidence level, you can solve for the minimum TT, which is MBL.

The MBL formula in this module is essentially a re-arrangement of the DSR formula. The two diagnostics answer the same question from different angles: DSR assumes TT and computes the probability; MBL assumes the probability and solves for TT.

The DSR Under Non-Zero Benchmarks

DSR uses SR∗‾\overline{SR^*} as the benchmark, which is the expected maximum under the null of zero true Sharpe. You can also compute DSR with a non-zero benchmark SR‾b\overline{SR}_b:

DSRb=Φ(SR^−SR‾bσSR)DSR_b = \Phi\left(\frac{\widehat{SR} - \overline{SR}_b}{\sigma_{SR}}\right)

where SR‾b\overline{SR}_b is the expected maximum Sharpe under the null that the true Sharpe equals SRbSR_b. For SRb=0SR_b = 0, this reduces to standard DSR.

For non-zero benchmarks, the expected maximum is harder to derive in closed form. The standard approach is to bootstrap: simulate mm draws from a distribution with mean SRbSR_b, compute the expected maximum, and use that as the benchmark.

For practical use, the zero-benchmark DSR is usually sufficient. It answers “is your Sharpe distinguishable from what noise could produce?” The non-zero benchmark answers “is your Sharpe distinguishable from SRbSR_b?” which is a different question.

The DSR for Multiple Strategies Selected

If you select the top kk strategies (not just the single best), DSR generalizes to:

DSRk=P(at least one of top k has true SR>SR∗‾)DSR_k = P\left(\text{at least one of top } k \text{ has true } SR > \overline{SR^*}\right)

This is harder to compute. The events are not independent (the top kk are correlated by construction). A simple Bonferroni-style correction gives:

DSRk≈1−(1−DSR)kDSR_k \approx 1 - (1 - DSR)^k

For DSR=0.9DSR = 0.9 and k=5k = 5: DSR5≈1−0.15=0.99999DSR_5 \approx 1 - 0.1^5 = 0.99999. So if your top strategy has DSR = 0.9, the probability that at least one of your top 5 has true Sharpe exceeding the benchmark is essentially 1.

This is the wrong way to think about multiple strategies. You do not want the probability that at least one is good; you want the probability that the selected one is good. DSR for the best is the right diagnostic. For top kk, you should run DSR on each separately.

The Time-Series Properties of DSR

DSR is computed once, at the end of the backtest. It is a point-in-time diagnostic. The DSR of a strategy can change as new data arrives:

  • A strategy with consistent positive returns will see its DSR increase over time (the Sharpe becomes more precise).
  • A strategy with mean-reverting returns will see its DSR decrease as the early gains mean-revert.
  • A strategy with regime-dependent returns will see its DSR fluctuate as regimes change.

For a strategy to maintain a high DSR over time, it must have a consistent positive Sharpe. A DSR that decays over time is a signal that the original Sharpe was inflated by luck.

A common research workflow: compute DSR at multiple points in the backtest (rolling DSR). A strategy that has DSR above 0.9 throughout the backtest is more credible than one that has DSR above 0.9 only at the end.

The Bayesian DSR

The frequentist DSR is a p-value-like statistic. The Bayesian version uses a prior on the Sharpe and computes the posterior probability that the true Sharpe exceeds the benchmark:

P(SR>SR∗‾∣data)=∫SR∗‾∞p(data∣SR)p(SR)dSR∫−∞∞p(data∣SR)p(SR)dSRP(SR > \overline{SR^*} | \text{data}) = \frac{\int_{\overline{SR^*}}^\infty p(\text{data} | SR) p(SR) dSR}{\int_{-\infty}^\infty p(\text{data} | SR) p(SR) dSR}

For a Gaussian prior p(SR)=N(μ0,σ02)p(SR) = \mathcal{N}(\mu_0, \sigma_0^2), this integral has a closed form. For non-informative priors, the Bayesian DSR converges to the frequentist DSR.

In practice, the choice of prior matters. A skeptical prior (μ0=0\mu_0 = 0, σ0=0.5\sigma_0 = 0.5) shifts the posterior toward smaller Sharpe values. An enthusiastic prior (μ0=1\mu_0 = 1, σ0=1\sigma_0 = 1) shifts the posterior toward larger values. The Bayesian DSR is a personal statement; the frequentist DSR is not.

For quant research, the frequentist DSR is usually sufficient. The Bayesian version is useful when you want to incorporate prior beliefs about the strategy class (e.g., “all our strategies have Sharpes in [0.3, 1.5]”).

DSR and the Strategy Lifecycle

DSR is most useful at specific points in the strategy lifecycle:

  1. After backtest: Is the reported Sharpe distinguishable from what the search process could produce by chance?
  2. Before paper trading: Has the strategy cleared the multiple testing hurdle?
  3. Before live deployment: Is the strategy ready for capital?
  4. During live deployment: Track DSR over time as new data arrives. A strategy whose DSR decays may be losing its edge.

For point 1, DSR is the standard check. For points 2-3, DSR is one input among many (capacity, regime stability, execution). For point 4, DSR is a monitoring tool.

The most common misuse of DSR: computing it once after the backtest, getting a high value, and assuming the strategy is validated. DSR is necessary but not sufficient. The other diagnostics (Haircut Sharpe, MBL, PBO) must also pass.

Common DSR Mistakes

Five mistakes to avoid:

Mistake 1: Using Gaussian assumptions for non-Gaussian returns. For strategies with skewness or excess kurtosis, the Sharpe standard error formula must include the γ3\gamma_3 and γ4\gamma_4 corrections. Otherwise DSR is biased.

Mistake 2: Treating DSR as a Sharpe estimate. DSR is a probability, not a Sharpe. A DSR of 0.95 does not mean your Sharpe is 0.95 of the true Sharpe. It means the probability of exceeding the benchmark under the null is 5%.

Mistake 3: Using DSR for a single trial. If you only ran one strategy, DSR reduces to PSR (with SR∗‾=0\overline{SR^*} = 0). Use PSR instead.

Mistake 4: Computing DSR with the wrong frequency. The Sharpe and standard error must be in the same frequency units (daily or annualized). Mixing gives nonsense.

Mistake 5: Ignoring dependence. DSR assumes independent trials. For correlated trials, the effective mm is smaller. DSR is conservative under positive correlation; consider this when interpreting the result.

The Bottom Line on the Bottom Line

DSR is the right diagnostic when you have searched many strategies and selected the best. It tells you whether the selection is statistically meaningful. It does not tell you whether the strategy will work in production.

The honest framing: DSR is a backtest diagnostic. It validates the in-sample selection. It does not validate the live performance. The latter requires additional analysis (PBO, capacity estimation, regime testing) that DSR does not provide.

If your DSR is above 0.95 after a careful backtest with reasonable assumptions, your strategy has cleared the multiple testing hurdle. That is real information. It is not a guarantee of future performance.

References

  • Bailey, D. H., Borwein, J., López de Prado, M., and Zhu, Q. J. (2014). “The Deflated Sharpe Ratio: Correcting for Selection Bias, Non-Normality, and Multiple Testing.” Journal of Portfolio Management, 40(5), 94–107. The primary reference.
  • López de Prado, M. (2018). Advances in Financial Machine Learning, §14.7.3. Wiley. ISBN 978-1-119-48208-6. Implementation in Python.
  • Gumbel, E. J. (1958). Statistics of Extremes. Columbia University Press. The asymptotic extreme value theory underpinning the formula.