Strasmore Research
Learn am Matt ConnorBy Matt Connor · Updated 2026-07-25 · data as of July 25, 2026 · refreshed weekly

Premarket and After-Hours Trading Hours (ET)

Premarket dey run 4-9:30 a.m. ET, after-hours na 4-8 p.m. See wetin di tape dey show: each session volume share, how much wider spreads cost, and when news dey move.

After-hours trading na when people dey buy and sell stocks between 4:00 p.m. and 8:00 p.m. ET, after di regular US session don close; premarket trading na di same kain thing wey dey happen between 4:00 a.m. and 9:30 a.m. Di two sessions together dey bracket regular 9:30-to-4:00 trading day and dem make am extended-hours trading, and most brokers dey support both — almost always with limit orders. This page dey measure wetin really change when di closing bell ring — volume, spreads, and headline timing — straight from di tape (di consolidated public record of every trade), with di exact query wey dey behind every number attached.

Wetin be premarket and after-hours trading hours?

One normal US trading day get three sessions: di premarket (4:00-9:30 a.m. ET), regular hours (9:30 a.m.-4:00 p.m.), and after-hours (4:00-8:00 p.m.). Instead of to just believe dat schedule, you fit read am comot from di tape. Di panel below dey scan every SPY minute bar from di past two weeks and e dey report each session wey don finish — di earliest and latest bar by Eastern Time clock. (SPY, di most heavily traded S&P 500 ETF, dey trade anytime anything open.)

QuerySession envelope, wey dem read from SPY minute bars (last two weeks, ET)
The exact SQL behind every number
SELECT
    min(formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i')) AS first_bar_et,
    max(formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i')) AS last_bar_et,
    min(toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) AS first_bar_minute_of_day,
    max(toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) AS last_bar_minute_of_day,
    uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) AS completed_sessions,
    toString(min(toDate(toTimeZone(window_start, 'America/New_York')))) AS first_session,
    toString(max(toDate(toTimeZone(window_start, 'America/New_York')))) AS last_session
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
  AND window_start >= now() - INTERVAL 14 DAY
  AND toDate(toTimeZone(window_start, 'America/New_York')) < toDate(toTimeZone(now(), 'America/New_York'))
  AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 240 AND 1199

Across di 10 completed sessions from 2026-07-06 to 2026-07-17, di earliest bar of any day print at 04:00 ET and di last bar of any day open at 19:59 — one sixteen-hour envelope, and regular hours na six and a half of dat one. Di session count dey include only days wey actually trade: holidays no leave any bar, and early closes dey cut di envelope short — di regular session go end at 1:00 p.m. ET and after-hours go wrap up early too. Market holidays and early closes dey show how you fit verify one session from di calendar and di tape before you trust any day's numbers.

You fit buy stocks after hours?

Yes — most of the big brokers dey accept premarket and after-hours orders, but three conditions dey everywhere:

  • Limit orders only: you go set the exact price wey you wan accept, and the order go only fill at that price or better, or e no go fill at all. Market orders dem go usually reject or queue am for the next normal session.
  • Orders dey route go electronic venueselectronic communication networks (ECNs), computer systems wey dey match buyers and sellers direct, plus the exchanges' own extended-hours sessions — without the opening and closing auctions and the market makers' quoting obligation wey dey for the normal day.
  • Fill no dey guaranteed: because fewer people dey the other side, one limit order wey go fill sharp-sharp by 2:00 p.m. fit just dey there at 6:00 p.m.

Cut-off times and the order types wey qualify dey differ from broker to broker; the normal 4:00 a.m.-8:00 p.m. clock na the trading venues set am, not your broker — though some brokers now dey offer separate overnight session (roughly 8:00 p.m.-4:00 a.m.) for off-exchange venues, one different market wey no dey show inside the minute bars dem dey measure for this page.

How much volume dey trade for premarket and after hours?

The two extended sessions add up to nine and a half hours a day — three more pass the regular session. Dem no carry anytin near dat share of the trading. The table below dey split the last month of share volume for SPY, AAPL, and NVDA into four clock windows: premarket, regular hours, the first half hour after the 4:00 p.m. bell, and the rest of the evening. Early-close days — holiday-shortened sessions wey end at 1:00 p.m. — dem dey excluded (a day dey count only when im tape run enter evening), so each clock window label go still true for every day wey dem measure am.

QueryShare of one month volume by clock window — SPY, AAPL, NVDA (full sessions only)
The exact SQL behind every number
WITH full_sessions AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS session_date
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= now() - INTERVAL 30 DAY
      AND toDate(toTimeZone(window_start, 'America/New_York')) < toDate(toTimeZone(now(), 'America/New_York'))
    GROUP BY session_date
    HAVING max(toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) >= 1140
)
SELECT ticker,
       round(100 * sumIf(volume, m < 570) / sum(volume), 1) AS premarket_pct,
       round(100 * sumIf(volume, m >= 570 AND m < 960) / sum(volume), 1) AS regular_pct,
       round(100 * sumIf(volume, m >= 960 AND m < 990) / sum(volume), 1) AS post_close_30min_pct,
       round(100 * sumIf(volume, m >= 990) / sum(volume), 1) AS evening_pct
