
This is the fifth in my Hedge Fund Hacks series in which I dig below the surface of some of the common challenges of hedge fund performance analysis. For many, this may seem like very basic obvious stuff. But even if you have plenty of experience, take 5 minutes to scan through this post – we can all benefit from being reminded of the basics.
Anti Lake Wobegone
In Lake Wobegone, according to the Prairie Home Companion, all the children are above average. We know this cannot be so. We know that some folks are above average and some below and that’s just how averages work.
Or is it? We know that such a thing as an average monthly return exists. Mean variance portfolio optimization uses it combined with variance of monthly returns to build “optimum” portfolios. We shall shortly see that because rates of return vary up and down each month, on average, everyone is below average!
When it comes to investment returns, we live in Anti Lake Wobegone.
Compounding vs Volatility
What rate should we expect our assets to grow if they return R% each month?
Compounding
When I was at Cage Green Primary School in the UK I had a savings account with a building society and the yield was about 15%. Every Saturday I would go into the building society and deposit my savings from my allowance and a teller would update my little savings account book. To my amazement and joy, I earned more than 12 x R% in a year, I actually earned ((1 + R%)^12 – 1).
For anyone younger than about thirty, I do indeed mean 15%, NOT 1.5%! A building society was a mutual savings bank that used its members’ deposits to fund mortgages. Think: George Bailey and Bailey Brothers Building & Loan (surely you know “It’s a Wonderful Life”?). This was before commercial banks were allowed to write mortgages in the UK. Oh, and savings, that’s what you have when you spend less than you earn.
Arithmetic averages arise from an additive process. Compounding is a geometric or multiplicative process.
Consider 2 month’s of returns at 1%:
Let’s start with 100 units of capital and say we gain 1% simple interest per month for 2 months. We end up with
100.(1 + 1/100 + 1/100) = 100.(1 + 2/100) = 102
However, if we gain 1% compound interest we end up with
100.(1 + 1/100).(1 + 1/100) = 100.(1 + 2/100 + 1/10000) = 102.01
That extra 1/10000? That right there is compounding. “The most powerful force in the universe” – something Einstein never said.
Volatility
If we have an asset that delivers an average return of 1% per month, then we should make
(1 + 0.01)^12 – 1 = 12.68% per year
Well, not exactly. The problem is that the return of 1% is simply an arithmetic average of all the monthly returns. Some months we only get 0.5%, others we get 2%, and of course we probably have some months where we lose some.
This is volatility and it affects our overall compound rate of return. We are not going to get a nice neat (1 + 0.01)^12, we are going to get (1 + 0.01).(1 – 0.005).(1 + 0.015)…. We are going to earn the geometric average of the returns each month, NOT the arithmetic average.
Let’s go back to our 2-month toy example and we will use “e” to represent some volatility of returns (note the arithmetic average remains 1%):
(1 + 1/100 + e).(1 + 1/100 – e) = (1 + 0.02 + 1/10000 – e^2) < (1 + 1/100)^2
It should be clear that the only time a series of returns with an arithmetic average of R% per month delivers (1 + R%)^12 over the course of a year is when the volatility is zero. Furthermore, this is the highest return a series with an arithmetic average of R% per month can possibly deliver. Every other series will be below the average R% – Anti Lake Wobegone.
How Volatility Affects Compounding
I am going to consider a variety of return series with an arithmetic average monthly return of 1% but with different volatilities. In this experiment I explore a range of annualized volatilities from 0% to 40% in 5% increments. Monthly volatility is annual volatility divided by square root of 12.
We know that when volatility is zero, over the course of a year we are going to earn (1 + 1/100)^12 – 1 = 12.68%. For each of the other volatility levels I generate a 100,000 series of returns using R’s random normal distribution (with mean=0 and standard deviation = monthly volatility). Since the returns are random, any given series of 12 months will not average to 1%, so I simply re-center the return series by subtracting the actual average and adding back 1%.
For each return series I figure out the compound average growth rate (i.e. the compounded return). I then take the average of all 100,000 return series for that volatility level. For each volatility level, I plot the return. Here’s what we get:
To take away a single data point, consider that a volatility of around 25% gives a Sharpe Ratio of about 0.5. At that point, the compounded yield has dropped from almost 13% to 9.5%, a decline of around 25%. Furthermore, the decline accelerates with increasing volatility.
Here’s the R code used to generate the above:
CAGR <- function(rets) prod(1 + rets)^(12 / length(rets)) - 1 mcCount <- 100000 # Number of MC simulations to run months <- 12 expReturn <- 0.01 # 1% per month arithmetic average return compRet <- (1 + expReturn)^months - 1 # Compounded return with 0 vol annVol <- seq(0.05, 0.40, by=0.05) # Range of vols to test actRets <- matrix(ncol=length(annVol), nrow=mcCount) # Matrix to store results for (i in 1:length(annVol)){ # For each vol randomly generate returns and store in mcCount rows of matrix returns <- matrix(rnorm(months * mcCount, 0, annVol[i] / sqrt(12)), ncol=months) # Each row represents 12 months returns. Recenter them to expReturn returns <- returns - apply(returns, 1, mean) + expReturn # Figure the compound annual growth rate for each 12 months series actRets[ , i] <- apply(returns, 1, CAGR) } dev.new() # Plot the mean of CAGRs (in columns) vs the annualized vols. plot(100 * c(0, annVol), c(compRet, apply(actRets, 2, mean)), pch=16, col="#ff2b00", bty="n", ylim=c(0.0, compRet), main=paste0("Compound Return vs. Volatility"), xlab="Annualized Volatility (%)", ylab="Compound Ann. Return") text(0, 0.04, paste0(100 * expReturn, "% Avg. Mo. Return = ", round(100 * compRet, 2), "% Compounded @ 0 Vol."), pos=4)
Conclusions
Think about what this means at the portfolio level, both in terms of returns you get and the portfolio optimization process.
- Your main objective in selecting managers is to build a set who, together, will reduce volatility as much as possible.
- Focus on how each manager controls the volatility of their return stream.
- Consider the implications of this well-known phenomenon for the way you optimize your portfolios – instead of using a monthly time-frame, perhaps your rebalancing interval should be used.
The bottom line is that controlling volatility is vital to getting the returns you expect.
Image Credit: Photo by Marc Sendra Martorell on Unsplash
Let’s do the math, holding Sharpe ratio (0% risk-free rate) constant:
compare {0%, 2%} with {0%, 20%}.
The first has an avg return of 1% with volatility of 1% for a Sharpe of 1.
The second has avg 10% with vol of 10% for a Sharpe of 1.
What’s the volatility tax in the first case? (1.0 x 1.02) / (1.01)^2 – 1 = -1bp
In the second case: (1.0 x 1.2) / (1.1)^2 – 1 = -1%
So, for the same risk-adjusted return, the higher the volatility, the more you lose in terms of expected return. This makes sense because the volatility tax goes with the square of the returns. 10 times the vol, 100 times the tax.
As a side issue. Your expectation of making 10-20% a month in growth stocks is utterly unrealistic.
Wouldn’t volatility’s effect on Compound Yield/ROR decrease if the “monthly return” in your example was increased from 1% to 10% and also to 20%? If so, wouldn’t using return percentages that are within the range of average return percentages of growth stocks be more representative of volatility’s effect, and wouldn’t this additional chart provide a comparison between it and your chart to show that different “monthly return” amounts will change volatility’s effect on Compound Yield/ROR? If you already know what the general conclusions will be, can you tell me please?