Sharpe and Sortino, explained honestly
Lesson 16 · about 11 min
The Sharpe ratio is the most quoted performance number in trading and the most misunderstood. It is useful, it is also easy to inflate, and the number it produces depends heavily on choices that are rarely stated. This lesson explains what it measures, how to compute it from a backtest, and what to be suspicious of.
What Sharpe measures
Sharpe = (average return − risk-free rate) ÷ standard deviation of returns
It is return per unit of volatility. A strategy earning 10% a year with 5% volatility has a Sharpe of about 2 (ignoring the risk-free rate); one earning 20% with 20% volatility has a Sharpe of 1. The first is "better" in the sense that you could lever it to 20% return with 10% volatility, which is what Sharpe implicitly assumes you can do.
Computing it from a backtest
You need a series of periodic returns. Daily is the standard. Compute the daily P&L of the strategy as a fraction of account equity (including days with no trades, which are zero), then:
annualised Sharpe = (mean daily return ÷ standard deviation of daily returns) × √252
| Input | Value |
|---|---|
| Trading days | 1,000 |
| Mean daily return | 0.05% |
| Standard deviation of daily returns | 0.80% |
| Daily Sharpe | 0.05 ÷ 0.80 = 0.0625 |
| Annualised | 0.0625 × 15.87 = 0.99 |
Roughly: 12.6% a year with 12.7% annualised volatility, Sharpe about 1.0. For a retail strategy traded in one instrument, a backtested Sharpe around 1 is respectable, and anything above 2 on daily bars deserves suspicion until the cost and leak checks are complete.
Four ways the number gets inflated
- Wrong period. Computing Sharpe per trade rather than per day and annualising with √(trades per year) usually gives a higher number, because between-trade flat periods (which have zero return and zero volatility) are excluded. Per-trade Sharpe is not comparable to daily Sharpe, and most quoted "Sharpe 3" backtests are per-trade.
- Low-frequency smoothing. Monthly returns average out daily swings. The same strategy will show a higher Sharpe on monthly data than on daily, and higher still on yearly. State the frequency.
- Ignoring the risk-free rate. In a 5% rate environment, a strategy returning 8% with 10% volatility has a Sharpe of 0.3, not 0.8. In a zero-rate environment the two are the same. Say which you used.
- Backtest optimism. Every inflating factor in Modules 2, 4 and 6 (leaks, cheap fills, overfitting) shows up as higher return and lower volatility, so the backtest Sharpe is a ceiling, not an estimate. Module 6 introduces the deflated Sharpe, which adjusts for how many things you tried.
What Sharpe punishes and ignores
Sharpe treats all volatility the same. A strategy that has occasional large winners is penalised for them, because they raise the standard deviation. A strategy with steady small gains and a rare enormous loss can have an excellent Sharpe right up until the loss, because the loss has not happened in the sample yet. Strategies that sell options, or sell volatility in any form, look wonderful on Sharpe until they do not.
Sharpe also says nothing about drawdown depth or duration, nothing about the shape of the return distribution, and nothing about how many trades produced the result.
Sortino
Sortino replaces the standard deviation with the downside deviation: the standard deviation of only the negative returns (or returns below a target, usually zero).
Sortino = (mean return − target) ÷ downside deviation
It is meant to stop penalising upside volatility. For a strategy with a long right tail (trend following), Sortino will be noticeably higher than Sharpe; for a symmetric strategy they will be similar; for a strategy with a fat left tail, Sortino will be lower.
| Strategy | Mean daily | Std dev | Downside dev | Sharpe (ann.) | Sortino (ann.) |
|---|---|---|---|---|---|
| Trend follower | 0.05% | 0.90% | 0.55% | 0.88 | 1.44 |
| Mean reversion | 0.05% | 0.60% | 0.65% | 1.32 | 1.22 |
The trend follower looks worse on Sharpe and better on Sortino. The mean-reversion system looks better on Sharpe and its downside deviation is larger than its total deviation would suggest, which is the signature of a fat left tail. Neither number is "right"; together they describe the shape.
Key idea: Sharpe is return per unit of total volatility; Sortino is return per unit of downside volatility. Both depend on the return frequency you compute them at, both are ceilings when computed on a backtest, and neither says anything about drawdown or sample size. Quote them with the frequency and the trade count, or not at all.
What a reasonable range looks like
For a single-instrument retail strategy tested on daily returns with honest costs:
| Annualised Sharpe (daily) | Reading |
|---|---|
| Below 0.3 | Probably no edge after real costs |
| 0.3 to 0.7 | Possible edge; needs a large sample |
| 0.7 to 1.5 | Good; typical for a real, robust system |
| 1.5 to 2.5 | Excellent; verify leaks, costs and overfitting carefully |
| Above 2.5 | Almost certainly an error, or a very short sample |
Professional multi-strategy portfolios reach higher numbers by combining many uncorrelated systems, not by any one system being extraordinary.
Try it: Compute the Sharpe of your backtest three ways: per trade annualised by √(trades per year), per day annualised by √252, and per month annualised by √12. Write down all three. The spread between them is a measure of how much the headline number depends on a choice nobody mentions.
Recap
- Sharpe = excess return ÷ standard deviation of returns, annualised by the square root of periods per year.
- It depends on the frequency; daily Sharpe is the standard, per-trade Sharpe is inflated and not comparable.
- It penalises upside volatility and misses fat left tails until they happen.
- Sortino uses downside deviation only; compare it with Sharpe to read the shape of returns.
- Backtest Sharpe is a ceiling. Above 2 on daily returns for a single system, look for the error.
See it drawn
Original diagrams for the ideas on this page. Illustrative, not real market data.