Apakah Pasar Saham Buka Hari Ini?
Cek status buka atau tutup pasar saham AS hari ini, kalender hari libur mendatang, serta informasi mengenai apa yang terjadi pada order yang ditempatkan saat pasar sedang tutup.
Pasar saham AS buka Senin sampai Jumat, pukul 09.30 hingga 16.00 waktu Eastern, kecuali pada hari libur yang dijadwalkan dan beberapa penutupan awal pukul 13.00 — jadi pertanyaan "apakah pasar saham buka hari ini?" dapat disederhanakan menjadi tiga pemeriksaan: apakah hari ini hari kerja, apakah terdaftar dalam kalender hari libur, dan posisi jam saat ini dalam sesi perdagangan. Halaman ini menjalankan ketiga pemeriksaan tersebut terhadap catatan bursa secara langsung pada setiap penyegaran, dan stempel "data as of" di atas adalah bukti pembaruannya. Untuk jam per sesi, lihat jam pasar saham; untuk kalender lengkap, lihat hari libur pasar dan penutupan awal.
Apakah pasar saham sedang buka saat ini?
Panel di bawah menghitung jawabannya pada saat data halaman ini terakhir diperbarui. Panel ini memeriksa hari kerja, mencari tanggal hari ini dalam feed hari libur bursa, dan mencocokkan jam waktu Eastern dengan jendela resmi: premarket mulai pukul 04.00, sesi reguler mulai pukul 09.30, after-hours dari penutupan hingga pukul 20.00.
SQL tepat di balik setiap angka
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_sessionPer 09:00 ET pada Friday, 2026-07-24, status yang terhitung adalah PREMARKET, dengan entri kalender hari ini "normal weekday". Pembukaan sesi reguler berikutnya dalam jadwal — hari ini sendiri jika status menunjukkan PREMARKET atau OPEN — adalah 2026-07-24. Tanggal tersebut sudah melewati akhir pekan dan setiap hari libur penutupan penuh, dan tidak pernah lebih dari beberapa hari, bahkan saat akhir pekan libur panjang. Membaca ini setelah stempel waktu? Tiga pemeriksaan yang sama dapat dilakukan secara manual dalam hitungan detik: hari kerja, tabel hari libur di bawah, dan jam ET.
Penutupan terjadwal berikutnya — dan semua setelahnya
Kalender mendatang berasal langsung dari feed bursa. Satu nuansa yang perlu diketahui: tabel mencakup hari ini jika hari ini adalah hari libur atau penutupan lebih awal — kueri meminta setiap penutupan dari hari ini ke depan, bukan tepat setelahnya — sehingga pada pagi hari libur, baris pertama dan panel status di atasnya akan saling sesuai.
SQL tepat di balik setiap angka
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 16Interupsi terjadwal berikutnya adalah Labor Day pada 2026-09-07 (closed), 45 hari dari stempel penyegaran. Hari kerja apa pun yang tidak ada dalam tabel ini adalah sesi normal 9:30–4:00. Hari penutupan lebih awal mengakhiri perdagangan reguler pada pukul 1:00 pm Eastern dan terpusat di sekitar Thanksgiving, Malam Natal, dan Empat Juli; lelang penutupan tetap berjalan pada hari-hari tersebut — hanya saja tercatat tiga jam lebih awal.
Berapa hari pasar tutup setiap tahun?
"Sekitar sembilan atau sepuluh hari libur setahun" adalah jawaban umum — halaman ini dapat menghitung alih-alih memperkirakan. Feed bursa hanya membawa informasi penutupan yang akan datang, sehingga penutupan yang sudah lewat dipulihkan dari data historis: hari kerja di mana SPY mencetak nol bar menit sesi reguler adalah penutupan penuh, dan hari yang mencetak sekitar setengah sesi (sekitar 210 bar dari 390) adalah penutupan lebih awal.
SQL tepat di balik setiap angka
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 mencakup 10 penutupan penuh — 7 sudah terlewati, 3 masih akan datang — ditambah 2 jadwal penutupan lebih awal pukul 13:00, 2 di antaranya masih akan datang. (Penutupan dalam beberapa hari terakhir dapat berada sementara di luar kedua hitungan tersebut selama jeda ingest data historis dibersihkan; pembagian ini akan terkoreksi otomatis pada penyegaran berikutnya.) Akhir pekan melengkapi sisa penutupan: kurangi sekitar 104 hari akhir pekan dan hari libur ini dari 365, maka satu tahun menyisakan sekitar 250 sesi perdagangan.
Catatan tape: sesi terbaru
Kalender menunjukkan apa yang seharusnya terjadi; tape menunjukkan apa yang sebenarnya terjadi. Panel di bawah ini menampilkan sesi terbaru yang teramati pada tape minute-bar SPY kami, jumlah bar, jumlah perdagangan opsi SPY yang tercatat pada hari yang sama, dan setengah hari terbaru di mana pun pada trailing tape.
SQL tepat di balik setiap angka
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_barsSesi terbaru pada tape kami adalah 2026-07-22 (Wednesday), yang mencatat 390 minute bars sesi reguler — satu hari penuh berjumlah sekitar tiga ratus sembilan puluh, penutupan awal sekitar dua ratus sepuluh. Sesi yang sama mencatat sekitar 1302 ribu perdagangan opsi SPY individu: pasar opsi mengikuti kalender ekuitas, termasuk hari libur dan setengah hari, dan tanggal kedaluwarsa yang jatuh pada hari Jumat saat pasar tutup dimajukan satu hari. Penutupan awal terbaru pada tape adalah 2025-12-24, dengan 211 minute bars — bentuk terukur dari setengah hari pukul satu siang. Satu catatan penting: gudang data ini menyerap data dengan jeda satu sampai dua hari, sehingga "sesi terbaru" di sini dapat tertinggal satu atau dua hari dari sesi terbaru yang sebenarnya.
Saat pasar tutup tanpa peringatan
Penutupan terjadwal tercatat di kalender; penutupan yang tidak terjadwal tidak pernah tercatat. Hal ini jarang terjadi — hanya beberapa kali per dekade — dan data perdagangan mencatat kejadian tersebut: hari kerja yang seharusnya mencetak 390 bar namun tidak mencetak satu pun.
SQL tepat di balik setiap angka
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.1Badai Sandy membuat kedua bursa utama tutup pada 2012-10-29 dan 2012-10-30 — penutupan akibat cuaca multi-hari pertama sejak tahun seribu delapan ratus delapan puluh delapan — dan sesi pembukaan kembali pada 2012-10-31 mencetak penuh 390 bar. Hari berkabung nasional menutup pasar pada 2018-12-05 (Presiden George H. W. Bush) dan 2025-01-09 (Presiden Jimmy Carter). Penutupan tidak terjadwal terlama di era modern — sebelas hingga empat belas September dua ribu satu, empat sesi berturut-turut — terjadi sebelum data menit kami dimulai pada tahun dua ribu tiga. Setiap penutupan di atas muncul pada data sebagai 0 bar sesi reguler: tidak ada perdagangan.
Apa yang terjadi pada pesanan yang ditempatkan saat pasar tutup?
Tidak ada eksekusi yang terjadi saat pasar tutup. Pesanan yang dikirimkan pada hari Sabtu, hari libur, atau pukul dua pagi hanya akan mengantre di broker Anda hingga sesi berikutnya. Pesanan market yang mengantre akan bertransaksi pada harga berapa pun yang ditemukan oleh lelang pembukaan — beberapa hari setelah Anda mengkliknya. Selisih antara penutupan satu sesi dan harga pertama sesi berikutnya adalah risiko yang Anda terima, dan hal ini dapat diukur:
SQL tepat di balik setiap angka
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 dTabel tersebut mencakup 10 akhir pekan dan akhir pekan panjang terakhir — kolom days_dark menandai jeda libur empat hari. Yang terbaru berlangsung dari Fri 2026-07-17 hingga Mon 2026-07-20 (3 hari kalender tutup): harga penutupan sesi reguler SPY sebelum jeda adalah $743.2, harga pembukaan kembali adalah $747.06 — gap sebesar 0.52% yang akan diterima oleh pesanan market yang mengantre tanpa melihat harga terlebih dahulu. Pesanan limit justru membatasi harga, dengan risiko pesanan mungkin tidak terpenuhi; mengapa saham gap semalam membahas mekanisme di balik pergerakan ini.
Zona waktu, pasar obligasi, dan seluruh dunia
Tiga ketidaksesuaian menyebabkan sebagian besar kebingungan mengenai "apakah pasar buka". Zona waktu: jam resmi menggunakan Eastern Time — pukul 9:30 am ET adalah pukul 6:30 am Pacific dan 2:30 pm London di sebagian besar waktu dalam setahun — dan tanggal pasar mengikuti tanggal ET, sehingga pembaca di Asia dapat mendapati "hari ini" mereka mencakup dua sesi AS. Pasar obligasi: Treasury diperdagangkan berdasarkan kalender SIFMA, bukan NYSE — pasar ini mengikuti setiap hari libur pasar saham ditambah dua hari lagi, dan penutupan dininya adalah rekomendasi pukul 2:00 pm yang lebih sering terjadi dibandingkan hari setengah hari pukul 1:00 pm di pasar saham. Perbedaan hari penuh terlihat dalam data:
SQL tepat di balik setiap angka
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 dDalam satu tahun terakhir, terdapat tepat 2 hari kerja di mana pasar saham mengadakan sesi penuh namun tidak ada yield Treasury yang tercatat — 2025-10-13 dan 2025-11-11, satu di bulan Oktober dan satu di bulan November: Columbus Day dan Veterans Day, dua hari libur federal di mana ekuitas tetap bekerja sepenuhnya. Seluruh dunia: bursa luar negeri memiliki kalender sendiri, dan index futures diperdagangkan hampir sepanjang waktu — itulah sebabnya sebuah berita utama dapat menyatakan "saham sedang turun" pada pukul 3:00 am ET sementara setiap bursa saham AS sedang tutup. Jam diperpanjang di sekitar setiap sesi AS berjalan dari pukul 4:00 am hingga 9:30 am dan 4:00 pm hingga 8:00 pm ET, dengan likuiditas lebih tipis dan spread lebih lebar; mekanismenya terdapat dalam panduan jam diperpanjang.
FAQ
Apakah pasar saham sedang buka saat ini?
Berdasarkan penyegaran data terakhir pada halaman ini — 09:00 ET pada 2026-07-24 — status yang terhitung adalah PREMARKET. Setelah stempel waktu tersebut, aturannya adalah: hari kerja pukul 9:30 pagi hingga 4:00 sore ET, dikurangi tanggal yang tertera pada tabel hari libur di atas.
Apakah pasar saham buka besok?
Besok adalah sesi normal kecuali jika hari Sabtu, Minggu, atau tanggal yang tertera dalam tabel penutupan di atas. Sesi reguler terdekat dalam kalender saat penyegaran halaman ini — termasuk hari ini, jika pasar buka — adalah 2026-07-24.
Apakah pasar saham buka pada Malam Natal?
Ketika tanggal dua puluh empat Desember jatuh pada hari kerja, bursa saham AS biasanya mengadakan sesi singkat yang tutup pada pukul 1:00 siang ET; jika jatuh pada akhir pekan, maka tidak ada sesi sama sekali. Hari Natal selalu tutup penuh — tanggal tepat untuk tahun ini ada dalam tabel kalender di atas.
Apakah pasar saham buka pada Black Friday?
Ya. Hari Jumat setelah Thanksgiving adalah setengah hari yang dijadwalkan: perdagangan reguler berakhir pada pukul 1:00 siang ET, bukan pukul 4:00 sore — kira-kira dua ratus sepuluh bar menit pada tape, bukan tiga ratus sembilan puluh.
Apakah pasar obligasi buka hari ini?
Biasanya saat saham buka — tetapi tidak selalu. Pasar Treasury mengikuti kalender SIFMA: setiap hari libur pasar saham ditambah Columbus Day dan Veterans Day, dengan penutupan awal yang lebih sering (dan lebih cepat, pukul 2:00 siang). Data tape tahun terakhir menunjukkan 2 hari kerja di mana saham diperdagangkan namun yield Treasury tidak tercatat.
Setiap panel di atas adalah query tersimpan dan terversi dengan SQL tepat di bawahnya — perluas panel apa pun untuk mengauditnya. Untuk memeriksa tanggal, sesi, atau celah apa pun sendiri, tanyakan dalam bahasa Inggris biasa pada terminal Strasmore.