February 22, 2017

Country ETF Rotation – Reader’s Suggestions

My last post on Country ETF Rotation generated several ideas of what to test to improve the results. See the original post for the list ETFs being traded. One important test I left out from the original post was a baseline case. An idea applied to all the tests was trading more ETFS. For all tests, I will be showing results of trading (2,5,8) ETFs in the spreadsheet. Testing is from 1/1/2007 to 12/31/2016.

Baseline

Here are the buy and hold results of VEU, the all world ex-US ETF. From this, I can tell that my goals for this test on the last post were much too high for CAR. I also added the results for Buy and Hold for SHY and IEF since these are used for our safety ETF in some tests.

Idea: Sum the Ranks

The first idea is simply to add the ranks of multiple timeframes, instead of using one rank only.

Rules

  • At the end of the month,
    • Consider ETFs only with the 21 day moving average of Close * Volume over $5 million
    • RankA is rank of 3 month returns
    • RankB is rank of 6 month returns
    • RankC is rank of 9 month returns
    • RankD is rank of 12 month returns
    • RankFinal = RankA + RankB + RankC + RankD
  • Buy the top (2,5,8) ETFs on the next open
  • But if the top ranked ETF is below the their (6,12) month moving average, then instead of buying the ETF buy the alternative ETF(SHY,IEF). The spreadsheet also shows uses a filter if (6,12) month return is negative.

Results

Without the filter, these results are worse than buy and hold. With the filter, they are still worse than buy and hold on IEF. Nothing here.

 

Idea: Reverse the Rules

A simple idea of reversing the original test rules for ranking.

Rules

  • At the end of the month,
    • Consider ETFs only with the 21 day moving average of Close * Volume over $5 million
    • Rank the ETFs from low to high of their (3,6,9,12) month returns
  • Buy the top (2,5,8) ETFs on the next open
  • But if the top ranked ETF is below the their (6,12) month moving average, then instead of buying the ETF buy the alternative ETF(SHY,IEF)

Results

These results got me excited. The CAR was in the high single digits with low drawdowns. No correlation with SPX. But then I then investigated what percentage of the profits was coming from the safe ETF. It is quite high. This is not bad but would happen when these ETFs started doing well?

 

Idea: Use mean reversion rule – % off High

The next idea is to use a short term mean reversion rule for rank 1.

Rules

  • At the end of the month,
    • Rank1 = rank the ETFs by the percent off their (5,10,15,20) day high
    • Rank2 = rank the ETFs from high to low of their (3,6,9,12) month returns
    • Rank3 = Rank1 + Rank2
    • Rank rank3. If ties occurs, use (Rank1,Rank2) as the tie break.
  • Buy the top (2,5,8) ETFs on the next open
  • But if the ETF is below the their (6,12) monthly moving average, then instead of buying the ETF buy the alternative ETF(IEF)

Results

Now we are seeing some good numbers. CAR above 10% and DD under 30%. Surprisingly the correlation number is also under .50 which is what I was looking for in the previous post. What I don’t like is that there is large gap between the top results and those underneath them. But this looks like an area of promise.

Idea: Use mean reversion rule – RSI

This time we use RSI.

Rules

  • At the end of the month,
    • Rank1 = rank the ETFs by RSI(N) where lower is better. N of (5,10,15,20)
    • Rank2 = rank the ETFs from high to low of their (3,6,9,12) month returns
    • Rank3 = Rank1 + Rank2
    • Rank rank3. If ties occurs, use (Rank1,Rank2) as the tie break.
  • Buy the top (2,5,8) ETFs on the next open
  • But if the ETF is below the their (6,12) monthly moving average, then instead of buying the ETF buy the alternative ETF(IEF)

Results

Again, we are seeing some potential. A recent sell off seems to help.

Idea: Use mean reversion rule – Recent Return

Now we just reverse the return rank for rank 1 to prefer self offs.

Rules

  • At the end of the month,
    • Rank1 = rank the ETFs from low to high of their (1,2,3) month returns
    • Rank2 = rank the ETFs from high to low of their (6,9,12) month returns
    • Rank3 = Rank1 + Rank2
    • Rank rank3. If ties occurs, use (Rank1,Rank2) as the tie break.
  • Buy the top (2,5,8) ETFs on the next open
  • But if the ETF is below the their (6,12) monthly moving average, then instead of buying the ETF buy the alternative ETF(IEF)

Results

This produced the best results. Decent CAR with low drawdown and no correlation. I should explore this one more to see if there is something worth trading.

Spreadsheet

File the form below to get the spreadsheet with lots of additional information. This includes yearly breakdown, all the variation results, holding 1-8 ETFs and much more.

Final Thoughts

Thank you for all of you that posted ideas to test. Dong the research took longer than expected but it was worth it. As always if you have an idea, put it in the comments below.

Backtesting platform used: AmiBroker. Data provider:Norgate Data (referral link)

Good quant trading,

Fill in for free spreadsheet:

spreadsheeticon

 

Click Here to Leave a Comment Below

Alan Cohen - February 22, 2017 Reply

How about ranking w Money Market as the Safe ETF. We may be entering a period when Interest rates will go up, maybe for years and the safe ETF’s will no longer be as attractive. At least the Money Market option is closer to reality.
alan

    Cesar Alvarez - February 22, 2017 Reply

    In some of the tests I use SHY as the safe ETF.

Alexander Horn - February 22, 2017 Reply

Hola Cesar,

great post and interesting tweaks!

Here another one you might try out. We have good results doing the ranking with a modified Sharpe Ratio: SR = Return / (Volatility ^ Volatility Attenuator). This allows you to give different weights to the volatility:

Volatility Attenuator = 0-1: Only Return based towards classical SR
Volatility Attenuator = 1: Classical Sharpe
Volatility Attenuator >1: Higher sensitivity to Volatility, tending towards a minimum volatility ranking.

You can run a brute-force optimization each period with an allocation step size of 10%, no need for solver optimization.

Here results: https://logical-invest.com/portfolio-items/the-top-4-world-country-strategy/

More about modified Sharpe: http://www.logical-invest.com/universal-investment-strategy/

We employ this in different variations, very stable over broad parameter range.

Happy to exchange more,
Salu2 de tierra santa,
Alex

    Cesar Alvarez - February 22, 2017 Reply

    Overall not a big fan of SR but this is interesting. I will have to look into it. Thanks for sharing.

Nick de Peyster - February 24, 2017 Reply

Did you create in- and out-of-sample data? How did you protect against data mining?

Nick de Peyster
http://undervaluedstocks.info/

    Cesar Alvarez - February 24, 2017 Reply

    I did not create a in & out sample data. Long story short, I rarely do that because I think you are mostly fooling yourself most of the time. But more importantly in this case the data only goes back to 2007. Not enough time to do both in & out. As to protecting for data-mining. That is mostly a grey area question where each individual needs to decide when they have crossed that line.

Leave a Reply: