0bps

Learn / Track II / lesson 1 of 4

Returns — simple, log and annualised

The unit every quant computes first. Get it wrong and every later number — Sharpe, drawdown, correlation — is quietly wrong too.

8 min read

Simple returns

The simple (arithmetic) return from t−1t-1 to tt is

Rt=Pt−Pt−1Pt−1=PtPt−1−1R_t = \frac{P_t - P_{t-1}}{P_{t-1}} = \frac{P_t}{P_{t-1}} - 1

Simple returns aggregate across assets: a portfolio’s return is the weighted sum of its holdings’ simple returns, Rp=∑iwiRiR_p = \sum_i w_i R_i. That makes them the right choice for portfolio arithmetic.

Log returns

The log (continuously compounded) return is

rt=ln⁡PtPt−1=ln⁡(1+Rt)r_t = \ln\frac{P_t}{P_{t-1}} = \ln(1 + R_t)

Log returns aggregate across time: the log return over many periods is just the sum of the single-period log returns,

r0→T=∑t=1Trtr_{0 \to T} = \sum_{t=1}^{T} r_t

That makes them convenient for statistics over time (means, regressions, the central limit theorem). For small moves the two are close, r≈R−R2/2r \approx R - R^2/2, but they diverge quickly for big ones: a −50%-50\% simple return is a −69%-69\% log return, and a +100%+100\% simple return is only +69%+69\% in log terms.

Rule of thumb

Use simple returns across assets (weighting a portfolio) and log returns across time (compounding, modelling a price path). When in doubt, convert at the boundary rather than mixing them.

Arithmetic vs geometric mean

The average of simple returns overstates what you actually earn. Gain 50%, then lose 50%: the arithmetic mean is 0%, but you finish with 75% of your money. The compound (geometric) growth rate is

g=(∏t(1+Rt))1/T−1g = \Big(\prod_t (1 + R_t)\Big)^{1/T} - 1

and, approximately,

g≈Rˉ−σ22g \approx \bar{R} - \frac{\sigma^2}{2}

The σ2/2\sigma^2/2 term is volatility drag. Two strategies with the same average return do not grow at the same rate; the more volatile one compounds slower.

Annualising

If returns are independent from period to period, the mean scales with time and the volatility with its square root. With NN periods per year (252 trading days for equities, 365 for crypto, 8,760 hours for hourly crypto):

μannual≈N rˉ,σannual≈N σ\mu_{\text{annual}} \approx N\,\bar{r}, \qquad \sigma_{\text{annual}} \approx \sqrt{N}\,\sigma

So a daily volatility of 1% is roughly 16% annualised in equities (252≈15.9\sqrt{252} \approx 15.9), and a daily 3% crypto vol is about 57% a year (365≈19.1\sqrt{365} \approx 19.1).

Common mistakes
  • Using 252\sqrt{252} for a market that trades every day, or vice versa.
  • Annualising with N\sqrt{N} when returns are autocorrelated. Trend-following P&L is often positively autocorrelated, so true annual volatility is higher than Nσ\sqrt{N}\sigma; stationarity and autocorrelation covers the fix.
  • Computing returns from prices that are not adjusted for splits, dividends, or (in futures) contract rolls. A roll gap is not a return.

Put it to work

esc

Try , , or .

↑↓ move↵ open