Strasmore Research
Learn am Matt ConnorBy Matt Connor · Updated 2026-10-18 · data as of October 18, 2026 · refreshed weekly

Premarket and After-Hours Trading Hours na Wetin?

Premarket dey run 4-9:30 a.m. ET, after-hours 4-8 p.m. See volume share, wider spreads and when news dey move prices, so you fit plan trades better.

After-hours trading na buying and selling of stocks between 4:00 p.m. and 8:00 p.m. ET, after regular US session don end. Premarket trading na the same activity between 4:00 a.m. and 9:30 a.m. Together, both sessions dey surround the regular 9:30-to-4:00 trading day and dem make up extended-hours trading. Most brokers support both, almost always with limit orders.

This page dey measure wetin really dey change when closing bell ring: volume, spreads and when headlines come out. E use the tape directly, wey be the consolidated public record of every trade. The exact query behind every number dey attached.

Premarket and after-hours trading hours na wetin?

Normal US trading day get three sessions: 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 make you just believe that schedule, you fit read am from the tape. The panel below scan every SPY minute bar for the past two weeks and report the earliest and latest bar for each completed session, based on Eastern Time clock. (SPY, the most heavily traded S&P 500 ETF, dey trade anytime any market dey open.)

QuerySession envelope, wey dem read from SPY minute bars (last two weeks, ET)
first bar ETlast bar ETfirst bar minute of daylast bar minute of daysessions wey don completefirst sessionlast session
04:0019:592401199102026-10-052026-10-16
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
Run am yourself

Across the 10 completed sessions from 2026-10-05 to 2026-10-16, the earliest bar for any day print at 04:00 ET, while the last bar for any day open at 19:59. That one be sixteen-hour envelope, and regular hours take six and a half hours inside am. The session count include only days wey actually trade: holidays no get bars, while early closes make the envelope shorter. Regular session go end at 1:00 p.m. ET, and after-hours go close early too. Market holidays and early closes show how to confirm session from the calendar and tape before you trust any day's numbers.

You fit buy stocks after hours?

Yes, most major brokers dey accept both premarket and after-hours orders, but three conditions dey almost universal:

  • Na Limit orders only: you go name the exact price wey you agree to accept. The order go fill for that price or better, or e no go fill at all. Dem normally reject Market orders or queue dem for the next regular session.
  • Orders dey route go electronic venues, electronic communication networks (ECNs), wey be computerized systems wey match buyers and sellers directly. Dem fit also route go the exchanges’ own extended-hours sessions. These sessions no get the opening and closing auctions or the market makers’ quoting obligations wey regular trading day get.
  • No be every order go fill: because fewer participants dey on the other side, Limit order wey for fill immediately at 2:00 p.m. fit remain untouched at 6:00 p.m.

Cut-off times and eligible order types dey differ from broker to broker. The standard 4:00 a.m.-8:00 p.m. clock na the trading venues set am, no be your broker. But some brokers now offer separate overnight session, roughly 8:00 p.m.-4:00 a.m., for off-exchange venues. Na separate market be this, and e no dey show for the 4:00 a.m. to 8:00 p.m. windows wey this page measure.

How much volume dey trade for premarket and after hours?

The two extended sessions together dey last nine and a half hours every day, three hours pass the regular session. But dem no carry anywhere near that share of trading. The table below divide the last month’s share volume for SPY, AAPL, and NVDA into four time windows: premarket, regular hours, the first half hour after the 4:00 p.m. bell, and the rest of the evening. E exclude early-close days — holiday-shortened sessions wey end for 1:00 p.m. — because day only count when the tape reach evening. This keep each time window label accurate for every day wey dem measure. The split count every trade for the consolidated tape, including the closing auction print, wey the one-minute bars for this tape no include.

QueryShare of one month's volume by clock window: SPY, AAPL, NVDA (full sessions only)
tickerpremarket %regular %post-close 30min %evening %
SPY2.579.9152.6
AAPL1.667.228.82.3
NVDA3.171.119.46.4
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(shares, m < 570) / sum(shares), 1) AS premarket_pct,
       round(100 * sumIf(shares, m >= 570 AND m < 960) / sum(shares), 1) AS regular_pct,
       round(100 * sumIf(shares, m >= 960 AND m < 990) / sum(shares), 1) AS post_close_30min_pct,
       round(100 * sumIf(shares, m >= 990) / sum(shares), 1) AS evening_pct
