I replicated another tactical ETF strategy in QuantConnect that I think is somewhat interesting. The guys over at AllocateSmartly do a lot of replication on these types of strategies (and do a great job). Rather than rephrase everything in my own words, you are probably better served reading the write up they did on the strategy here. Results are pretty good for what it is.
Lately I have been allocating most of my free time to an open-source Quant platform called QuantConnect. It is a really great platform that allows you to construct your own trading strategies using Python or C# and backtest before implementing the strategies live. It give you a ton of flexibility to program any features and test for significance while not being limited to a predefined set of indicators or signals.
I will be sharing my backtests that utilize ETFs with the code for my readers over the coming months and figured I would start with one of the more popular tactical ETF strategies. The first one I will share is: “Protective Asset Allocation (PAA): A simple momentum-based alternative for term deposits” based on Keller and Keuning (April 25, 2016)
– Average, unleveraged return better than SP500
– Significantly reduced drawdown vs SP500
Subject to constraints:
– Monthly rebalancing
PAA strategy summary
1. consider a set of N assets (ETFs)
2. select a protection factor (see below) and maximum number of assets to hold (TopN)
3. count the number (n) of the risky assets with positive prior month MOM (see MOM definition below)
4. compute the bond fraction (BF): BF = (N-n)/(N-n1). (see n1 definition below)
5. Invest a fraction BF of the portfolio into the safe set (bonds)
6. From a set of equities invest the remaining fraction (1-BF) in the top n_eq equities sorted on MOM
7. Hold for one month and then repeat to rebalance
Definition of terms used by Keller and Keunig
– momentum (MOM): to be MOM = (last month’s close)/(SMA over lookback period) – 1
– lookback period (L): L is measured in months
– protection factor (a): a = [0, 1, or 2] is used to adjust the BF gain: n1 = a*N/4
– number of equities to be purchased (n_eq): n_eq = min(n,topM)
If you have any questions or comments, please don’t hesitate to send me an email.