top_sweeps
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-09-19, from what-is-a-liquidity-sweep.
| session_date | session_label | prior_day_high | session_high | session_close | poke_above_pct | close_below_pct |
|---|---|---|---|---|---|---|
| 2025-11-20 | November 20, 2025 | 667.34 | 675.56 | 652.53 | 1.23 | 2.22 |
| 2025-10-15 | October 15, 2025 | 665.83 | 670.23 | 665.17 | 0.66 | 0.1 |
| 2025-08-07 | August 7, 2025 | 633.44 | 636.98 | 632.25 | 0.56 | 0.19 |
| 2025-01-31 | January 31, 2025 | 606.6 | 609.96 | 601.82 | 0.55 | 0.79 |
| 2025-09-05 | September 5, 2025 | 649.15 | 652.21 | 647.24 | 0.47 | 0.29 |
| 2025-04-28 | April 28, 2025 | 551.05 | 553.55 | 550.85 | 0.45 | 0.04 |
| 2025-03-03 | March 3, 2025 | 594.72 | 597.34 | 583.77 | 0.44 | 1.84 |
| 2025-07-15 | July 15, 2025 | 625.16 | 627.86 | 622.14 | 0.43 | 0.48 |
| 2025-04-08 | April 8, 2025 | 523.17 | 524.98 | 496.48 | 0.35 | 5.1 |
| 2025-07-31 | July 31, 2025 | 637.68 | 639.85 | 632.08 | 0.34 | 0.88 |
- Rows × columns
- 10 × 7
- 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 |
|---|---|---|---|
session_date |
date | 2025-01-31 to 2025-11-20 | |
session_label |
text | 10 distinct values | |
prior_day_high |
number | 523.17 to 667.34 | US dollars |
session_high |
number | 524.98 to 675.56 | US dollars |
session_close |
number | 496.48 to 665.17 | US dollars |
poke_above_pct |
number | 0.34 to 1.23 | percent |
close_below_pct |
number | 0.04 to 5.1 | 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
SELECT
toString(toDate(date)) AS session_date,
concat(monthName(date), ' ', toString(toDayOfMonth(date)), ', ', toString(toYear(date))) AS session_label,
round(toFloat64(prior_hi), 2) AS prior_day_high,
round(toFloat64(hi), 2) AS session_high,
round(toFloat64(cl), 2) AS session_close,
round(100.0 * (toFloat64(hi) - toFloat64(prior_hi)) / toFloat64(prior_hi), 2) AS poke_above_pct,
round(100.0 * (toFloat64(prior_hi) - toFloat64(cl)) / toFloat64(prior_hi), 2) AS close_below_pct
FROM
(
SELECT
date,
hi,
cl,
lagInFrame(hi) OVER (ORDER BY date ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prior_hi
FROM
(
SELECT
date,
argMax(high, _ingest_time) AS hi,
argMax(close, _ingest_time) AS cl
FROM global_markets.stocks_daily_aggs
WHERE ticker = 'SPY'
AND date >= '2024-12-31'
AND date < '2026-01-01'
GROUP BY date
)
)
WHERE date >= '2025-01-01'
AND prior_hi > 0
AND hi > prior_hi
AND cl < prior_hi
ORDER BY (toFloat64(hi) - toFloat64(prior_hi)) / toFloat64(prior_hi) DESC, date DESC
LIMIT 10
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.