STRASMORE/EXPLORE 3,293 QUERIES 22Y EQUITIES · 12Y OPTIONS

3,293 answered market questions

every one with its exact SQL, its result and the date it was computed · free, no signup

Full options quote history: clean NBBO bid/ask snapshots for any US option contract at the interval you choose, by SQL API, $79 a month. See the options quotes plan
US Stock Market Hours in Mountain Time
The regular session, half hour by half hour, on both clocksseries · 2026-11-07 · 13×3Preview: a 13-point series, ending higher. Sessions grouped by the local time the open landedranking · 2026-11-07 · 2×3Preview: 2 ranked values, largest first. The 9:30 a.m. Eastern open, read on three clocks, by monthseries · 2026-11-07 · 14×6Preview: a 14-point series, ending lower. Upcoming market closures, with early-close times in Mountain Timeseries · 2026-11-07 · 12×8Preview: a 12-point series, ending higher.
The regular session, half hour by half hour, on both clocks

The regular session, half hour by half hour, on both clocks

most recentas of series 13×3read in context →
The regular session, half hour by half hour, on both clocks — 13 rows by 3 columns, computed from US exchange, SIP and OPRA data.
et_timedenver_timeavg_volume_millions
09:3007:303.8
10:0008:002.66
10:3008:302.36
11:0009:002.12
11:3009:301.88
12:0010:001.63
12:3010:301.62
13:0011:001.58
13:3011:301.57
14:0012:001.84
14:3012:302.01
15:0013:002.43
15:3013:309.42
the exact SQL behind every number
WITH
    (
        SELECT sum(closing_print)
        FROM
        (
            SELECT toDate(toTimeZone(sip_timestamp, 'America/New_York')) AS trade_date,
                   toFloat64(maxIf(size, has(conditions, 8)))            AS closing_print
            FROM global_markets.stocks_trades
            WHERE ticker = 'SPY'
              AND sip_timestamp >= today() - 45
              AND sip_timestamp <  today() - 2
            GROUP BY trade_date
        )
    ) AS closing_prints_total
SELECT
    formatDateTime(toStartOfInterval(toTimeZone(window_start, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i') AS et_time,
    formatDateTime(toStartOfInterval(toTimeZone(window_start, 'America/Denver'),   INTERVAL 30 MINUTE), '%H:%i') AS denver_time,
    round((toFloat64(sum(volume)) + if(et_time = '15:30', closing_prints_total, 0))
          / uniqExact(toDate(toTimeZone(window_start, 'America/New_York')))
          / 1e6, 2) AS avg_volume_millions
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
  AND window_start >= today() - 45
  AND window_start <  today() - 2
  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, denver_time
ORDER BY et_time
$