FROM (
    SELECT ticker, toFloat64(size) AS shares,
           toHour(toTimeZone(sip_timestamp, 'America/New_York')) * 60 + toMinute(toTimeZone(sip_timestamp, 'America/New_York')) AS m
    FROM global_markets.stocks_trades
    WHERE ticker IN ('SPY', 'AAPL', 'NVDA')
      AND sip_timestamp >= now() - INTERVAL 30 DAY
      AND toDate(toTimeZone(sip_timestamp, 'America/New_York')) IN (SELECT session_date FROM full_sessions)
      AND NOT hasAny(conditions, [15, 16, 38])
      AND (toHour(toTimeZone(sip_timestamp, 'America/New_York')) * 60 + toMinute(toTimeZone(sip_timestamp, 'America/New_York'))) BETWEEN 240 AND 1199
)
GROUP BY ticker
ORDER BY indexOf(['SPY', 'AAPL', 'NVDA'], ticker)
Run am yourself

Regular hours carry 79.9% of SPY’s share volume, 67.2% of Apple’s, and 71.1% of Nvidia’s. The premarket, wey last five and a half hours, carry 1.6% and 3.1% for Apple and Nvidia. Real evening trading, from 4:30 p.m. reach the 8:00 p.m. cutoff, measure 2.3% for Apple, 6.4% for Nvidia, and 2.6% for SPY.

The column wey need explanation na the first half hour after the bell, where 15% of SPY’s monthly volume print. This no be evening speculation. The closing auction, the big end-of-day match wey set each stock’s official closing price, distribute its prints at and shortly after 4:00 p.m. End-of-day trade reports also settle onto the tape within those same minutes. By clock time, those prints be “after hours”; economically, dem belong to the close. For quarter-end and index-rebalance days, that print fit become especially large. For ETF like SPY, e fit push this column pass the whole premarket. Any volume-based statistic — relative volume, VWAP, or a most-active screen — fit mean different thing depending on which of these windows e count.

Shares per minute make the difference clearer. The chart below follow Apple’s median minute volume in half-hour buckets across the full sixteen-hour day, using the same month of complete sessions. One warning dey inside the measurement: minute wey no get trade no print any bar. So each bucket’s median describe only the minutes when Apple actually trade. The second series — the share of clock minutes wey get any trade — show how much of each bucket that represent.

QueryAAPL median shares per traded minute, and share of minutes wey trade at all (ET)
32 rows (showing 20)
ET timemedian minute volume% minutes wey dem trade
04:0064175.4
04:3038265.2
05:0040263.2
05:3043461.9
06:0036764.3
06:3049767.3
07:00105788.7
07:3090785.7
08:00120392.1
08:30155690.6
09:00265094.3
09:3011163495.2
10:007258295.2
10:305160495.2
11:004811495.2
11:304238295.2
12:003692795.2
12:303059795.2
13:003128695.2
13:303100395.2
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
Run am yourself

For the 09:30 bucket, the first half hour of regular trading, Apple’s median minute trade 111634 shares, and 95.2% of clock minutes get trade print. The 15:30 bucket, the last half hour before the bell, run 75018 shares per minute. One bucket later, for 16:00, the median traded minute carry 1186 shares. Market no dey fade gently at the close; e dey drop sharply. By the 17:30 bucket, the median traded minute don fall to 279 shares, and only 55.6% of clock minutes get any trade. Premarket get another pattern. The 04:00 bucket, the first prints of the day when overnight queued orders become eligible, record median of 641 shares per minute. The 05:30 bucket run 434, with 61.9% of its minutes showing trades. By 09:00, the half hour before the opening bell, the pace rise to 2650.

Wetin dey happen to spreads after hours?

Fewer participants dey show for the bid-ask spread too. Na the gap between the best price wey buyers ready pay and the best price wey sellers ready accept. Na this gap be the built-in cost of trading immediately. Professional market makers get quoting obligations during regular hours. After the bell, posting quotes na voluntary, and fewer firms dey do am. The panel below measure Apple median quoted spread across the past week of tick-level quote updates. E separate am by session and use full sessions only. E exclude early-close days, so the 9:30-to-4:00 label remain correct for every quote wey dem count.

QueryAAPL median quoted spread: regular session vs extended hours (past week, full sessions)
trading sessionmedian spread centsmedian spread bps
extended hours (premarket + after-hours)185.3
regular session (9:30 am - 4:00 pm ET)41.2
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
Run am yourself

