Watching for a Zweig Breadth Thrust Signal

Free Chart In Focus email
Delivered to you every week
Analysts are watching closely to see if we are going to get another Zweig Breadth Thrust Signal within 2025. Created by the late Martin Zweig, the ZBT triggers when a 10-day EMA of Advances divided by Advances plus Declines goes from below 0.40 to above 0.615 within 10 trading days. The numbers of historical instances are pretty low, which is intentional. Zweig wanted to find those rare times when breadth data switched suddenly from bad to really good.
Breadth data had been bad earlier in November and that resulted in achieving the first step, which is to get that EMA down below 0.40. It got to 0.393 on Nov. 20, 2025. Once it started rising above that 0.40 threshold, that started the clock to see if we can get the other criterion for this signal within the 10 trading day time window.
Back in 2015, I wrote an an analysis of all ZBT signals triggered from 1928 through 2015, showing that there were many great ones, some so-so, and some real losers. In recent years, this signal has been working better than it did decades ago. You can read that at https://www.mcoscillator.com/learning_center/weekly_chart/zweig_breadth_thrust_signal/.
Here is what the last 3 decades look like for this signal, and all of these signals were followed by nice uptrends. In 3 of these cases, though, one had to wait through a retest of the prior lows before one got to enjoy the strength that the signal promised.

As I write this on Nov. 28, 2025, we are only 5 days into the 10-day window, and the 10EMA is already up to 0.595. It only has a little bit more to go to get up to the 0.615 threshold. We need to keep seeing more strong breadth days to get there, and one big down day could be a setback which would scuttle the possibility this time if it happens. There are a whole lot of episodes of potential ZBT signals, but only a few that succeeded.
You can keep track of this very easily for yourself in any spreadsheet program, as long as you have access to data on Advances and Declines. For final calculations, I use data from the Wall Street Journal's web site. https://www.wsj.com/market-data/stocks/marketsdiary
You can get preliminary data throughout the trading day at https://www.wsj.com/market-data/stocks/us. I have used those preliminary data for this article, as the final data come out later each day. You can also fetch the A-D numbers from my web site's Breadth Data page. https://www.mcoscillator.com/market_breadth_data/
Here is a screenshot of what a simple spreadsheet looks like for calculating the Zweig Breadth Thrust signal:

The hardest part of this (and it is not all that hard) is doing the math for the 10-day Exponential Moving Average (EMA). The math of EMAs was only invented in the 1950s, and they are different from simple moving averages (SMAs) because the most recent data are weighted more heavily. Many analysts, including Zweig, refer to EMAs with a time duration such as 10 days. I have long preferred the originalist terminology coined by the late Pete Haurlan, who first introduced the use of EMAs for tracking stock prices in the 1960s.
Haurlan referred to EMAs by their "smoothing constants", which refers to how much weight is given to the latest datum. Haurlan knew that EMAs never really forget the old data like an SMA does. In an EMA, the older data just become decreasingly important. So to Haurlan (and to me), the smoothing constant is the important factor, more than some number of prior periods.
To convert a time period to a smoothing constant, one uses the formula 2/(n+1), where n is the number of periods. So for a 10-day EMA, n in that formula is 10, so the equation is then 2/11, or 0.18. So in Haurlan's original terminology, this would be an 18% Trend.
What that means is that each day's EMA value moves by 18% of the distance between yesterday's EMA value and today's new datum. So in that spreadsheet screenshot above, we see that the Nov. 26 EMA value was 0.5811, and the new datum for A/(A+D) is 0.6570. The difference between those is 0.0758, and so the EMA gets moved by 0.18 x 0.0758, or 0.01366.
The formula bar in the spreadsheet screenshot shows a simplified version of the math to calculate the EMA for cell F21. The same formula can be copied upward and downward within that column.
The column with the counter in that spreadsheet screenshot shows that we have until Dec. 5, 2025 to accomplish the task of getting this EMA up above 0.615, starting from day 0 which was when that EMA was last below 0.40. If you build this simple spreadsheet calculation for yourself, you can enter hypothetical or intraday values for Advances and Declines to see what it would take to accomplish the task of moving the EMA up high enough. But for the final calculations, you will need the final breadth numbers each day.
So what happens if we get to that 0.615 number, but on day 11? Great question. The top chart shows several instances of seeing this 10EMA get up above the 0.615 threshold but after the 10-day period. Generally speaking, the uptrend continued higher in those instances, although the one in late 2021 that took 11 trading days was an exhaustive up move and the downtrend resumed. I have not done an exhaustive study to show whether Zweig's 10-day specified period really is the ideal one, or whether his EMA thresholds of 0.40 and 0.615 are the best. One can do an infinite number of permutations of varying these numbers to try to optimize a signal. That can sometimes lead to interesting insights. It can also lead to "overfitting" of past data. Just about any trading system, or signal, is going to have bad signals. That is the world we live in.
The general point one should take away from this is that Gobs Of Breadth Is A Good Thing. There are lots of ways to quantify that, and there are other breadth thrust signals which other analysts have developed since Zweig introduced his. If you are inclined to tinker with these ideas, I encourage you to do so. You may not find a way to build a better mousetrap, but you will still probably learn some things along the way.
Tom McClellan
Editor, The McClellan Market Report
Oct 09, 2015
Zweig Breadth Thrust Signal |
Aug 09, 2024
Fosback Absolute Breadth Indicator Shows the Oversold Condition |
Jul 13, 2016
Gobs of Breadth: The Haurlan Index |