Market Breadth Pattern Analysis

Market breadth pattern analysis is the third part of an overall market analysis consisting of (1) monetary conditions analysis for long term forces, (2) primary breadth trend analysis for intermediate term forces, and (3) market breadth pattern analysis for short term forces I believe affecting the broad stock market.

First of all, I would like to give credit to Stockbee’s Market Monitor (MM) which inspired me to look deeper into the importance of looking at stocks making significant moves (+/-4%) as a breadth statistic. Other popularly known breadth statistics include advance/decline numbers, up volume/down volume numbers, new high/new lows, and bullish percentage.

Using Market Breadth Statistics to Differentiate Counter Trend Move vs Trend Change

Perhaps one of the most stressful and difficult challenge for momentum trader is to identify whether counter trend move against us represent a change of trend or just a pullback move which stop all newbies out of the market before the trend continues its march.

Market breadth statistics help us do just that in the stock market. The premise is that market trend requires participation of all common stocks. Market trend cannot be sustained by trending move in just a handful of highly capitalized stocks.

In a bull market, money flows to the stock market as risk appetite grows and ultimately reach lower quality stocks. When risk appetite is not that great, only the best quality of them will continue to rise.

Near the end of a bear market, firstly there usually is a panic selling. Then less and less stock participate in its march down. Higher quality stocks which were sold during the panic will be accumulated by those in the know. As a result, participation to the downside diminish. Before the market return to bull market, though, participation from lower quality stocks is needed before a bull market can be sustained. Often, this start with bang! There will be repeated days with high number of stocks being accumulated without high number of stocks being distributed in between.

Now assume there is a  tendency for the market to move in a manner necessary to frustrate the majority of players. Short lived counter trend move is one such way for the market to frustrate the majority of us because it will turn our profitable position quickly into a loss and leave us behind before the market move in our favor again — but without us. Nothing is more frustrating than this. Money will flow from the accounts of these frustrated newbies to those few with more experiences.

Now, what is the most cost effective way for a counter trend rally in the market indexes to happen? Yes, move the few stocks with the most influence in the indexes. These are usually highly capitalized and liquid stocks. Being liquid, the transaction cost of moving them is minimal. Being highly capitalized, its move significantly affect the index. This operation cannot be done in less liquid small cap stocks. This is the key to the success of market breadth statistics in separating real trend change versus counter trend move in market indexes.

Thus, trend change requires wide participation among common stocks to significantly move in the same direction while counter trend move is associated with sharp move in market indexes without wide range participation from common stocks.

Market Breadth Pattern Analysis

The objective of market breadth pattern analysis is to objectively and mechanically detects trend continuation, exhaustion, and trend reversal in the broad market by looking at price actions of individual stocks more closely. In addition, awareness about important support and resistance levels are incorporated in the detection.

After extensive studies of past market breadth data, we have so far the following patterns. The names of the patterns are self-explanatory.

Type Trend Pattern
Trend Continuation In Bullish SidewaysBreakout
In Bearish DeadCatBounce
Exhaustion From Bearish FireSellExhaustion
From Bullish AccelRiseExhaustion
Trend Reversal From Bearish to Bullish SellOffReversal
From Bullish to Bearish RangeBoundSelling

Logically, these patterns only exist during certain phase of market cycle. For example, Sideways breakout bullish pattern will not be detected in a Weak market state. Such breakout might actually be a dead cat bounce. RangeBoundSelling will not be detected in a Strong market state because in a strong market, selling usually invite bottom dip buyers. That is why detection of prevailing market state is a very important part of this system. Up to today, you might read the market state reading casually. You should not, it is an important part of the system. In fact, on a stand-alone basis, using only market state reading, we will have a decent trend following system.

Pattern Exist in Strong Market Exist in Sideways Market Exist in Weak Market
SidewaysBreakout Yes Yes No
BreakResistance Yes Yes No
DeadCatBounce No No Yes
WeakMarketBreakDown No No Yes
FireSellExhaustion No No Yes
StopAtSupport Yes Yes Yes
AccelRiseExhaustion Yes Yes Yes
StopAtResistance Yes Yes Yes
SellOffReversal No No Yes
FailedBreakDown No No Yes
AccelDeclineExhaustion No Yes Yes
1BarReversal No Yes Yes
SupportsReversal Yes Yes No
RangeBoundSelling No Yes No
ResistReversal No Yes Yes

Brief Description of Each Pattern

Some key features of the patterns are described below:

