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.
| date | advancers | decliners | unchanged | measured_names |
|---|---|---|---|---|
| 2026-07-20 | 1268 | 2632 | 45 | 3945 |
| 2026-07-21 | 2516 | 1450 | 41 | 4007 |
| 2026-07-22 | 1595 | 2332 | 33 | 3960 |
| 2026-07-23 | 1232 | 2815 | 30 | 4077 |
| 2026-07-24 | 2273 | 1635 | 42 | 3950 |
- 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
What each column holds
| Column | Type | Range | Notes |
|---|---|---|---|
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.
Run it yourself
This is the exact query behind the result above. Change a ticker, a date or a column and run it against the warehouse — no account, no key. The no-signup tier is smaller than the one this page was computed on; a query that reaches past it comes back saying which plan runs it.
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
AI 어시스턴트에서 이 데이터로 작업하기
이 페이지의 데이터로 바로 쿼리할 수 있게 열립니다. 무료, 계정 불필요.