STRASMORE/EXPLORE 2,401 QUERIES

sweep_day_trace

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.

as of series 26×4read in context →
sweep_day_trace — 26 rows by 4 columns, computed from US exchange, SIP and OPRA data.
et_timeslice_highslice_lowvolume_millions
09:30674.15672.478.05
09:45675.02672.964.51
10:00675.41672.794.18
10:15675.02672.823.44
10:30675.56674.312.48
10:45675.32672.743.63
11:00672.82669.854.59
11:15669.97667.427.76
11:30668.17664.137.29
11:45665.79659.399.6
12:00662.38658.039.44
12:15659.48656.69.03
12:30659.54655.456.84
12:45657.88655.495.41
13:00661.85656.726.48
13:15661.97658.734.31
13:30660656.243.38
13:45656.4654.124.63
14:00655.85653.865.14
14:15657.54654.852.81
14:30656.99655.213.74
14:45658.25655.34.28
15:00658.13655.724.22
15:15657.53655.354.54
15:30656.56653.136.47
15:45653.96651.8912.88
Rows × columns
26 × 4
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 sweep_day_trace, derived from the stored result.
ColumnTypeRangeNotes
et_time text 26 distinct values (09:30, 09:45, 10:00…)
slice_high number 653.96 to 675.56 US dollars
slice_low number 651.89 to 674.31 US dollars
volume_millions number 2.48 to 12.88 count

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
    formatDateTime(toStartOfFifteenMinutes(toTimeZone(window_start, 'America/New_York')), '%H:%i') AS et_time,
    round(toFloat64(max(high)), 2)          AS slice_high,
    round(toFloat64(min(low)), 2)           AS slice_low,
    round(toFloat64(sum(volume)) / 1e6, 2)  AS volume_millions
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
  AND window_start >= '2025-01-01'
  AND window_start <  '2026-01-02'
  AND toDate(toTimeZone(window_start, 'America/New_York')) =
  (
      SELECT toDate(date)
      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 1
  )
  AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
       + toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
  AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
       + toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
GROUP BY et_time
ORDER BY et_time

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-a-liquidity-sweep
top_sweeps series 10×7 base_rate table 7×6 by_year ranking 5×3 sweep_day_peak ranking 3×2 spread_monthly series 604×5 One SPY $600 LEAPS call's price over two years (expired Jan 16 2026) series 470×2 See all 2,401 queries →