Any US stock or ETF's full daily price, dividend and split history in one Excel file, $5 per ticker, one payment, no subscription.Pick a ticker
Strasmore Research
Learn Matt ConnorBy Matt Connor · Updated 2026-09-28

Nasdaq Opening Cross Explained: 4 a.m. to 9:30

How the Nasdaq opening cross sets the 9:30 a.m. open: the 4:00 a.m. to 9:30 timeline, MOO, LOO and OIO cutoffs, the NOII feed, and how the price is picked.

The Nasdaq opening cross is the auction that opens every Nasdaq-listed stock at 9:30 a.m. ET: buy and sell orders gathered since 4:00 a.m. are matched at one price, and that price becomes the Nasdaq Official Opening Price. From 9:28 a.m. Nasdaq publishes an imbalance snapshot every second, showing how the auction would clear if it ran at that instant. Below: the timeline, the three on-open order types and their cutoffs, the rule that picks the price, and what the cross looks like on the tape.

What is the Nasdaq opening cross?

A cross, in exchange language, is a call auction: instead of matching orders one at a time as they arrive, the exchange collects them for a period and clears them all together at one price. Nasdaq runs two every trading day for its listed stocks. The opening cross sets the official open at 9:30 a.m.; the Nasdaq closing cross sets the official close at 4:00 p.m. The two share the same parts (dedicated auction orders and a per-second imbalance feed, cleared by one fixed price-selection rule), with the clock moved from the end of the day to the start.

The price the cross prints is the Nasdaq Official Opening Price, the figure that shows as the open in the daily bar and the reference for anything that benchmarks off the open. Everyone who wants to trade at the open meets at one moment, and the price is the one that fills the most shares.

Opening cross timeline: 4:00 a.m. to 9:30 a.m. ET

Every time below is Eastern.

  1. 4:00 a.m. Nasdaq's pre-market session opens for continuous trading and the exchange begins accepting on-open orders (MOO, LOO, and OIO, defined next). On-open orders do not trade pre-market; they wait for the cross.
  2. 9:28:00 a.m. The Net Order Imbalance Indicator starts publishing once per second, and the door closes on market-on-open orders. MOO and LOO orders already entered can no longer be cancelled or changed.
  3. 9:28:00 to 9:29:30 a.m. A narrow late window for limit-on-open orders, added by a 2021 rule change. A late LOO is accepted only once a first reference price exists and only if its limit is at that price or more aggressive; it is then repriced to the reference price itself, which keeps a late arrival from moving the cross.
  4. Up to 9:30:00 a.m. Opening imbalance only orders keep arriving until the cross fires.
  5. 9:30:00 a.m. The cross executes as one print. Nasdaq disseminates the official opening price and cancels whatever is left of the on-open orders. Continuous trading begins on the remaining book.

The deadlines for both crosses, side by side, are in MOC and MOO order cutoff times.

MOO, LOO and OIO: the three on-open order types

A market-on-open (MOO) order asks for whatever price the cross settles on, in full, with no limit. It must arrive before 9:28 a.m.; after that, new MOO orders are rejected.

A limit-on-open (LOO) order participates only if the cross price is at its limit or better. A buy LOO at $50.00 fills if the cross prints at $50.00 or lower and does nothing at $50.01. The standard cutoff is also 9:28 a.m., with the late window above.

An opening imbalance only (OIO) order supplies liquidity and can execute only against the side that is short: a buy OIO trades only if there are more shares to sell than to buy at the cross price, and a sell OIO only if there are more to buy. OIO orders are never displayed and never trade in continuous hours; they are accepted right up until the cross. One priced more aggressively than Nasdaq's prevailing quote is repriced to that quote first, which keeps OIO orders from setting the cross price themselves.

None of the three survives the open. Any portion of an MOO, LOO, or OIO order that does not execute in the cross is cancelled.

What the Net Order Imbalance Indicator shows

