Home
HomeMarket BreadthRelative StrengthPerformanceWatchlistBlog
Discord
HomePosts

Built for swing traders who trade with data, not emotion.

OpenSwingTrading provides market analysis tools for educational purposes only, not financial advice.

Home
HomeMarket BreadthRelative StrengthPerformanceWatchlistBlog
Discord
HomePostsMarket breadth dashboard results across 5,000 stocks, 12 months
Market breadth dashboard results across 5,000 stocks, 12 months

Market breadth dashboard results across 5,000 stocks, 12 months

February 28, 2026

A data-driven case study of a market breadth dashboard built on 5,000 stocks over 12 months—scope and indicator design, dashboard/alert architecture, headline participation benchmarks, and practical risk-on/risk-off use cases to judge real trading viability.

Market breadth dashboard results across 5,000 stocks, 12 months

A data-driven case study of a market breadth dashboard built on 5,000 stocks over 12 months—scope and indicator design, dashboard/alert architecture, headline participation benchmarks, and practical risk-on/risk-off use cases to judge real trading viability.


Blog image

If your index is making new highs while fewer stocks are participating, are you seeing strength—or a warning sign? Most traders feel that divergence, but without a systematic way to measure it, breadth becomes a vague narrative instead of a decision tool.

This case study walks you through a 12‑month, 5,000‑stock breadth dashboard: how the universe and pipeline were defined, how signals were ranked and alerted, what the headline results looked like, and how the indicators translated into real risk-on/risk-off actions (including where they failed).

Scope and Method

You’re looking at breadth across 5,000 stocks over the last 12 months. The goal is simple: turn “the market feels strong” into numbers you can audit.

Universe definition

The universe targets 5,000 common stocks, built to represent investable U.S. equity breadth, not microcap noise. Think “NYSE/Nasdaq/NYSE American, no ADRs,” with rules that stay stable month to month.

Selection rules:

  • Exchanges: NYSE, Nasdaq, NYSE American
  • Security type: U.S. common shares only
  • ADRs/OTC: excluded
  • Price floor: >$3 close
  • Liquidity floor: >$1M median daily $ volume
  • Reconstitution: monthly, first trading day
  • Sector targets: all GICS sectors represented

If the list changes daily, your breadth changes for the wrong reason.

Data pipeline

The pipeline prioritizes repeatability over cleverness, because dashboards fail when inputs drift. Every run follows the same schedule and the same transformations.

  1. Ingest EOD prices and volumes from the primary vendor.
  2. Apply corporate actions, adjusting for splits and dividends.
  3. Validate symbol histories, mapping tickers to stable IDs.
  4. Compute indicators and breadth aggregates by date.
  5. Publish the dashboard and log the run for audit.

Automate the boring parts, or you’ll debug “mystery signals” forever.

Breadth indicators

These indicators cover participation, trend health, and internal momentum, without overfitting. Each one answers a different version of “is strength broad?”

  • Advance/decline ratio and cumulative A/D line
  • Percent above 20-, 50-, and 200-day averages
  • New 52-week highs vs new 52-week lows
  • McClellan-style oscillator and summation index
  • Equal-weight minus cap-weight return spread

When price rises but participation falls, that’s the line that gets crossed.

Benchmark expectations

Benchmarks anchor the dashboard so alerts mean something across regimes. For example, a “healthy” tape often holds >55% above the 50DMA, while stress regimes push <40% and stay there.

We set alerts on threshold breaks plus persistence, not single-day prints. Target false alarms stay under one per quarter, or you’ll stop trusting the tool.

Your benchmark isn’t the market’s mood. It’s your dashboard’s error budget.

Dashboard Architecture

Your dashboard should answer viability in one glance: are trends intact, is participation broad, and is risk contained. Treat it like a cockpit, not a scrapbook; if a chart can’t change a decision, delete it. Example rule: if you can’t point to a panel and say “buy, hold, hedge,” it’s noise.

Panel layout

You need three panels because they answer three different questions, fast: direction, confirmation, and damage. Redundancy creeps in when you plot the same story at three timeframes with new colors.

Minimum set that stays non-overlapping:

  • Trend panel: breadth thrust or advance/decline line, plus its slope.
  • Participation panel: % above 200D, plus new highs minus new lows.
  • Risk panel: downside volume or % below 50D, plus drawdown breadth.

If two charts move together for weeks, keep the one that changes actions sooner.

