Simple 3 ETF Momentum Rotation

Here's a slight modification I've made to Tomer Borenstein's "Global Market Rotation". I've altered it slightly to help beginners (like myself) more easily play around with different combinations of three different ETFs and momentum time period. Beginner coders will enjoy the simplicity of this script. The default settings are a rotation between SPY, IWM, and SHY based on the best 50 day price change. The script selects the ETF which returned the highest gain over the previous 50 day period.

IWM is the largest small cap ETF and the second most active ETF next to SPY. Since 1978 the S&P 500 returned 11.7% annualized with 15% volatility. The Russell 2000 returned 10.3% with 19.5% volatility. During different time periods large caps or small caps may outperform the other.

During periods of weakness in SPY and IWM, money is moved into the iShares 1-3 Year Treasury Bond ETF which has a 10 year standard deviation of 1.35% and return of 2.35%. Alternatively considering current rates you could likely just move to cash for similar results!

Currently the results are promising with 68% win / 32% loss ratio, 8.45% CAGR from 2007 to current, 20.8 drawdown, and 0.6 sharpe. Although this strategy returns a lower CAGR than a 10 year SPY 'buy and hold' return of 10.64%, the drawdown is much lower compared to the 55% drop in the SPY during the last recession.

I've limited coding skills so please make suggestions!

Update Backtest

Much appreciated! Was looking to clone something similar this weekend to dip my toe into those waters for my long term account.


Here's a longer term backtest from 2003. Over this time period the CAGR is slightly better at 10.5 which matches the buy and hold return of the SPY, but with only a drawdown of 20%. The win loss ratio is slightly improved at 70 / 30 and sharpe at 0.75 Results show you can expect it to trade less than once a month.


Update Backtest


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.


This discussion is closed