FROM (
    SELECT ticker, volume,
           toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York')) AS m
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('SPY', 'AAPL', 'NVDA')
      AND window_start >= now() - INTERVAL 30 DAY
      AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT session_date FROM full_sessions)
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 240 AND 1199
)
GROUP BY ticker
ORDER BY indexOf(['SPY', 'AAPL', 'NVDA'], ticker)

Regular hours carry 83.3% of SPY share volume, 92.8% of Apple own, and 92.6% of Nvidia own. The premarket — five and a half hours long — carry 1.3% and 3.1% for Apple and Nvidia. Genuine evening trading, from 4:30 p.m. to the 8:00 p.m. cutoff, measure 1.1% for Apple, 1.6% for Nvidia, and 2.2% for SPY.

The column wey need explanation na the first half hour after the bell, where 12.5% of SPY month of volume print. Dat one no be evening speculation. The closing auction — the big end-of-day match wey set each stock official closing price — dey spread im prints at and just after 4:00 p.m., and end-of-day trade reports dey settle enter the tape for the same minutes. By the clock, dem be "after hours"; economically dem belong to the close. For quarter-end and index-rebalance days, dat print dey especially big — for ETF like SPY, e fit swell this column pass the whole premarket. Any volume-based statistic — relative volume, VWAP, a most-active screen — dey change meaning depending on which of these windows e dey count.

Shares per minute dey make the contrast sharper. The chart below dey track Apple median minute volume for half-hour buckets across the full sixteen-hour day, over the same month of full sessions. One caveat dey inside the measurement: a minute wey get no trade go print no bar at all, and each bucket median dey describe only the minutes wey Apple actually trade — the second series, the share of clock minutes wey get any trade, dey show how much of each bucket dat one be.