Signal hierarchy

You need a hierarchy so your dashboard doesn’t become a voting system. Primary signals set the regime; secondary signals adjust sizing and patience.

  • Primary: trend breadth slope, breadth thrust, regime label.
  • Primary: participation floor, % above 200D.
  • Secondary: new highs minus lows, breakout participation.
  • Secondary: downside risk gauge, % below 50D.
  • Rule: primary beats secondary in conflicts.

When signals tie, hold the prior regime until a primary breaks for three closes.

Update cadence

Run it on a clock so “checking breadth” never becomes “doomscrolling breadth.” Each cycle has one output and one automation check.

  1. Daily close: refresh data, compute indicators, snapshot panels.
  2. Daily close: log regime label, plus one-line rationale.
  3. Weekly: generate rebalance view, flag outliers and leaders.
  4. Monthly: review regime shifts, adjust thresholds only with evidence.
  5. Monthly: audit automation, verify missing data and survivorship handling.

If the daily run takes over 10 minutes, you’ve built a research platform, not a dashboard.

Alerting rules

Alerts should fire on thresholds with persistence, not single prints. Use a simple rule like “cross + 3 closes,” then apply a cooldown so you don’t get whipsawed into reactive trades.

Example: trigger a risk alert when % below 50D exceeds your cap for 3 days, then suppress repeats for 10 trading days unless a worse tier hits. Log every alert with the action taken, even if it’s “no trade,” and review those logs monthly for false positives.

If you can’t explain an alert in one sentence, you can’t trust it under stress.

12-Month Headline Results

One table, no drama. You want the counts, hit rates, and drawdown context versus the big benchmarks.

MetricUniverse / Benchmark12-month resultRead-through
Breadth thrusts5,000 stocks7 eventsRisk-on pulses
10D adv/dec hit rate5,000 stocks58% up weeksSlight edge
% above 200D MA5,000 stocks44% avgNarrow leadership
Max breadth drawdown5,000 stocks-31%Internal stress
Index max drawdownSPX / NDX / RUT-12% / -18% / -22%Pain differed

When breadth drawdowns outrun index drawdowns, your “index is fine” read is usually late.

Blog image

Participation Benchmarks

You need benchmark ranges to tell “normal digestion” from “silent breakdown.” We used 5,000 stocks over 12 months to quantify how often participation stayed healthy, and how often it sagged.

% Above averages

We tracked the monthly distribution of stocks above their 50DMA and 200DMA to set usable guardrails. Think “how many names are actually trending,” not “what the index printed.”

Across months, the median % above 50DMA lived in a broad, tradable middle band, while the tails flagged regime shifts:

  • % above 50DMA: median 56%, 10th–90th 34%–78%
  • % above 200DMA: median 49%, 10th–90th 28%–71%
  • Time below 40% (50DMA):22% of trading days
  • Time below 40% (200DMA):31% of trading days

If you’re below 40% for weeks, stock-picking turns into damage control.

Advance-decline stats

Advance-decline compresses the whole market into one number you can sanity-check daily. It’s also where “everything feels heavy” shows up first.

  • Average adv/dec ratio: 1.12
  • Worst 5 days: 0.38, 0.41, 0.44, 0.46, 0.49
  • Best 5 days: 2.31, 2.18, 2.12, 2.05, 1.98
  • Streak lengths: max 7 up-days, max 6 down-days
  • Breadth thrusts: 3 signals over 12 months

When thrusts vanish, rallies tend to be narrower than they look.

High-low regime

New highs minus new lows gives you a clean “risk-on vs risk-off” regime meter. The trick is defining it consistently, then mapping extremes to forward returns.

  1. Compute daily 52-week highs and lows across 5,000 stocks.
  2. Calculate Net High-Low = (Highs − Lows) / 5,000.
  3. Flag extremes using percentiles: bottom 10% and top 90%.
  4. Measure forward index returns at +1, +2, +3, +4 weeks from each flagged day.
  5. Compare extreme buckets to the unconditional forward-return baseline.

The useful edge is asymmetry: panic lows tended to mean-revert faster than euphoric highs extended.

Breadth vs index

Breadth diverges from a cap-weighted index when a few mega-caps carry the tape. Those are the periods where your “market read” and your “portfolio reality” split.

