In this article I implement Ray Dalio’s All Weather portfolio using popular ETFs and I back-test the strategy using Amibroker. The results show nice risk-adjusted returns for investors.

Ray Dalio’s All Weather Portfolio

In the book Money: Master The Game by Tony Robbins, hedge fund manager Ray Dalio reveals a portfolio strategy called the All Weather portfolio that is designed to provide robust returns and weather any financial storm.

The result is a simple asset allocation strategy with a mixture of stocks, bonds and commodities. The exact ratios are:

  • 30% Stocks
  • 40% Long-Term Bonds
  • 15% Intermediate-Term Bonds
  • 7.5% Gold
  • 7.5% Commodities

Portfolio Rationale

Having only 30% in stocks may sound low but Dalio says we need 30% in stocks because stocks are three times riskier than bonds. Further, he says that having a large amount of bonds is to counter the volatility of the stocks.

Dalio rounds out the portfolio with 7.5% in commodities and 7.5% in gold. He says that you need to have some of your portfolio in gold and commodities to balance the portfolio during periods of accelerated inflation – which can hurt both stocks and bonds.

The All Weather Portfolio With ETFs

Implementing the All Weather portfolio is fairly simple thanks to the invention of ETFs which give investors the ability to trade many different assets in one instrument.

Using Amibroker and historical data from Norgate Premium, I constructed a portfolio made up of the following ETFs to simulate the All Weather system. These ETFs were chosen based on popularity and earliest inception date:

  • SPY ( 30% stocks)
  • TLT ( 40% long-term bonds)
  • IEF ( 15% intermediate-term bonds)
  • IAU ( 7.5% gold)
  • DBC ( 7.5% commodities)

Historical data for DBC does not go back much further than 2008 so I ran the All Weather portfolio in Amibroker between 1/2008 and 1/2017 and achieved the following results: (Starting capital was set at $100000, commissions were set at $10 per trade and the portfolio was rebalanced annually)

Annualised Return: 6.11%
Maximum Drawdown: -14.54%
CAR/MDD: 0.42
Profit Factor: 2.53
Net Profit: $70487.07
Ending Equity: $170487.07

Buy and Hold Annualised Return: 7.03%
Buy and Hold Max Drawdown:
-52.37%

All weather portfolio performance in amibroker

All weather portfolio performance in Amibroker

All weather portfolio performance in Amibroker table

All weather portfolio performance in Amibroker table

As you can see, the All Weather Portfolio does a great job of riding out the storms. The maximum drawdown is low at under 15% and the portfolio’s worst year is only -3.2%. It even made a profit in 2008. On a risk-adjusted basis it has performed much better than buy and hold.

Amibroker Code

The Amibroker code for such a strategy is fairly straightforward. The main requirement is to alter the position size per symbol and make sure we are placing our trades on the right days. I have told the system to start on the first day of the year and sell on the last day of each year in order to simulate an annual rebalance. Technically, this is not the classic way to do a rebalance but it is effective in this situation and easier to code. The system is then run on the daily timeframe on a watchlist containing the necessary tickers.

SetFormulaName("ALL WEATHER");
SetOption("InitialEquity",100000);
SetOption("CommissionMode",2);              
SetOption("CommissionAmount",10); 
SetOption("AccountMargin",100); 
SetOption("AllowPositionShrinking", True);  
RoundLotSize = 1;

Symbol = Name();
SetPositionSize(IIf(Symbol == "TLT", 40, IIf(Symbol == "IEF", 15, IIf(Symbol == "SPY", 30, IIf(Symbol == "IAU", 7.5, IIf(Symbol == "DBC", 7.5, 0))))), spsPercentOfEquity);

BuyPrice = O;
SellPrice = C;

Firstdayoftheyear = year()!= ref(year(),-1);
Lastdayoftheyear = year()!= ref(year(),1);
			
// Entry and exit rules

BUY = 	Firstdayoftheyear;
SELL = 	Lastdayoftheyear;

// -- End

The All Seasons Portfolio

In an article from Meb Faber, a similar strategy to the All Weather strategy is revealed called the All Seasons Portfolio, attributed to Tony Robbins himself.

The structure of this portfolio is similar to the All Weather strategy. The only difference is that the stocks segment is split into more diverse parts. Below shows the components of the All Seasons portfolio. In brackets shows the ETFs that I will use for the simulation:

  • 40% Long-Term Bonds (I used TLT)
  • 15% Intermediate-Term Bonds (I used IEF)
  • 12.5% US Large Cap Stocks (I used SPY)
  • 6% International Stocks (I used VEU)
  • 5.5% US Mid-Cap Stocks (I used IJH)
  • 3% US Small Cap Stocks (I used IWM)
  • 3% Emerging Market Stocks (I used EEM)
  • 7.5% Gold (I used IAU)
  • 7.5% Commodities (I used DBC)

Running this portfolio strategy with the same settings as before I got the following results between 1/2008 and 1/2017:

Annualised Return: 5.61%
Maximum Drawdown: -15.71%
CAR/MDD: 0.36
Profit Factor: 2.24
Net Profit: $63429.11
Ending Equity: $163429.11

The All Seasons portfolio, as you would expect, also returns a robust performance that was able to withstand the 2008 credit crisis with a positive performance.

Thanks to Meb Faber we can also see how the strategy performs on a much longer time frame (back to 1973) as shown below. Presumably this is simulated using index data/futures data not ETFs.

All Seasons portfolio results Meb Faber

All Seasons portfolio results Meb Faber

All Seasons portfolio results Meb Faber

All Seasons portfolio results Meb Faber

Comments On Asset Allocation

The All Weather Portfolio is a good, low risk approach to asset allocation suitable for long-term investing and dollar cost averaging. The strategy ensures a good balance of assets that will generally perform well over time and the low drawdown means some leverage may even be implemented to improve overall returns.

It’s worth mentioning that the All Weather Portfolio is said to do worse in a rising rate environment like the 1970s which could be the reason that Ray Dalio’s Bridgewater fund made some changes to the construction.

It’s likely that any adjustments were small, however. The beauty of asset allocations models is that you can make small changes based on what you think the future will be. For example, after a nasty bear market you might increase the percentage of stocks to 40% or 50%. In an environment where bonds seem overvalued you might drop their allocation also.

Ultimately,  most asset allocation strategies are very similar in the way they are built. Essentially they are all variations on the classic 60/40 mix of stocks and bonds. Meb Faber shows us that the long-term difference between most allocation strategies is less than 200 basis points.

So, the trick is not which strategy you choose but how early you choose it and how regularly you contribute to it. Personally, I like to use a simple allocation just like the All Weather portfolio. Of course, I also have capital reserved for short-term trading as well with the intention of boosting returns. In a way this is similar to a barbell type strategy that I discussed previously.

New Trading Systems

Regular readers of this blog will realize that the frequency of articles has dropped this month. The reason is that I have been working on a new course where I intend to reveal five new trading systems. The systems are all built in Amibroker and include the full source code. The new course will be released next week so please keep your inboxes clear and if you are not already, make sure to sign up to my mailing list!

Thank You For Reading


Simulations made with Amibroker with data from Norgate.

Disclaimer.

Tags: ,


5 comments

  1. Thanks for sharing this Joe! Great information and really detailed. I think you make a good point about most things being a riff on your classic 60/40 portfolio. Thanks again!

    • Patrick

    • May 19, 2017

    • 3:23 am

    • Reply

    Hi Joe,

    I tried using the code you posted and my results yielded only 3.62 CAR so I’m wondering if I’m doing something wrong. I’ve got Amibroker 6.22 with Norgate NDU. Perhaps you could email me the trades list for your run of the All Weather portfolio so I can compare it to mine and see why I get different results.

    • Send me an email and I will take a look or I can send you the trades list. There may be something different in the Amibroker settings or the database settings. Did you go into database settings and set ‘capital reconstructions, special dividends and ordinary dividends’ to be included?

        • Patrick

        • May 19, 2017

        • 12:45 pm

        • Reply

        Thanks for the help. I was able to replicate your results after enabling ‘capital reconstructions, special dividends and ordinary dividends’. While we’re on the subject, there is also a date padding option. Is there a setting you recommend for that?

Leave a Reply

%d bloggers like this: