Performance & capacity

Risk-adjusted ratios

structural
Reviewed 4 June 2026. As of 2026: a permanent feature of the market, not an edge that decays.

Sharpe, Sortino, Calmar: return per unit of risk. Powerful and routinely abused: a high Sharpe on fat-tailed, autocorrelated, overfit returns is a number, not an edge.

See it move

Equity curve → Sharpedrag drift & volIX-SHARPE
Sharpe (ann.)1.93
Max drawdown33.6%
Total return+91.5%
Drift (edge)30%
Volatility40%

What to notice. The same equity curve can carry wildly different Sharpe ratios, because Sharpe is return per unit of risk, not return alone. Crank volatility up and even a strong drift looks unimpressive risk-adjusted. The ratio is only honest if the returns aren't fat-tailed, autocorrelated or overfit.

What is the Sharpe ratio and how do you compute it?

The Sharpe ratio is the average return in excess of the risk-free rate, divided by the return's volatility: reward per unit of risk. In plain English: how much extra return did you earn for each unit of bounce you had to endure? You compute it per period, then annualise by multiplying by the square root of the number of periods per year.

Start with the intuition. Two strategies earning the same return are not equally good if one bounced twice as hard to get there. The Sharpe ratio prices that bounce. It is the universal currency of performance because, unlike raw return, it is invariant to leverage (lever up and both excess return and volatility scale together, leaving the ratio unchanged), so it compares strategies of any size on a single axis.

Reward per unit of risk: mean excess return over the risk-free rate, divided by the volatility of returns. For intraday HFT, the per-period risk-free rate is effectively zero, so Srˉ/σrS \approx \bar{r}/\sigma_r.
S=rˉrfσrS = \frac{\bar{r} - r_f}{\sigma_r}

Here rˉ\bar{r} is the mean period return, rfr_f the per-period risk-free rate and σr\sigma_r the standard deviation of returns (Sharpe 1966; revised ex-ante / ex-post form 1994). Now the part everyone gets wrong: annualisation. A Sharpe computed on period returns is annualised by multiplying by k\sqrt{k}, where kk is the number of periods per year.

The √k rule: return scales linearly with time while volatility scales with the square root of time, so the ratio scales with √k, not k. (k=252k = 252 for daily, roughly 98,280 for 5-minute bars on a 6.5-hour equity session.)
Sann=Speriod×kS_{\text{ann}} = S_{\text{period}} \times \sqrt{k}

This is the single biggest source of inflated Sharpes, because the k\sqrt{k} rule is correct only if returns are serially independent, which HFT returns are not. See return and risk metrics for the underlying time-scaling.

Show the derivation: the √k annualisation and where it breaks optional

Let per-period returns be i.i.d. with mean μ\mu and variance σ2\sigma^2. Over kk periods the aggregate mean is kμk\mu and, because variances of independent variables add, the aggregate variance is kσ2k\sigma^2, so aggregate volatility is kσ\sqrt{k}\,\sigma. The annual Sharpe is therefore

Sann=kμkσ=kμσ=kSperiod.S_{\text{ann}} = \frac{k\mu}{\sqrt{k}\,\sigma} = \sqrt{k}\,\frac{\mu}{\sigma} = \sqrt{k}\,S_{\text{period}}.

Now drop independence. If consecutive returns have first-order autocorrelation ρ\rho, the variance of the kk-period sum is no longer kσ2k\sigma^2; for an AR(1) process it is approximately kσ21+ρ1ρk\sigma^2 \cdot \tfrac{1+\rho}{1-\rho} for large kk. The corrected annualised Sharpe (Lo 2002) is

Sann=kSperiod1ρ1+ρ.S_{\text{ann}} = \sqrt{k}\cdot S_{\text{period}} \cdot \sqrt{\frac{1-\rho}{1+\rho}}.

Positive autocorrelation (ρ>0\rho \gt 0) makes the naïve k\sqrt{k} figure too high; negative autocorrelation makes it too low. HFT strategies whose returns trend within the day (positive ρ\rho) routinely report headline Sharpes that the Lo correction cuts substantially. Reference: Andrew Lo, "The Statistics of Sharpe Ratios", Financial Analysts Journal (2002).

Why are HFT Sharpe ratios so high, and what is a realistic number?

HFT Sharpes are high because the ratio scales with the square root of the number of near-independent bets, and HFT makes thousands a day. Gross Sharpes of tens or hundreds are arithmetically real but meaningless. The honest figures are net Sharpes after the full cost stack: roughly 4–10 or more for a sound high-frequency book, occasionally higher, rarely sustained above about 15 net.

The most useful number in this topic: with NN independent bets of the same edge-to-noise ratio, the aggregate Sharpe is N\sqrt{N} times the per-bet Sharpe. HFT's edge per trade is tiny; its Sharpe is large purely because NN is enormous.
Saggregate=N    Sper betS_{\text{aggregate}} = \sqrt{N}\;\cdot\;S_{\text{per bet}}

