When I worked at Bridgewater Associates, I regularly came across marketing materials about the theory behind risk parity and evidence that risk parity portfolios perform better than traditional portfolios on a risk-adjusted basis. The theory and evidence was quite convincing.
The story goes that Ray Dalio, the founder of Bridgewater, wanted a passive investing strategy that would manage the money in his family trust. He wanted the strategy to be able to weather any kind of economic environment, even the most extreme ones. The ideas eventually became known in the industry as risk parity, and Bridgewater launched the first risk parity fund in 1996.
This prompted me to do some more research on exactly how to implement a risk parity strategy for my personal account. In this post, I provide some code that allows a retail investor to implement a simple risk parity strategy using low-cost ETFs. But first, I provide some background information for the uninitiated.
Traditional Portfolios Are Not Diversified
It’s easier to understand risk parity by first understanding what’s wrong with traditional portfolios. Here, traditional portfolios mean any portfolio where the assets are chosen in quantities such that there is some balance in the dollar allocation. Everyone uses the 60% equities, 40% bond portfolio as an example here. According to conventional thinking, this portfolio is diversified because the dollar amount invested in equities is roughly equal to the dollar amount invested in bonds.
The risk parity school of thought says that since equities are much riskier than bonds, the overall portfolio volatility is dominated by the equity portion. Something like 90% of the portfolio volatility comes from equities.
It’s easier to see this by plotting the returns of equities, bonds, and the traditional portfolio comprised of 60% equities and 40% bonds. For these asset returns, I am using the low-cost ETFs SPY for equities and AGG for bonds. The idea is that the traditional portfolio (the blue line) still behaves a lot like only equities (the green line) simply because equities have around four times the volatility of bonds.
Seen through this lens, the traditional portfolio is not diversified. The portfolio does poorly during the same periods that equities do poorly. You don’t want a portfolio where a single asset can tank the entire portfolio. And there is little positive impact to the portfolio when bonds do well.
Different assets perform differently depending on economic conditions. The entire purpose of a diversified portfolio is to combine asset classes together that can weather a range of economic outcomes. But the high volatility asset classes (like equities) have so much more volatility than low volatility asset classes (like bonds) that it gets in the way of diversification.
A balanced dollar allocation across asset classes doesn’t translate to a balanced risk allocation across asset classes. Understanding this concept is key to understanding risk parity, and you will see this example used almost every time sometime introduces risk parity ideas.
Risk Parity Equalizes Risk Exposure Across Asset Classes
Financial risk can be reduced by diversifying across uncorrelated asset classes, but volatility isn’t the same across asset classes. The risk parity approach chooses asset allocations such that the risk contribution of each asset to the overall portfolio volatility is equal. This means that lower risk assets (like bonds) will generally have a higher allocation than higher risk assets (like equities).
Each asset class performs differently depending on economic conditions and by equalizing risk exposure to many asset classes, the risk parity portfolio can weather a range of economic outcomes. No one asset can tank the entire portfolio.
The traditional approach chooses allocations based on a trade off between risk and return. Want more return? Then choose a high allocation to higher-return assets (like equities) and become less diversified. Want less risk? Then choose a high allocation to low volatility assets (like bonds) and live with a lower expected return. The traditional portfolio changes the allocation to asset classes to match the investor’s risk and return preferences.
The risk parity approach, on the other hand, first constructs a portfolio that balances risk across asset classes without leverage. Then, if the expected return of this portfolio is too low, and it probably will be too low, apply leverage to the entire portfolio instead of shifting allocation toward higher-return assets. The amount of leverage applied is the thing that changes to match the investor’s risk and return preferences rather than changing the asset allocation.
The application of leverage allows the construction of a portfolio that has high expected return but retains the benefits of diversification. Again, it’s easier to see this by plotting the returns of equities, bonds, and an illustrative risk parity portfolio.
First, I constructed a portfolio that balances risk across asset classes without leverage. This yields a portfolio of roughly 20% equities and 80% bonds because equities have around four times the volatility of bonds over this time period. Then, I levered the portfolio by 33% to yield final weights of 27% equities and 106% bonds. Levering the portfolio by 33% makes the risk parity portfolio equal the return of the 60% equity and 40% bond portfolio above.
Comparing the risk parity portfolio in the plot above to the traditional portfolio illustrates that the risk parity portfolio has significantly less volatility than the traditional portfolio but with the same cumulative return. It’s more of a straight line going up instead of something that resembles just equities. Risk parity portfolios can achieve a high expected return will retaining the benefits of diversification.
How to Construct a Risk Parity Portfolio
First, there are many implementations of risk parity in the industry and no one method is considered superior to others. It all depends on how you measure risk and an asset’s risk contribution to the portfolio.
In this section, I will provide some code that implements a simple risk parity strategy using equities, bonds, and gold via the ETFs SPY, AGG, and GLD. The implementation is to set each asset’s weight to be proportional to the inverse of the asset’s one year rolling standard deviation. This makes low volatility assets have a high weight.
In an actual implementation of risk parity, the asset’s correlation to other assets will be considered and other measures of risk beyond volatility will be used, but this simple implementation is more to develop intuition and as a starting point for more advanced implementations.
Here’s the code.
source("./Code/1.001 Initial Functions and Libraries.R") # 1. Load data. data_raw <- getSymbolsYahooMany(c("SPY", "AGG", "GLD")) # 2. Calculate returns. data <- data_raw %>% group_by(ticker) %>% mutate(daily_return = adjusted_close / lag(adjusted_close, 1) - 1, sd_ma12 = runSD(daily_return, n = 252) * sqrt(252)) %>% filter(date >= "2006-01-01") %>% select(date, ticker, daily_return, sd_ma12) # 3. Calculate risk parity weightings. sd_ma12 <- data %>% dcast(date ~ ticker, value.var = "sd_ma12") %>% mutate(total = (1 / AGG) + (1 / SPY) + (1 / GLD), AGG_weight = (1 / AGG) / total, SPY_weight = (1 / SPY) / total, GLD_weight = (1 / GLD) / total) %>% select(date, AGG_weight, SPY_weight, GLD_weight)
And here is what the weights look like over time. On average, it’s roughly a 70% allocation to bonds, 15% to equities, and 15% to gold.
The code underlying this post can be viewed at my Github repository.
I have an email list where I occasionally send updates to readers on the trading systems that I’m developing. If you are interested, please enter your email below.