From 9:28 until the cross, Nasdaq broadcasts the Net Order Imbalance Indicator, or NOII, once every second. Each snapshot has five parts:

  • Paired shares: the shares that would match at the current reference price if the cross ran now.
  • Imbalance shares and side: the shares left unmatched at that price, and whether they are buys or sells.
  • Current reference price: the price at which the most shares pair, bounded by Nasdaq's best bid and offer at that moment.
  • Near indicative clearing price: where the cross would clear using on-open orders and the continuous book together.
  • Far indicative clearing price: where the cross would clear using on-open orders alone.

A buy imbalance with a far price well above the near price means the auction orders on their own would open the stock higher than the whole book would. Market makers and OIO senders read the feed to decide whether to offset the imbalance before 9:30. The NYSE publishes a different feed with its own timing and fields; NYSE imbalance messages covers that version.

How the opening cross price is chosen

Nasdaq picks the price with a fixed three-step rule.

  1. The price that executes the largest number of shares.
  2. If more than one price ties, the price that leaves the smallest imbalance.
  3. If there is still a tie, the price closest to the midpoint of Nasdaq's best bid and offer at 9:30.

A made-up example shows the first step. Suppose 9,500 shares could pair at $49.99, 10,000 at $50.00, and 9,000 at $50.01. The cross prints at $50.00 and every participating order fills there, whatever limit it carried: an LOO buyer who wrote $50.20 pays $50.00. Nasdaq also runs a threshold check that compares the tentative cross price with the prevailing quote before the print goes out.

What happens to orders already on the book at 9:30?

Nasdaq's pre-market session runs from 4:00 a.m. straight into the cross, and the limit orders resting on that continuous book are part of the auction: a resting bid at or above the cross price fills at the cross price, and one below it does not. The difference from on-open orders is what happens next. An unfilled resting order stays on the book at its limit and is live the moment continuous trading starts, whereas the unfilled remainder of an on-open order is cancelled. The cross hits the tape as one trade with an opening-print condition, and the next print is the first trade of the continuous session.

The IPO and halt cross

A stock with no continuous book, whether a new listing or a name coming out of a trading halt, opens through a variant of the same auction. Nasdaq holds a quote-only period, with the imbalance feed running throughout, during which orders can be entered and cancelled but nothing trades. The cross then runs; for an IPO, the underwriter tells Nasdaq when to release the stock. How the IPO opening price is set walks through that version with a real listing.

How the Nasdaq open differs from the NYSE open

The NYSE opens each of its listed stocks through a Designated Market Maker, a firm assigned to the stock that runs the opening auction and can open it manually, with floor-broker interest included in the print. A Nasdaq open has no such person: the cross is entirely rule-driven and runs on the same clock for every listed stock. The NYSE version, including why a stock can open late, is covered in what the opening auction is and how it works.

How much of the day trades in the opening minute?

The cross is one print, so its size lands in the first one-minute bar of the regular session. That 9:30 bar also holds the first sixty seconds of continuous trading, so its share of the day is an upper bound on the cross, not the cross alone. Read that way, it still shows how much of a day's business is concentrated at the open. The panel below pools every regular-session minute in August 2026 for five Nasdaq-listed names and asks what fraction landed in the 9:30 minute, with the 12:30 p.m. minute for scale and the closing cross for comparison. The closing cross is read from the tape as one trade, by its closing-print condition code, since the one-minute bars on this tape leave that print out; regular-session volume is every bar from 9:30 through 3:59 p.m. plus that print.

QueryShare of regular-session volume in the opening minute, the 12:30 minute, and the closing cross, August 2026
tickeropening_minute_pctmidday_minute_pctclosing_cross_pct
AAPL2.730.2818.29
AMZN3.250.1413.94
MSFT3.120.1117.06
NVDA2.560.211.95
TSLA1.560.197.76
The exact SQL behind every number
SELECT
    b.ticker                                                                           AS ticker,
    round(100 * sum(b.open_minute)   / sum(b.continuous_shares + p.closing_print), 2) AS opening_minute_pct,
    round(100 * sum(b.midday_minute) / sum(b.continuous_shares + p.closing_print), 2) AS midday_minute_pct,
    round(100 * sum(p.closing_print) / sum(b.continuous_shares + p.closing_print), 2) AS closing_cross_pct
