Fascinating. I tested this mean reversion with scaling approach, and it works well across equities and fixed income sector futures. Especially in US markets. The rules don't work in commodities sectors. It'd be nice to see how it works in stocks mean reversion strategies like your Nasdaq 100 strategy.
Interesting ideas. Thanks for publishing and keep up the great work. Have you tried reducing the universe of ETFs to a logical set? For instance does it work on just the SPY sector ETFs or the iShares global ETFs?
Thanks! I dabbled with that but later dropped the idea. Let me tell you why because this consumed many hours :)
Whenever I prioritized high vol ETFs, the results were completely unstable. Investigating the individual trades, I realized the system was trading ETFs full of derivatives, even though I had selected only unleveraged, non-inverse ETFs in NDU's dynamic watchlist.
To solve that, I had to create a specific custom Python script that would search online for each of the 5K ETF names and try to infer if the ETF contained derivatives within its constituents. The script, of course, is an approximation: the only way to know for sure would be to manually check one by one (for 5K ETFs, that's a lot of work). So, to avoid the risk of trading ETFs containing derivatives, I left the ADV threshold high enough (1e8) and sorted the opportunities by turnover descending order.
But I learned an important lesson: even if a great data provider says a list of instruments does not contain leveraged products, we must double-check... because it might :)
Lovely write up. A few questions which I have, hopefully you get the time to answer:
1) Do we hold the ETF for as long as needed until 2 period RSI is over 70? I.e. no stop loss
2) If above answer is yes, then any instances of ETFs getting delisted or you lose 100% of your position value while in a trade?
3) I understand that for the starting 10% position it's executed in the next day's opening auction after a 2 day close above 75/ below 25, but when you're doing the next 20%, 30% & 40% is it's at the close auction. Do you wait until the next day for limit on close orders or do you do same day as when you got your open auction fill?
1) yes, no stop losses. They are famous for killing mean reversion strategies :)
2) yes, but that did not happened once. The liquidity filter (with high adv threshold) helps prevent that.
3) all executions are at open. To decide whether to start a trade or increase the position or exit a trade, we look at yesterday’s and the day before yesterday’s numbers
He was the best! His thoughts and ideas are extremely insightful!! In fact, it was tough to pick the quote for the article, because there’s so many great quotes from him! Another one that I love: “what I cannot create, I do not understand”.
Nice one Q and a timely reminder that I need to come back to MR strats on ETFs. One thing for sure that I'd like to do is use a curated ETF universe since ETFs, unlike stocks, can include some unusual strategies, have divergent costs, shorter and longer histories, etc. Leveraged and inverse ETFs as Clenow said are implicitly decaying too. Finally, chosing a universe of ETFs that are minimally correlated (although that may or may not test out, I don't find it valuable for MR on stocks). Then, as usual, trade a diverse set of strategies to trade over the mean reversion curve. Thanks for the mention : )
There are a lot of ETFs on the stock market, which often duplicate each other from different providers - Vanguard or Blackrock. Maybe it makes sense to narrow the ETF universe?
Fascinating. I tested this mean reversion with scaling approach, and it works well across equities and fixed income sector futures. Especially in US markets. The rules don't work in commodities sectors. It'd be nice to see how it works in stocks mean reversion strategies like your Nasdaq 100 strategy.
Interesting ideas. Thanks for publishing and keep up the great work. Have you tried reducing the universe of ETFs to a logical set? For instance does it work on just the SPY sector ETFs or the iShares global ETFs?
Thanks! Yes, I tried that... the results were unimpressive...
Great write up and strategy review! Easy to read and follow along with your ideas!
Might could try a filter to favor the higher volatility ETF’s for a mr strategy?
SetUpScore: atr(5)/C (in RealTest)
Look forward to reading more from you!
Thanks! I dabbled with that but later dropped the idea. Let me tell you why because this consumed many hours :)
Whenever I prioritized high vol ETFs, the results were completely unstable. Investigating the individual trades, I realized the system was trading ETFs full of derivatives, even though I had selected only unleveraged, non-inverse ETFs in NDU's dynamic watchlist.
To solve that, I had to create a specific custom Python script that would search online for each of the 5K ETF names and try to infer if the ETF contained derivatives within its constituents. The script, of course, is an approximation: the only way to know for sure would be to manually check one by one (for 5K ETFs, that's a lot of work). So, to avoid the risk of trading ETFs containing derivatives, I left the ADV threshold high enough (1e8) and sorted the opportunities by turnover descending order.
But I learned an important lesson: even if a great data provider says a list of instruments does not contain leveraged products, we must double-check... because it might :)
Wow! You definitely put the work in!
Lovely write up. A few questions which I have, hopefully you get the time to answer:
1) Do we hold the ETF for as long as needed until 2 period RSI is over 70? I.e. no stop loss
2) If above answer is yes, then any instances of ETFs getting delisted or you lose 100% of your position value while in a trade?
3) I understand that for the starting 10% position it's executed in the next day's opening auction after a 2 day close above 75/ below 25, but when you're doing the next 20%, 30% & 40% is it's at the close auction. Do you wait until the next day for limit on close orders or do you do same day as when you got your open auction fill?
Thanks!!
1) yes, no stop losses. They are famous for killing mean reversion strategies :)
2) yes, but that did not happened once. The liquidity filter (with high adv threshold) helps prevent that.
3) all executions are at open. To decide whether to start a trade or increase the position or exit a trade, we look at yesterday’s and the day before yesterday’s numbers
Hope it helps! Cheers!
ps, Feynman was a legend was he not?
He was the best! His thoughts and ideas are extremely insightful!! In fact, it was tough to pick the quote for the article, because there’s so many great quotes from him! Another one that I love: “what I cannot create, I do not understand”.
One of the most gifted human beings of our times
Nice one Q and a timely reminder that I need to come back to MR strats on ETFs. One thing for sure that I'd like to do is use a curated ETF universe since ETFs, unlike stocks, can include some unusual strategies, have divergent costs, shorter and longer histories, etc. Leveraged and inverse ETFs as Clenow said are implicitly decaying too. Finally, chosing a universe of ETFs that are minimally correlated (although that may or may not test out, I don't find it valuable for MR on stocks). Then, as usual, trade a diverse set of strategies to trade over the mean reversion curve. Thanks for the mention : )
There are a lot of ETFs on the stock market, which often duplicate each other from different providers - Vanguard or Blackrock. Maybe it makes sense to narrow the ETF universe?
This is a great point. I have in my backlog an algo idea to test based on what you are saying.
It's an algorithm to iteratively build a universe of tradable ETFs. The idea would be something like this:
- Loop through all ETFs above a certain liquidity threshold, sorted by mkt cap descending
- Add the ETF to the universe iff its correlation is below a given threshold, in comparison to all other ETFs already added to the universe