STRASMORE/EXPLORE 3,293 QUERIES

session_segments

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-11-01, from us-stock-market-hours-israel-time.

as of ranking 5×4read in context →
session_segments — 5 rows by 4 columns, computed from US exchange, SIP and OPRA data.
segmentshare_pctper_half_hour_millionsvs_midday_x
מסחר מוקדם 11:00 עד 16:302.40.080
חצי השעה הראשונה 16:30 עד 17:00103.81.9
אמצע היום 17:00 עד 22:3057.92.011
חצי השעה האחרונה 22:30 עד 23:0017.86.813.4
מסחר מאוחר 23:00 עד 03:0011.90.570.3
Rows × columns
5 × 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 session_segments, derived from the stored result.
ColumnTypeRangeNotes
segment text 5 distinct values
share_pct number 2.4 to 57.9 percent
per_half_hour_millions number 0.08 to 6.81
vs_midday_x number 0 to 3.4

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
    segment,
    round(100 * seg_volume / sum(seg_volume) OVER (), 1)                                                   AS share_pct,
    round(seg_volume / max(sessions) OVER () / half_hours / 1000000, 2)                                    AS per_half_hour_millions,
    round((seg_volume / half_hours) / max(if(segment_order = 3, seg_volume / half_hours, 0)) OVER (), 1)   AS vs_midday_x
FROM
(
    SELECT
        multiIf(et_minute < 570, 'מסחר מוקדם 11:00 עד 16:30',
                et_minute < 600, 'חצי השעה הראשונה 16:30 עד 17:00',
                et_minute < 930, 'אמצע היום 17:00 עד 22:30',
                et_minute < 961, 'חצי השעה האחרונה 22:30 עד 23:00',
                                 'מסחר מאוחר 23:00 עד 03:00')                                       AS segment,
        multiIf(et_minute < 570, 1, et_minute < 600, 2, et_minute < 930, 3, et_minute < 961, 4, 5)   AS segment_order,
        multiIf(et_minute < 570, 11, et_minute < 600, 1, et_minute < 930, 11, et_minute < 961, 1, 8) AS half_hours,
        toFloat64(sum(volume))                                                                       AS seg_volume,
        countDistinct(session)                                                                       AS sessions
    FROM
    (
        SELECT
            toDate(toTimeZone(window_start, 'America/New_York'))               AS session,
            toHour(toTimeZone(window_start, 'America/New_York')) * 60
              + toMinute(toTimeZone(window_start, 'America/New_York'))         AS et_minute,
            volume
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY'
          AND window_start >= toDateTime('2026-08-03 00:00:00', 'America/New_York')
          AND window_start <  toDateTime('2026-08-29 00:00:00', 'America/New_York')
    )
    GROUP BY segment, segment_order, half_hours
)
ORDER BY segment_order
⌘/Ctrl + Enter

עבדו עם הנתונים האלה בעוזר ה-AI שלכם

נפתח מוכן לשאילתות, עם הנתונים של העמוד הזה. בחינם, בלי חשבון.