Sometimes what seems logical and helpful, is not and needs to be reconsidered. This is my conclusion with the sector breadth models. They are logical, and perhaps helpful at times, but they do not add value when it comes to timing trends in the sector SPDRs. A simple StochClose strategy performed better overall.
This article will quantify signals for three breadth models using the sector SPDRs. The article is rather long, but it was a necessary process because I wanted to show that sector breadth models add value. Alas, they do not and I am going to abandon them in favor of price-based analysis. Knowing what to ignore is a big part of the analysis process.
Note that I am just talking about sector breadth here. The broad market breadth model for the S&P 500 still has value. This does not mean I will totally abandon breadth indicators. I will continue to follow the indicators, but use them in a more discretionary manner. For example, I recently wrote a post on waning participation in a medium-term breadth indicator for the Nasdaq 100.
Sometimes Logical Systems Break
I am currently reading Unknown Market Wizards by Jack Schwager (Amazon affiliate link here). Like all of Schwager’s books, it is an awesome read full of valuable insights. I am making lots of notes and plan a write up in the coming weeks.
There are eleven wizards and only one is purely systematic, and also has the lowest returns, by far. Just 20% per year over the last twenty years! Seems to be that discretionary traders are the ones that really hit the ball out of the park. In any case, Marsten Parker, the systematic trader, made some excellent points that apply to any backtest. Parker asserts:
The lesson systematic traders should draw from this chapter is that sometimes abandoning a system is the right decision.
Sector Breadth Model
The 3 indicator sector breadth models were designed with logical parameters and relatively few rules. I have been using sector breadth for some twenty years and keeping the sector breadth model since 2010. As with any model, it has produced good signals, whipsaws and bad signals. I never backtested these models because I did not have the correct historical data (until now). I simply eyeballed the signals and accepted the logic as robust.
After extensive testing over a 20 year period, it seems that sector breadth signals are more in the camp of sentiment, seasonality and overextended conditions. They are all secondary to price and price models simply work better.
Tracking sector breadth indicators takes time and effort, and it better damn well be worth it. Unfortunately, the evidence suggests that sector breadth indicators do not add enough value on a consistent basis across all sectors. To add measurable value, a breadth model should outperform simple price-based systems (higher returns, lower drawdowns and higher Profit Factors).
Market Cap Weighting to Blame?
The S&P 500 and its sectors are weighted by market cap. This means the largest stocks have the highest weightings and a bigger influence on price changes in the sector SPDRs. The table below shows the 11 sectors, their weight in SPY, the weight of the top ten stocks and the number of stocks in each sector.
On average, the top ten stocks in each sector account for 63% of the sector. XLK has 75 stocks so this means 13.3% of the stocks account for 66.6% of the sector. XLC has just 22 stocks and the top ten account for 78.5% of the sector. Breadth indicators, which treat all stocks equally, are not as effective when price is driven by the largest components.
Five sectors account for two thirds of the component stocks in the S&P 500. XLK, XLV, XLY, XLF and XLI have 337 stocks for an average of 67.4 stocks per sector. The remaining six sectors have 163 stocks for an average of 27 stocks. Breadth indicators derived from small groups also seem to be less effective.
Breadth Indicator Overview
Here are the indicators used in the backtests:
Breadth Thrusts: 10-day EMA of Advance-Decline Percent. Bullish with surge above +30% and bearish when plunge below -30%. AD% = (Advances – Declines)/Total Issues
Leaders vs Laggards: High-Low Percent. Bullish with move above +10% and bearish with move below -10%. HL% = 52-week highs – 52-week lows / Total Issues
Trend Participation: %Above 200-day SMA. Percentage of stocks above the 200-day SMA. Bullish with move above 60% and bearish with move below 40%.
Trend Participation: %Above 150-day SMA. Bullish with move above 70% and bearish with move below 30%.
Trend Participation: %Above 100-day SMA. Bullish with move above 80% and bearish with move below 20%.
%Above 200-day EMA is also be tested. Testing shows the exponential moving average (EMA) crossovers generate more whipsaws (bad signals) than simple moving (SMA) crosses.
Here are the models used in the backtests. Models are Net Bullish when the majority of indicators are on bull signals (at least 2 of 3 for a 3 indicator models and 3 of 5 for a 5 indicator model. Models are Net Bearish when majority of signals are bearish.
The 3-indicator Breadth Model (EMA) uses the Breadth Thrust, %Above 200-day EMA and High-Low Percent. The chart below shows the Industrials SPDR (XLI) with signals over the last two years (green and red arrows).
The 3-indicator Breadth Model (SMA) uses the Breadth Thrust, %Above 200-day SMA and High-Low Percent. The chart below shows an example with the Finance SPDR (XLF).
The 5-indicator breadth model uses the Breadth Thrust, %Above 200-day SMA, %Above 150-day SMA, %Above 100-day SMA and High-Low Percent. The chart below shows an example with the Technology SPDR (XLK).
The Communication Services SPDR (XLC) was extracted from the Technology SPDR (XLK) and Consumer Discretionary SPDR (XLY) in June 2018. For testing purposes, I combined the Technology and Communication Services sectors to create the breadth indicators and used XLK for buying and selling.
The Real Estate SPDR (XLRE) was extracted from the Finance SPDR (XLF) in October 2015. XLF breadth indicators prior to October 2015 include Real Estate stocks. Testing for XLRE is from October 2015.
The breadth indicators were created using Amibroker and they are based on historical constituents. This means only stocks that were part of the sector at the time are included. The indicators are based on data that is adjusted for splits and special distributions, but NOT for ordinary dividends.
The testing period ran from 2/1/2001 to 2/1/2021 (20 years) for nine sectors (XLK and XLC were combined), while testing for XLRE started from October 2015. Dividend adjusted data was used in the testing because the testing period covers 20 years.
3 Indicator Model (EMA)
The 3-indicator Breadth Model (EMA) uses the Breadth Thrust, %Above 200-day EMA and High-Low Percent. These are the same as the indicators from StockCharts. The system buys when at least two of the three indicators are net bullish and sells when at least two of the three are net bearish. Over the 20 year period, XLK, XLY, XLI and XLU were the only sectors to show a Compound Annual Return above 5%. Only three sectors (XLK, XLY and XLP) produced Profit Factors above 3. Not very impressive.
3 Indicator Model (SMA)
This model uses the same indicators as above, but changes from %Above 200-day EMA to %Above 200-day SMA. Testing stocks in the S&P 500 shows the EMA generate more signals and whipsaws than SMAs. Moreover, SMAs in generate higher returns, lower drawdowns and better Profit Factors. Five sectors generated Profit Factors above 3 and the average Profit Factor was 3.6 (vs 2.82 when using %Above 200-day EMA). Even so, only four sectors produced a Compound Annual Return above 5% (XLK, XLY, XLI, XLU).
5 Indicator Model
This model uses the same indicators as above with the addition of %Above 150-day SMA and %Above 100-day SMA. Broadening the model improved the results as the average Win% reached 49% and the average Profit Factor exceeded 4. Nevertheless, only four sectors generated a Profit Factor above 3 and only four produced a Compound Annual Return above 5% (XLK, XLY, XLV, XLU). Again, not that impressive.
5 Indicator Model with SPX Trend Filter
Next we add an S&P 500 trend filter to the five indicator model. The system buys when 3 of the 5 indicators are bullish and the 5-day SMA is above the 200-day SMA for the S&P 500. This insures that the system only takes signals when the S&P 500 is in a long-term uptrend (bull market).
There are noticeable improvements with seven sectors generating a Compound Annual Return above 5% and five sectors producing Profit Factors above 3. The average return improved and the average Profit Factor exceeded 5. This is the best result so far, but how does it compare to a simple price-based system?
StochClose Signal Performance
The chart below shows the Healthcare SPDR with StochClose (125,5) in the lower window. The green and red arrows show the bullish and bearish signals over the last two years for reference. Note that StochClose turns bullish with a cross above 60 and the signal remains bullish until a cross below 40, which triggers a bearish signal. StochClose is the 125-day Stochastic Oscillator based on closing prices and a 5-day SMA is used for smoothing.
The next table shows results when taking StochClose signals based on price for the sector SPDRs. The Compound Annual Return exceeded 5% for five sectors and the average CAR was the highest so far (5.48%). The Profit Factor exceeded 3 for only four sectors (XLK, XLY, XLV, XLP) and the average Profit Factor slipped below 4.
As far as overall return, this system generated the most profit so far because it was invested 72% of the time (average exposure) and the average return was 5.48%. In contrast, the prior system was invested just 60% of the time and the average return was 4.97%, even though the Profit Factor was higher.
StochClose with S&P 500 Trend Filter
This last system buys when the active StochClose signal is bullish and the 5-day SMA is above the 200-day SMA for the S&P 500. StochClose triggers bullish with a cross above 60 and remains bullish until a cross below 40. In the example below, StochClose for XLY triggered bullish on April 30th (middle window), but the 5-day SMA for the S&P 500 did not cross above the 200-day SMA until May 29th (bottom window). Thus, the buy signal for XLY did not trigger until May 29th, which is when the S&P 500 filter turned bullish. This method insures participation in sectors that triggered bullish before the trend turned up for the S&P 500. A sell signal triggers when either StochClose triggers bearish or the 5-day SMA crosses below the 200-day SMA for the S&P 500 (red arrows).
With the addition of the SPX trend filter, the Compound Annual Return exceeded 5% for seven sectors and the average return was 5.99%. The average Maximum Drawdown was the lowest, the Win% was the highest (53%) and the Profit Factor was above 5. Also note that the Profit Factor exceeded 3 for seven sectors.
The next table summarizes the results for the six backtests showing the averages for the ten sectors. Notice how the Compound Annual Return gradually builds and ends at 6%. Exposure, which measures the percentage of time invested, is near 70% without an SPX trend filter and drops when the trend filter is added.
The Maximum Drawdown (MDD) also improves when the trend filter is added, as does the Win%. In fact, the Win% hit 50% and the Profit Factor exceeded 5 only when the trend filters were present (green outline). Thus, the odds are much more in our favor when the S&P 500 is in an uptrend (5-day SMA above 200-day SMA).
Focus on the Five Key Sectors
The six biggest sectors account for around 84% of the S&P 500, but the Communication Services SPDR (11%) has only been around since June 2018 and has just 22 stocks. XLC cannot be used for backtesting prior to 2018 and has relative few stocks so I elected to lump it with the Technology SPDR. XLC aside, the top five sectors account for around 73% of the S&P 500. The other five sectors are defensive (XLP) or too small to make a difference in broad market movements. XLE, XLB, XLRE and XLU account for around 10% of the S&P 500.
XLK, XLY, XLV, XLF and XLI are most the important sectors in my book. The next table shows results when taking signals in these five sectors and ignoring the rest. Performance improves across the board. The last line shows StochClose signals combined with S&P 500 timing (green shading). This system generated a 7.5% Compound Annual Return, produced a 53% win rate and had a Profit Factor above 7. Again, StochClose and broad market timing win out.
And now for one more test… I ran a little test that buys each sector in equal amounts when the majority (3 of 5) have active bullish StochClose signals and the 5-day SMA for the S&P 500 is above the 200-day SMA. Thus, the majority of the big five are in uptrends and the S&P 500 is in an uptrend. The system sells all five when the majority have bearish StochClose signals or the S&P 500 moves into a downtrend (5-day below 200-day). Unsurprisingly, the results are similar to the last line in the test above.
As noted at the beginning, the breadth models did not add any measurable value overall. When testing all ten sectors, returns did not exceed 5% until the StochClose indicator was used for signals. Results for the breadth models improved when focusing on the five most important sectors, but simple StochClose signals with broad market timing still produced comparable, if not better, results.
Of the ten sectors, two stood out for outperformance and two for underperformance. Can you guess which ones? The Technology SPDR and Consumer Discretionary SPDR were the best performing overall. On the flipside, the Finance SPDR and Real Estate SPDR were the worst performing overall.
The Utilities SPDR and Consumer Staples SPDR performed better without a trend filter for the S&P 500. This makes sense because these two are defensive sectors that tend to hold up better when the S&P 500 trends down.