A strategy making one bet a year versus ten thousand near-independent bets a day, with the same edge per bet, differ by roughly 10,000×2521,600×\sqrt{10{,}000 \times 252} \approx 1{,}600\times per unit time. So the gross per-trade Sharpe is the wrong lens. What matters is the net Sharpe, after spread, market impact and fees (see the costs hub), which eat most of the gross edge, so a gross Sharpe of 50 can become a net Sharpe of 6; and the realistic Sharpe, after correcting for the autocorrelation that violates the √k independence assumption and for the fact that bets are not fully independent (queue position, shared signals, regime).

State the honest 2026 ranges plainly. A long-horizon discretionary fund is good above Sharpe 1, excellent above 2. A genuine high-frequency market-making or stat-arb book typically reports a net annualised Sharpe of 4–10, with the strongest, most capacity-constrained strategies higher still and short-lived. A live HFT book at Sharpe ~1.5 is usually a warning sign: either the edge is marginal or costs are eating it. These are order-of-magnitude figures, not guarantees; they are regime- and venue-dependent and shrink as capacity fills and the crowd arrives (see capacity and alpha decay). A high HFT Sharpe is real and fragile at once: it rests on the bets staying near-independent, the regime holding, and the strategy staying small enough that its own impact does not bend the edge.

How do sampling frequency and autocorrelation distort the Sharpe?

Annualising assumes returns are serially independent. They are not: consecutive HFT trades are autocorrelated through queue position, inventory and shared signals. Positive autocorrelation makes the naïve √k annualisation overstate the Sharpe; sampling more finely (5-minute versus daily) multiplies the error. The fix is the Lo (2002) autocorrelation correction, or sampling at a frequency where independence roughly holds.

The mechanism: the √k rule only holds for i.i.d. returns. HFT return streams break independence in both directions. Within a market-making book, a fill at the bid is often followed by another at the bid (the same queue, the same flow), creating positive serial correlation that the naïve annualisation reads as extra, free Sharpe. Mean-reverting books can show negative correlation, understating the naïve figure.

The Lo (2002) correction for first-order autocorrelation ρ\rho: multiply the naïve √k Sharpe by this factor. Positive ρ\rho shrinks it; this is the single correction a self-taught quant is most often missing.
Scorrected=Snaı¨ve×1ρ1+ρS_{\text{corrected}} = S_{\text{naïve}} \times \sqrt{\frac{1-\rho}{1+\rho}}

And the frequency trap: the finer you sample, the larger kk, the larger the √k multiplier, and the larger the error when independence is wrong. Computing a Sharpe on 1-second returns and annualising with k23k \approx 23 million is arithmetically defensible and practically nonsense, because the autocorrelation at that frequency is severe. The professional move is to compute the Sharpe at a sampling frequency where returns are approximately independent (often daily P&L), or to apply the Lo correction explicitly. In the explorer above, the autocorrelation slider is the headline control: watch the Sharpe number change dramatically while the equity curve's shape barely moves: proof that the inflation is in the statistics, not the strategy.

What do Sortino, the information ratio and Calmar measure that Sharpe doesn't?

Sortino replaces total volatility with downside deviation, so it does not penalise upside swings, making it better for asymmetric return streams. The information ratio measures active return versus a benchmark divided by tracking error, the right metric when you have a benchmark. Calmar uses maximum drawdown as the risk denominator, so it prices tail pain the others smooth over.

Sortino ratio: reward per unit of downside risk. Sharpe penalises all volatility, including the upside volatility you actually want; Sortino divides excess return by the downside deviation, the standard deviation computed only over returns below a target (usually zero). For skewed strategies (option-like payoffs, momentum) Sortino is fairer; for roughly symmetric HFT return streams it is close to a scaled Sharpe.

