TradingView market breadth guide

McClellan Summation Index: cumulative breadth context

The McClellan Summation Index adds each daily McClellan Oscillator reading to the previous total. It describes accumulated breadth over an intermediate horizon: positive oscillator values raise the index and negative values lower it. Its level depends on the breadth input, scale and calibration. A single stock or crypto price series cannot supply market-wide advancing and declining issue counts.

See the decision guide

Add the oscillator once per trading day

Let X be the selected daily breadth input, F the fast EMA, S the slow EMA, O the oscillator and M the Summation Index. The McClellans use smoothing weights of 0.10 and 0.05, equivalent to 19-day and 39-day EMAs. Use completed daily observations for these updates.

  • The A-D Line accumulates net advances directly. The Summation Index accumulates the difference between two smoothed breadth series.
  • An oscillator declining from +20 to +5 still raises M by 5 on the second day. A turn downward in O is not necessarily a turn downward in M.
StateDaily update
Fast breadth averageF = 0.10 × X + 0.90 × prior F
Slow breadth averageS = 0.05 × X + 0.95 × prior S
McClellan OscillatorO = F − S
McClellan Summation IndexM = prior M + O

Keep the input scale and neutral level together

A and D must count advancing and declining issues in the same universe and session. McClellan Financial uses +1000 as the neutral convention for its classic index and zero for its Ratio-Adjusted Summation Index (RASI). Check the actual implementation before applying either reference level.

  • For 1800 advances and 1200 declines, the three inputs are 600, 200 and 0.2. The denominator excludes unchanged issues.
  • Scaled and decimal ratio results differ by a factor of 1000 when the entire EMA and cumulative initialization scales consistently. Raw-count results do not have a fixed conversion factor when A + D changes.
  • If either count is missing or A + D is zero, the adjusted input is unavailable. Do not silently substitute zero breadth or mix exchanges to fill the gap.
ConventionDaily input XNeutral convention N
ClassicA − D+1000
RASI, scaled1000 × (A − D) / (A + D)0
Decimal ratio variant(A − D) / (A + D)0

Reproduce three cumulative updates

This hypothetical scaled-RASI example starts with supplied prior states F = 100 and S = 80. The calibrated prior M is 620, as checked below. These are continuing states from earlier history, not EMAs estimated from three days. No row is a current market reading.

  • Day 1: M = 620 + 24 = 644. Day 2: M = 644 + 7.3 = 651.3. Day 3: M = 651.3 − 7.015 = 644.285.
  • Day 2 has negative net advances but a positive oscillator, so M still rises. Day 3 lowers M even though M remains above its zero reference.
  • If only the prior M were reset from 620 to zero, the same oscillator sequence would produce 24, 31.3 and 24.285. That line stays exactly 620 lower; it is a rebased cumulative series.
DayA / DXF / SOM
Prior stateNot suppliedNot supplied100 / 8020620
11800 / 1200200110 / 8624644
21200 / 1800−20079 / 71.77.3651.3
31200 / 1800−20051.1 / 58.115−7.015644.285

Distinguish a reset total from a calibrated restart

McClellan Financial specifies F = 0 and S = 0 before the first update, with M = 1000 for the classic calculation or M = 0 for RASI. Restarting all three states this way creates an initial difference that decays as the EMAs absorb the same subsequent data. Resetting only M while retaining established EMAs is a different operation and preserves an offset.

  • An algebraic check derived from the update equations is M = N + 19 × S − 9 × F, provided initialization satisfies this identity. Here N is the chosen neutral convention. The change in 19S − 9F equals the current F − S.
  • For the example, N = 0 gives prior M = 19 × 80 − 9 × 100 = 620. On Day 3, 19 × 58.115 − 9 × 51.1 = 644.285, matching the cumulative total.
  • With the same subsequent input, seed differences in F and S shrink by factors of 0.90 and 0.95 per daily update. A calibrated M follows those shrinking differences. An independently chosen cumulative offset does not decay.
  • Load enough earlier history to meet a stated numerical tolerance against a longer run. There is no exact finite warm-up that erases EMA seed influence. Extra history cannot repair mismatched input feeds or an incorrect calibration.

Read trend and divergence without inventing an entry

The oscillator describes the current gap between fast and slow breadth averages. Summation preserves the accumulated state. A rising Summation Index below neutral and a falling one above neutral are both possible. A directional filter therefore needs an explicit rule: slope, level, or both.

  • Choose price swings and comparison dates before evaluating divergence. If a pivot needs future bars to be confirmed, record the later confirmation time rather than treating the pivot date as a live signal.
  • Divergence can persist while price continues higher. The arithmetic supplies no stop, position size or profitable exit; those require separate rules and testing.
ObservationSupported readingUnresolved decision
M rises while below NThe oscillator is positive; the level is still below neutral.Whether the strategy requires a level crossing as well.
M falls while above NThe oscillator is negative; accumulated breadth remains above neutral.Whether an existing position must exit.
Price high 100 then 105; M at those dates 700 then 650A hypothetical bearish divergence under this date-matching rule.Swing confirmation, expiry and price invalidation.

Audit a TradingView Summation chart

Use an inspectable indicator and record the exact breadth symbols, universe, session, adjustment, seeds and start date. A label such as NYSE is not enough to establish identical issue coverage across providers. Compare completed daily observations before testing a filter on another chart.

  • Inspect A, D, X, F, S, O and M in the Data Window. Verify that each new daily M minus the previous daily M equals O.
  • On intraday charts, calculate and accumulate in the daily context before displaying the result. Adding the same daily oscillator again on every intraday bar changes the indicator.
  • Decide whether the display uses developing daily data or the last confirmed day. Closing a five-minute chart bar does not confirm daily breadth; request.security gap and lookahead settings affect when values appear.
  • Treat a missing required day as a data-quality break. Recover its observations before claiming continuity; carrying a line forward is a display choice, not a replacement observation.

Specify a cumulative filter for Pineify

Ask the Pine Script AI Coding Agent to draft or explain the indicator after you have identified valid breadth feeds. Supply the daily update equations, adjustment scale, neutral convention, initialization and missing-data policy. Request the three-day calculation as an arithmetic check and separate the filter from trade execution.

  • Require visible intermediate states and a label stating whether M is calibrated or rebased. Specify whether the filter uses a rising M, M above N, or both.
  • Request syntax checking, then compare values and availability times in TradingView. Pineify cannot create missing market breadth from the chart symbol or establish trading performance by compiling code.
Where Pineify fits

Pine Script AI Coding Agent

Draft a cumulative breadth filter with explicit data inputs, calibration and daily timing, then inspect the generated source and calculated states.

Draft a breadth filter

Frequently asked questions

Educational information, not investment advice. All numerical examples are hypothetical. Breadth conditions do not guarantee price direction or returns. Feed coverage, missing observations and confirmation timing affect the calculation.

Sources and verification

Published by Pineify. Pineify is an independent product and is not affiliated with TradingView. Sources support the technical explanations; examples do not establish trading performance.