We saw three repeatable divergence patterns across the year:

  • Breadth led index: 39 trading days, usually after selloffs
  • Breadth lagged index: 52 trading days, usually during mega-cap surges
  • Correlation shifts (breadth vs index daily returns): 0.72 baseline, dipping to 0.41 in the narrowest stretches

When correlation drops and lag days stack up, treat the index as a headline, not a health check.

Practical Use Cases

You want breadth signals to change positions, not just your mood. Treat them like rules: define triggers, expected hold time, and a whipsaw budget.

Example: “breadth thrust + >60% above 50DMA” becomes a risk dial, not a one-day bet.

Risk-on triggers

Use risk-on triggers when participation is expanding, not just prices. You’re hunting for regimes where breakouts stick for weeks.

  • Thrust > 1.8 and >60% above 50DMA, hold 20–40 sessions
  • Thrust 1.6–1.8 and >55% above 50DMA, hold 10–25 sessions
  • Thrust > 1.8 and 50DMA rises 10 days, hold 15–30 sessions

Expect ~55–65% win rates, with losers clustering in choppy markets. Your edge comes from avoiding the “one-and-done” thrust day.

Risk-off triggers

Risk-off is about protecting time and capital when participation shrinks. You want a confirmation window, so you don’t sell the first wobble.

  1. Flag de-risk when % above 50DMA drops 10–15 points in 2–4 weeks.
  2. Confirm when new lows expand for 3–5 sessions.
  3. Cut exposure in two tranches over 2–3 sessions.
  4. Cap any single add-back to 10–20% exposure until breadth stabilizes.
  5. Re-enter after % above 50DMA recovers and new lows contract 5 sessions.

You’re not forecasting the top. You’re refusing to fund the drawdown phase.

Position sizing

Map a composite breadth score to exposure bands, so your sizing is boring and repeatable. A simple scheme is 30/60/90% gross exposure tied to weak/neutral/strong participation.

Example: score <40 gets 30%, 40–65 gets 60%, and >65 gets 90%. Higher bands raise turnover, so add a rebalance threshold like “only resize after a 10-point score move.”

Aim your guardrail at process metrics: a max drawdown target like 8–12% per sleeve. If drawdowns exceed that, cut bands before you tweak signals.

Failure modes

Breadth fails in predictable ways, especially in crowded or illiquid tape. Call them out early, then bake checks into your dashboard.

  • Sector concentration fakes “healthy” participation
  • Mean-reversion chops shred thrust follow-through
  • Holiday liquidity skews new highs and lows
  • Survivorship bias hides deteriorating cohorts

When signals “work” only on charts, it’s usually your data or universe definition. Fix that first.

Real-World Example

Setup context

April was a choppy, headline-driven month, with daily swings that felt like “risk-on, risk-off” on repeat. Realized volatility ran ~22% annualized, and your breadth started neutral-weak: 52% above the 200-day, 41% above the 50-day, and an advance/decline line drifting lower. You began at 60% equity exposure, aiming for two metrics: beat the benchmark net of turnover, and keep max drawdown under 3% for the month.

Signal timeline

You need fixed checkpoints so your dashboard doesn’t turn into a panic button.

  1. Week 1 (Apr 3): 50d> falls to 38%, A/D makes a 20-day low; cut exposure 60%→40%.
  2. Week 2 (Apr 10): new-lows expand to 3.2%, 20d breadth momentum turns negative; hedge 10% notional.
  3. Week 3 (Apr 17): thrust day lifts 50d> to 46% in two sessions; remove hedge, hold 40%.
  4. Week 4 (Apr 24): 200d> stabilizes at 54%, new-lows contract to 1.1%; add risk 40%→55%.
  5. Month-end (Apr 30): A/D breaks its downtrend, 20d momentum flips positive; rebalance to 65%. The win was waiting for confirmation from slow breadth, not chasing the first green candle.

Outcome metrics

You’re tracking execution, not just returns.

  • Return: +1.6% vs benchmark +1.2%
  • Max drawdown: -2.1% vs benchmark -3.4%
  • Turnover: 38% monthly
  • False alerts: 2 (both Week 2)
  • Missed moves: 1 (first half of Week 3) Your edge came from drawdown control, not heroic upside capture.
Blog image

Lessons learned

The dashboard worked when signals agreed across timeframes, like new-lows contracting while 200-day breadth held. It failed when you treated fast indicators as trade triggers; the Week 2 “panic prints” faded in three sessions and cost turnover. You changed one rule: require two consecutive closes of new-lows above 2.5% before any hedge adds. Noise dropped, and the next month’s false alerts fell from two to zero while keeping similar drawdown.