Pattern Key Features
SidewaysBreakout Breakout in sideways market marked by repeated accumulation.
BreakResistance Breakout over significant resistance level accompanied by accumulation.
DeadCatBounce Distribution in weak market after weak bounce.
WeakMarketBreakDown Heavy distribution and breakdown in a weak market.
FireSellExhaustion Termination of several days of heavy distribution on down trending stocks.
StopAtSupport Index find it hard to cross below significant support level after several days.
AccelRiseExhaustion Index advance rapidly without much accumulation to accompany.
StopAtResistance Index find it hard to cross above significant resistance level after several days.
SellOffReversal Heavy accumulation after sell-off has been observed.
FailedBreakDown In a weak market, index breaks below support unsuccessfully.
AccelDeclineExhaustion Index falls in accelerating manner but without much distribution observed.
1BarReversal Index breaks recent low and reverse on the same day with many stocks showing activities.
SupportsReversal Index breaks support level and reverse on high accumulation.
RangeBoundSelling Breakdown in sideways market marked by repeated distribution.
ResistReversal Index breaks resistance, but failed to follow-through with accumulation.

Some Technical Detail to Obtain Market Breadth Data.

I first scan my universe of stocks, perform data cleansing to detect and adjust erroneous data, and select 3000 most liquid common stocks. This is an important first step, because garbage in, garbage out.

Then, I monitor and categorize them into three main categories: up trending stocks, down trending stocks, and consolidation stocks within one month time frame. Next, I look at last day price action to see whether the stock rise significantly on high volume (accumulated), fell significantly on high volume (distributed), or did not move much but still have high volume nevertheless.

Statistic Trend Last Day
DNDIST Down Trend Distributed
DNCONS Down Trend Consolidated
DNACC Down Trend Accumulated
CONSDIST Consolidation Distributed
CONSACC Consolidation Accumulated
UPDIST Up Trend Distributed
UPCONS Up Trend Consolidated
UPACC Up Trend Accumulated

Everyday I collected the number of stocks which satisfy the above eight conditions as shown in the following chart.

What Make a Strong, Weak, or Sideways Market

Strong Market

The broad market state is changed to Strong if there are:

  • not many distribution on consolidated stocks, and
  • many accumulation on consolidated stocks and up trending stocks, and
  • no repeated distributions on up trending stocks, and
  • market index is rising significantly together with many accumulation on consolidating stocks or up trending stocks.

Once the market is considered Strong, it will remain so until there are

  • repeated days with significant distribution on consolidating and down trending stocks, and
  • we observed more distribution on consolidating and down trending stocks than acumulation on consolidating or up trending stocks, and
  • the market index falls significantly together with many distribution on consolidating stocks or down trending stocks.

If we take Long position every time the market is Strong, then we will be in for most of major up trend. There will be some whipsaws but they are modest.

Weak Market

The broad market state is changed to Weak if:

  • it is not a Strong market, and
  • market index has dropped from its recent top significantly.

Once the market is considered Weak, it will remain so until

  • it switches to a Strong market.

If we take Short position every time the market is Weak, then we will be in for most of major down trend. There will be some whipsaws but they are modest.

Long, Short, or Exit Signals in the Market Timing System.

Bullish Patterns (To Enter Long)

  • SidewaysBreakout
  • SellOffReversal
  • FailedBreakDown
  • AccelDeclineExhaustion
  • 1BarReversal
  • SupportsReversal
  • BreakResistance

End of Bearish Pattern (To Exit Short or Enter Long with Tight Stop if You are Advanterous)

  • FireSellExhaustion
  • StopAtSupport

Bearish Patterns (To Enter Short)

  • DeadCatBounce
  • WeakMarketBreakDown
  • RangeBoundSelling
  • ResistReversal

End of Bullish Pattern (To Exit Long or Enter Short if Market fall significantly soon after)

  • AccelRiseExhaustion
  • StopAtResistance

Change of Platform to NinjaTrader

Update 19 Jan 2012: I have now switched back to using NeoTicker to display the market breadth pattern analysis. 

Recently I changed the platform to display my market timing system to NinjaTrader. Previously I used NeoTicker to generate and display the system. The following graph shows what each part of the section means in the new display.

You notice that the MarketPosition row does not match exactly what you read in forward testing track record displayed on daily market analysis. This happens because from time to time I slightly modify the logic or add new patterns but did not change the forward testing output. Otherwise, it becomes backtesting again.

Historical Back-testing Performance

