Tools › Investing › Portfolio and Risk › Portfolio Risk and Return › Method
Portfolio Risk and Return: Method
Open the Portfolio Risk and Return tool
Portfolio Risk and Return: the Method
What it does
You paste the past returns (or prices) of the holdings in a portfolio and enter the share of the portfolio in each. The page works out, for each holding and for the whole portfolio, how much it gained a year, how much it swung, how far it fell from its highs and how large a loss in one period has been or would be unusual. It also shows how much of the holdings' risk the mix removes. Every figure describes the history you pasted; none is a forecast.
The method
Returns. A return r is the gain or loss of one period as a fraction of the value at the start of the period. From prices, rt = Pt / Pt−1 − 1, so n prices give n − 1 returns. Prices should include dividends and interest (a "total return" or "adjusted close" series); otherwise the return is understated.
Portfolio return. With wj the weight of holding j (the weights add to 1) and rj,t its return in period t, the portfolio's return is rp,t = Σj wj rj,t. The weights are the same in every period, which means the portfolio is rebalanced back to them at the end of each period.
Annualised return. The growth of 1 over T periods is G = (1 + r1)(1 + r2)…(1 + rT). With m periods in a year (252 trading days, 52 weeks or 12 months) the history covers Y = T / m years, and the annualised (geometric) return is R = G1/Y − 1: the constant yearly rate that gives the same growth.
Volatility. The sample standard deviation of the period returns, s = √[Σ(rt − μ)² / (T − 1)] with μ the average return, measures the typical swing of one period. The annualised volatility is σ = s √m. The square-root rule holds when the returns of separate periods are unrelated to each other.
Sharpe ratio. The average return above the risk-free rate, per unit of volatility: SR = (μ − rf,p) / s × √m, where rf,p = (1 + rf)1/m − 1 is the risk-free rate of one period. This is the ratio Sharpe (1994) defines from historical returns, annualised.
Sortino ratio. The same numerator divided by the downside deviation d = √[Σ min(rt − rf,p, 0)² / T], which counts only the periods that fell short of the risk-free rate (the sum runs over all T periods; those above the rate add zero): SoR = (μ − rf,p) / d × √m.
Drawdown. With Wt the value of 1 invested at the start, the drawdown at time t is Wt divided by the highest value reached up to then, minus 1. The maximum drawdown is the lowest value of that series; the page reports the peak and the low that define it.
Correlation and covariance. The covariance of two holdings is Σ(ri,t − μi)(rj,t − μj) / (T − 1); the correlation ρij is the covariance divided by the two standard deviations and lies between −1 and +1.
Portfolio volatility and the diversification benefit. σp² = Σi Σj wi wj σi σj ρij, in matrix form wTΣw with Σ the covariance matrix (Markowitz 1952). For two holdings: σp² = w1²σ1² + w2²σ2² + 2 w1 w2 σ1 σ2 ρ12. The diversification benefit is the weighted average of the holdings' volatilities less the portfolio's, Σ wj σj − σp. It is zero when every correlation is +1 and grows as the correlations fall.
Value at Risk and expected shortfall. Value at Risk (VaR) is an estimate of the most a position could lose over a fixed period within a stated confidence level (the definition of the U.S. bank capital rules, 12 CFR 3.202). The page gives it for one period, as a percent of the portfolio's value, two ways. Historical: the returns are sorted and the loss at the (1 − c) point is read off, interpolating linearly between the two nearest returns (position (T − 1)(1 − c) counted from the worst return); the expected shortfall is the average of the returns at or below that point. Normal: assuming normally distributed returns, VaR = z s − μ and expected shortfall = s φ(z) / (1 − c) − μ, where z is the standard normal value with probability c below it (1.645 at 95 %) and φ(z) the height of the normal curve there.
Benchmark (Advanced). With rb the benchmark's return: beta β = cov(rp, rb) / var(rb), the average move of the portfolio for a 1 % move of the benchmark. Alpha (Jensen 1968) = m × [(μp − rf,p) − β (μb − rf,p)], the yearly return that beta does not account for. Tracking error = standard deviation of the active return rp − rb, times √m. Information ratio = average active return a year divided by the tracking error. Up (down) capture = the compound average return of the portfolio over the periods in which the benchmark rose (fell), divided by the benchmark's over the same periods, as a percent.
What it assumes
The weights stay constant (rebalancing every period, with no trading costs or taxes). The periods are evenly spaced and the pasted returns are complete. Annualising by √m treats the returns of separate periods as unrelated. The normal VaR assumes a normal distribution. The risk-free rate is constant over the history.
When it misleads
The past is one sample. Average returns in particular are estimated very poorly from a few years of data: with a yearly volatility of 15 %, five years of history leave an uncertainty of about ±7 points a year on the average return. Volatilities and correlations are steadier but also change, and correlations between risky holdings have tended to rise in market falls, when diversification is most wanted.
Real returns have more extreme periods than a normal distribution allows, so the normal VaR tends to understate rare losses; the historical VaR cannot show a loss worse than any in the sample, and with 60 periods its 95 % figure rests on three observations. VaR is a threshold, not a worst case.
The square-root rule overstates yearly volatility when returns tend to reverse and understates it when they trend. Monthly valuations of holdings that trade rarely (property, private funds) are smoothed, which lowers their measured volatility and correlation. The Sharpe ratio rewards steady small gains and is blind to a rare large loss that has not yet occurred. A maximum drawdown grows with the length of the history, so drawdowns of histories of different lengths are not comparable. Beta, alpha and the capture ratios depend on the benchmark chosen.
Worked example
The default data are illustrative: 60 months of made-up returns for three holdings and a benchmark column, drawn from a multivariate normal distribution with a random-number generator (numpy, seed 1; monthly means 0.80, 0.30, 0.50 and 0.75 %, standard deviations 4.50, 1.40, 4.00 and 4.20 %) and rounded to two decimals. They are not market data. Weights 60 / 30 / 10 %, risk-free rate 2 % a year, confidence 95 %.
Period 1: rp = 0.60 × (−0.07) + 0.30 × 1.54 + 0.10 × (−3.02) = 0.118 %. Compounding the 60 portfolio returns gives G = 1.6184 over Y = 60 / 12 = 5 years, so R = 1.61841/5 − 1 = 10.11 % a year.
The portfolio's monthly returns average μ = 0.840 % with s = 2.639 %, so σp = 2.639 × √12 = 9.14 % a year. From the holdings: volatilities 14.18, 4.97 and 12.61 %, correlations 0.152 (stock, bond), 0.127 (stock, gold) and 0.214 (bond, gold): σp² = 0.6² × 14.18² + 0.3² × 4.97² + 0.1² × 12.61² + 2 × 0.6 × 0.3 × 14.18 × 4.97 × 0.152 + 2 × 0.6 × 0.1 × 14.18 × 12.61 × 0.127 + 2 × 0.3 × 0.1 × 4.97 × 12.61 × 0.214 = 83.6, σp = 9.14 %, the same value. The weighted-average volatility is 0.6 × 14.18 + 0.3 × 4.97 + 0.1 × 12.61 = 11.26 %, so the diversification benefit is 11.26 − 9.14 = 2.12 points.
Risk-free rate of a month: 1.021/12 − 1 = 0.1652 %. Sharpe ratio = (0.840 − 0.165) / 2.639 × √12 = 0.89. Downside deviation 1.533 % a month; Sortino ratio = (0.840 − 0.165) / 1.533 × √12 = 1.52.
The portfolio's value peaked at 1.2989 at the end of month 26 and fell to 1.1477 at the end of month 32: maximum drawdown 1.1477 / 1.2989 − 1 = −11.64 %.
Historical 95 % VaR: position 59 × 0.05 = 2.95 from the worst month gives 3.02 %; the three months at or below it average −5.14 %, an expected shortfall of 5.14 %. Normal: VaR = 1.645 × 2.639 − 0.840 = 3.50 %, expected shortfall = 2.639 × 0.1031 / 0.05 − 0.840 = 4.60 %.
Advanced, against the column Market: beta 0.584, alpha 3.91 % a year, tracking error 7.03 %, information ratio 0.13, up capture 72.1 %, down capture 49.0 %.
Using your own data
Copy a range from a spreadsheet with the names in the first row and one row per period, oldest first; a first column of dates is allowed. Fund companies, brokers and exchanges publish price and total-return histories that download as a spreadsheet. Use the same frequency for every column and choose it in the form.
This page is a calculator for education and analysis, not investment advice.