Sortino divides by downside deviation only. The information ratio divides active return (yours minus the benchmark's) by tracking error. Calmar divides annualised return by the worst peak-to-trough drawdown.
Sortino=rˉrfσdown,IR=rˉrˉbσrrb,Calmar=rˉannMDD\text{Sortino} = \frac{\bar{r} - r_f}{\sigma_{\text{down}}}, \qquad \text{IR} = \frac{\bar{r} - \bar{r}_b}{\sigma_{r - r_b}}, \qquad \text{Calmar} = \frac{\bar{r}_{\text{ann}}}{|\text{MDD}|}

The information ratio measures skill versus a benchmark: active return divided by tracking error, the volatility of that active return. It is the relative-performance cousin of the Sharpe and the right tool when a strategy is measured against an index or a target portfolio rather than cash. Most pure-alpha HFT has no benchmark, so the Sharpe (benchmark = risk-free) is the natural special case. The Calmar ratio is return per unit of worst-case pain: annualised return divided by the absolute maximum drawdown (see drawdown). It cares about the single worst peak-to-trough loss, not the average bounce, so it catches a strategy that looks smooth (high Sharpe) but is one fat-tailed event away from ruin.

The unifying point: every one of these is "return ÷ a chosen risk measure." They differ only in which risk they price: total volatility (Sharpe), downside volatility (Sortino), benchmark-relative volatility (IR) or worst drawdown (Calmar). Choosing the metric is choosing which risk you care about.

What do all these ratios hide?

Every ratio assumes returns are roughly normal, independent and from a stable regime, and trading returns are none of those. They hide fat tails (a high Sharpe can sit beside a catastrophic tail), autocorrelation (which inflates the number), regime dependence (a Sharpe computed in calm dies in stress) and multiple testing (the best of ten thousand backtests is luck).

Fat tails. The Sharpe uses standard deviation, which under-weights extreme moves. A strategy that sells tail risk (picks up pennies, occasionally loses a fortune) posts a beautiful Sharpe right up until the tail event; see fat tails. Pair every Sharpe with a drawdown or Calmar and a look at skew and kurtosis. Autocorrelation. As above, positive serial correlation inflates the naïve annualised Sharpe, and the Lo (2002) correction is the antidote. Regime dependence. A Sharpe is an average over the sample: a strategy can have a Sharpe of 8 in a calm regime and −3 in a stress regime, and the blended number hides the conditioning. Always report the Sharpe by regime, or at least flag the worst sub-period.

Multiple testing, the 2026 problem. If you try NN strategies and report the best in-sample Sharpe, you have selected on noise: even with zero true edge, the maximum of many random Sharpes is large. The deflated Sharpe ratio (Bailey & López de Prado 2014) adjusts the threshold for the number of trials and the non-normality of returns, turning "Sharpe 3 in-sample" into a probability that the true Sharpe exceeds zero. With AI generating thousands of candidate strategies, this is the correction that separates a real edge from a data-mined ghost, the same discipline the backtesting page builds. The honest summary: a ratio is a compression, and compression discards information. Never let a single Sharpe end the conversation: pair it with the drawdown, the skew and kurtosis, a regime breakdown and, in 2026, a deflated-Sharpe sanity check.

Worked example

A synthetic daily P&L stream for one notional year of 252 trading days; all figures illustrative and reproducible, as of 2026. Take daily returns with mean rˉ=0.05%\bar{r} = 0.05\% per day, daily volatility σ=0.40%\sigma = 0.40\%, and a risk-free rate of about zero per day. The daily Sharpe is 0.0005/0.0040=0.1250.0005 / 0.0040 = 0.125.

Naïve annualisation multiplies the daily 0.125 by √252 ≈ 15.87.
Sann=0.125×252=0.125×15.87=1.98S_{\text{ann}} = 0.125 \times \sqrt{252} = 0.125 \times 15.87 = 1.98

Now the autocorrelation correction. Suppose first-order autocorrelation ρ=+0.20\rho = +0.20, a mildly trending intraday book. The Lo (2002) factor is (10.20)/(1+0.20)=0.80/1.20=0.667=0.816\sqrt{(1-0.20)/(1+0.20)} = \sqrt{0.80/1.20} = \sqrt{0.667} = 0.816, so the corrected annual Sharpe is 1.98×0.816=1.621.98 \times 0.816 = 1.62. The naïve figure overstated the truth by about 22%, and that is at a mild ρ\rho; at ρ=0.5\rho = 0.5 the factor is 0.577, nearly halving the headline.

The frequency illustration: recompute the same P&L on 5-minute bars (≈ 390/day → k ≈ 98,280). Wrongly treating those as independent, the √k multiplier is 313.5, and a per-bar Sharpe of even 0.01 annualises to 3.1, a number with no relationship to reality, because 5-minute returns are heavily autocorrelated.
98,280=313.50.01×313.5=3.1\sqrt{98{,}280} = 313.5 \quad\Rightarrow\quad 0.01 \times 313.5 = 3.1

Same strategy, same money, wildly different reported Sharpe purely from the sampling choice: this is the trap the page exists to kill. The same stream also scores differently under the other ratios. If the downside deviation is 0.32%0.32\% (lower than total volatility because the strategy has some benign upside variance), Sortino is 0.0005/0.0032×252=2.480.0005/0.0032 \times \sqrt{252} = 2.48, higher than the Sharpe, correctly rewarding the asymmetry. And if the year's max drawdown was 3.5%-3.5\% against an annualised return of 0.05%×252=12.6%0.05\% \times 252 = 12.6\%, Calmar is 12.6/3.5=3.612.6/3.5 = 3.6, and above about 3 is strong, confirming the smooth Sharpe is not hiding one ruinous trough.

The lesson in one screen: the same return stream honestly reports an annualised Sharpe anywhere from about 1.6 (corrected daily) to about 3 (naïve 5-minute) depending entirely on sampling and the autocorrelation correction. Quote the frequency, quote the correction, or the number means nothing. All figures are synthetic.

Where this fits