Do It Yourself IndexDefinitions
Below are some popular market breadth indexes that could be constructed using the already available IndexDefinitions, either the built-in or
MS123 IndexDefinitions. For thorough descriptions of the many dozens of various market indices, check out Gregory Morris' excellent book "The Complete Guide to Market Breadth Indicators".
Try this at home!
Indexes based on Advancing/Declining issues
- Absolute Breadth Index (Fosback)
- To build it, simply pass an "Advancing-Declining" index to DataSeries.Abs(). Norman Fosback suggested that taking the absolute value of the index shows market activity (or its lack). When the difference is high, the price changes are also big, so the market might be closer to a bottom than a top. When it's low, the market is less active or stalling and thus can be closer to a top.
- Advance Decline (Fugler)
- If the "Advancing-Declining" value is positive on N successive bars, it's a "Buy", and vice versa (idea by technical analyst George Fugler). To build the indicator, apply the CumUp or CumDown indicator with the lookback = 1 on your index.
- Advance Decline Diffusion Index (Carlin)
- Apply a 10-period SMA to the "ShultzAT index" from MS123 IndexDefinitions library to arrive at this index. A sell signal is given when it starts trending down while the market is still bullish, and vice versa.
- Advance Decline Index (Eakle)
- Apply a Rate of Change to the built-in "Advance Decline Line", and then smooth it e.g. using SMA. When the resulting indicator stays above the zero line the market is believed to be trending up whereas downward movements can spot market bottoms.
- Advance Decline Line Oscillator
- Apply a 21-period Rate of Change to the built-in "Advance Decline Line". This indicator can help identify overbought and oversold areas.
- Advance Decline Overbought Oversold
- This is simply a smoothed version of the Advances minus Declines. Smoothing the built-in "Advancing-Declining" index reduces its fluctuations, offering a more reliable gauge of overbought/oversold.
- Advance Decline Power
- This index is calculated as the difference between advancing and declining symbols divided by the absolute change in a major market index (i.e., its Momentum). Its authors, McGinley and Granville, used the Dow Industrial Average for this purpose. Example:
DataSeries ADP = yourAdvanceMinusDeclineIndex / DataSeries.Abs( Momentum.Series( GetExternalSymbol("DJIA",true).Close, 252) );
- Intermediate Term Breadth Momentum Oscillator
- The ITBM by Carl Swendlin is calculated by adding the McClellan Oscillator to its 10-period EMA and then applying a 20-period EMA to the result. Example:
DataSeries ITBM = EMA.Series( yourMCOSeries + EMA.Series( yourMCOSeries, 10, EMACalculation.Modern ), 20, EMACalculation.Modern )
Its absolute value indicates the degree of market's overbought/oversold state. Market is getting stronger when the index is rising or weaker when it's falling, and it's better when the ITBM is above the zero line.
- Plurality Index
- The plurality index is calculated by taking the total number of advancing securities in a given DataSet and subtracting the declining securities. Then the Sum of the difference (usually for the past 25 bars) is applied. You can use the built-in "Advancing-Declining" index. It's an indicator of market enthusiasm: when it moves higher, it's in a buy territory, and vice versa.
- Weinstein Index
- Applying a long-term moving average like SMA or EMA to the "Advance Decline Line" creates smoothed Advance Decline Line as suggested by Stan Weinstein. Signals are given when the zero line is crossed.