Ray Dalio’s Holy Grail


Reducing return/risk ratio through diversification.

From Principles: Life and Work by Ray Dalio.

From my earlier failures, I knew that no matter how confident I was in making any one bet I could still be wrong—and that proper diversification was the key to reducing risks without reducing returns. If I could build a portfolio filled with high-quality return streams that were properly diversified (they zigged and zagged in ways that balanced each other out), I could offer clients an overall portfolio return much more consistent and reliable than what they could get elsewhere.”

In this notebook, we’ll explore what Ray Dalio referrs to as the Holy Grail of Investing, how increasing diversification we are able to reduce overall risk, as measured by the standard deviation of portfolio returns.
The idea is to show that, if we can find a basket of uncorrelated return streams (in practice we allow for low correlation), we can reduce the portfolio risk significantly by increasing the number of streams in our portfolio.

We begin by creating a function that simulates n return streams with a given mean (mean) and standard deviation (risk), and a given average correlation (corr) between them. We set \(n=5\), \(mean=10\), \(std=15\) and \(corr=0.6\). Just to make sure, let’s do a sanity check calculating the mean, std and correlation coefficient of the data obtained with the simulation.

\(streams\) \(mean =\)

\(10.12\),
\(9.91\), \(9.95\),
\(10.06\), \(9.95\)

\(streams\) \(std =\)

\(15.07\), \(15.05\),
\(15.09\),
\(15.25\), \(15.19\)



\(streams\) \(correlation =\)

\(1\), \(0.607\), \(0.606\), \(0.613\), \(0.608\)
\(0.607\), \(1\), \(0.613\), \(0.607\), \(0.612\),
\(0.606\), \(0.613\), \(1\), \(0.610\), \(0.613\),
\(0.613\),
\(0.607\), \(0.610\), \(1\), \(0.609\)
\(0.608\), \(0.612\), \(0.613\), \(0.609\), \(1\)

This is the simplest way to construct such a portfolio. We make each pariwise correlation between assets equal to a given level corr. The important point is that the average of all the pairwise correlations should be equal to corr.

We’ll create a helper function to calculate the pooled risk of a given number of return streams in the porfolio.

Next, we’ll build our simulated dataset. We’ll analyse return streams with risk levels in the range \(1\%\) - \(14\%\), for varying number of streams ranging from 1 to 20.
We’ll plot the risk levels for different average correlation, ranging from \(0\) to \(0.7\).

Correlation \(0.0\) \(0.1\) \(0.2\) \(0.3\) \(0.4\) \(0.5\) \(0.6\) \(0.7\)
Risk level Num assets
\(14\) \(1\) \(14.14\) \(13.95\) \(14.07\) \(13.87\) \(14.04\) \(14.17\) \(13.97\) \(14.08\)
\(2\) \(9.97\) \(10.42\) \(10.73\) \(11.29\) \(11.76\) \(12.29\) \(12.46\) \(13.00\)
\(3\) \(8.11\) \(8.88\) \(9.53\) \(10.16\) \(10.95\) \(11.61\) \(11.94\) \(12.06\)
\(4\) \(6.99\) \(7.99\) \(8.86\) \(9.59\) \(10.47\)
\(11.21\) \(11.66\) \(12.41\)
\(5\) \(6.26\) \(7.40\) \(8.39\) \(9.25\) \(10.19\) \(10.97\) \(11.48\) \(12.31\)
\(6\) \(5.72\) \(6.97\) \(8.09\) \(9.02\)
\(10.01\) \(10.82\) \(11.37\) \(12.23\)
\(7\) \(5.30\) \(6.62\) \(7.86\) \(8.82\) \(9.86\) \(10.71\) \(11.32\) \(12.17\)
\(8\) \(4.95\) \(6.42\) \(7.70\) \(8.68\) \(9.75\) \(10.63\) \(11.25\) \(12.15\)
\(9\) \(4.66\) \(6.23\) \(7.56\) \(8.60\) \(9.67\) \(10.57\) \(11.20\) \(12.13\)
\(10\) \(4.44\) \(6.07\) \(7.45\) \(8.53\) \(9.61\) \(10.52\)
\(11.17\) \(12.08\)
\(11\) \(4.24\) \(5.93\) \(7.36\) \(8.46\) \(9.56\) \(10.48\) \(11.13\) \(12.08\)
\(12\) \(4.07\) \(5.83\) \(7.26\) \(8.39\) \(9.50\) \(10.43\) \(11.10\) \(12.06\)
\(13\) \(3.90\) \(5.73\) \(7.20\) \(8.35\) \(9.46\) \(10.40\) \(11.09\) \(12.05\)
\(14\) \(3.75\) \(5.65\) \(7.15\) \(8.31\) \(9.43\) \(10.38\) \(11.07\) \(12.04\)
\(15\) \(3.62\) \(5.58\) \(7.09\) \(8.27\) \(9.40\) \(10.34\) \(11.05\) \(12.04\)
\(16\) \(3.75\) \(5.65\) \(7.15\) \(8.31\)
\(9.43\)
\(10.38\)
\(11.07\) \(12.04\)
\(17\) \(3.39\) \(5.44\) \(7.00\) \(8.21\) \(9.36\) \(10.29\) \(11.00\) \(12.01\)
\(18\) \(3.29\) \(5.40\) \(6.96\) \(8.17\) \(9.34\)
\(10.27\) \(10.99\) \(12.00\)
\(19\) \(3.20\) \(5.36\) \(6.92\) \(8.14\) \(9.32\) \(10.26\) \(10.98\) \(12.00\)
\(20\) \(3.13\) \(5.31\) \(6.90\)
\(8.12\) \(9.30\)
\(10.24\) \(10.97\)
\(11.99\)

We can already see how portfolio risk decreases as we add more assets, with sharper declines when we they have low correlation.

To recreate Dalio’s chart (as seen in this video), we create a function that produces a plot given our simulated data and a risk level.

Let’s see how diversification benefits a portfolio with assets that have a risk level of 10%.

Risk % by number of assets in the portfolio.

A highly correlated portfolio does not benefit much from increased diversification. We get diminishing returns by adding highly correlated assets beyond 3 or 4.
In contrast, we can halve the risk by adding just 6 or 7 uncorrelated (or more realistically, weakly correlated) assets to a portfolio.

Let’s plot the risk levels for a portfolio with returns streams with 7% risk.

Risk % by number of assets in the portfolio.

Conclusion

The benefits of diversification are generally well known: reduced risk through exposure to different sources of income.
The insight Dalio brings to the forefront, is that the construction of a diversified portfolio through a combination of uncorrelated return streams, significantly decreases our overall risk, raising in turn our return/risk ratio. By the careful mixing of uncorrelated assets, we capture true alpha, enabling us to use leverage to increase our returns.