Why Overnight Orders Must Be Limit Orders
Overnight orders must be limit orders. In the 8 p.m. to 4 a.m. ET session there is no consolidated quote to protect a print, and a book one order can sweep.
Overnight orders must be limit orders at every US venue that runs an overnight session today, and the rule is structural rather than a broker's house preference. Between 8:00 p.m. and 4:00 a.m. ET a US stock trades on one alternative trading system instead of across a linked national market, and the consolidated quote that normally anchors the idea of a best available price is not publishing. A limit price is the only instruction that tells the venue the worst fill you will accept.
What the overnight session is, and who runs it
Three windows sit outside the 9:30 a.m. to 4:00 p.m. ET regular session. Premarket opens at 4:00 a.m., after-hours runs until 8:00 p.m., and both behave the way premarket and after-hours trading describes. The overnight session is the third window, and it differs in kind. As of September 2026 the overnight venue that retail brokers connect to is Blue Ocean ATS, operated by Blue Ocean Technologies, trading from 8:00 p.m. to 4:00 a.m. ET on Sunday through Thursday nights. A broker advertising overnight trading is routing your order there.
This corner of the market is still being built. 24X National Exchange has held SEC approval since November 2024 for a trading day split into two sessions, one of them overnight, and the listing exchanges have filed plans to stretch the regular day toward an almost continuous schedule, which the 23.5 hour trading session covers in detail. Hours and venue lists keep changing, so read your broker's current order handling page for what it supports tonight. The rest of this page is the part that outlives the next launch, and trading US stocks around the clock gives the wider map.
Where the consolidated tape stops
Quotes and trades reach the public through consolidated feeds run by the securities information processors, on a published schedule of 4:00 a.m. to 8:00 p.m. ET. Outside those sixteen hours nothing is consolidated. The envelope is visible in the tape itself.
| session_date | first_print_et | last_print_et | first_print_et_minutes | last_print_et_minutes |
|---|---|---|---|---|
| 2026-09-01 | 04:00 | 19:59 | 240 | 1199 |
| 2026-09-02 | 04:00 | 19:59 | 240 | 1199 |
| 2026-09-03 | 04:00 | 19:59 | 240 | 1199 |
| 2026-09-04 | 04:00 | 19:59 | 240 | 1199 |
| 2026-09-08 | 04:00 | 19:59 | 240 | 1199 |
| 2026-09-09 | 04:00 | 19:59 | 240 | 1199 |
| 2026-09-10 | 04:00 | 19:59 | 240 | 1199 |
| 2026-09-11 | 04:00 | 19:59 | 240 | 1199 |
| 2026-09-14 | 04:00 | 19:59 | 240 | 1199 |
| 2026-09-15 | 04:00 | 19:59 | 240 | 1199 |
| 2026-09-16 | 04:00 | 19:59 | 240 | 1199 |
| 2026-09-17 | 04:00 | 19:59 | 240 | 1199 |
| 2026-09-18 | 04:00 | 19:59 | 240 | 1199 |
The exact SQL behind every number
SELECT
toString(d) AS session_date,
min(et_label) AS first_print_et,
max(et_label) AS last_print_et,
min(et_minutes) AS first_print_et_minutes,
max(et_minutes) AS last_print_et_minutes
FROM
(
SELECT
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') AS et_label,
toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York')) AS et_minutes
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'AAPL'
AND window_start >= '2026-09-01 00:00:00'
AND window_start < '2026-09-19 00:00:00'
AND volume > 0
)
GROUP BY d
HAVING count() > 200
ORDER BY dAcross 13 sessions in early September 2026 the envelope barely moves. On 2026-09-01 the first Apple minute bar landed at 04:00 ET and the last at 19:59 ET. The two lines are flat by design: this is a schedule, not a measure of demand. Overnight trading happens in the gap between one day's last bar and the next day's first. Those fills are reported to a trade reporting facility the following morning, carrying a condition code that marks them as executed outside regular hours, and they do not update the day's official high, low, or closing price. The official close comes from the primary exchange's closing auction at 4:00 p.m. ET.
Why overnight orders must be limit orders
The national best bid and offer is the highest bid and the lowest offer across every exchange at one instant, computed from those consolidated feeds. It does two jobs for a retail order. It supplies the reference price a market order gets measured against, and under Regulation NMS order protection it makes a better price at another venue something your venue may not trade through, a rule that applies during regular trading hours.
Overnight, the first job has no input and the second does not apply. One venue is the entire market, so the best available price means the best price resting on one book. Limit up limit down bands, which pause a stock that moves too far too fast, run from 9:30 a.m. to 4:00 p.m. ET and are absent here as well. What remains is the operator's own halt and erroneous-trade policy, plus the limit price you set. The distinction is the one drawn in market orders versus limit orders: a limit order names a price and accepts the risk of not trading, while a market order names no price and cannot refuse one.
How thin does the overnight book get?
Overnight depth is not in the consolidated record, for the reason just given. The gradient around it is measurable: the further a session sits from 9:30 a.m., the less rests on the book. Premarket and after-hours are the visible end of that gradient, and the overnight window lies past their thin edge.
| et_hour | avg_minute_volume | avg_minute_volume_label | avg_trades_per_minute | share_of_window_volume_pct |
|---|---|---|---|---|
| 04:00 | 2364 | 2.36 thousand | 114 | 0.31 |
| 05:00 | 883 | 883.00 | 35 | 0.1 |
| 06:00 | 1202 | 1.20 thousand | 42 | 0.15 |
| 07:00 | 1908 | 1.91 thousand | 60 | 0.3 |
| 08:00 | 3524 | 3.52 thousand | 84 | 0.56 |
| 09:00 | 106170 | 106.17 thousand | 1999 | 17.16 |
| 10:00 | 101153 | 101.15 thousand | 3027 | 16.35 |
| 11:00 | 79905 | 79.91 thousand | 2675 | 12.91 |
| 12:00 | 58992 | 58.99 thousand | 1682 | 9.53 |
| 13:00 | 58166 | 58.17 thousand | 1350 | 9.4 |
| 14:00 | 66973 | 66.97 thousand | 1447 | 10.82 |
| 15:00 | 108574 | 108.57 thousand | 2250 | 17.55 |
| 16:00 | 28389 | 28.39 thousand | 50 | 4.26 |
| 17:00 | 3101 | 3.10 thousand | 26 | 0.38 |
| 18:00 | 886 | 886.00 | 23 | 0.11 |
| 19:00 | 834 | 834.00 | 24 | 0.1 |
The exact SQL behind every number
WITH bars AS
(
SELECT
formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:00') AS et_hour,
toFloat64(volume) AS vol,
toFloat64(transactions) AS trades
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'AAPL'
AND window_start >= '2026-09-01 00:00:00'
AND window_start < '2026-09-19 00:00:00'
AND toHour(toTimeZone(window_start, 'America/New_York')) BETWEEN 4 AND 19
AND volume > 0
)
SELECT
et_hour,
toUInt32(round(avg(vol))) AS avg_minute_volume,
formatReadableQuantity(round(avg(vol))) AS avg_minute_volume_label,
toUInt32(round(avg(trades))) AS avg_trades_per_minute,
round(100 * sum(vol) / (SELECT sum(vol) FROM bars), 2) AS share_of_window_volume_pct
FROM bars
GROUP BY et_hour
ORDER BY et_hourThe 04:00 hour averaged 2.36 thousand Apple shares a minute and carried 0.31% of everything the window recorded. The 19:00 hour averaged 834.00 a minute. Between those two ends the curve climbs into the open, sags at lunch, and lifts into the close.
Quoted spreads trace the same shape. A bid ask spread is the gap between the best bid and the best offer, shown below in basis points, where one basis point is one hundredth of a percentage point.
| et_hour | median_spread_bps | quotes_sampled |
|---|---|---|
| 04:00 | 8.5 | 1238 |
| 05:00 | 10.3 | 514 |
| 06:00 | 8.1 | 377 |
| 07:00 | 6.6 | 1341 |
| 08:00 | 4.2 | 652 |
| 09:00 | 2.1 | 103597 |
| 10:00 | 1.2 | 79653 |
| 11:00 | 1.2 | 68686 |
| 12:00 | 0.9 | 43372 |
| 13:00 | 0.9 | 43248 |
| 14:00 | 1.2 | 121565 |
| 15:00 | 0.9 | 163432 |
| 16:00 | 3.9 | 935 |
| 17:00 | 2.7 | 325 |
| 18:00 | 8.1 | 810 |
| 19:00 | 6.9 | 6702 |
The exact SQL behind every number
SELECT
formatDateTime(toStartOfHour(toTimeZone(sip_timestamp, 'America/New_York')), '%H:00') AS et_hour,
round(quantileDeterministic(0.5)(
20000 * toFloat64(ask_price - bid_price) / toFloat64(ask_price + bid_price),
toUInt32(sequence_number)), 1) AS median_spread_bps,
count() AS quotes_sampled
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'AAPL'
AND sip_timestamp >= '2026-09-16 08:00:00'
AND sip_timestamp < '2026-09-17 00:00:00'
AND bid_price > 0
AND ask_price > bid_price
GROUP BY et_hour
ORDER BY et_hourOn that single pinned session the median Apple spread in the 04:00 hour measured 8.5 bps, against 0.9 bps in the 12:00 hour. Same stock, same day. The count of participants quoting is what changed, an effect why spreads widen at the open takes apart minute by minute.
Per-minute price travel is the other axis people expect to follow the same gradient, and on these five names it does not.
| ticker | premarket_range_bps | midday_range_bps | premarket_multiple |
|---|---|---|---|
| NVDA | 3.6 | 7.1 | 0.5 |
| AAPL | 2.4 | 6.8 | 0.3 |
| MSFT | 1.8 | 6 | 0.3 |
| SPY | 0.9 | 2.4 | 0.4 |
| KO | 0 | 3.9 | 0 |
The exact SQL behind every number
SELECT
ticker,
round(quantileDeterministicIf(0.5)(range_bps, det, phase = 'premarket'), 1) AS premarket_range_bps,
round(quantileDeterministicIf(0.5)(range_bps, det, phase = 'midday'), 1) AS midday_range_bps,
round(quantileDeterministicIf(0.5)(range_bps, det, phase = 'premarket')
/ quantileDeterministicIf(0.5)(range_bps, det, phase = 'midday'), 1) AS premarket_multiple
FROM
(
SELECT
ticker,
multiIf(
toHour(toTimeZone(window_start, 'America/New_York')) BETWEEN 4 AND 8, 'premarket',
toHour(toTimeZone(window_start, 'America/New_York')) BETWEEN 10 AND 14, 'midday',
'other') AS phase,
10000 * toFloat64(high - low) / toFloat64(close) AS range_bps,
toUInt32(toUnixTimestamp(window_start)) AS det
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('AAPL', 'MSFT', 'NVDA', 'SPY', 'KO')
AND window_start >= '2026-09-01 00:00:00'
AND window_start < '2026-09-19 00:00:00'
AND transactions >= 5
AND close > 0
)
WHERE phase != 'other'
GROUP BY ticker
HAVING countIf(phase = 'premarket') > 0
AND countIf(phase = 'midday') > 0
ORDER BY premarket_range_bps DESCAcross five household names, NVDA had the widest premarket minutes at a median range of 3.6 bps, and its own midday minutes were wider still at 7.1 bps, putting the premarket median at 0.5 times the midday one. Every minute counted here printed at least five trades, which keeps a lone fill from entering the sample as a zero range and leaves only the busier premarket minutes in it. Spread, not minute range, is the statistic that tracks thin quoting on these names.
What a market order does in a thin book
Here is a hypothetical book, written out to make the mechanic plain. The best offer is 100 shares at $50.10, then 200 shares at $50.75, then 300 at $52.40, and nothing above that until $55.00. A limit order to buy 1,000 shares at $50.20 lifts the first 100 and rests, unfilled on the remaining 900 until someone offers at your price or better. A market order for the same 1,000 shares takes all three levels and keeps climbing, and the average price paid ends several percent above the quote on screen when you clicked. Nothing in that sequence is a malfunction. A market order instructs the venue to trade now, at whatever is present.
In the regular session that same order meets a book many times deeper and an order protection rule policing the sweep. Overnight it meets neither. That is the whole argument for the limit requirement, and it holds however many venues open next year.
Time in force across the session boundary
Time in force is the instruction for how long an order stays live. Overnight orders are session scoped at the venues operating now, which has a handful of practical consequences.
- An order entered for the overnight session works in that session only. At 4:00 a.m. ET it is cancelled if unfilled. It does not roll into the premarket session or the 9:30 a.m. open, and re-entering it creates a new order against whatever the premarket book looks like by then.
- A plain day order entered during the regular session generally does not participate overnight. Most brokers require an explicit extended hours or overnight designation, order by order.
- A good till cancelled order usually sits out the overnight window and resumes in the sessions your broker enables.
- Overnight fills are generally stamped with the next business day as their trade date, which keeps a 9:00 p.m. Monday fill on the same settlement cycle as a Tuesday trade. US equities settle T+1. Your trade confirmation is the authority on both points.
Why a stop is not a safety net overnight
A stop order rests until the stop price prints, then turns into a market order. Overnight, both halves fail. The trigger wants a reference price, and the consolidated quote that normally supplies one is dark. The order it turns into is the type the venue rejects. Most brokers decline stop and stop limit orders outside regular hours for that pair of reasons, and brokers that do accept a stop limit in the extended sessions often still exclude the overnight window. A stop limit that does reach its trigger can go unfilled, which is the trade off it has always carried. Overnight gaps are the exposure people buy stops to cover, and a resting limit order at a price you chose is the instrument that survives in this window.
FAQ
Can you place a market order in the overnight session?
No. The venues running an overnight US equity session accept limit orders only, and brokers reject market orders entered for that window. The missing piece is the consolidated quote: with no national best bid and offer and no price bands in force, a market order has no reference price and no protection against a bad fill.
What happens to an unfilled overnight order at the open?
It expires with the session rather than rolling forward. An overnight order still unfilled at the 4:00 a.m. ET session end is cancelled, and it does not become a premarket order or an opening auction order. Staying in the market means entering a new order for the session you want.
Do stop losses work in overnight trading?
Generally not. A stop that reaches its trigger becomes a market order, which overnight venues will not accept, and most brokers do not take stop orders outside regular hours at all. Check your broker's order handling page for the exact session-by-session list.
Does an overnight trade set the stock's closing price?
No. Trades executed outside the regular session are reported with a condition code marking them as such, and they do not update the official daily high, low, or closing price. The official close still comes from the primary exchange's closing auction at 4:00 p.m. ET.
Which hours count as the overnight session for US stocks?
As of September 2026 the overnight window retail brokers connect to runs from 8:00 p.m. to 4:00 a.m. ET, Sunday night through Thursday night. That sits outside the 4:00 a.m. premarket start and the 8:00 p.m. after-hours cutoff. Session hours are venue specific and have already changed more than once, so confirm against your broker's current disclosure.
How these panels were built
Every panel pins its dates. The two hourly panels cover the sessions from September 1 to September 18, 2026, and the spread panel covers the single session of September 16, 2026, so the figures quoted in the prose stay put on re-runs. Price and volume columns are fixed point decimals, converted to floating point before any median is taken. Medians use a deterministic quantile, so two runs of the same query return the same number. The per-minute range panel keeps only minutes with five or more trades: a minute holding a single print has a high equal to its low, and would otherwise enter the sample as zero movement. That filter also selects the more actively traded premarket minutes, which is one reason the premarket range column sits below the midday column rather than above it. Consolidated data carries an ingest lag of a day or two at the front edge, which is why each window stops short of today.
No panel here claims to measure the overnight book. No consolidated feed publishes it, and that absence is the subject of the page.
Every panel above ships with its SQL underneath, so you can widen a window, change an hour bucket, or swap in another ticker. The same questions can be asked in plain English on the Strasmore terminal.