The following historical charts show occurrences of the various patterns described above. The Bearish and End of Bullish Patterns are drawn as filled Down triangles just right below the Market State. The Bullish and End of Bearish Patterns are drawn as filled Up triangles further down. Market position if you have followed the patterns is shown the first row after SPX chart. Forward-looking track record of the system is included in each daily market analysis.


36 thoughts on “Market Breadth Pattern Analysis

  1. Is it possible to add a description of the bullish setups?

    Posted by Josh | October 6, 2011, 7:27 pm
  2. timelysetup,

    Nice work! ‘Objectively defined’ in a Google listing brought me to your site. Not only objective measurement, but, a logical approach and rational analysis Very rare.

    I’d been collecting notes. Is there some way to view this section as it was before your recent edits? The new sections are obvious. It’s the small edits (I *think* may have been made) I’m trying to resolve. (And I’m lazy.)



    Posted by pivot.point | October 15, 2011, 4:02 pm
  3. Hello,

    First of all thanks for putting all this information together and sharing with us. I saw your comments on stockbee and got interested in learning more about your market timing model. After reading this post, I have few questions, I hope you don’t mind;

    1- Is your definition of significant move with volume in individual stocks same as stockbee (4% +/- with increased volume?)
    2- For defining uptrend, downtrend, consolidation of stocks, are you using 21 days trend intensity or ROC?
    3- Do you consider 6 month trend intensity or ROC in defining stock momentum?

    Thanks again for your posts..

    Posted by iahmed | October 16, 2011, 8:10 am
    • Hi Ahmed,

      I prefer to discuss the concepts only in this blog, not the detail. I believe that is the way to actually help others. It is when we really put our hands dirty that we will create something of value for ourselves. I just borrowed the main concepts from Stockbee and then explore things on my own without being constrained with how Stockbee defined certain variables.

      To answer your specific questions:

      1. No, it is not exactly the same. I take into consideration percentage change, dollar change (to resolve the issue of small priced stocks), typical range, typical volume, breaking high or low and some other minor adjustments. Each variable is brought to tackle certain issues which I think is important to really judge whether there is an accumulation on volume.

      2. In this system, uptrend is detected if a stock reach new high more recently than new low within one month time frame and the distance from recent low to last close is significant with regards to its typical range. It is just the opposite with down trend. ROC is not a good trend measure. Trend intensity is a good measure of trend, but it will rank low priced stocks too highly.

      3. In my opinion, trend intensity is a more superior definition of momentum than ROC.

      Posted by timelysetup | October 16, 2011, 10:52 am
      • Thanks.

        BTW, I remember seeing on your blog that you apply similar breadth concepts on intraday basis using bid/ask volume. There is an excellent blog, who has done similar studies and is veteran trader from the early day. You might want to look at his work. (

        Posted by iahmed | October 16, 2011, 11:07 am
      • Yes, I attempt to use similar concept of breadth on intraday basis. Thank you for the link.

        Posted by timelysetup | October 16, 2011, 11:43 am
      • Iahmed, I believe it’s the bells and whistles which I added to define accumulation which helped prevent the system from producing repeated high number of up moving stocks from 9 Aug 2011. Whereas on MM, you will see many days with high number of up 4%+ right after 8 Aug. Such occurrence would have triggered some bullish signals on my book. But again, it is a question of how we use the data.

        Posted by timelysetup | October 16, 2011, 12:05 pm
  4. Yes, I see that. As I have understood during high volatile periods MM numbers go out of whack and one either can stay away from market (as defined by VIX above 150 MA, as someone has suggested on the stockbee site), with the downside that you can miss reversal of market and miss good part of the move (see oct 4), or somehow filter such values as you have done here and still stay in the market and wait to catch the reversal. I am learning from your site 🙂

    Posted by iahmed | October 16, 2011, 12:16 pm
  5. You indicate that once the state is Weak it remains so until it becomes Strong, but, that the Strong state may terminate without the state becoming Weak, it seems that the only opportunity for Range Bound is following a Strong state and prior to a Weak state, i.e., no Range Bound state may occur between the conclusion of a Weak state and the initiation of a Strong state. Is this true?

    Posted by pivot.point | October 16, 2011, 6:15 pm
    • yes. that’s how i define it. Of course you can always define it differently.

      Posted by timelysetup | October 16, 2011, 10:16 pm
      • timelysetup,


        I can guess a couple reasons why you might do this; evidence on the most likely shape of a recovery, or, a conviction that to anticipate the resumption of weak conditions is to error on the side of safety. I’d be interested to hear a little of your actual thinking. (I’ll wait to get hold of your methods before I try to modify them.)

        Thanks again.


        Posted by pivot.point | October 17, 2011, 12:20 am
      • Mainly because of my observation that bearish market tends to exhibit sharp and furious counter-trend rally only to give all back in no time. Dead cat bounce. So I guess you are right. At least historically, it is more prudent to assume resumption of selling after a bounce in a bearish market.

        Although my system is currently Long, it is always ready to go Short again as the market is still in a weak market state. That is, what we have witnessed since Oct 4 may really be just a dead cat bounce. Only time will tell.

        Posted by timelysetup | October 17, 2011, 1:07 am
  6. timelysetup,

    since you are judging last day’s action by looking at three categories (uptrend, downtrend and consolidating stocks in a month timeframe). do you have any context guideline on interpreting last day’s action. for example;

    if market is in uptrend and hits a resistance and sells off (see oct 17), would you pay more attention to distribution in uptrend stocks, or downtrend stocks?

    Posted by iahmed | October 19, 2011, 11:27 am
    • Ahmed,

      the focus will be different when we are trying to isolate trend continuation, trend exhaustion, or trend reversal. For down trend exhaustion, I focus on down-trend distribution (existence and subsequent annihilation), for trend continuation I focus on consolidating stock accumulation/distribution, for trend reversal, I see whether there are still many continuation on trending stocks. I put least emphasis on distribution of up-trending stocks or accumulation of down-trending stocks.

      Posted by timelysetup | October 19, 2011, 2:42 pm
  7. Thank so much. This informaton will make my dreams cuhm true. I wold like to subscribe. HOw to do?

    Posted by Ramil | October 19, 2011, 7:01 pm
  8. I just saw your update this morning and noticed you mention a breadth-based stop loss that you used. I am guessing that it means when a certain breadth measurement hits a pre-determined value, exit the position? Can you describe this in a little more detail if possible? thx much

    Posted by mike | October 24, 2011, 8:30 am
    • Hi Mike,

      Basically I look at both the number of days with more accumulation/distribution as well as the cumulative measurement of accumulation minus distribution. If I see more days with accumulation and in total there are more accumulation than distribution recently, then I will terminate Short exposure.

      Posted by timelysetup | October 25, 2011, 1:05 am
  9. timelysetup,

    OK, ran out of time for a while, but, trying again to understand your methods. Starting at the beginning, is your list of 3k stocks a known list, say the Russell 3000? If not, what are the criteria you apply in order to assemble your list, and, what constitutes the universe of stocks with which you begin?


    Posted by pivot.point | November 5, 2011, 7:36 pm
    • No, it is not from Russell 3000. But I would imagine it will not make much difference because Russell 3000 is a sound universe for this system. It is perhaps my habbit to complicate things a bit.

      Every month I will update my initial universe by identifying current most active stocks from finviz.,ind_stocksonly,sh_avgvol_o50,sh_price_o1&ta=0. This will pick up new IPOs. All stocks in this list are traded in major US exchanges.

      That’s is my initial universe. Then I will maintain only stocks incorporated from the following countries: “USA”, “Canada”, “Switzerland”, “Brazil”, “China”, “Ireland”, “Netherlands”, “Bermuda”, “Luxembourg”, “France”, “Sweden”, “Greece”, “Taiwan”, “South Africa”, “Australia”, “United Kingdom”, “Belgium”, “Japan”, “Israel”, “Hong Kong”, “Singapore”, “Germany”, “Channel Islands”, “Italy”, “Cayman Islands”, “India”, “South Korea”, “New Zealand”, “Monaco”, “Norway”, “Netherlands Antilles”, “Bahamas”, “British Virgin Islands”. Some countries are really in play, say Indian or Chinese companies. Some other countries are important from basic resources perspective. Yet some countries are important for certain industries. Some small territories host important companies. Thus, I do not limit my universe only for stocks incorporated in the US.

      Then I remove all REITs. I don’t consider REITs as common stocks.

      Then I will run my program to get the 3000 most liquid stocks based on typical trading volume and typical dollar volume for the past 1 month.

      Posted by timelysetup | November 6, 2011, 10:28 am
  10. timelysetup,

    Thank you for the very thorough reply.

    No problem with complicating things, it precedes simplification.

    Removing the REITs makes sense. Do you ever think about carrying this idea further? Lowry Research claims that about half of the NYSE is made up of non-operating companies ( They contend that this has increased over the years and has distorted the breadth numbers.

    It seems that typical dollar volume might be seen as some function of typical trading volume. I can imagine ranking by, say, 21-day simple moving average of volume, and, ranking by volume weighted average price over the same period, then taking the highest ranked 3k symbols common to both lists. Is this on the right track?

    Thanks again for your efforts here.


    Posted by pivot.point | November 6, 2011, 6:04 pm
    • I addressed all issues raised in the report you mentioned, except for their preference for US domestic stocks only. I removed all funds (Stocks Only (ex-Funds) filter in Finviz), preferred shares (I don’t think finviz includes preferred shares on its stock listing), and REITs. But I still include foreign firms actively traded in US exchanges for reasons I mentioned in my previous comment. In addition, I include stocks traded in Nasdaq too, not just NYSE.

      The method you described to get the 3000 most liquid stocks is reasonable. It is not so different from my method. I use “median” rather than “average” though.

      Posted by timelysetup | November 7, 2011, 12:22 am
      • timelysetup,


        I should have read the reference more closely — recall discussion, apparently elsewhere, regarding other defects such as GE-style companies. Please forgive the waste of time.


        Posted by pivot.point | November 7, 2011, 3:51 am
      • pivot.point,

        I thanked you for the article you posted. There was definitely no time wasted. 🙂 I am happy to know that I have addressed some issues identified by other parties.

        As for other “defects” such as the prevalence of “interest-rate” sensitive companies in NYSE (think about utility companies, GE, etc), I am still reluctant to remove them from the list. I suppose including them will add to the diversity of the universe of companies and thus make the statistics more robust.

        Posted by timelysetup | November 7, 2011, 7:11 am
  11. Hi Timelysetup,

    I am trying to understand how you determine Consolidation if you define “uptrend is detected if a stock reach new high more recently than new low within one month time frame and the distance from recent low to last close is significant with regards to its typical range. It is just the opposite with down trend. ”


    Posted by Tom Chun | November 7, 2011, 4:01 pm
    • Any stock that is not trending up or down, I would consider as consolidating.

      Posted by timelysetup | November 7, 2011, 9:27 pm
      • Hi Timelysetup,

        Sorry for not explaining my confusion. It seems to me that your definition only has 2 outcomes. That is if a stock reaches new high more recently than new low it is in an up trend or if it reaches new low more recently then new high then it is down trending. I apologize if I am over simplifying your definition. Thank you for helping to clear up my thinking.

        Posted by Tom Chun | November 7, 2011, 10:06 pm
      • There is an important second condition: “and the distance from recent low to last close is significant with regards to its typical range”. The conditions are “AND” condition. So, you will see cases where uptrend or downtrend are not satisfied.

        Posted by timelysetup | November 8, 2011, 7:09 am
  12. Hi, How can I get the code for this setup in Ninja?


    Posted by Ranuka | November 23, 2011, 8:03 am
  13. timelysetup,

    Happy New Year!

    Sorry to do this in fits and starts, but, in an earlier exchange you mentioned that you update your 3k list of stocks monthly. May I ask, do you do this as of the close on the last day of the month, or, maybe over the first weekend using the close of the previous Friday? However you do it, I’d like to see if I can independently match your list starting from the Finviz data for the cutoff day you use.

    Also in an earlier exchange, we discussed getting the 3k most liquid stocks based on typical trading volume and typical dollar volume for the past 1 month. Digesting your comments, I’m inclined to take the median value of volume during the previous 21 sessions as the ‘typical trading volume,’ and, the median value of closing price during the previous 21 sessions times the median value of volume during the previous 21 sessions as the ‘typical dollar volume.’ (Or, possibly, ‘typical dollar volume’ might be the median value during the previous 21 sessions of each session’s closing price times volume?) Then, rank by these values and take the first 3k symbols common to both lists. True?



    Posted by pivot.point | February 28, 2012, 5:04 pm
    • Hi pivot.point,

      I actually do not have specific schedule to update the 3k list. But I do it roughly once a month. From the screener which I posted above, I will get around 3,360 stocks as of few days ago. I can email you this.

      For the typical volume, I simply use median volume of the past 25 trading days and remove those below 50k. Then I calculated median true-range of the past 25 trading days multiplied by median volume of the past 25 trading days. I take the largest 3,000.

      Posted by timelysetup | March 3, 2012, 12:34 pm
      • timelysetup,

        Thanks for the reply and the email. Will let you know how close I come to matching your list, but, probably not until next weekend.

        Thanks again,


        Posted by pivot.point | March 4, 2012, 2:29 am

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Enter your email address to follow this blog and receive notifications of new posts by email.

Join 133 other followers

Blog Stats

  • 63,318 hits
%d bloggers like this: