Hello! I am new to the QuantConnect environment and looking for some guidance with a Market Timing / Momentum strategy mirroring Meb Faber's Global Tactical Asset Allocation model outlined in his research paper: "A Quantitative Approach to Tactical Asset Allocation".

There are two basic implementations covered in the paper. I am primarily interested in Implementation 2, but I feel like either of these strategies would be very helpful as a learning instrument.

Implementation 1 - Timing Model

A simple 5 asset portfolio invested equally (20% allocation per asset) when the asset's price is greater than the asset's 10-month SMA. If the asset's price is less than the asset's 10-month SMA, the asset's allocation is held in cash or T-bills.

Buy / Sell decisions are made on the last day of every month. All price movements in-between Buy / Sell decisions are ignored.

5 Asset ETF Portfolio: SPY, EFA, IEF, GSG, VNQ

Implementation 2 - GTAA Aggressive

The 5 asset portfolio is expanded to 13 assets. The assets are ranked according to an average of the asset's 1, 3, 6, and 12-month total returns (Momentum factor). The model invests 33% of capital into the top 3 assets given that the asset's price is greater than the asset's 10-month SMA (Trend factor). If the model does not show 3 assets meeting the above criteria, the allocation is held in cash or T-bills.

Buy / Sell decisions are made on the last day of every month. All price movements in-between Buy / Sell decisions are ignored.

13 Asset ETF Portfolio:

- US Equity (VTV, MTUM, VBR, DWAS)

- Foreign Equity (EFA, EEM)

- Bonds (IEF, IGOV, LQD, TLT)

- Commodities (GSG, IAU)

- Real Estate (VNQ)

As I mentioned, I am new to QuantConnect, and thus new to the world of C# programming, so my attempts at replicating this model have not been successful thus far. I'm hoping that someone can mock this up so that I can get an idea of what this would look like in the IDE and hopefully grasp some concepts such as multiple security portfolios, If, then parameter logic, position sizing, etc.

Any help is greatly appreciated!

Thanks!

Jon

Author