FROM
(
    SELECT
        ticker,
        d,
        sumIf(v, et_min = 570) AS open_minute,
        sumIf(v, et_min = 750) AS midday_minute,
        sum(v)                 AS continuous_shares
    FROM
    (
        SELECT
            ticker,
            toDate(toTimeZone(window_start, 'America/New_York'))        AS d,
            toHour(toTimeZone(window_start, 'America/New_York')) * 60
              + toMinute(toTimeZone(window_start, 'America/New_York')) AS et_min,
            toFloat64(volume)                                           AS v
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker IN ('AAPL', 'MSFT', 'NVDA', 'AMZN', 'TSLA')
          AND window_start >= '2026-08-03 04:00:00'
          AND window_start <  '2026-09-01 04:00:00'
    )
    WHERE et_min BETWEEN 570 AND 959
    GROUP BY ticker, d
) AS b
INNER JOIN
(
    SELECT
        ticker,
        toDate(toTimeZone(sip_timestamp, 'America/New_York')) AS d,
        toFloat64(maxIf(size, has(conditions, 8)))            AS closing_print
    FROM global_markets.stocks_trades
    WHERE ticker IN ('AAPL', 'MSFT', 'NVDA', 'AMZN', 'TSLA')
      AND sip_timestamp >= '2026-08-03 04:00:00'
      AND sip_timestamp <  '2026-09-01 04:00:00'
      AND toHour(toTimeZone(sip_timestamp, 'America/New_York')) = 16
      AND toMinute(toTimeZone(sip_timestamp, 'America/New_York')) < 10
    GROUP BY ticker, d
    HAVING countIf(has(conditions, 8)) > 0
) AS p ON p.ticker = b.ticker AND p.d = b.d
GROUP BY ticker
HAVING sum(b.continuous_shares) > 0
ORDER BY ticker
Run this yourself

For AAPL, the opening minute carried 2.73% of regular-session volume over the month, against 0.28% for the 12:30 minute and 18.29% for the closing cross; the chart shows the same three figures for the other names. The figures are pooled over the month, so a heavy session weighs more than a quiet one.

The next panel traces one name through the same month, session by session.

QueryAAPL: opening-minute and closing-cross share of regular-session volume, by session
21 rows (showing 20)
sessionopening_minute_pctclosing_cross_pctsession_label
2026-08-032.2414.13August 3
2026-08-041.9522.96August 4
2026-08-052.3315.81August 5
2026-08-062.4516.78August 6
2026-08-072.7621.1August 7
2026-08-103.8116.01August 10
2026-08-112.3418August 11
2026-08-121.7314.53August 12
2026-08-133.1919.14August 13
2026-08-141.9823.22August 14
2026-08-172.3319.23August 17
2026-08-181.917.45August 18
2026-08-191.8614.34August 19
2026-08-201.8321.36August 20
2026-08-2110.5111.77August 21
2026-08-242.7716.72August 24
2026-08-252.9219.37August 25
2026-08-261.9219.92August 26
2026-08-272.5924.22August 27
2026-08-281.6918.77August 28
The exact SQL behind every number
SELECT
    toString(b.d)                                                               AS session,
    round(100 * b.open_minute / (b.continuous_shares + p.closing_print), 2)    AS opening_minute_pct,
    round(100 * p.closing_print / (b.continuous_shares + p.closing_print), 2)  AS closing_cross_pct,
    concat(monthName(b.d), ' ', toString(toDayOfMonth(b.d)))                    AS session_label
