Is de Amerikaanse aandelenmarkt vandaag open?
Controleer hier of de US stock market vandaag geopend is. Bekijk de huidige status, de kalender met feestdagen en informatie over orders tijdens de sluiting.
De Amerikaanse aandelenmarkt is geopend van maandag tot en met vrijdag, van 9:30 am tot 4:00 pm Eastern, met uitzondering van geplande feestdagen en enkele vroege sluitingen om 1:00 pm. De vraag "is de aandelenmarkt vandaag geopend?" vereist daarom drie controles: is het een doordeweekse dag, valt het op een feestdag en hoe laat is het binnen de sessie? Deze pagina vergelijkt alle drie de factoren bij elke verversing met live beursgegevens. De "data as of"-stempel bovenaan geeft de actualiteit aan. Raadpleeg beursuren voor de tijden per sessie; raadpleeg feestdagen en vroege sluitingen voor de volledige kalender.
Is de aandelenmarkt momenteel open?
Het onderstaande paneel berekent het antwoord op het moment dat de gegevens op deze pagina voor het laatst zijn bijgewerkt. Er wordt gecontroleerd of het een doordag is, de datum van vandaag wordt vergeleken met de lijst met beursvakanties, en de tijd in Eastern Time wordt getoetst aan de officiële handelsperioden: premarket vanaf 4:00 am, de reguliere sessie vanaf 9:30 am, en after-hours van de sluiting tot 8:00 pm.
De exacte SQL achter elk getal
WITH
toTimeZone(now(), 'America/New_York') AS now_et,
toDate(now_et) AS today_et,
toHour(now_et) * 60 + toMinute(now_et) AS min_now,
(SELECT countDistinct(date) FROM global_markets.stocks_market_holidays
WHERE date = toDate(toTimeZone(now(), 'America/New_York')) AND status = 'closed') AS today_full_holiday,
(SELECT countDistinct(date) FROM global_markets.stocks_market_holidays
WHERE date = toDate(toTimeZone(now(), 'America/New_York')) AND status = 'early-close') AS today_early,
(SELECT any(name) FROM global_markets.stocks_market_holidays
WHERE date = toDate(toTimeZone(now(), 'America/New_York'))) AS today_holiday_name,
if(today_early = 1, 780, 960) AS close_min,
if(today_early = 1, 1020, 1200) AS after_hours_end,
(SELECT min(d) FROM (SELECT toDate(toTimeZone(now(), 'America/New_York')) + arrayJoin(range(1, 11)) AS d)
WHERE toDayOfWeek(d) <= 5
AND d NOT IN (SELECT date FROM global_markets.stocks_market_holidays WHERE status = 'closed')) AS next_sess_after_today,
toDayOfWeek(today_et) <= 5 AND today_full_holiday = 0 AS today_is_session
SELECT
toString(today_et) AS date_checked,
formatDateTime(today_et, '%W') AS weekday,
formatDateTime(now_et, '%H:%i') AS time_checked_et,
multiIf(toDayOfWeek(today_et) >= 6, 'weekend',
today_full_holiday = 1, concat('holiday — ', today_holiday_name),
today_early = 1, concat('early close (1:00 pm) — ', today_holiday_name),
'normal weekday') AS todays_calendar,
multiIf(NOT today_is_session, 'CLOSED',
min_now < 240, 'CLOSED (overnight)',
min_now < 570, 'PREMARKET',
min_now < close_min, 'OPEN',
min_now < after_hours_end, 'AFTER-HOURS',
'CLOSED (overnight)') AS market_status,
toString(if(today_is_session AND min_now < close_min, today_et, next_sess_after_today)) AS next_regular_session,
dateDiff('day', today_et, if(today_is_session AND min_now < close_min, today_et, next_sess_after_today)) AS days_to_next_sessionOp 09:00 ET op Friday, 2026-07-24, was de berekende status PREMARKET, met de agenda-notitie van vandaag "normal weekday". De volgende reguliere sessie-opening volgens het schema — vandaag zelf, ongeacht of de status PREMARKET of OPEN is — is om 2026-07-24. Deze datum houdt al rekening met weekenden en alle volledige feestdagen, en loopt nooit meer dan enkele dagen uit, zelfs niet tijdens een lang feestweekend. Leest u dit later dan de tijdstempel? Dezelfde drie controles zijn handmatig binnen enkele seconden uitgevoerd: de dag van de week, de onderstaande feestdagentabel en de ET-klok.
De volgende geplande sluiting — en alles daarna
De forward kalender is rechtstreeks afkomstig van de exchange feed. Eén belangrijk detail: de tabel bevat vandaag als vandaag zelf een feestdag of een vroege sluiting is — de query vraagt om elke sluiting vanaf vandaag, niet strikt daarna — daarom komen de eerste rij en het statuspaneel hierboven overeen op een ochtend tijdens een feestdag.
De exacte SQL achter elk getal
SELECT toString(date) AS closure_date,
formatDateTime(date, '%a') AS falls_on,
any(name) AS holiday,
any(status) AS day_status,
any(if(status = 'early-close', formatDateTime(toTimeZone(close, 'America/New_York'), '%H:%i'), '')) AS closes_at_et,
dateDiff('day', today(), date) AS days_away
FROM global_markets.stocks_market_holidays
WHERE exchange = 'NYSE' AND date >= today()
GROUP BY date
ORDER BY date
LIMIT 16De volgende geplande onderbreking is Labor Day op 2026-09-07 (closed), 45 dagen na het tijdstip van de refresh. Elke werkdag die niet in deze tabel staat, is een normale sessie van 9:30–4:00. Dagen met een vroege sluiting eindigen de reguliere handel om 1:00 pm Eastern en concentreren zich rond Thanksgiving, Christmas Eve en de Fourth of July; de closing auction vindt op die dagen nog steeds plaats — deze wordt simpelweg drie uur eerder uitgevoerd.
Hoeveel dagen is de markt per jaar gesloten?
"Ongeveer negen of tien feestdagen per jaar" is het standaardantwoord — deze pagina kan tellen in plaats van schatten. De exchange feed bevat alleen toekomstige sluitingen; de reeds gepasseerde sluitingen worden uit de tape gehaald: een werkdag waarop SPY nul reguliere minute bars heeft geregistreerd, was een volledige sluiting, en een dag met ongeveer een halve sessie (ongeveer 210 bars in plaats van 390) was een vroege sluiting.
De exacte SQL achter elk getal
WITH day_bars AS (
SELECT cal.day AS day, ifNull(t.bars, 0) AS bars
FROM (SELECT makeDate(toYear(today()), 1, 1) + arrayJoin(range(370)) AS day) AS cal
LEFT JOIN (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d, count() AS bars
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= toDateTime(makeDate(toYear(today()), 1, 1), 'America/New_York')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY d
) AS t ON t.d = cal.day
WHERE toDayOfWeek(cal.day) BETWEEN 1 AND 5
AND cal.day <= today() - 4
),
past AS (
SELECT countIf(bars = 0) AS past_full, countIf(bars BETWEEN 120 AND 330) AS past_early
FROM day_bars
),
ahead AS (
SELECT countDistinctIf(date, status = 'closed') AS ahead_full,
countDistinctIf(date, status = 'early-close') AS ahead_early
FROM global_markets.stocks_market_holidays
WHERE date > today() - 4 AND toYear(date) = toYear(today())
)
SELECT category, already_passed, still_ahead, already_passed + still_ahead AS total, toString(toYear(today())) AS calendar_year
FROM (
SELECT 'full closure' AS category, past.past_full AS already_passed, ahead.ahead_full AS still_ahead, 1 AS ord FROM past, ahead
UNION ALL
SELECT 'early close (1:00 pm)' AS category, past.past_early AS already_passed, ahead.ahead_early AS still_ahead, 2 AS ord FROM past, ahead
)
ORDER BY ord2026 bevat 10 volledige sluitingen — 7 reeds gepasseerd, 3 nog te komen — plus 2 geplande vroege sluitingen om 13:00 uur, waarvan 2 nog moet plaatsvinden. (Een sluiting binnen de laatste paar dagen kan kortstondig in geen van beide tellingen voorkomen terwijl de ingest lag van de tape wordt verwerkt; de verdeling corrigeert zichzelf bij de volgende refresh.) Het weekend zorgt voor de rest van de sluitingen: trek de ongeveer 104 weekenddagen en deze feestdagen af van 365, en een jaar laat ongeveer 250 handelsdagen over.
De marktgegevens: de meest recente sessie
Een kalender geeft aan wat er zou moeten gebeuren; de tape laat zien wat er daadwerkelijk is gebeurd. De onderstaande tabel toont de meest recente sessie zoals geobserveerd op onze SPY minute-bar tape, het aantal bars, het aantal SPY option trades op die dag, en de meest recente half-day op de trailing tape.
De exacte SQL achter elk getal
WITH rth AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d, count() AS bars
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= today() - 450
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY d
),
last_sess AS (
SELECT max(d) AS last_d
FROM rth
WHERE bars >= 120 AND d < toDate(toTimeZone(now(), 'America/New_York'))
),
opt AS (
SELECT round(count() / 1e3, 0) AS spy_option_prints_thousands
FROM global_markets.options_trades
WHERE ticker >= 'O:SPY2' AND ticker < 'O:SPY3'
AND sip_timestamp >= toDateTime((SELECT last_d FROM last_sess), 'America/New_York')
AND sip_timestamp < toDateTime((SELECT last_d FROM last_sess) + 1, 'America/New_York')
),
last_early AS (
SELECT toString(max(d)) AS last_early_close_date,
argMax(bars, d) AS its_bars
FROM rth WHERE bars BETWEEN 120 AND 330
)
SELECT toString((SELECT last_d FROM last_sess)) AS most_recent_session,
formatDateTime((SELECT last_d FROM last_sess), '%W') AS weekday,
(SELECT bars FROM rth WHERE d = (SELECT last_d FROM last_sess)) AS regular_minute_bars,
(SELECT spy_option_prints_thousands FROM opt) AS spy_option_prints_thousands,
(SELECT last_early_close_date FROM last_early) AS last_early_close,
(SELECT its_bars FROM last_early) AS early_close_barsDe meest recente sessie op onze tape is 2026-07-22 (Wednesday), met 390 regular-session minute bars — een volledige dag bestaat uit ongeveer 390 bars, een vroege sluiting uit ongeveer 210. Deze sessie bevatte ongeveer 1302 duizend individuele SPY option trades: de options markt volgt de aandelenkalender, inclusief feestdagen en half-days, waarbij expirations die op een gesloten vrijdag vallen een dag opschuiven. De meest recente vroege sluiting op de tape was 2025-12-24, met 211 minute bars — de standaardvorm van een 1:00 pm half-day. Belangrijke opmerking: deze database verwerkt gegevens met een vertraging van één tot twee dagen, waardoor de "meest recente sessie" hier een dag of twee achter kan lopen op de werkelijke laatste sessie.
Wanneer de markt zonder waarschuwing sluit
Geplande sluitingen staan in de agenda; ongeplande sluitingen niet. Ze zijn zeldzaam — slechts een handvol per decennium — en de tape houdt de gegevens bij: een werkdag die 390 bars had moeten registreren, maar er geen enkele registreerde.
De exacte SQL achter elk getal
WITH events AS (
SELECT arrayJoin([
(toDate('2012-10-29'), 'Hurricane Sandy — day 1'),
(toDate('2012-10-30'), 'Hurricane Sandy — day 2'),
(toDate('2012-10-31'), 'Reopening after Sandy'),
(toDate('2018-12-05'), 'Mourning — George H. W. Bush'),
(toDate('2025-01-09'), 'Mourning — Jimmy Carter')
]) AS e
),
tape AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d, count() AS bars
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND ((window_start >= '2012-10-29 00:00:00' AND window_start < '2012-11-01 12:00:00')
OR (window_start >= '2018-12-05 00:00:00' AND window_start < '2018-12-06 12:00:00')
OR (window_start >= '2025-01-09 00:00:00' AND window_start < '2025-01-10 12:00:00'))
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY d
)
SELECT toString(e.1) AS closure_date,
formatDateTime(e.1, '%a') AS falls_on,
e.2 AS name,
toUInt32(ifNull(t.bars, 0)) AS spy_regular_session_bars
FROM events
LEFT JOIN tape AS t ON t.d = events.e.1
ORDER BY e.1Hurricane Sandy zorgde ervoor dat beide grote beurzen op 2012-10-29 en 2012-10-30 geen handel konden verrichten — de eerste weersgerelateerde sluiting van meerdere dagen sinds 1888. De openingssessie op 2012-10-31 registreerde een volledige 390 bars. Nationale rouwdagen zorgden voor een sluiting van de markt op 2018-12-05 (President George H. W. Bush) en 2025-01-09 (President Jimmy Carter). De langste ongeplande sluiting in het moderne tijdperk — van 11 tot 14 september 2001, vier opeenvolgende sessies — valt vóór onze minuutgegevens, die in 2003 beginnen. Elke bovenstaande sluiting verschijnt op de tape als 0 regular-session bars: er is niets verhandeld.
Wat gebeurt er met een order die wordt geplaatst terwijl de markt gesloten is?
Er vindt geen uitvoering plaats terwijl de markt gesloten is. Een order die op een zaterdag, tijdens een feestdag of om 2:00 uur wordt ingediend, wordt simpelweg in de wachtrij bij uw broker geplaatst tot de volgende sessie. Een in de wachtrij geplaatste market order wordt uitgevoerd tegen de prijs die de opening auction bepaalt — dagen nadat u op de knop heeft gedrukt. Het verschil tussen de slotkoers van de ene sessie en de eerste print van de volgende sessie is de exposure die u accepteert, en dit is meetbaar:
De exacte SQL achter elk getal
WITH daily AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
round(argMin(toFloat64(open), window_start), 2) AS open_px,
round(argMax(toFloat64(close), window_start), 2) AS close_px
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= today() - 75
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY d
),
paired AS (
SELECT d,
open_px,
lagInFrame(d) OVER (ORDER BY d) AS prev_d,
lagInFrame(close_px) OVER (ORDER BY d) AS prev_close
FROM daily
)
SELECT concat(formatDateTime(prev_d, '%a '), toString(prev_d)) AS last_session_before,
concat(formatDateTime(d, '%a '), toString(d)) AS reopening_session,
dateDiff('day', prev_d, d) AS days_dark,
toString(prev_close) AS close_before_break,
toString(open_px) AS reopening_print,
round((open_px - prev_close) / prev_close * 100, 2) AS gap_pct
FROM paired
WHERE prev_close > 0 AND dateDiff('day', prev_d, d) >= 3
ORDER BY dDe tabel bevat de laatste 10 weekenden en lange weekenden — de days_dark kolom geeft de feestdagen van vier dagen aan. De meest recente duurde van Fri 2026-07-17 tot Mon 2026-07-20 (3 kalenderdagen gesloten): de reguliere slotkoers van SPY voor de onderbreking was $743.2, de print bij heropening was $747.06 — een gap van 0.52% waar een in de wachtrij geplaatste market order zonder controle mee akkoord zou zijn gegaan. Een limit order stelt daarentegen een maximale prijs vast, met het risico dat de order mogelijk niet volledig wordt uitgevoerd; waarom aandelen een overnight gap vertonen behandelt de mechanica achter deze bewegingen.
Tijdzones, de obligatiemarkt en de rest van de wereld
Drie discrepanties veroorzaken het grootste deel van de resterende verwarring over de vraag of de markt open is. Tijdzones: de officiële uren zijn gebaseerd op Eastern Time — 9:30 am ET is 6:30 am Pacific en 2:30 pm London het grootste deel van het jaar — en de datums van de markt zijn ET-datums. Hierdoor kan de "vandaag" van een lezer in Azië over twee Amerikaanse sessies verspreid zijn. De obligatiemarkt: Treasuries worden verhandeld volgens de SIFMA-kalender, niet die van de NYSE — deze houdt rekening met elke feestdag van de aandelenmarkt plus nog twee extra dagen. De vroege sluitingen zijn aanbevelingen om 2:00 pm, wat vaker voorkomt dan de halfdagen van de aandelenmarkt om 1:00 pm. De divergentie van volledige handelsdagen is zichtbaar in de data:
De exacte SQL achter elk getal
WITH stock_days AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= today() - 370
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY d
HAVING count() >= 100
)
SELECT toString(d) AS session_date,
formatDateTime(d, '%W') AS weekday
FROM stock_days
WHERE d <= (SELECT max(date) FROM global_markets.treasury_yields)
AND d NOT IN (SELECT date FROM global_markets.treasury_yields WHERE date >= today() - 370)
ORDER BY dIn het afgelopen jaar waren er precies 2 werkdagen waarop de aandelenmarkt een volledige sessie hield en er geen Treasury yield werd genoteerd — 2025-10-13 en 2025-11-11, één in oktober en één in november: Columbus Day en Veterans Day, de twee federale feestdagen waarop de aandelenmarkt gewoon doorwerkt. De rest van de wereld: buitenlandse beurzen hanteren hun eigen kalenders en index futures worden bijna continu verhandeld — dit is de reden waarom een kop kan vermelden dat "aandelen dalen" om 3:00 am ET terwijl elke Amerikaanse beurs gesloten is. De extended hours rond elke Amerikaanse sessie lopen van 4:00 am tot 9:30 am en van 4:00 pm tot 8:00 pm ET, met een lagere liquiditeit en een grotere spread; de werking hiervan staat beschreven in de gids voor extended hours.
FAQ
Is de aandelenmarkt nu open?
Op het moment van de laatste gegevensverversing van deze pagina — 09:00 ET op 2026-07-24 — was de berekende status PREMARKET. Na dit tijdstip geldt de volgende regel: op werkdagen van 9:30 am tot 4:00 pm ET, met uitzondering van de data in de bovenstaande feestdagentabel.
Is de aandelenmarkt morgen open?
Morgen is een normale sessie, tenzij het een zaterdag, een zondag of een datum is die in de bovenstaande sluitingstabel staat. De eerstvolgende reguliere sessie op de kalender vanaf de verversing van deze pagina — inclusief vandaag, wanneer de markt open is — is 2026-07-24.
Is de aandelenmarkt open op kerstavond?
Wanneer 24 december op een werkdag valt, houden de Amerikaanse beurzen doorgaans een verkorte sessie die om 1:00 pm ET sluit; wanneer het op een weekend valt, is er geen sessie. Eerste kerstdag is altijd een volledige sluiting — de exacte data voor dit jaar staan in de bovenstaande kalendertabel.
Is de aandelenmarkt open op Black Friday?
Ja. De vrijdag na Thanksgiving is een geplande halve dag: de reguliere handel eindigt om 1:00 pm ET in plaats van 4:00 pm — ongeveer tweehonderd tien minute bars op de tape in plaats van driehonderd negentig.
Is de obligatiemarkt vandaag open?
Meestal wanneer de aandelenmarkt dat is, maar niet altijd. De Treasury-markt volgt de SIFMA-kalender: elke feestdag van de aandelenmarkt plus Columbus Day en Veterans Day, met vaker voorkomende (en eerdere, om 2:00 pm) vroege sluitingen. De gegevens van het afgelopen jaar tonen 2 werkdagen waarop aandelen werden verhandeld maar waarbij er geen Treasury yields werden geregistreerd.
Elk paneel hierboven is een opgeslagen, versiespecifieke query met de exacte SQL eronder — klap elk paneel uit om dit te controleren. Om zelf een datum, sessie of gap te controleren, kunt u een vraag stellen in het Engels op de Strasmore terminal.