Skip to content

Sharpe-haircut calculator

Enter a backtest and the search behind it. The results update as you type, and nothing leaves your browser.

The backtest
The search

Results
MeasureValueMeaning
PSR(0)Chance the true Sharpe ratio is above 0, with no allowance for the search.
SR₀, annualThe best Sharpe ratio to expect from N trials with no edge.
DSRChance the true Sharpe ratio is above SR₀. The usual bar is 0.95.
MinTRLTrack record needed for PSR(0) to reach 0.95.
MinBTLBacktest length at which N trials with no edge stop reaching this Sharpe ratio.
Haircut Sharpe, annualThe Sharpe ratio left after a Bonferroni correction.
HaircutThe share of the Sharpe ratio lost.

Notes

Autocorrelation enters only the haircut, by Lo (2002). The first five measures take the Sharpe ratio as given.

The haircut uses monthly observations, as Harvey and Liu do, so the sample needs at least two whole months.

Variance is of the annual Sharpe ratios across your trials. With a trial log, overfitlab trials report gives it to you.

Python and this page agree within 1e-6 on every case in the test fixture. Holm and BHY need simulation, so they're in the Python library and not here. The theory is on the haircut and DSR pages.