{"slug":"high-low-index-market-breadth","qid":"highs_lows_daily","label":"New 52-week highs and lows each session: 40 large-cap US names, April to July 2026","post_title":"What Is the High-Low Index? Market Breadth","post_url":"/blog/high-low-index-market-breadth#q-highs_lows_daily","columns":["date","session_label","new_highs","new_lows"],"rows":[{"date":"2026-04-01","session_label":"Apr 1","new_highs":1,"new_lows":1},{"date":"2026-04-02","session_label":"Apr 2","new_highs":0,"new_lows":1},{"date":"2026-04-06","session_label":"Apr 6","new_highs":1,"new_lows":1},{"date":"2026-04-07","session_label":"Apr 7","new_highs":0,"new_lows":2},{"date":"2026-04-08","session_label":"Apr 8","new_highs":1,"new_lows":1},{"date":"2026-04-09","session_label":"Apr 9","new_highs":2,"new_lows":2},{"date":"2026-04-10","session_label":"Apr 10","new_highs":1,"new_lows":3},{"date":"2026-04-13","session_label":"Apr 13","new_highs":1,"new_lows":0},{"date":"2026-04-14","session_label":"Apr 14","new_highs":1,"new_lows":0},{"date":"2026-04-15","session_label":"Apr 15","new_highs":1,"new_lows":0},{"date":"2026-04-17","session_label":"Apr 17","new_highs":2,"new_lows":0},{"date":"2026-04-20","session_label":"Apr 20","new_highs":3,"new_lows":0},{"date":"2026-04-21","session_label":"Apr 21","new_highs":3,"new_lows":0},{"date":"2026-04-22","session_label":"Apr 22","new_highs":4,"new_lows":0},{"date":"2026-04-23","session_label":"Apr 23","new_highs":1,"new_lows":0},{"date":"2026-04-24","session_label":"Apr 24","new_highs":5,"new_lows":0},{"date":"2026-04-27","session_label":"Apr 27","new_highs":3,"new_lows":0},{"date":"2026-04-29","session_label":"Apr 29","new_highs":1,"new_lows":0},{"date":"2026-04-30","session_label":"Apr 30","new_highs":4,"new_lows":0},{"date":"2026-05-01","session_label":"May 1","new_highs":4,"new_lows":0},{"date":"2026-05-04","session_label":"May 4","new_highs":2,"new_lows":2},{"date":"2026-05-05","session_label":"May 5","new_highs":5,"new_lows":0},{"date":"2026-05-06","session_label":"May 6","new_highs":6,"new_lows":1},{"date":"2026-05-07","session_label":"May 7","new_highs":1,"new_lows":1},{"date":"2026-05-08","session_label":"May 8","new_highs":5,"new_lows":1},{"date":"2026-05-11","session_label":"May 11","new_highs":4,"new_lows":3},{"date":"2026-05-12","session_label":"May 12","new_highs":5,"new_lows":3},{"date":"2026-05-13","session_label":"May 13","new_highs":7,"new_lows":3},{"date":"2026-05-14","session_label":"May 14","new_highs":4,"new_lows":1},{"date":"2026-05-15","session_label":"May 15","new_highs":3,"new_lows":2},{"date":"2026-05-18","session_label":"May 18","new_highs":2,"new_lows":0},{"date":"2026-05-19","session_label":"May 19","new_highs":3,"new_lows":0},{"date":"2026-05-20","session_label":"May 20","new_highs":3,"new_lows":0},{"date":"2026-05-21","session_label":"May 21","new_highs":4,"new_lows":0},{"date":"2026-05-22","session_label":"May 22","new_highs":5,"new_lows":0},{"date":"2026-05-26","session_label":"May 26","new_highs":1,"new_lows":0},{"date":"2026-05-27","session_label":"May 27","new_highs":1,"new_lows":0},{"date":"2026-05-28","session_label":"May 28","new_highs":4,"new_lows":0},{"date":"2026-05-29","session_label":"May 29","new_highs":4,"new_lows":0},{"date":"2026-06-01","session_label":"Jun 1","new_highs":5,"new_lows":0},{"date":"2026-06-02","session_label":"Jun 2","new_highs":6,"new_lows":0},{"date":"2026-06-03","session_label":"Jun 3","new_highs":0,"new_lows":1},{"date":"2026-06-04","session_label":"Jun 4","new_highs":4,"new_lows":2},{"date":"2026-06-05","session_label":"Jun 5","new_highs":1,"new_lows":1},{"date":"2026-06-08","session_label":"Jun 8","new_highs":2,"new_lows":1},{"date":"2026-06-09","session_label":"Jun 9","new_highs":1,"new_lows":0},{"date":"2026-06-10","session_label":"Jun 10","new_highs":1,"new_lows":0},{"date":"2026-06-11","session_label":"Jun 11","new_highs":2,"new_lows":1},{"date":"2026-06-12","session_label":"Jun 12","new_highs":2,"new_lows":1},{"date":"2026-06-15","session_label":"Jun 15","new_highs":0,"new_lows":1},{"date":"2026-06-16","session_label":"Jun 16","new_highs":3,"new_lows":1},{"date":"2026-06-17","session_label":"Jun 17","new_highs":4,"new_lows":3},{"date":"2026-06-18","session_label":"Jun 18","new_highs":2,"new_lows":3},{"date":"2026-06-22","session_label":"Jun 22","new_highs":3,"new_lows":3},{"date":"2026-06-24","session_label":"Jun 24","new_highs":2,"new_lows":1},{"date":"2026-06-25","session_label":"Jun 25","new_highs":5,"new_lows":4},{"date":"2026-06-26","session_label":"Jun 26","new_highs":5,"new_lows":1},{"date":"2026-06-29","session_label":"Jun 29","new_highs":5,"new_lows":1},{"date":"2026-06-30","session_label":"Jun 30","new_highs":1,"new_lows":1},{"date":"2026-07-01","session_label":"Jul 1","new_highs":2,"new_lows":1},{"date":"2026-07-02","session_label":"Jul 2","new_highs":6,"new_lows":0},{"date":"2026-07-06","session_label":"Jul 6","new_highs":2,"new_lows":0},{"date":"2026-07-07","session_label":"Jul 7","new_highs":5,"new_lows":0},{"date":"2026-07-09","session_label":"Jul 9","new_highs":2,"new_lows":0},{"date":"2026-07-13","session_label":"Jul 13","new_highs":3,"new_lows":1},{"date":"2026-07-14","session_label":"Jul 14","new_highs":3,"new_lows":1},{"date":"2026-07-15","session_label":"Jul 15","new_highs":4,"new_lows":1},{"date":"2026-07-16","session_label":"Jul 16","new_highs":3,"new_lows":1},{"date":"2026-07-17","session_label":"Jul 17","new_highs":1,"new_lows":0},{"date":"2026-07-20","session_label":"Jul 20","new_highs":0,"new_lows":1},{"date":"2026-07-21","session_label":"Jul 21","new_highs":1,"new_lows":3},{"date":"2026-07-22","session_label":"Jul 22","new_highs":1,"new_lows":2},{"date":"2026-07-23","session_label":"Jul 23","new_highs":2,"new_lows":3},{"date":"2026-07-24","session_label":"Jul 24","new_highs":2,"new_lows":1},{"date":"2026-07-27","session_label":"Jul 27","new_highs":3,"new_lows":0},{"date":"2026-07-28","session_label":"Jul 28","new_highs":7,"new_lows":0},{"date":"2026-07-29","session_label":"Jul 29","new_highs":3,"new_lows":0}],"shape":"series","sql":"WITH daily_close AS (\n    SELECT ticker,\n           toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,\n           argMax(close, window_start) AS close_px\n    FROM global_markets.delayed_stocks_minute_aggs\n    WHERE ticker IN ('AAPL','MSFT','NVDA','AMZN','GOOGL','AVGO','JPM','JNJ','XOM','PG',\n                     'KO','PEP','WMT','HD','CVX','MRK','PFE','ABBV','CSCO','ORCL',\n                     'CRM','ADBE','MCD','NKE','VZ','T','DIS','BA','CAT','GE',\n                     'IBM','MMM','UNH','LLY','COST','TGT','SBUX','GS','MS','LIN')\n      AND window_start >= toDateTime('2025-03-01 00:00:00')\n      AND window_start < toDateTime('2026-08-01 05:00:00')\n      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60\n           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959\n    GROUP BY ticker, session_date\n),\nextremes AS (\n    SELECT cur.ticker AS ticker,\n           cur.session_date AS session_date,\n           cur.close_px AS close_px,\n           max(hist.close_px) AS high_52w,\n           min(hist.close_px) AS low_52w\n    FROM daily_close AS cur\n    INNER JOIN daily_close AS hist ON cur.ticker = hist.ticker\n    WHERE cur.session_date >= toDate('2026-04-01')\n      AND hist.session_date <= cur.session_date\n      AND hist.session_date > cur.session_date - 364\n    GROUP BY cur.ticker, cur.session_date, cur.close_px\n),\ndaily AS (\n    SELECT session_date,\n           countIf(close_px >= high_52w) AS new_highs,\n           countIf(close_px <= low_52w) AS new_lows,\n           countIf(close_px >= high_52w) + countIf(close_px <= low_52w) AS names_at_extreme\n    FROM extremes\n    GROUP BY session_date\n    HAVING names_at_extreme > 0\n)\nSELECT session_date AS date,\n       formatDateTimeInJodaSyntax(session_date, 'MMM d') AS session_label,\n       new_highs,\n       new_lows\nFROM daily\nORDER BY session_date","computed_at":"2026-08-04T15:02:22.990593+00:00","elapsed":0.004677852}