During regular hours, Apple median quoted spread measure 4¢, or 1.2 basis points. Basis points na hundredths of a percent of the share price. For extended hours, the median reach 18¢, or 5.3 bps. Round trip mean say you buy, then sell, and you pay that gap once. For this period, the extended-hours toll dey clearly higher than the regular-hours one. The bid-ask spread chart show the same pattern throughout the day: pennies around midday, but wider gap for both ends.

What be the risks of trading after hours?

The two wey person fit measure don already dey this page. Cost: Apple median quoted spread na 18¢ for extended hours, versus 4¢ for regular session. Na wider gap to cross when you enter, and again when you comot. Depth: median traded minute after bell carry 1186 Apple shares, down from 75018 for the half hour before am. For thin book, every order fit move price farther.

The rest na mechanical risks: na limit orders only, fills no dey guaranteed, and any price wey prints for evening still face next morning opening auction. Na there much bigger crowd dey set the level. Extended-hours trading na the same market, but with fewer participants and higher built-in costs. The numbers above na the price of admission.

Why stocks dey move after hours?

Two observations dey explain most evening moves. First, companies dey time corporate news around the trading sessions. Dem traditionally dey publish earnings and other material announcements outside regular hours. Most times, na few minutes after the 4:00 p.m. close, or during the hours before market open.

Second, the tape wey those headlines land on thin, as the measurement above show.

The panel below count every item for consolidated stock-news feed from the last 30 completed days. E group dem by the Eastern Time hour wey dem publish am, and e include all seven days of the week.

QueryStock headlines by ET hour wey dem publish (last 30 days, all days)
24 rows (showing 20)
ET hourarticles% of items
0650.7
11131.2
21391.4
31501.5
42272.3
53743.8
62923
76256.4
8147615
997910
108358.5
11100910.3
124294.4
133023.1
142993
151691.7
167677.8
178048.2
182382.4
191731.8
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
Run am yourself

Headlines land for every one of the 24 clock hours. For this period, the noon hour carry 429 items (4.4% of the 30-day total). The 8 a.m. hour carry 1476, while the first hour after the close carry 767 (7.8% of the 30-day total). Even the 3 a.m. hour carry 150 items. Overnight for New York na morning for Europe, and the news wires never fully stop.

Put the two measurements together. Announcements still dey land after the bell, and dem dey land for market where the median traded minute carry 524 Apple shares for the 16:30 bucket, compared with 31286 for the 13:00 bucket. After-hours price na real information, but na small crowd set the price. The next morning opening auction go re-price am with much bigger crowd.

FAQ

Premarket trading dey start what time?

Premarket trading dey start for 4:00 a.m. ET on electronic networks. For the two-week period wey we measure above, the earliest SPY bar print for 04:00 ET. Many brokers dey open premarket access later, and 7:00 or 8:00 a.m. dey common. So, practical start time na wetin your broker support.

After-hours trades dey change official closing price?

No. Closing auction for 4:00 p.m. set the official closing price, and e stand for that day. Index funds, options settlement and your account statement all dey reference am. After-hours prints dey update the “last” price wey your app show, but official close no dey change.

Why stocks dey move so much after earnings?

Earnings releases traditionally dey come out minutes after the close or before the open, outside regular trading hours. The tape for that time dey thin. Apple median traded minute for the 16:30 ET bucket carry 524 shares for the month wey we measure, compared with 31286 for the 13:00 bucket. Spreads too dey wider. When fewer shares dey rest for the book each minute, each order fit move price farther.

Person fit trade after hours for early-close day?

Yes, but the timing dey shift. For exchange early-close days, regular session dey end for 1:00 p.m. ET, and after-hours trading normally run from 1:00 to 5:00 p.m. Full holidays no get any session. Na the exchange calendar be the source of truth, no be habit: na here you fit verify market holiday or early close.

After-hours trading dey risky?

All the measurable frictions 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 wider. Apple median extended-hours spread measure 18¢, compared with 4¢ for regular session. The book dey thinner too, so each order fit move price farther. Any price wey print for evening still face overnight gap before next morning opening auction re-price am with bigger crowd.

Every number above dey render from stored, inspectable query. Open the SQL under any panel to audit am. If you wan profile after-hours behavior for ticker wey you own, ask the same questions for plain English on the Strasmore terminal.