STRASMORE/EXPLORE 2,170 QUERIES

Advancers and decliners per session, names with $5M+ traded, July 20-24

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-12, from Market Recap: Week of July 20, 2026.

as of series 5×5read in context →
Advancers and decliners per session, names with $5M+ traded, July 20-24 — 5 rows by 5 columns, computed from US exchange, SIP and OPRA data.
dateadvancersdeclinersunchangedmeasured_names
2026-07-2012682632453945
2026-07-2125161450414007
2026-07-2215952332333960
2026-07-2312322815304077
2026-07-2422731635423950
Rows × columns
5 × 5
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 Advancers and decliners per session, names with $5M+ traded, July 20-24, derived from the stored result.
ColumnTypeRangeNotes
date date 2026-07-20 to 2026-07-24
advancers number 1,232 to 2,516
decliners number 1,450 to 2,815
unchanged number 30 to 45
measured_names number 3,945 to 4,077

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
SELECT toString(d) AS date, advancers, decliners, unchanged, measured_names
FROM (
    SELECT d,
           countIf(c > prev_c) AS advancers,
           countIf(c < prev_c) AS decliners,
           countIf(c = prev_c) AS unchanged,
           count() AS measured_names
    FROM (
        SELECT d, c, dv,
               lagInFrame(c) OVER (PARTITION BY ticker ORDER BY d ASC ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_c
        FROM (
            SELECT ticker,
                   toDate(toTimeZone(window_start, 'America/New_York')) AS d,
                   argMax(toFloat64(close), window_start) AS c,
                   sum(toFloat64(close) * toFloat64(volume)) AS dv
            FROM global_markets.delayed_stocks_minute_aggs
            WHERE ((window_start >= '2026-07-17 13:30:00' AND window_start < '2026-07-17 20:00:00')
                OR (window_start >= '2026-07-20 13:30:00' AND window_start < '2026-07-24 20:00:00'))
              AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
            GROUP BY ticker, d
        )
    )
    WHERE d >= '2026-07-20' AND prev_c > 0 AND dv >= 5000000
    GROUP BY d
)
ORDER BY 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 analysisMarket Recap: Week of July 20, 2026
Treasury curve by session, July 17 print through July 24 series 6×6 SPY median quoted spread and NBBO updates per session, regular hours, July 20-24 series 5×5 SPY by session: close, change, and share volume, July 20-24 series 5×4 Options contracts, same-day share, and call share by session, July 20-24 series 5×5 SEC filings by session and form type, July 20-24 series 5×5 Daily short-volume file coverage: tickers on file and short shares, July 20-24 series 5×4 See all 2,170 queries →