FROM
(
    SELECT
        d,
        sumIf(v, et_min = 570) AS open_minute,
        sum(v)                 AS continuous_shares
    FROM
    (
        SELECT
            toDate(toTimeZone(window_start, 'America/New_York'))        AS d,
            toHour(toTimeZone(window_start, 'America/New_York')) * 60
              + toMinute(toTimeZone(window_start, 'America/New_York')) AS et_min,
            toFloat64(volume)                                           AS v
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'AAPL'
          AND window_start >= '2026-08-03 04:00:00'
          AND window_start <  '2026-09-01 04:00:00'
    )
    WHERE et_min BETWEEN 570 AND 959
    GROUP BY d
    HAVING sum(v) > 0
) AS b
INNER JOIN
(
    SELECT
        toDate(toTimeZone(sip_timestamp, 'America/New_York')) AS d,
        toFloat64(maxIf(size, has(conditions, 8)))            AS closing_print
    FROM global_markets.stocks_trades
    WHERE ticker = 'AAPL'
      AND sip_timestamp >= '2026-08-03 04:00:00'
      AND sip_timestamp <  '2026-09-01 04:00:00'
      AND toHour(toTimeZone(sip_timestamp, 'America/New_York')) = 16
      AND toMinute(toTimeZone(sip_timestamp, 'America/New_York')) < 10
    GROUP BY d
    HAVING countIf(has(conditions, 8)) > 0
) AS p ON p.d = b.d
ORDER BY b.d
Run this yourself

Across 21 August sessions, AAPL's opening-minute share was 2.24% on August 3 and 2.03% on August 31, with the closing-cross line plotted alongside. A line that stays low and steady is the ordinary case for a large-cap stock; a spike marks a session where the open cleared far more stock than usual.

How to spot the cross print on the tape

Trades on the consolidated tape carry condition codes, small flags that describe how a trade happened, and opening prints have their own. The reference table below lists the 14 condition codes whose names refer to an opening or reopening trade. Filtering a day's trades for these codes is how a researcher separates the auction print from the continuous trading that follows.

QueryTrade condition codes whose names mark an opening or reopening print
idnamedescription
1Regular Two-Sided Open
2Regular One-Sided Open
13Opening
16Market Center Official Open
17Market Center Opening Trade
18Market Center Reopening Trade
25Opening Prints
28Re-Opening Prints
32No Open No Resume
55Opening Reopening Trade Detail
205Opening Trade and CanceledTransaction was the first one (opening) reported this day for this particular option contract. Although later transactions have been reported, this transaction is now to be canceled.
206Opening Trade, Late, and Out Of SequenceTransaction is a late report of the opening trade and is out of sequence; i.e., other transactions have been reported for the particular option contract.
208Opening Trade and LateTransaction is a late report of the opening trade, but is in the correct sequence; i.e., no other transactions have been reported for the particular option contract.
210Reopening TradeTransaction is a reopening of an option contract in which trading has been previously halted. Prefix appears solely for information; process as a regular transaction.
The exact SQL behind every number
SELECT
    id,
    name,
    any(description) AS description
FROM global_markets.stocks_condition_codes
WHERE lower(name) LIKE '%open%'
GROUP BY id, name
ORDER BY id
Run this yourself

FAQ

What time is the Nasdaq opening cross?

9:30:00 a.m. ET, the moment the regular session begins. Orders for it are accepted from 4:00 a.m., and the imbalance feed runs every second from 9:28 a.m. until the cross fires.

What is the cutoff for market-on-open orders on Nasdaq?

9:28 a.m. ET. After that, new MOO orders are rejected and MOO and LOO orders already entered cannot be cancelled. LOO orders have a limited late window to 9:29:30 a.m., and OIO orders are accepted until the cross.

What is the Nasdaq Official Opening Price?

The price at which the opening cross executes, disseminated by Nasdaq at 9:30 a.m. and used as the official open for a Nasdaq-listed stock. It is one price for the whole auction, and every participating order fills at it.

Does the Nasdaq opening cross apply to NYSE-listed stocks?

No. It opens Nasdaq-listed securities only. A NYSE-listed stock opens through the NYSE's own auction, run by its Designated Market Maker, even though it trades on Nasdaq for the rest of the day.


Every panel above carries the SQL that produced it. To run the same opening-minute share for another ticker or another month, ask for it in plain English on the Strasmore terminal.