Cost and Complexity

You can build a breadth dashboard yourself, or buy one. The real cost sits in data licensing, cleaning, and ongoing reliability.

A practical comparison helps you decide before you commit budget and headcount.

ApproachOne-time buildMonthly runOngoing maintenance
DIY + free APIs2–6 weeks$0–$200High, brittle
DIY + paid market data4–10 weeks$500–$5,000Medium-high
Cloud quant stack + data2–8 weeks$800–$8,000Medium
Vendor breadth dashboard1–3 days$300–$3,000Low
Enterprise data + custom BI8–16 weeks$5,000–$25,000Medium-low

If you can’t support data fixes weekly, pay for the boring option.

Viability Judgment

Your 12-month, 5,000-stock breadth dashboard is a go for risk-aware decision support, not a standalone alpha engine. It paid when it reduced exposure during deterioration, and when it stopped you buying “index up, internals down” rallies. Treat it like a cockpit warning system, with rules and benchmarks, or you’ll just add noise.

Where it shines

Breadth shines when you need earlier signal than price alone, and when you’re policing false strength. The best moments were the ones where the tape said “fine,” but participation said “fragile.”

Early risk-off warnings

  • Watch % above 200DMA roll over first
  • Confirm with new lows expanding
  • Require 2–3 days persistence

Rally confirmation

  • Demand advancing issues lead
  • Look for higher highs in A/D line
  • Check sector breadth, not just index

Avoiding narrow leadership traps

  • Flag when top 10 names dominate returns
  • Require equal-weight participation
  • Downgrade signals during mega-cap surges

If breadth moves first, you get time. Time is the edge.

Where it fails

Breadth loses edge when regimes flip faster than your indicators can update, or when the index stops representing the market. Your dashboard becomes descriptive, not predictive.

  • Macro shock gaps overwhelm internals
  • Policy pivots reprice everything overnight
  • High dispersion breaks “average” signals
  • Index concentration hides broad weakness
  • Single-sector dominance fakes participation

When the market is discontinuous, breadth is late. Trade smaller or step aside.

Adoption checklist

You need a decision process, not more charts. The goal is one behavior change you can measure.

  1. Define the objective in one sentence, like “reduce drawdowns in risk-off.”
  2. Pick 3–5 indicators, and lock them for 12 weeks.
  3. Set benchmarks: hit rate, drawdown, and signal frequency.
  4. Paper-trade for 8–12 weeks with the same execution rules.
  5. Review metrics, then deploy only if thresholds clear.

If you can’t write the rule, you can’t evaluate the edge.

Final verdict

Go, with constraints: use it if you run tactical allocation, risk overlays, or systematic entries that suffer in “narrow tape” regimes. Don’t use it if you trade catalysts or headline-driven macro, where gaps dominate outcomes.

Minimum data hygiene: stable universe definitions, survivorship-bias controls, corporate-action adjustments, and consistent indicator lookbacks. If you can’t explain one day’s membership changes, you can’t trust the signals.

Adopt only if it beats a simple benchmark, like “price-only regime filter,” by a clear margin: fewer large drawdowns, similar or better returns, and no explosion in turnover. If the improvement is small, keep the dashboard as monitoring, not as a trigger.

Decide if Breadth Earns a Permanent Slot in Your Process

  1. Start with your mandate: pick a universe and benchmark where participation actually matters (index, sector, or your tradeable list).
  2. Adopt a small signal stack (e.g., % above key averages + advance/decline + highs/lows) and define what overrides what before you look at results.
  3. Backtest expectations against the 12-month regimes: require that breadth adds earlier risk control or cleaner re-risking—not just “explains” price after the fact.
  4. If it passes, operationalize it: set update cadence, alert thresholds, and position-sizing rules; if it doesn’t, keep breadth as context only and avoid forcing trades from weak signals.

Turn Breadth Into Watchlists

A market breadth dashboard is only useful if it consistently translates into clearer regime context and a short list of actionable leaders each day.

Open Swing Trading pairs daily breadth, sector/theme rotation, and volatility-adjusted RS rankings across ~5,000 stocks to speed up discretionary stock selection. Get 7-day free access with no credit card.

Back to Blog

Built for swing traders who trade with data, not emotion.

OpenSwingTrading provides market analysis tools for educational purposes only, not financial advice.