STRASMORE/EXPLORE 2,170 QUERIES

Record High Percent and its 10-day average (the High-Low Index), 40-name basket

Answered against 22 years of US equities and 12 years of US options data and published with the query that produced it. This result is stored as of 2026-08-04, from What Is the High-Low Index? Market Breadth.

as of series 68×4read in context →
Record High Percent and its 10-day average (the High-Low Index), 40-name basket — 68 rows by 4 columns, computed from US exchange, SIP and OPRA data.
datesession_labelrecord_high_pcthigh_low_index_pct
2026-04-15Apr 1510052.5
2026-04-17Apr 1710057.5
2026-04-20Apr 2010067.5
2026-04-21Apr 2110072.5
2026-04-22Apr 2210082.5
2026-04-23Apr 2310087.5
2026-04-24Apr 2410092.5
2026-04-27Apr 27100100
2026-04-29Apr 29100100
2026-04-30Apr 30100100
2026-05-01May 1100100
2026-05-04May 45095
2026-05-05May 510095
2026-05-06May 685.793.6
2026-05-07May 75088.6
2026-05-08May 883.386.9
2026-05-11May 1157.182.6
2026-05-12May 1262.578.9
2026-05-13May 137075.9
2026-05-14May 148073.9
2026-05-15May 156069.9
2026-05-18May 1810074.9
2026-05-19May 1910074.9
2026-05-20May 2010076.3
2026-05-21May 2110081.3
2026-05-22May 2210083
2026-05-26May 2610087.2
2026-05-27May 2710091
2026-05-28May 2810094
2026-05-29May 2910096
2026-06-01Jun 1100100
2026-06-02Jun 2100100
2026-06-03Jun 3090
2026-06-04Jun 466.786.7
2026-06-05Jun 55081.7
2026-06-08Jun 866.778.3
2026-06-09Jun 910078.3
2026-06-10Jun 1010078.3
2026-06-11Jun 1166.775
2026-06-12Jun 1266.771.7
2026-06-15Jun 15061.7
2026-06-16Jun 167559.2
2026-06-17Jun 1757.164.9
2026-06-18Jun 184062.2
2026-06-22Jun 225062.2
2026-06-24Jun 2466.762.2
2026-06-25Jun 2555.657.8
2026-06-26Jun 2683.356.1
2026-06-29Jun 2983.357.8
2026-06-30Jun 305056.1
2026-07-01Jul 166.762.8
2026-07-02Jul 210065.3
2026-07-06Jul 610069.6
2026-07-07Jul 710075.6
2026-07-09Jul 910080.6
2026-07-13Jul 137581.4
2026-07-14Jul 147583.3
2026-07-15Jul 158083
2026-07-16Jul 167582.2
2026-07-17Jul 1710087.2
2026-07-20Jul 20080.5
2026-07-21Jul 212573
2026-07-22Jul 2233.366.3
2026-07-23Jul 234060.3
2026-07-24Jul 2466.757
2026-07-27Jul 2710059.5
2026-07-28Jul 2810062
2026-07-29Jul 2910064
Rows × columns
68 × 4
Period covered
to
Computed
Completeness
No missing values
Source
US exchange, SIP and OPRA market data
Licence
Strasmore terms · free, no signup
Formats
JSON · CSV · the SQL below

What each column holds

Column definitions for Record High Percent and its 10-day average (the High-Low Index), 40-name basket, derived from the stored result.
ColumnTypeRangeNotes
date date 2026-04-15 to 2026-07-29
session_label text 68 distinct values (Apr 15, Apr 17, Apr 20…)
record_high_pct number 0 to 100 percent
high_low_index_pct number 52.5 to 100 percent

Computed from Strasmore's warehouse of US exchange, SIP and OPRA market data. Equity prices are delayed; options greeks and implied volatility are end-of-day. This result is stored, not recomputed on load — it is exactly the numbers that were returned on , and the query below is what returned them.

the exact SQL behind every number
WITH daily_close AS (
    SELECT ticker,
           toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,
           argMax(close, window_start) AS close_px
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('AAPL','MSFT','NVDA','AMZN','GOOGL','AVGO','JPM','JNJ','XOM','PG',
                     'KO','PEP','WMT','HD','CVX','MRK','PFE','ABBV','CSCO','ORCL',
                     'CRM','ADBE','MCD','NKE','VZ','T','DIS','BA','CAT','GE',
                     'IBM','MMM','UNH','LLY','COST','TGT','SBUX','GS','MS','LIN')
      AND window_start >= toDateTime('2025-03-01 00:00:00')
      AND window_start < toDateTime('2026-08-01 05:00:00')
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY ticker, session_date
),
extremes AS (
    SELECT cur.ticker AS ticker,
           cur.session_date AS session_date,
           cur.close_px AS close_px,
           max(hist.close_px) AS high_52w,
           min(hist.close_px) AS low_52w
    FROM daily_close AS cur
    INNER JOIN daily_close AS hist ON cur.ticker = hist.ticker
    WHERE cur.session_date >= toDate('2026-04-01')
      AND hist.session_date <= cur.session_date
      AND hist.session_date > cur.session_date - 364
    GROUP BY cur.ticker, cur.session_date, cur.close_px
),
daily AS (
    SELECT session_date,
           countIf(close_px >= high_52w) AS new_highs,
           countIf(close_px >= high_52w) + countIf(close_px <= low_52w) AS names_at_extreme
    FROM extremes
    GROUP BY session_date
    HAVING names_at_extreme > 0
),
rhp AS (
    SELECT session_date,
           round(100 * new_highs / names_at_extreme, 1) AS record_high_pct
    FROM daily
),
smoothed AS (
    SELECT session_date,
           record_high_pct,
           round(avg(record_high_pct) OVER (ORDER BY session_date
                                            ROWS BETWEEN 9 PRECEDING AND CURRENT ROW), 1) AS high_low_index_pct,
           count() OVER (ORDER BY session_date
                         ROWS BETWEEN 9 PRECEDING AND CURRENT ROW) AS sessions_in_window
    FROM rhp
)
SELECT session_date AS date,
       formatDateTimeInJodaSyntax(session_date, 'MMM d') AS session_label,
       record_high_pct,
       high_low_index_pct
FROM smoothed
WHERE sessions_in_window = 10
ORDER BY session_date

Run your own version of this

The same 22 years of US equities and 12 years of options data are queryable in SQL or plain English. A free account runs 100 queries a day and takes no card.

More from this analysisWhat Is the High-Low Index? Market Breadth
New 52-week highs and lows each session: 40 large-cap US names, April to July 2026 series 77×4 Two breadth measures, same basket: 10-day High-Low Index vs 10-day advancing share series 68×4 How thin the denominator gets: sessions bucketed by names at a 52-week extreme table 3×5 AAPL price vs. running VWAP: July 2, 2026 regular session, sampled every 5 minutes series 78×3 New 52-week highs against new lows, daily, over the past six weeks series 31×4 Excluded from the boards: 2026 splits large enough to fake a year-to-date move series 12×5 See all 2,170 queries →