Strasmore Research
Learn Matt ConnorBy Matt Connor · data as of July 8, 2026 · refreshed weekly

Stock Market Hours: When Markets Open & Close

What time does the stock market open and close? Regular hours run 9:30 a.m. to 4:00 p.m. ET, premarket from 4:00 a.m., after-hours to 8:00 p.m. On tape data.

US stock market hours run from 9:30 a.m. to 4:00 p.m. Eastern Time, Monday through Friday — the NYSE and the Nasdaq both open regular trading at 9:30 a.m. ET and close it at 4:00 p.m. ET. Around that regular session sit two extended windows: premarket trading from 4:00 a.m. ET and after-hours trading until 8:00 p.m. ET, with markets shut on weekends and on roughly ten holidays a year. Every figure on this page is measured from real trade records, with the exact query behind each number one click away.

What time does the stock market open and close?

The regular trading session — the hours that quoted prices, index levels, and the evening news all describe — runs from the opening bell at 9:30 a.m. ET to the closing bell at 4:00 p.m. ET: six and a half hours, five days a week. Both major US listing exchanges keep the same clock, and a standard brokerage order works this window by default.

The full electronic trading day is wider than the bells:

  • Premarket: 4:00 a.m. to 9:30 a.m. ET — electronic trading before the opening bell.
  • Regular session: 9:30 a.m. to 4:00 p.m. ET — where the bulk of the day's business gets done.
  • After-hours: 4:00 p.m. to 8:00 p.m. ET — electronic trading after the closing bell.

Two auctions bracket the regular day. An opening auction sets each stock's official opening price at 9:30 a.m., and the closing auction — a single giant matched trade moments after 4:00 p.m. — sets the official closing price quoted everywhere that evening. All times on this page are Eastern: the same regular session runs 6:30 a.m. to 1:00 p.m. on the US West Coast.

What do stock market hours look like on the tape?

Definitions are one thing; the tape is the proof. The panels below take a recent full-length session on the SPY tape — 2026-07-02, a Thursday, the most recent session old enough for its record to be complete (the data feed runs a day or two behind) — verified by counting its regular-session minute bars: 390 of them, one for every minute between the bells. The session's first bar printed at 04:00 ET and its last at 19:59 ET — the tape spans the full extended day, 4:00 a.m. to 8:00 p.m.

