Performance and risk metrics

Annual return, volatility, Sharpe and Sortino ratios, drawdowns, beta and risk contributions, with bootstrap ranges.

What it does

The Overview summarizes the portfolio's history in a few standard figures and shows how much each figure depends on the particular days in the sample.

Why it is used

These are the figures most people use to compare portfolios. Showing a range next to each one makes the point that a ten-year history is one sample of what markets could have done, and a different decade would have produced different numbers.

Inputs

  • Daily portfolio returns over the chosen window (ten years by default).
  • Daily risk-free rate from the French library.
  • Daily S&P 500 (SPY) returns for beta.

Formulas

CAGR = (Π (1 + r_t))^(252 / T) − 1 Volatility = stdev(r_t) · √252 Sharpe = mean(r_t − rf_t) / stdev(r_t − rf_t) · √252 Sortino = mean(r_t − rf_t) / √mean(min(r_t − rf_t, 0)²) · √252 Beta = cov(r_p, r_m) / var(r_m) Risk share = w_i (Σw)_i / (wᵀΣw)

Assumptions

  • 252 trading days a year.
  • Up-market and down-market betas are separate regressions on days when SPY rose and fell.
  • Ranges are 90% intervals from a circular block bootstrap: the daily returns are resampled in 21-day blocks 1,000 times and each figure recomputed.

How to read the results

Read a range as "with a different draw of days of the same character, this figure could plausibly have been anywhere in here." A Sharpe ratio range that spans zero means the history cannot tell this portfolio's risk-adjusted return apart from cash.

Limitations

  • Bootstrap ranges only reshuffle the days in the sample. They cannot show regimes the sample never saw.
  • Maximum drawdown depends heavily on whether a crash is inside the window.
  • Risk shares use the sample covariance matrix, which is noisy for many holdings over short windows.

Where it can fail

  • With fewer than about two years of data, the ranges become very wide and the point figures are close to meaningless.

Changes from the original version

DeanOS began as a personal tool. Rebuilding it for the public meant rechecking each model; these are the changes that came out of that.

  • Annual return is now compounded (CAGR) rather than the average day compounded 252 times, which overstates growth when returns vary.
  • Sharpe and Sortino use the daily T-bill rate instead of a fixed 4%.
  • Sortino uses downside deviation over all days, the standard definition.
  • Up and down betas are regression slopes rather than ratios of average returns.

Validation on current data

Point estimates and 90% bootstrap ranges for the three example portfolios, from the current snapshot.

References

  • Sharpe, W. F. (1994). The Sharpe ratio. Journal of Portfolio Management 21(1).
  • Sortino, F. and Price, L. (1994). Performance measurement in a downside risk framework. Journal of Investing 3(3).
  • Lo, A. W. (2002). The statistics of Sharpe ratios. Financial Analysts Journal 58(4).
  • Politis, D. and Romano, J. (1994). The stationary bootstrap. JASA 89(428).

See it on a portfolio