Wat is de opening auction bij beurshandel
Ontdek hoe de opening auction om 9:30 a.m. de officiële koers bepaalt en waarom de opening kan afwijken van de eerste trade van de dag.
De opening auction is een enkele crossed trade om 9:30 a.m. Eastern die de officiële openingkoers van elk aandeel vaststelt. Voor de opening verzamelt de beurs alle orders die voor de open staan. De beurs berekent de prijs waarbij de meeste aandelen worden gekoppeld en voert de gehele pool uit in één print — de ochtendversie van de closing auction die de dag afsluit. Elk onderstaand getal is afkomstig van de consolidated tape — het publieke register van elke Amerikaanse aandelenhandel — met de exacte SQL gekoppeld aan elk paneel.
Wat is de opening auction? Een eenvoudige definitie
Beurzen schakelen niet simpelweg om 9:30 uur in om orders één voor één te matchen. Gedurende de nacht en de pre-market verzamelt de beurs alle orders die voor de opening zijn aangemeld — plus de in aanmerking komende limit orders die in het orderboek staan. Bij het luiden van de klok worden alle orders in één transactie tegen één prijs tegen elkaar weggestreept. Deze transactie krijgt een specifieke verkoopconditie (code 17, "Market Center Opening Trade" — de laatste kolom), en de prijs wordt de officiële opening: de "open" in het dagelijkse prijsverloop, de referentie achter "gapped up" en "gapped down". De auction en de continue handel vormen samen één tape; het enige dat verandert bij het luiden van de klok, is het mechanisme.
De opening auction op de real tape: SPY, AAPL, NVDA
De onderstaande tabel toont de gegevens van 2 juli 2026 — een geverifieerde volledige sessie (bewijs in de volgende tabel) — en vergelijkt de opening cross voor SPY, AAPL en NVDA met de rest van de handelsdag. "Matched volume" telt alleen de aandelen die de tape toevoegt aan de geconsolideerde volume; administratieve berichten (sale conditions 15, 16, 38) worden uit elke noemer weggelaten.
De exacte SQL achter elk getal
SELECT
ticker,
round(toFloat64(maxIf(size, has(conditions, 17))) / 1e3, 1) AS auction_shares_k,
toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 17))) AS auction_price,
formatDateTime(toTimeZone(argMaxIf(sip_timestamp, (size, sip_timestamp), has(conditions, 17)), 'America/New_York'), '%H:%i:%S') AS auction_time_et,
countIf(has(conditions, 17)) AS opening_print_count,
countIf(has(conditions, 17) AND formatDateTime(toTimeZone(sip_timestamp, 'America/New_York'), '%H:%i:%S') = '09:30:00') AS open_prints_at_0930,
minIf(size, has(conditions, 17)) AS smallest_open_print_shares,
round(toFloat64(sumIf(size, NOT hasAny(conditions, [15, 16, 38]) AND (toHour(toTimeZone(sip_timestamp, 'America/New_York')) * 60 + toMinute(toTimeZone(sip_timestamp, 'America/New_York'))) >= 570 AND (toHour(toTimeZone(sip_timestamp, 'America/New_York')) * 60 + toMinute(toTimeZone(sip_timestamp, 'America/New_York'))) < 575)) / 1e3) AS first5_shares_k,
round(100 * toFloat64(maxIf(size, has(conditions, 17))) / toFloat64(sumIf(size, NOT hasAny(conditions, [15, 16, 38]) AND (toHour(toTimeZone(sip_timestamp, 'America/New_York')) * 60 + toMinute(toTimeZone(sip_timestamp, 'America/New_York'))) >= 570 AND (toHour(toTimeZone(sip_timestamp, 'America/New_York')) * 60 + toMinute(toTimeZone(sip_timestamp, 'America/New_York'))) < 575)), 1) AS auction_pct_of_first5,
round(100 * toFloat64(maxIf(size, has(conditions, 17))) / toFloat64(sumIf(size, NOT hasAny(conditions, [15, 16, 38]))), 2) AS auction_pct_of_day,
round(toFloat64(maxIf(size, has(conditions, 8))) / 1e6, 2) AS closing_auction_shares_m,
round(toFloat64(maxIf(size, has(conditions, 8))) / toFloat64(maxIf(size, has(conditions, 17))), 1) AS close_vs_open_x
FROM global_markets.stocks_trades
WHERE ticker IN ('SPY', 'AAPL', 'NVDA')
AND sip_timestamp >= '2026-07-02 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00'
GROUP BY ticker
ORDER BY indexOf(['SPY', 'AAPL', 'NVDA'], ticker)Lees eerst de rij van AAPL: een opening cross van 323.3 duizend aandelen tegen $294.1, geregistreerd om 09:30:00 ET. De cross van NVDA bedroeg 690 duizend aandelen, die van SPY 122 duizend. De cross alleen vertegenwoordigde 17.4% van alle gematchte AAPL-aandelen in de eerste vijf minuten van de sessie (1856 duizend aandelen), 13.8% voor NVDA, en 9.4% voor SPY — terwijl het totale volume voor de dag slechts 0.43%, 0.48% en 0.21% was: minder dan een halve procent.
De laatste twee kolommen vormen het eindpunt: de closing cross van AAPL op diezelfde dag matchte 10.89 miljoen aandelen — 33.7 keer het openingsvolume; die van NVDA was 25.2 keer, die van SPY 13.5 keer. Indexfondsen en benchmarked desks handelen tegen officiële slotkoersen, en die flow concentreert zich in de cross om 16:00 uur; de ochtend heeft geen equivalent. De closing auction is de grootste trade van de dag — de opening auction is het moment waarop de officiële handelsdag begint.
Waarom kan de officiële openingskoers afwijken van de eerste transactie van de dag?
Tegen de tijd dat de veiling plaatsvindt, wordt het aandeel meestal al uren verhandeld — pre-market trading begint al om 4:00 uur ET, en geen van die transacties bepaalt de officiële open. Het onderstaande overzicht voor AAPL over de periode van 1 tot 2 juli 2026 bevat een controle van de sessie: SPY registreerde exact 390 regular-session minute bars op 2 juli — een volledige sessie, geverifieerd in plaats van aangenomen.
De exacte SQL achter elk getal
WITH
(
SELECT countIf(window_start >= toDateTime('2026-07-02 09:30:00', 'America/New_York') AND window_start < toDateTime('2026-07-02 16:00:00', 'America/New_York'))
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= toDateTime('2026-07-02 00:00:00', 'America/New_York') AND window_start < toDateTime('2026-07-03 00:00:00', 'America/New_York')
) AS bars_jul02,
(
SELECT argMax(sip_timestamp, (size, sip_timestamp))
FROM global_markets.stocks_trades
WHERE ticker = 'AAPL' AND sip_timestamp >= '2026-07-02 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00' AND has(conditions, 17)
) AS auction_ts,
(
SELECT argMax(exchange, (size, sip_timestamp))
FROM global_markets.stocks_trades
WHERE ticker = 'AAPL' AND sip_timestamp >= '2026-07-02 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00' AND has(conditions, 17)
) AS listing_exchange
SELECT
bars_jul02 AS spy_session_bars_jul02,
countIf(has(conditions, 8) AND sip_timestamp < '2026-07-02 00:00:00') AS jul01_close_print_count,
toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 8) AND sip_timestamp < '2026-07-02 00:00:00')) AS prior_close_price,
countIf(has(conditions, 17) AND sip_timestamp >= '2026-07-02 00:00:00') AS opening_print_count,
toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 17) AND sip_timestamp >= '2026-07-02 00:00:00')) AS auction_price,
formatDateTime(toTimeZone(auction_ts, 'America/New_York'), '%H:%i:%S.%f') AS auction_et,
round(100 * (toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 17) AND sip_timestamp >= '2026-07-02 00:00:00')) - toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 8) AND sip_timestamp < '2026-07-02 00:00:00'))) / toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 8) AND sip_timestamp < '2026-07-02 00:00:00')), 2) AS overnight_gap_pct,
formatDateTime(toTimeZone(minIf(sip_timestamp, sip_timestamp >= '2026-07-02 00:00:00' AND NOT hasAny(conditions, [15, 16, 38])), 'America/New_York'), '%H:%i:%S') AS first_trade_et,
toFloat64(argMinIf(price, (sip_timestamp, sequence_number), sip_timestamp >= '2026-07-02 00:00:00' AND NOT hasAny(conditions, [15, 16, 38]))) AS first_trade_price,
countIf(sip_timestamp >= '2026-07-02 00:00:00' AND sip_timestamp < auction_ts AND NOT hasAny(conditions, [15, 16, 38])) AS trades_before_official_open,
countIf(sip_timestamp >= toDateTime('2026-07-02 09:30:00', 'America/New_York') AND sip_timestamp < auction_ts AND NOT hasAny(conditions, [15, 16, 38])) AS bell_to_cross_trades,
countIf(has(conditions, 16) AND sip_timestamp >= '2026-07-02 00:00:00') AS official_open_msgs,
countIf(has(conditions, 16) AND sip_timestamp >= '2026-07-02 00:00:00' AND exchange = listing_exchange) AS listing_venue_open_msgs,
round(toFloat64(anyIf(price, has(conditions, 16) AND sip_timestamp >= '2026-07-02 00:00:00' AND exchange = listing_exchange)) - toFloat64(argMaxIf(price, (size, sip_timestamp), has(conditions, 17) AND sip_timestamp >= '2026-07-02 00:00:00')), 4) AS listing_open_msg_price_difference
FROM global_markets.stocks_trades
WHERE ticker = 'AAPL' AND sip_timestamp >= '2026-07-01 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00'De eerste transactie van AAPL met volume op 2 juli werd geregistreerd om 04:00:00 ET tegen $296.1. De officiële open stond pas vast om 09:30:00.491313 ET, toen de cross werd geregistreerd tegen $294.1 — tegen die tijd waren er al 15832 AAPL prints geregistreerd, inclusief 173 in de fractie van een seconde tussen 9:30:00.000 en de cross — continue transacties op andere venues die beginnen met matchen bij de opening. Kort daarna volgden 2 "Market Center Official Open" berichten (sale condition 16) — het eigen registratie van de officiële open van elk market center, zonder extra volume toe te voegen; de listing exchange herhaalt de auction price exact (verschil: 0).
Het overzicht meet ook de overnight gap. De voorgaande officiële close van AAPL — exact de 1 closing print op 1 juli — was $294.38; de veiling de volgende ochtend werd geregistreerd tegen $294.1, een overnight verandering van -0.1%. Een rustige nacht, een kleine gap. Wanneer earnings of nieuws gedurende de nacht binnenkomen, vindt eerst de pre-market repricing plaats; de veiling verwerkt de beweging in het officiële record.
Hoe werkt de opening auction? Market-on-open en limit-on-open orders
Twee specifieke ordertypes voeden de opening en zijn vergelijkbaar met hun tegenhangers bij de sluiting:
- Een market-on-open (MOO) order wordt uitgevoerd tegen de prijs die de auction bepaalt — zonder prijsbescherming, maar met een vrijwel gegarandeerde deelname aan de officiële opening.
- Een limit-on-open (LOO) order neemt alleen deel aan de auction als de openingsprijs op het limit of gunstiger is — met prijsbescherming, maar met het risico de cross te missen.
Beide orders blijven bij de exchange staan tot de cross en worden niet verhandeld in de pre-market. Exchanges stoppen met het accepteren of wijzigen van open orders kort voor 9:30 (de cutoffs verschillen per exchange), en veel brokers hanteren eerdere deadlines.
Wat is een opening auction imbalance?
In de aanloop naar de klok publiceren exchanges imbalance-data voor de opening: hoeveel aandelen er in de wachtrij staan om te kopen versus verkopen, plus een indicatieve prijs waarbij de cross op dat moment zou plaatsvinden. Een buy imbalance van één miljoen aandelen betekent dat er tot nu toe één miljoen openstaande koop-aandelen niet zijn gekoppeld. Traders in de pre-market volgen deze feeds en positioneren zich rond deze gegevens.
De 9:30 minute bar is ook niet de officiële open
De meeste grafiekplatforms verwerken de open in de eerste één-minuut candle: alles wat is geregistreerd van 9:30:00.000 tot 9:30:59.999, van elke venue — de auction plus bijna een minuut aan continue handel. De "open" is de eerste print die binnen dit venster is vastgelegd — niet noodzakelijkerwijs de auction.
De exacte SQL achter elk getal
WITH auctions AS (
SELECT ticker, toFloat64(argMax(price, (size, sip_timestamp))) AS official_open
FROM global_markets.stocks_trades
WHERE ticker IN ('SPY', 'AAPL', 'NVDA')
AND sip_timestamp >= '2026-07-02 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00'
AND has(conditions, 17)
GROUP BY ticker
)
SELECT
b.ticker AS ticker,
toFloat64(anyIf(b.open, b.window_start = toDateTime('2026-07-02 09:30:00', 'America/New_York'))) AS bar_0930_open,
a.official_open AS official_open,
round(100 * (toFloat64(anyIf(b.open, b.window_start = toDateTime('2026-07-02 09:30:00', 'America/New_York'))) - a.official_open), 0) AS bar_open_minus_official_cents,
round(sumIf(b.volume, b.window_start = toDateTime('2026-07-02 09:30:00', 'America/New_York')) / 1e3) AS bar_0930_vol_k,
anyIf(b.transactions, b.window_start = toDateTime('2026-07-02 09:30:00', 'America/New_York')) AS bar_0930_trades,
round(sumIf(b.volume, b.window_start = toDateTime('2026-07-02 12:30:00', 'America/New_York')) / 1e3) AS bar_1230_vol_k,
round(sumIf(b.volume, b.window_start = toDateTime('2026-07-02 09:30:00', 'America/New_York')) / sumIf(b.volume, b.window_start = toDateTime('2026-07-02 12:30:00', 'America/New_York')), 1) AS x_0930_vs_1230
FROM global_markets.delayed_stocks_minute_aggs AS b
INNER JOIN auctions AS a ON a.ticker = b.ticker
WHERE b.ticker IN ('SPY', 'AAPL', 'NVDA')
AND b.window_start >= toDateTime('2026-07-02 00:00:00', 'America/New_York')
AND b.window_start < toDateTime('2026-07-03 00:00:00', 'America/New_York')
GROUP BY b.ticker, a.official_open
ORDER BY indexOf(['SPY', 'AAPL', 'NVDA'], b.ticker)Op 2 juli stonden alle drie de 9:30 bars boven de officiële open: de bar van AAPL laat $294.12 zien tegenover de officiële $294.1 — 2 cents verschil — waarbij SPY 18 cents en NVDA 2 cents boven hun crosses stonden. Een pre-cross print op een andere venue kwam als eerste in elke bar terecht; wanneer de open van een grafiek enkele cents afwijkt van de officiële open, is dit meestal de oorzaak.
De volume columns tonen het gewicht van de eerste minuut. De 9:30 bar van AAPL was gelijk aan 743 thousand shares verspreid over 14662 trades — 6.1 keer de 12:30 lunchtime bar van 121 thousand; de ratio van NVDA was 7.5 keer, die van SPY 3.6 keer. Minuten met een dergelijk hoog volume hebben een grote impact op VWAP, de volume-weighted average price.
Hoe ziet het verloop van de dag rond de opening eruit?
Wanneer de volledige July 2 tape van AAPL wordt onderverdeeld in kwartier-bins van 64, van 4:00 uur tot 20:00 uur, krijgt de opening in context: de pre-market bins zijn nauwelijks merkbaar, het volume stijgt sterk om 9:30 uur, neemt af richting de lunch en bouwt weer op richting de close — waarbij de dag eindigt zoals hij begon, met een cross van 10.89 miljoen AAPL shares.
De exacte SQL achter elk getal
SELECT
formatDateTime(toStartOfInterval(toTimeZone(window_start, 'America/New_York'), INTERVAL 15 MINUTE), '%H:%i') AS et_time,
round(sum(volume) / 1e6, 2) AS shares_m
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'AAPL'
AND window_start >= toDateTime('2026-07-02 00:00:00', 'America/New_York')
AND window_start < toDateTime('2026-07-03 00:00:00', 'America/New_York')
GROUP BY et_time
ORDER BY et_timeHoe identificeert u de opening auction print? Sale condition codes
Welke print is de auction? De tape geeft hier het antwoord op; het code-woordenboek is onderdeel van dezelfde dataset, en het onderstaande overzicht is een query, geen bewering.
De exacte SQL achter elk getal
SELECT
name,
id,
toUInt8(JSONExtractBool(update_rules, 'consolidated', 'updates_volume')) AS counts_toward_volume
FROM global_markets.stocks_condition_codes
WHERE asset_class = 'stocks' AND type = 'sale_condition' AND id IN (8, 15, 16, 17, 38)
ORDER BY idEén asymmetrie is van belang. De close krijgt één geconsolideerd label (code 8, "Closing Prints"); het label voor de open is per venue: code 17, "Market Center Opening Trade", markeert de eigen opening trade van elk market center, waarbij de auction van de listing exchange de relevante is. De July 2 tape van SPY bevat 2 van dergelijke prints — de 122 thousand-share cross plus een 4-share print van een ander venue — terwijl AAPL en NVDA elk precies één print tonen (1 en 1), allebei binnen de seconde 9:30:00 (de open_prints_at_0930 kolom bevestigt dit). Elk bovenstaand auction-getal is de grootste dergelijke print van de sessie. Code 16, "Market Center Official Open", is de volume-vrije administratieve echo (0 in de volume kolom), die wordt uitgesloten van elke denominator met de codes 15 en 38.
Veiling FAQ
Hoe laat vindt de opening auction plaats?
Om 9:30 a.m. ET, wanneer de reguliere sessie begint; minder liquide aandelen kunnen enkele momenten later worden verhandeld. Op 2 juli 2026 vond de cross voor SPY, AAPL en NVDA exact om 09:30:00 ET plaats. Op dagen met een geplande vroege sluiting wordt de middag verkort, niet de ochtend — de closing auction verschuift dan naar 1:00 p.m.; zie marktholidays en vroege sluitingen.
Wat is de officiële openingkoers?
De prijs van de opening auction op de beurs waar het aandeel genoteerd staat. Op 2 juli 2026 werd de cross van AAPL genoteerd op $294.1 — de officiële opening van de dag, ook al werden 15832 AAPL prints eerder die ochtend verhandeld.
Kan ik handelen tijdens de opening auction?
Ja. Market-on-open (MOO) en limit-on-open (LOO) orders zijn standaard bij de meeste brokers: MOO wordt uitgevoerd tegen de prijs die de auction bepaalt, LOO wordt alleen uitgevoerd tegen de limit of een betere prijs. De orderinvoer sluit kort voor 9:30, bij veel brokers zelfs eerder.
Waarom opent een aandeel ver van de slotkoers van gisteren?
Orders worden de hele nacht verzameld terwijl de beurs gesloten is, en de auction verwerkt die verzamelde interesse in één print. Bij een rustige nacht is de gap klein: de overnight change van AAPL op 2 juli 2026 bedroeg -0.1%.
Is de opening auction groter dan de closing auction?
Nee — de close is veel groter. Op 2 juli 2026 was de closing cross van AAPL 33.7 keer zo groot als de opening cross, die van NVDA 25.2 keer en die van SPY 13.5 keer. Benchmark-tracking flow wordt verhandeld tegen de officiële close — de closing auction dekt dit eindpunt.
Elke bovenstaande figuur wordt gegenereerd vanuit een opgeslagen, controleerbare query — breid de SQL onder elk paneel uit om deze te auditen. Om de opening cross van een door u gevolgd aandeel te analyseren, kunt u dezelfde vragen in het Engels stellen op de Strasmore terminal.