QueryA full trading day on the SPY tape, split by session window (recent full-length session)
The exact SQL behind every number
WITH
(
    SELECT max(d)
    FROM
    (
        SELECT
            toDate(toTimeZone(window_start, 'America/New_York')) AS d,
            countIf((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) AS rth_bars
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY'
          AND window_start >= today() - 21
          AND window_start < today() - 2
        GROUP BY d
        HAVING rth_bars = 390
    )
) AS session_day
SELECT
    toString(session_day)                     AS session_date,
    formatDateTime(session_day, '%W')         AS weekday,
    countIf(et_min >= 570 AND et_min < 960)   AS regular_session_bars,
    min(et_min)                               AS first_bar_minute_of_day,
    max(et_min)                               AS last_bar_minute_of_day,
    formatDateTime(min(et_ts), '%H:%i')       AS first_bar_et,
    formatDateTime(max(et_ts), '%H:%i')       AS last_bar_et,
    round(sum(volume) / 1e6, 1)               AS total_shares_m,
    round(100.0 * sumIf(volume, et_min < 570) / sum(volume), 1)                    AS premarket_pct,
    round(100.0 * sumIf(volume, et_min >= 570 AND et_min < 960) / sum(volume), 1)  AS regular_pct,
    round(100.0 * sumIf(volume, et_min >= 960 AND et_min < 990) / sum(volume), 1)  AS post_close_30min_pct,
    round(100.0 * sumIf(volume, et_min >= 990) / sum(volume), 1)                   AS evening_pct,
    round(100.0 * sumIf(volume, et_min >= 570 AND et_min < 600) / sum(volume), 1)  AS first_30min_pct,
    round(100.0 * sumIf(volume, et_min >= 930 AND et_min < 960) / sum(volume), 1)  AS last_30min_pct,
    round(100.0 * sumIf(volume, et_min >= 750 AND et_min < 780) / sum(volume), 1)  AS midday_half_hour_pct
FROM
(
    SELECT
        volume,
        toTimeZone(window_start, 'America/New_York') AS et_ts,
        toHour(toTimeZone(window_start, 'America/New_York')) * 60
        + toMinute(toTimeZone(window_start, 'America/New_York')) AS et_min
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND toDate(toTimeZone(window_start, 'America/New_York')) = session_day
)

The volume split is the lesson. Of the 55.4 million SPY shares that traded across that whole sixteen-hour span, the regular session carried 79.3%. The five-and-a-half-hour premarket printed 2.2%. The half hour immediately after the closing bell printed 16% — a window that catches large negotiated trades reported to the tape once the session ends — and the remaining three and a half evening hours printed 2.5% combined.

Half-hour buckets show the day's shape:

QuerySPY volume by half hour, premarket through after-hours (same session, ET clock)
The exact SQL behind every number
WITH
(
    SELECT max(d)
    FROM
    (
        SELECT
            toDate(toTimeZone(window_start, 'America/New_York')) AS d,
            countIf((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) AS rth_bars
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY'
          AND window_start >= today() - 21
          AND window_start < today() - 2
        GROUP BY d
        HAVING rth_bars = 390
    )
) AS session_day
SELECT
    formatDateTime(toStartOfInterval(toTimeZone(window_start, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i') AS et_half_hour,
    round(sum(volume) / 1e6, 2) AS shares_m
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
  AND toDate(toTimeZone(window_start, 'America/New_York')) = session_day
GROUP BY et_half_hour
ORDER BY et_half_hour

On this session the closing half hour printed 19.5% of the entire day's volume, against 4.7% for the 12:30-to-1:00 lunchtime half hour; the opening half hour printed 7.5%. The heavy close has a mechanical anchor: index funds, mutual funds, and benchmarked institutions transact at official closing prices, and their orders pool into the closing auction. In all, volume landed in 32 distinct half-hour buckets across the extended day.

What are premarket and after-hours trading?

Premarket (4:00 a.m. to 9:30 a.m. ET) and after-hours (4:00 p.m. to 8:00 p.m. ET) are electronic-only trading windows around the regular day. Fewer participants show up there, bid-ask spreads run wider, and most brokers accept only limit orders in these sessions. Company news concentrates in them: earnings releases cluster just after the 4:00 p.m. close and in the hours before the open — the windows where a stock's price can gap far from its prior close. A price printed at 7:00 p.m. carries no guarantee about where the stock opens the next morning.

Session-by-session volume shares, measured bid-ask spread costs, and the clock-time when headlines actually land are all in after-hours and premarket trading, the companion piece to this page. The short version, visible in the panels above: extended sessions are real and tradable, and they are thin next to the regular day.

When is the stock market closed?

US stock markets close for weekends, for about ten full-day holidays a year, and early — at 1:00 p.m. ET — on a few scheduled half days. The calendar below comes straight from the exchange schedule and maintains itself: each holiday drops off as it passes and the next one moves up.

QueryUpcoming US stock market holidays and early closes, from the exchange calendar
The exact SQL behind every number
SELECT
    toString(date)                       AS holiday_date,
    formatDateTime(date, '%a')           AS weekday,
    any(name)                            AS holiday,
    any(status)                          AS day_status,
    any(if(status = 'early-close',
           formatDateTime(toTimeZone(close, 'America/New_York'), '%I:%i %p'),
           ''))                          AS early_close_et,
    dateDiff('day', today(), date)       AS days_away
FROM global_markets.stocks_market_holidays
WHERE date >= today()
GROUP BY date
ORDER BY date

The next scheduled closure is Labor Day on 2026-09-07, 61 days out, and the loaded calendar lists 12 dated closures ahead, each marked as a full closure or an early close. On an early-close day the regular session ends at 1:00 p.m. ET instead of 4:00 p.m. — three and a half hours of trading instead of six and a half — with the closing auction printing at 1:00 p.m. These half days cluster around Thanksgiving and Christmas. The weekend make-up rules (a Saturday holiday closes the market the Friday before, a Sunday holiday the Monday after), the full calendar, and how to audit a past closure from the tape are covered in stock market holidays and early closes.

How many trading days are in a year?

Take out weekends and holidays and a calendar year leaves roughly 250 trading sessions. Counting them from the tape settles the exact number:

QueryTrading sessions over the trailing year, counted from the SPY tape
The exact SQL behind every number
SELECT
    count()                              AS trading_days,
    countIf(rth_bars >= 380)             AS full_length_sessions,
    countIf(rth_bars <= 240)             AS shortened_sessions,
    countIf(rth_bars > 240 AND rth_bars < 380) AS irregular_sessions,
    countIf(is_weekend)                  AS weekend_sessions,
    toString(min(d))                     AS first_session,
    toString(max(d))                     AS last_session
FROM
(
    SELECT
        toDate(toTimeZone(window_start, 'America/New_York')) AS d,
        toDayOfWeek(toDate(toTimeZone(window_start, 'America/New_York'))) >= 6 AS is_weekend,
        countIf((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) AS rth_bars
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= today() - 370
      AND window_start < today() - 2
    GROUP BY d, is_weekend
    HAVING rth_bars > 0
)

Between 2025-07-03 and 2026-07-02 the market held 251 regular sessions — 248 full-length days plus 3 shortened ones — and exactly 0 weekend sessions, the tape's own receipt that no Saturday or Sunday held a regular session.

Stock Market Hours FAQ

What time does the stock market open?

The NYSE and Nasdaq open regular trading at 9:30 a.m. Eastern Time, Monday through Friday. Electronic premarket trading starts much earlier, at 4:00 a.m. ET, but each stock's official opening price is set at the 9:30 a.m. opening auction.

Is the stock market open on weekends?

No. US stock exchanges run no sessions on Saturday or Sunday — the trailing year of tape data above shows 0 weekend sessions. After Friday's 4:00 p.m. close and its 8:00 p.m. after-hours cutoff, trading resumes with Monday's 4:00 a.m. premarket, holidays aside.

What are pre-market and after-hours trading?

Electronic trading outside regular hours: premarket runs 4:00 a.m. to 9:30 a.m. ET and after-hours runs 4:00 p.m. to 8:00 p.m. ET. Both operate with fewer participants and wider bid-ask spreads than the regular session, and most brokers accept only limit orders there.

When does the market close early?

On scheduled half days, regular trading ends at 1:00 p.m. ET instead of 4:00 p.m. — typically the Friday after Thanksgiving, Christmas Eve when it falls on a weekday, and July 3 in some years. The trailing year's tape shows 3 shortened sessions.


Market hours are a schedule; the tape is the receipt. Every panel above is a stored query you can open, edit, and re-run on the Strasmore terminal — check any session, any ticker, or the next closure ahead in plain English.