Thanks for the link but I am specifically interested in any papers showing a statistically significant lead lag type relationship between currencies and country performance that extends to the period prior to quantitative easing (I have not been able to find one).
I looked at this topic from 3 years ago and based on Steve’s method developed a model that picks country ETFs based on the performance of their currency ETFs. I think this is a good method, because momentum ranking does not work.
Here is the link to the model description, which can be replicated using information contained in this view-thread. https://imarketsignals.com/2018/performing-us-market-im-country-rotation-system/
Thanks for the information. I’d like to update and add a risk on/off filter to this country ETF strategy. Unfortunately, I have not been able to get the base system (ranks by weakest currency) to work. Am I right that we create a custom formula? I’ve updated the text above to remove currency ETFs that are no longer available… my feeble simulation attempt is included below
How can this work in a ranking system? You are not measuring anything.
You want to measure the performance of the currency ETF over a specific period. For example, 1 year. Then this would be
Close(0,GetSeries(“FXA”))/ Close(252,GetSeries(“FXA”)) instead of GetSeries(“FXA”) .
Change your formula accordingly, with lower being better, and you will have a functioning ranking system based on the one-year performance of the currency ETFs.
Thank you for your responses, although I still do not understand a good way to do this. I’m willing to brute force calculate the total return for each currency ETF over the past year, then use an Eval function to set the ticker based on the ranking of the currency return (weakest is best). When I use showvar to create a variable for the total currency return I get an error.
The typo fixes the currency strength and we get an output which we can compare. It’s notable that there are some distributions which may not be included when just using close price. Then I want to create a variable that buys SPY when UUP is weakest, DXY when FXY is weakest, EWA when FXA is weakest, and FEZ when FXE is weakest. However, the output of the UUPRank showvar is always zero. Any ideas why?
This seems to work correctly for the 4 country ETFs SPY,EWA,DXJ,FEZ. TBH, the system isn’t great and doesn’t respond well to an absolute momentum filter. This is a weekly rebal and the system fades with longer rebal times. Ranking by yearly currency change (weak is better) seems to work better than 6 months or 3 months. I’d rather just trade a monthly SPY vs. VEA dual momo system…
This is my live model with 24% annualized return since 2009. Does a lot better than SPY despite the larger drawdown during the covid recession.
At least there is a rational to the ranking system, unlike any of the other ETF ranking system which are momentum based.