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
Jonathon Garner
Mark Reeve
Hi Jonathon,
I have built and posted the GTAA(5) model... albeit a bit rough around the edges, and am in the middle of building the GTAA(13) model. I'll post it once complete - but yes, both models are very promising. Modest Returns but The reduction in drawdowns is quite impressive.
Jake Rocket
Hi Mark,
I am wondering if you were able to complete the GTAA(5) or GTAA (13) model implementation, especially the “aggressive” rotation process. If so I'd really appreciate it if you could post it here and share with a newbie and fan of GTAA.
Cheers
Mark Reeve
Hi Jake,
I have been working on so many other algo's since that time I can't quite recall what state this was left in. However, you are more than welcome to look over and modify as you wish - feel free to ask any questions you may have too ;)
PS - this is a version I built using the “Algorithm Framework" ahh… Framework ;-)
Mark Reeve
And here was a version of the GTAA13, however I have just had a quick look at it and this is NOT the implementation described in John Garner's post above - although with a little modification it could be… After looking at the EXPECTED performance I might go back and try to rebuild the aggressive GTAA13 algorithm to the specification he listed…
Mark Reeve
And a quick knock up of the Aggressive GTAA13(top3) using the parameters above without implementing Algorithm Framework. This should be fairly close.
Note: backtesting before 2014 is not possible due to MTUM and other ETF inception dates….
Drawdown is very reasonable, returns somewhat lacklustre…
Jake Rocket
Hi Mark Reeve Thank you very much for your quick response and posts. These will help me a lot in getting up to speed on QC. I am going through the bootcamp and just about to get into the section on the algorithm framework, and I will use your sample code as part of my exercise and learning experience. Really appreciate your assistance!
Mark Reeve
No worries Jake - I've been there.. I'm still there! Also, I'm NO programmer so take this is a real hack version. Finally the versions I posted above were WEIGHTING the monthly momentum calculation. Performance improves with a straight 1,3,6,12-month combination as shown below… but this is also an example in data mining ;)
Jake Rocket
Vey helpful Mark. This 1, 3, 6, 12 months performance criteria for ranking momentum is exactly what I was looking for. This model and other related GTAA approaches are nicely summarized and compared here, in case it's useful for someone:
Jonathon Garner
The material on this website is provided for informational purposes only and does not constitute an offer to sell, a solicitation to buy, or a recommendation or endorsement for any security or strategy, nor does it constitute an offer to provide investment advisory services by QuantConnect. In addition, the material offers no opinion with respect to the suitability of any security or specific investment. QuantConnect makes no guarantees as to the accuracy or completeness of the views expressed in the website. The views are subject to change, and may have become unreliable for various reasons, including changes in market conditions or economic circumstances. All investments involve risk, including loss of principal. You should consult with an investment professional before making any investment decisions.
To unlock posting to the community forums please complete at least 30% of Boot Camp.
You can continue your Boot Camp training progress from the terminal. We hope to see you in the community soon!