QueryAAPL median shares per traded minute, and the share of minutes wey trade at all (ET)
The exact SQL behind every number
WITH full_sessions AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS session_date
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'AAPL'
      AND window_start >= now() - INTERVAL 30 DAY
      AND toDate(toTimeZone(window_start, 'America/New_York')) < toDate(toTimeZone(now(), 'America/New_York'))
    GROUP BY session_date
    HAVING max(toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) >= 1140
)
SELECT formatDateTime(toStartOfInterval(toTimeZone(window_start, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i') AS et_time,
       round(quantileDeterministic(0.5)(toFloat64(volume), toUInt64(window_start))) AS median_minute_volume,
       round(100 * count() / (30 * max(uniqExact(toDate(toTimeZone(window_start, 'America/New_York')))) OVER ()), 1) AS pct_minutes_traded
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'AAPL'
  AND window_start >= now() - INTERVAL 30 DAY
  AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT session_date FROM full_sessions)
  AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 240 AND 1199
GROUP BY et_time
ORDER BY et_time

For the 09:30 bucket — the first half hour of regular trading — Apple median minute trade 156085 shares, and 100% of clock minutes print trade. The 15:30 bucket, the last half hour before the bell, run 131189 shares a minute. One bucket later, at 16:00, the median traded minute carry 2050 shares. The market no dey fade politely for the close — e dey step off a ledge, and by the 17:30 bucket the median traded minute don drop to 327 shares, with only 67.9% of clock minutes dey trade at all. The premarket dey run different shape: the 04:00 bucket — the first prints of the day, when orders wey queue overnight become eligible — measure median of 1046 shares a minute, the 05:30 bucket run 368 with 58.1% of im minutes dey trade, and the pace climb to 2363 by 09:00, the half hour before the opening bell.

Wetin dey happen to spreads after hours?

Fewer pipo also dey show for bid-ask spread — the gap between the best price buyers go pay and the best price sellers go accept, which na the cost wey dey inside trading sharp sharp. Professional market makers get quoting duties during regular hours; after the bell, to post quotes na by choice, and fewer firms dey do am. The panel below na to measure Apple median quoted spread across the past week of tick-level quote updates, split by session — full sessions only, with early-close days comot, so the 9:30-to-4:00 label remain true for every quote wey dem count.

QueryAAPL median quoted spread — regular session vs extended hours (last week, full sessions)
The exact SQL behind every number
WITH full_sessions AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS session_date
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'AAPL'
      AND window_start >= now() - INTERVAL 7 DAY
      AND toDate(toTimeZone(window_start, 'America/New_York')) < toDate(toTimeZone(now(), 'America/New_York'))
    GROUP BY session_date
    HAVING max(toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) >= 1140
)
SELECT trading_session,
       round(quantileDeterministic(0.5)(spread_usd, tsk) * 100, 1) AS median_spread_cents,
       round(quantileDeterministic(0.5)(spread_bps, tsk), 1) AS median_spread_bps
FROM (
    SELECT if(m BETWEEN 570 AND 959, 'regular session (9:30 am - 4:00 pm ET)', 'extended hours (premarket + after-hours)') AS trading_session,
           toFloat64(ask_price - bid_price) AS spread_usd,
           toFloat64(ask_price - bid_price) / (toFloat64(ask_price + bid_price) / 2) * 10000 AS spread_bps,
           toUInt64(sip_timestamp) AS tsk,
           toHour(toTimeZone(sip_timestamp, 'America/New_York')) * 60 + toMinute(toTimeZone(sip_timestamp, 'America/New_York')) AS m
    FROM global_markets.cache_stocks_quotes
    WHERE ticker = 'AAPL'
      AND sip_timestamp >= now() - INTERVAL 7 DAY
      AND toDate(toTimeZone(sip_timestamp, 'America/New_York')) IN (SELECT session_date FROM full_sessions)
      AND bid_price > 0
      AND ask_price > bid_price
      AND (toHour(toTimeZone(sip_timestamp, 'America/New_York')) * 60 + toMinute(toTimeZone(sip_timestamp, 'America/New_York'))) BETWEEN 240 AND 1199
)
GROUP BY trading_session
ORDER BY trading_session

During regular hours, Apple median quoted spread na 4¢ — 1.3 basis points, hundredths of a percent of the share price. For extended hours the median run 27¢, or 8.3 bps. One round trip — buy, then sell — pay that gap once, and for this window the extended-hours toll sit well above the regular-hours one. The bid-ask spread post chart the same pattern across the whole day: pennies midday, wide gap for both edges.

Wetin be di risk of trading afta hours?

Di two wey you fit measure don already dey on dis page. Cost: Apple median quoted spread run 27¢ for extended hours against 4¢ for di regular session — wider gap to cross as you dey enta, and again as you dey comot. Depth: di median traded minute afta di bell carry 2050 Apple shares, down from 131189 inside di half hour before am, and on thin book each order dey push price pass. Di rest na mechanical: limit orders only, fills never guaranteed, and any price wey print for evening still go face di next morning opening auction, where bigger crowd go set di level. Extended-hours trading na di same market with fewer participants and higher built-in costs; di numbers above na di price of admission.

Why stocks dey move after hours?

Two things dey cover most evening moves. First one, corporate news dey follow the sessions: companies dey normally publish earnings and other important announcements outside regular hours — most times, minutes after the 4:00 p.m. close, or for the hours before the market open. Second one, the tape wey those headlines dey land on thin, as we don measure before.

The panel wey dey below dey count every item inside wan consolidated stock-news feed from the past 30 days wey don finish, by the Eastern Time hour wey dem publish am — all seven days of the week dey inside.

QueryStock headlines by ET hour of publication (last 30 days, all days)
The exact SQL behind every number
SELECT toHour(toTimeZone(published_utc, 'America/New_York')) AS et_hour,
       count() AS articles,
       round(100 * count() / sum(count()) OVER (), 1) AS pct_of_items
FROM global_markets.stocks_news
WHERE published_utc >= now() - INTERVAL 30 DAY
  AND toDate(toTimeZone(published_utc, 'America/New_York')) < toDate(toTimeZone(now(), 'America/New_York'))
GROUP BY et_hour
ORDER BY et_hour

Headlines land for every one of the 24 clock hours. For this window, the noon hour carry 353 items (7.4% of the 30-day total), the 8 a.m. hour carry 297, and the first hour after the close carry 242 (5.1% of the 30-day total). Even the 3 a.m. hour carry 137 items; overnight for New York na morning for Europe, and the wires never fully stop.

Put the two measurements together: announcements dey land after the bell, and dem dey land on market where the median traded minute carry 741 Apple shares for the 16:30 bucket, against 53216 for the 13:00 bucket. After-hours price na real information — e still be price wey small crowd set, and the next morning opening auction go re-price am with wan bigger crowd.

FAQ

Wetin time premarket trading go start?

Premarket trading dey start by 4:00 a.m. ET for the electronic networks — for the two-week window wey dem measure above, the earliest SPY bar print by 04:00 ET. Many brokers dey open premarket access later (7:00 or 8:00 a.m. na common one); the practical start time na wetin your broker support.

Whether after-hours trades dey change the official closing price?

No. The official closing price na the closing auction set am by 4:00 p.m. and e stand for the day — index funds, options settlement, and your account statement all dey reference am. After-hours prints dey update the "last" price wey your app dey show; the official close no dey move.

Why stocks dey move pass after earnings?

Earnings releases traditionally dey land minutes after the close or before the open, outside regular hours. The tape for that moment thin — Apple median traded minute for 16:30 ET bucket carry 741 shares for the month wey dem measure, against 53216 for 13:00 bucket — and spreads dey run wider. Fewer resting shares per minute mean say each order go move the price pass.

You fit trade after hours for early-close day?

Yes, but the clock go shift: for exchange early-close days the regular session go end by 1:00 p.m. ET and after-hours trading typically dey run 1:00-5:00 p.m. Full holidays no get sessions at all. The exchange calendar, no be habit, na the source of truth — here na how you go take verify market holiday or early close.

Whether after-hours trading risky?

The measurable frictions all dey show for this page. Most brokers dey accept limit orders only, and fill no dey guaranteed when fewer firms dey quote the other side. Quoted spreads dey run wider — Apple median extended-hours spread measure 27¢ against 4¢ for the regular session — and the book thin, so each order go move the price pass. Wetin price print for the evening still dey face overnight gap before the next morning opening auction go re-price am with larger crowd.


Every number for above dey render from stored, inspectable query — expand the SQL under any panel to audit am. To profile the after-hours behavior of ticker wey you get, ask the same questions for plain English for the Strasmore terminal.

#after hours#premarket#market hours#sessions#liquidity