Lesson 1.3: Returns, compounding and risk
Learn to measure performance correctly: simple and log returns, compounding, volatility drag, annualising, drawdowns and why average returns are so noisy.
By the end of this lesson you will be able to compute simple and logarithmic returns and know when each is the right one, explain why a gain of 50 per cent followed by a loss of 50 per cent leaves you behind, calculate the long-run growth rate from the average return and the volatility, annualise a daily mean and a daily standard deviation, measure a drawdown and the gain needed to recover from it, and say how much (or how little) a short history of returns can tell you. You will show that two years of +30 per cent and −20 per cent grow at 2.0 per cent a year, not the 5 per cent the average suggests, that a 20 per cent loss needs a 25 per cent gain to recover, and that ten days of data cannot separate a strong strategy from luck. You should have read Lesson 1.2, whose instruments produce the prices used here. The mathematics is percentages, logarithms and a standard deviation. This course is education about how markets and research work, not investment advice.
Every judgement a quant makes about a strategy rests on a return series: a list of how much was gained or lost in each period. Most errors in early research are not exotic. They are mistakes with returns: averaging when one should compound, annualising by the wrong factor, treating a lucky streak as skill, or ignoring how deep the worst losses were. This lesson fixes the vocabulary and the arithmetic you will use for the rest of the course.
Simple returns and log returns
The simple return over one period is the proportional change in price, plus any income:
r = (P₁ − P₀ + D) ÷ P₀
where P₀ is the starting price, P₁ the ending price and D any dividend or coupon received. A share that goes from 100 to 103 and pays a dividend of 1 has a simple return of (103 − 100 + 1) ÷ 100 = 4 per cent. Use adjusted prices, as Lesson 1.2 explained, so that splits and dividends do not distort the number.
The logarithmic return, or log return, is the natural logarithm of the ratio of ending to starting value:
ln(P₁ ÷ P₀) = ln(1 + r)
For 100 going to 103 it is ln(1.03) = 0.02956, or 2.956 per cent, slightly less than the 3 per cent simple return. For small returns the two are almost identical, and they diverge as returns grow: a rise of 50 per cent has a log return of 40.5 per cent, and a fall of 50 per cent has one of −69.3 per cent.
Why bother with a second definition? Because the two have complementary strengths.
Property · Simple return · Log returnCombining over time · Multiply: (1 + r₁)(1 + r₂) − 1 · Add: ln(1 + r₁) + ln(1 + r₂)
Combining across assets in a portfolio · Weighted sum, exactly · Not exact
Symmetry · A +50% rise and a −50% fall are not opposites · A +40.5% and a −40.5% log return cancel exactly
Lower bound · −100% · Unbounded below, −∞ at a total loss
Statistics · Awkward to add up · Sums over periods are easy, close to normal for short periods
The rule of thumb is: use simple returns to describe a portfolio at one date, because the portfolio's return is the weighted average of its holdings' returns, and use log returns to describe a path through time, because they add. Most research code stores log returns and converts when needed.
Compounding: why averages mislead
Returns over several periods compound: each period's gain or loss applies to the amount that exists at the start of that period, including earlier gains. The growth of one rupee over two periods with returns r₁ and r₂ is (1 + r₁)(1 + r₂).
Predict first: an investment gains 50 per cent in one year and loses 50 per cent in the next. Is it back to where it started, ahead, or behind? Decide before reading on.
It is behind. Starting with 100, a gain of 50 per cent gives 150. A loss of 50 per cent of 150 is 75, so the investment ends at 75, a total loss of 25 per cent, even though the average of +50 and −50 is zero. The gain applied to 100 and the loss to 150, a bigger base. In log terms, ln(1.5) + ln(0.5) = 0.405 − 0.693 = −0.288, and e^(−0.288) = 0.75.
This is the difference between the arithmetic mean return, the plain average of the period returns, and the geometric mean, the single constant return per period that would give the same final wealth. For the two-year series of +30 per cent and −20 per cent, the arithmetic mean is (30 − 20) ÷ 2 = 5 per cent a year. The geometric mean is √(1.30 × 0.80) − 1 = √1.04 − 1 = 1.98 per cent a year. A rupee grows to 1.04 over the two years, which is 1.98 per cent a year compounded, not 5. The geometric mean is always less than or equal to the arithmetic mean, and the more the returns vary, the wider the gap.
Volatility drag
A good approximation for the gap is
geometric mean ≈ arithmetic mean − σ² ÷ 2
where σ is the standard deviation of the returns. For the +30 and −20 series, σ = 25 per cent, so σ² ÷ 2 = 0.0313, or 3.1 points, and 5 − 3.1 = 1.9, close to the true 1.98. This penalty, called volatility drag or variance drain, is one of the most important facts in portfolio management: risk costs growth, and not only through the chance of losses. Two assets with the same average return can have very different long-run results, and the less volatile one wins.
In continuous time the same result holds exactly. If prices follow the standard model of Lesson 7.2 with an expected return μ and volatility σ, then the typical, or median, growth rate of wealth is μ − σ² ÷ 2. Take μ = 10 per cent a year. With no volatility, 100 grows to 100 × e^(0.10 × 10) = 271.8 over ten years. With σ = 20 per cent the growth rate is 10 − 2 = 8 per cent and the typical outcome after ten years is 100 × e^(0.08 × 10) = 222.6. With σ = 40 per cent the growth rate is 10 − 8 = 2 per cent and the typical outcome is only 122.1. The average outcome across many possible paths is still 271.8 in all three cases, but it is dragged up by a few lucky paths, and the typical investor, living through a single path, gets the lower number.
The rule has a consequence that shapes the whole of risk management. For a given average return, you want the smoothest path. This is why professional investors care about returns per unit of risk, not returns alone, as Lesson 4.2 shows, and why they use leverage with care: borrowing increases both the average return and the variance, and variance eats growth at the square.
Volatility and annualising
Volatility is the standard deviation of returns, and it is the standard measure of how much an asset's returns vary. To compare assets and strategies, volatility is quoted as an annual figure, and so are mean returns, by scaling.
Daily returns are roughly independent from one day to the next, an assumption that is approximately true and that we will test in Lesson 2.4. If so, means add and variances add. Over N days the mean return is N times the daily mean, and the variance is N times the daily variance, so the standard deviation grows with the square root of time:
annual mean = daily mean × N, annual volatility = daily standard deviation × √N
with N the number of trading days in a year. Markets are open for about 250 days a year, and the convention is to use 252. Take ten days of returns: +1.2, −0.8, +0.5, +2.1, −1.5, +0.3, +0.9, −0.4, +1.7 and −1.1 per cent. The mean is 0.29 per cent a day and the standard deviation is 1.22 per cent. Multiplying the mean by 252 gives 73 per cent a year, and multiplying the standard deviation by √252 = 15.87 gives 19.3 per cent.
Look at that annualised mean: 73 per cent a year, from ten days. Nobody should believe it, and the reason is the heart of this lesson.
Means are noisy, volatilities are not
How reliable is a mean estimated from a sample? The standard error of a mean is the standard deviation divided by the square root of the number of observations, the result of Lesson 2.2 of the Data Science course. Here it is 1.22 ÷ √10 = 0.38 per cent a day. The mean of 0.29 per cent is smaller than its own standard error, a t-ratio of only 0.75. The data cannot distinguish a strategy that earns 0.29 per cent a day from one that earns nothing, and the annualised figure of 73 per cent is mostly noise multiplied by 252.
Now compare with the volatility. A standard deviation estimated from ten returns is also imperfect, but its relative error is much smaller, and it falls quickly with more data. This asymmetry is a basic fact of financial statistics:
Volatility can be estimated well from a few months of data. It is persistent: calm periods follow calm periods.
Expected returns can hardly be estimated at all from a few years of data. For an asset with a yearly volatility of 20 per cent, the standard error of the mean annual return after ten years is 20 ÷ √10 = 6.3 points. A true mean of 6 per cent a year is within one standard error of zero.
Two things follow. A backtest that shows a high return over a short period proves very little. And much of quantitative finance, including risk, position sizing and option pricing, is built on volatility, because that is the quantity that can be measured.
Risk beyond volatility: drawdowns
Standard deviation treats gains and losses alike, but investors do not. The loss that hurts is the fall from a high. A drawdown is the fall in value from the previous peak, as a percentage of that peak, and the maximum drawdown is the largest such fall over the period. It measures what an investor who bought at the worst time would have endured.
Take a strategy whose value runs 100, 120, 110, 130, 104, 115. The running peak is 100, 120, 120, 130, 130, 130, so the drawdowns are 0, 0, −8.3 per cent, 0, −20.0 per cent and −11.5 per cent. The maximum drawdown is −20.0 per cent, from the peak of 130 to the trough of 104.
Drawdowns are asymmetric. After a loss of 20 per cent, you hold 80 for every 100 you had. To return to 100 you need a gain of 20 ÷ 80 = 25 per cent. After a 50 per cent loss you need a 100 per cent gain, and after a 10 per cent loss only 11.1 per cent. In general, the gain needed after a loss L is L ÷ (1 − L). This is the compounding lesson again, and it is why serious traders speak about drawdowns in terms of survival: a very deep loss may not be recoverable in practice, because investors withdraw money and a manager may be shut down before the recovery.
Other measures capture other aspects of risk. Downside deviation counts only returns below a target. Skewness tells whether the large moves are more often up or down, and kurtosis whether the tails are fat, so that extreme days are much more common than a normal distribution would suggest. Lesson 2.2 covers the shape of return distributions. And risk measures such as value at risk estimate a loss that should not be exceeded with a given probability, the subject of Lesson 11.2.
Putting returns to work
A few habits keep return arithmetic honest.
1. State the period and the convention. A return without a period means nothing. "12 per cent" could be a month or a year.
2. Use adjusted prices and include income. Otherwise splits and dividends distort the series.
3. Compound, do not average, when you want the growth of wealth. Report the geometric mean, or the total return over the period.
4. Annualise with care, and say how many days you used.
5. Pair every return with its risk, the volatility and the maximum drawdown, over the same period.
6. Report the uncertainty. A mean of 0.29 per cent a day with a standard error of 0.38 is not a result.
7. Check the sample. A few weeks, or one market regime, is not a track record.
python
import numpy as np
import pandas as pd
prices = pd.Series([100, 103, 102, 108, 104, 110.0])
simple = prices.pctchange().dropna()
log = np.log(prices).diff().dropna()
print(simple.round(4).tolist(), log.round(4).tolist())
print("total simple", round(prices.iloc[-1] / prices.iloc[0] - 1, 4), "sum of logs", round(log.sum(), 4))
arithmetic vs geometric mean for +30% then -20%
r = np.array([0.30, -0.20])
print("arithmetic", r.mean(), "geometric", np.prod(1 + r) (1 / len(r)) - 1, "approx", r.mean() - r.std(ddof=0) 2 / 2)
annualise ten daily returns and test the mean
d = np.array([0.012, -0.008, 0.005, 0.021, -0.015, 0.003, 0.009, -0.004, 0.017, -0.011])
n, days = len(d), 252
print("annual mean", d.mean() days, "annual vol", d.std(ddof=1) np.sqrt(days))
print("t-ratio", d.mean() / (d.std(ddof=1) / np.sqrt(n)))
maximum drawdown and the gain needed to recover
equity = pd.Series([100, 120, 110, 130, 104, 115.0])
drawdown = equity / equity.cummax() - 1
print(drawdown.round(4).tolist(), "max drawdown", round(drawdown.min(), 4),
"gain to recover", round(1 / (1 + drawdown.min()) - 1, 4))
volatility drag over ten years at the same expected return
for vol in (0.0, 0.2, 0.4):
print(vol, round(100 np.exp((0.10 - vol 2 / 2) 10), 1))
Common mistakes
Averaging returns to get growth. The geometric mean, not the arithmetic mean, describes what you end up with.
Adding simple returns over time. Compound them, or add log returns.
Forgetting volatility drag. A volatile strategy with a good average return can have a poor long-run growth rate.
Annualising a tiny sample. A mean from ten days, multiplied by 252, is noise made large.
Quoting a return without a period or a risk. A return alone is half a result.
Using standard deviation as the only risk. Look at the drawdown, the skew and the tails as well.
Underestimating drawdown recovery. A loss of L needs a gain of L ÷ (1 − L), not L.
Using unadjusted prices. A split looks like a crash.
Trusting a short track record. The standard error of a mean falls only with the square root of the number of observations.
Key takeaways
The simple return is (P₁ − P₀ + D) ÷ P₀. The log return is ln(P₁ ÷ P₀). Simple returns combine across assets, and log returns add over time.
Returns compound. A rise of 50 per cent then a fall of 50 per cent leaves 75, a loss of 25 per cent.
The geometric mean is below the arithmetic mean by about σ² ÷ 2. For +30 and −20 per cent the arithmetic mean is 5 per cent and the geometric mean 1.98 per cent.
At the same expected return of 10 per cent, a typical path grows 100 to 271.8 over ten years with no volatility, 222.6 with 20 per cent volatility and 122.1 with 40 per cent.
Annual mean = daily mean × days, and annual volatility = daily standard deviation × √days. Volatility can be estimated well from little data, but means cannot: the mean of 0.29 per cent a day over ten days has a t-ratio of 0.75.
Maximum drawdown is the largest fall from a peak. The gain needed to recover from a loss L is L ÷ (1 − L): 25 per cent after a 20 per cent loss.
Check yourself
1. A share goes from ₹250 to ₹260 and pays a dividend of ₹5. What is the simple return, and the log return?
Simple: (260 − 250 + 5) ÷ 250 = 6.0 per cent. Log: ln(1.06) = 5.83 per cent.
2. A fund returns +20 per cent, −10 per cent and +5 per cent over three years. What is its total return and its geometric mean?
Total: 1.20 × 0.90 × 1.05 − 1 = 13.4 per cent. Geometric mean: 1.134^(1/3) − 1 = 4.3 per cent a year.
3. A strategy has a daily standard deviation of 0.8 per cent. What is its annualised volatility using 252 days?
0.8 × √252 = 0.8 × 15.87 = 12.7 per cent.
4. After a drawdown of 40 per cent, what gain restores the previous peak?
40 ÷ 60 = 66.7 per cent.
5. A strategy has earned 0.05 per cent a day for 250 days, with a daily standard deviation of 1 per cent. Is the mean distinguishable from zero?
The standard error is 1 ÷ √250 = 0.063 per cent a day. The t-ratio is 0.05 ÷ 0.063 = 0.79, so no. An annual return of 12.6 per cent is within noise at this volatility.
Try this
Set aside forty-five minutes. Use daily closing prices for any index or share.
1. Download or create at least two years of adjusted daily prices. Compute simple and log returns, and check that the total return from the prices matches the product of the simple returns and the exponential of the sum of the logs.
2. Compute the arithmetic mean, the geometric mean and the standard deviation of yearly returns, and check the volatility-drag approximation.
3. Annualise the daily mean and standard deviation with 252 days, and compute the t-ratio of the mean. Say whether the average return is distinguishable from zero.
4. Compute the maximum drawdown and the gain needed to recover from it, and find the date of the peak and the trough.
5. Compute the volatility using a window of 20 days and a window of 250 days, and plot both. Say how much the volatility changes over time.
6. Use the volatility-drag simulator to find the volatility at which a 10 per cent expected return gives zero typical growth.
7. Write a short note: the return, volatility, maximum drawdown and the uncertainty of the mean, with a sentence on whether the track record is long enough to conclude anything.
A good result is a one-page summary of return, volatility, drawdown and t-ratio for a real price series, with a sentence on how much can be concluded. The next lesson turns to the costs that return arithmetic leaves out: spread, fees and slippage.
Read more
Options, Futures and Other Derivatives by John Hull covers returns and volatility from a derivatives angle, and Analysis of Financial Time Series by Ruey Tsay treats return distributions in depth. For the statistics of short return histories, see the paper "…and the Cross-Section of Expected Returns" by Harvey, Liu and Zhu, which discusses how easily luck passes for skill.
Tags: Quant Trader Returns Volatility Drawdown Compounding