Rekap Pasar 29 Juni 2026 dalam Angka
Kilas balik 29 Juni 2026 dalam angka: kenaikan index dipimpin saham growth, sector spread empat poin, pergerakan saham memory, tape 0DTE, serta quotes dan rates yang ketat.
Senin, 29 Juni 2026 adalah hari penguatan yang dipimpin oleh saham growth dengan rentang kepemimpinan yang sempit: QQQ naik 2.57%, SPY 1.62%, 3968 nama likuid naik dibandingkan 2327 yang turun — namun hampir setengah dari basket sektor ditutup merah. Setiap angka dibaca dari query tersimpan; perluas panel apa pun untuk melihat SQL. Lapisan tick-by-tick dari sesi yang sama: analisis mendalam mikrostruktur 29 Juni.
Papan skor
Setiap perubahan membandingkan bar menit sesi reguler terakhir pada tanggal 29 Juni dengan tanggal 26 Juni.
SQL tepat di balik setiap angka
WITH friday AS (
SELECT ticker, argMax(close, window_start) AS friday_close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'QQQ', 'DIA', 'IWM')
AND window_start >= '2026-06-26 13:30:00' AND window_start < '2026-06-26 20:00:00'
GROUP BY ticker
),
monday AS (
SELECT ticker,
argMin(open, window_start) AS monday_open,
argMax(close, window_start) AS monday_close,
max(high) AS day_high,
min(low) AS day_low,
round(toFloat64(sum(volume)) / 1e6, 1) AS shares_traded_m
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'QQQ', 'DIA', 'IWM')
AND window_start >= '2026-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00'
GROUP BY ticker
)
SELECT
m.ticker AS ticker,
toFloat64(f.friday_close) AS jun26_close,
toFloat64(m.monday_open) AS jun29_open,
toFloat64(m.monday_close) AS jun29_close,
round((toFloat64(m.monday_close) / toFloat64(f.friday_close) - 1) * 100, 2) AS pct_change,
round(100 * (toFloat64(m.monday_close) / toFloat64(f.friday_close) - 1) / max(toFloat64(m.monday_close) / toFloat64(f.friday_close) - 1) OVER (), 1) AS pct_of_best_change,
toFloat64(m.day_high) AS day_high,
toFloat64(m.day_low) AS day_low,
m.shares_traded_m AS shares_traded_m
FROM monday m
JOIN friday f ON m.ticker = f.ticker
ORDER BY m.tickerSPY dibuka pada $736.525 dibandingkan penutupan hari Jumat sebesar $729.09 dan berakhir pada $740.88, di bawah level tertingginya sebesar $741.56. Kenaikan QQQ sebesar +2.57% dibandingkan DIA sebesar +0.81% menandakan hari bagi sektor pertumbuhan dan teknologi; small-cap IWM bertambah 0.45%.
Apakah hari ini tidak biasa?
Pergerakan persentase tidak berarti banyak tanpa tolok ukur. Panel ini membandingkan tanggal 29 Juni terhadap bulan sebelumnya berdasarkan ukuran absolut close-over-close.
SQL tepat di balik setiap angka
SELECT
round(anyIf(cc_pct, ticker = 'QQQ' AND d = toDate('2026-06-29')), 2) AS qqq_close_over_close_pct,
arrayCount(x -> x > abs(anyIf(cc_pct, ticker = 'QQQ' AND d = toDate('2026-06-29'))), groupArrayIf(abs(cc_pct), ticker = 'QQQ' AND d != toDate('2026-06-29'))) + 1 AS qqq_abs_move_rank,
countIf(ticker = 'QQQ') AS qqq_sessions_compared,
round(max(if(ticker = 'QQQ', abs(cc_pct), 0)), 2) AS qqq_biggest_move_of_month_pct,
countIf(ticker = 'QQQ' AND cc_pct > 0) AS qqq_up_sessions,
round(anyIf(cc_pct, ticker = 'SPY' AND d = toDate('2026-06-29')), 2) AS spy_close_over_close_pct,
arrayCount(x -> x > abs(anyIf(cc_pct, ticker = 'SPY' AND d = toDate('2026-06-29'))), groupArrayIf(abs(cc_pct), ticker = 'SPY' AND d != toDate('2026-06-29'))) + 1 AS spy_abs_move_rank,
countIf(ticker = 'SPY') AS spy_sessions_compared,
round(anyIf(oc_pct, ticker = 'SPY' AND d = toDate('2026-06-29')), 2) AS spy_open_to_close_pct,
concat(monthName(min(d)), ' ', toString(toDayOfMonth(min(d))), ', ', toString(toYear(min(d)))) AS first_session
FROM (
SELECT ticker, d,
(close_px / lagInFrame(close_px) OVER (PARTITION BY ticker ORDER BY d) - 1) * 100 AS cc_pct,
oc_pct
FROM (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMax(toFloat64(close), window_start) AS close_px,
(argMax(toFloat64(close), window_start) / argMin(toFloat64(open), window_start) - 1) * 100 AS oc_pct
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'QQQ')
AND window_start >= toDateTime('2026-05-28 00:00:00')
AND window_start < toDateTime('2026-06-30 00:00:00')
AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
GROUP BY ticker, d
)
)
WHERE isFinite(cc_pct)Besar, namun bukan rekor: pergerakan 2.57% pada QQQ menempati peringkat 5 dari 21 sesi sejak May 29, 2026, dalam bulan yang pergerakan tunggal terbesarnya mencapai 4.76%; 1.62% pada SPY menempati peringkat 4 dari 21. Asal pergerakan tersebut sangat penting: pergerakan open-to-close SPY hanya 0.59%, sehingga sebagian besar kenaikan terjadi pada overnight gap, sebelum satu bar jam reguler tercetak. QQQ ditutup lebih tinggi pada 10 dari sesi-sesi tersebut: bulan yang seperti lemparan koin.
Breadth: seberapa luas rally tersebut?
Advancer adalah ticker yang harga penutupan Senin lebih tinggi dari Jumat, di antara nama-nama yang diperdagangkan setidaknya $1 juta — filter yang menggugurkan 5,108 dari 11,475 ticker sesi ganda.
SQL tepat di balik setiap angka
WITH per_ticker AS (
SELECT
ticker,
toFloat64(argMaxIf(close, window_start, window_start < '2026-06-27 00:00:00')) AS friday_close,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-06-29 00:00:00')) AS monday_close,
sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-06-29 00:00:00') AS monday_dollar_volume
FROM global_markets.delayed_stocks_minute_aggs
WHERE (window_start >= '2026-06-26 13:30:00' AND window_start < '2026-06-26 20:00:00')
OR (window_start >= '2026-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00')
GROUP BY ticker
)
SELECT
countIf(monday_close > friday_close AND monday_dollar_volume >= 1000000) AS advancers,
countIf(monday_close < friday_close AND monday_dollar_volume >= 1000000) AS decliners,
countIf(monday_close = friday_close AND monday_dollar_volume >= 1000000) AS unchanged,
countIf(monday_dollar_volume >= 1000000) AS liquid_tickers,
count() AS tickers_traded_both_sessions,
reverse(arrayStringConcat(extractAll(reverse(toString(count())), '[0-9]{1,3}'), ',')) AS tickers_traded_both_sessions_label,
count() - countIf(monday_dollar_volume >= 1000000) AS dropped_by_liquidity_filter,
reverse(arrayStringConcat(extractAll(reverse(toString(count() - countIf(monday_dollar_volume >= 1000000))), '[0-9]{1,3}'), ',')) AS dropped_by_liquidity_filter_label,
round(100.0 * countIf(monday_close > friday_close AND monday_dollar_volume >= 1000000)
/ countIf(monday_dollar_volume >= 1000000), 1) AS advancer_pct
FROM per_ticker
WHERE friday_close > 0 AND monday_close > 03968 advancers, 2327 decliners, 72 unchanged: 62.3% dari tape likuid naik — dihitung satu per satu nama, sebuah hari yang luas.
Sektor demi sektor: rally lebih sempit daripada kelihatannya
Menghitung jumlah saham secara setara adalah satu sudut pandang; memberi bobot berdasarkan ukuran perusahaan adalah sudut pandang lainnya. Sebelas SPDR sector ETF menjadi ringkasan untuk metode kedua — satu keranjang berbobot market-value per sektor dari S&P 500. Hasilnya sangat berbeda dengan hitungan breadth.
SQL tepat di balik setiap angka
WITH per_etf AS (
SELECT
ticker,
toFloat64(argMaxIf(close, window_start, window_start < '2026-06-27 00:00:00')) AS friday_close,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-06-29 00:00:00')) AS monday_close,
maxIf(toFloat64(high), window_start >= '2026-06-29 00:00:00') AS day_high,
minIf(toFloat64(low), window_start >= '2026-06-29 00:00:00') AS day_low,
round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-06-29 00:00:00') / 1e6, 0) AS dollar_volume_m
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('XLB', 'XLC', 'XLE', 'XLF', 'XLI', 'XLK', 'XLP', 'XLRE', 'XLU', 'XLV', 'XLY')
AND ((window_start >= '2026-06-26 13:30:00' AND window_start < '2026-06-26 20:00:00')
OR (window_start >= '2026-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00'))
GROUP BY ticker
)
SELECT
sector,
ticker,
round((monday_close / friday_close - 1) * 100, 2) AS pct_change,
round((day_high / day_low - 1) * 100, 2) AS range_pct,
dollar_volume_m,
round((monday_close / friday_close - 1) * 100 - min((monday_close / friday_close - 1) * 100) OVER (), 2) AS pct_above_worst_sector
FROM (
SELECT *,
multiIf(ticker = 'XLB', 'Materials',
ticker = 'XLC', 'Communication services',
ticker = 'XLE', 'Energy',
ticker = 'XLF', 'Financials',
ticker = 'XLI', 'Industrials',
ticker = 'XLK', 'Technology',
ticker = 'XLP', 'Consumer staples',
ticker = 'XLRE', 'Real estate',
ticker = 'XLU', 'Utilities',
ticker = 'XLV', 'Health care',
'Consumer discretionary') AS sector
FROM per_etf
)
ORDER BY pct_change DESCTechnology memimpin di 2.52%, diikuti consumer discretionary di 2.37%; materials ditutup -1.82% dan real estate -0.64%. Selisih antara yang terbaik dan terburuk — dispersi sektor hari itu — tercatat 4.34 percentage points, dengan utilities, staples, energy, real estate dan materials semuanya berwarna merah pada hari saat indeks naik. Luas berdasarkan jumlah saham, namun sempit berdasarkan bobot: itulah yang dapat tersembunyi dari keuntungan index fund.
Sorotan hari ini: memori dan penyimpanan
Empat nama diperdagangkan dengan tema yang sama namun dengan hasil yang sangat berbeda — hanya pergerakan bersama dan besaran; data tidak menjelaskan alasannya.
SQL tepat di balik setiap angka
WITH per_name AS (
SELECT
ticker,
toFloat64(argMaxIf(close, window_start, window_start < '2026-06-27 00:00:00')) AS friday_close,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-06-29 00:00:00')) AS monday_close,
maxIf(toFloat64(high), window_start >= '2026-06-29 00:00:00') AS day_high,
minIf(toFloat64(low), window_start >= '2026-06-29 00:00:00') AS day_low,
argMinIf(window_start, toFloat64(low), window_start >= '2026-06-29 00:00:00') AS low_bar,
argMaxIf(window_start, toFloat64(high), window_start >= '2026-06-29 00:00:00') AS high_bar
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('MU', 'SNDK', 'STX', 'WDC')
AND ((window_start >= '2026-06-26 13:30:00' AND window_start < '2026-06-26 20:00:00')
OR (window_start >= '2026-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00'))
GROUP BY ticker
)
SELECT
ticker,
round(friday_close, 2) AS jun26_close,
round(monday_close, 2) AS jun29_close,
round((monday_close / friday_close - 1) * 100, 2) AS pct_chg,
round(day_high, 2) AS day_high,
formatDateTime(toTimeZone(high_bar, 'America/New_York'), '%H:%i') AS day_high_et,
round(day_low, 2) AS day_low,
formatDateTime(toTimeZone(low_bar, 'America/New_York'), '%H:%i') AS day_low_et,
round((day_high / day_low - 1) * 100, 2) AS range_pct
FROM per_name
ORDER BY tickerMU adalah contoh klasik dari rentang versus perubahan neto: rentang intraday 12.22% — terendah $1023.65 pada 10:18 ET, tertinggi $1148.79 pada 15:59 — namun ditutup 1.97% di atas hari Jumat. Western Digital naik 11.15% dan Seagate 8.17%; SanDisk ditutup -1.9% dalam rentang 10.33% — satu-satunya penutupan yang lebih rendah dalam kelompok tersebut. Harga penutupan menyembunyikan apa yang dialami oleh para pemegang aset.
Di mana uang diperdagangkan
Berdasarkan dolar yang diperdagangkan, Micron (MU) mendominasi segalanya, termasuk index funds: $58.47 miliar dibandingkan dengan $33.97 miliar milik SPY. Berdasarkan jumlah saham, hasilnya berbeda.
SQL tepat di balik setiap angka
SELECT ticker, leaderboard, dollar_volume_bn, if(dollar_volume_bn < 1, dollar_volume_m, NULL) AS dollar_value_m, shares_m,
round(100 * if(leaderboard = 'by dollars traded', dollar_volume_bn, shares_m)
/ max(if(leaderboard = 'by dollars traded', dollar_volume_bn, shares_m)) OVER (PARTITION BY leaderboard), 1) AS pct_of_board_leader
FROM (
SELECT
'by dollars traded' AS leaderboard,
ticker,
round(sum(toFloat64(close) * toFloat64(volume)) / 1e9, 2) AS dollar_volume_bn,
round(sum(toFloat64(close) * toFloat64(volume)) / 1e6, 0) AS dollar_volume_m,
round(sum(toFloat64(volume)) / 1e6, 1) AS shares_m
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= '2026-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00'
GROUP BY ticker
ORDER BY dollar_volume_bn DESC
LIMIT 6
UNION ALL
SELECT
'by shares traded' AS leaderboard,
ticker,
round(sum(toFloat64(close) * toFloat64(volume)) / 1e9, 2) AS dollar_volume_bn,
round(sum(toFloat64(close) * toFloat64(volume)) / 1e6, 0) AS dollar_volume_m,
round(sum(toFloat64(volume)) / 1e6, 1) AS shares_m
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= '2026-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00'
GROUP BY ticker
ORDER BY shares_m DESC
LIMIT 4
)
ORDER BY leaderboard ASC, if(leaderboard = 'by dollars traded', dollar_volume_bn, shares_m) DESCPapan jumlah saham bisa menyesatkan: pemimpin jumlah saham adalah SOXS, sebuah ETF semiconductor inverse dengan leverage 3x (695.3 juta saham), dan INLF, sebuah penny stock yang 353.8 juta sahamnya bernilai sekitar $23 juta sepanjang hari. Volume dolar menunjukkan ke mana uang bergerak; volume relatif menunjukkan apakah aktivitas suatu aset tidak biasa bagi aset itu sendiri.
Dalam rentang waktu tiga puluh menit New York, tanggal dua puluh sembilan Juni menunjukkan pola volume "smile" yang klasik:
SQL tepat di balik setiap angka
SELECT
formatDateTime(toStartOfInterval(toTimeZone(window_start, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i') AS et_time,
round(sum(toFloat64(volume)) / 1e9, 2) AS shares_bn,
round(100 * sum(toFloat64(volume)) / max(sum(toFloat64(volume))) OVER (), 1) AS pct_of_biggest_bucket,
round(100 * (sum(toFloat64(volume)) / min(sum(toFloat64(volume))) OVER () - 1), 1) AS pct_above_trough
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= '2026-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00'
GROUP BY et_time
ORDER BY et_time2.3 miliar saham pada setengah jam pertama pembukaan, titik terendah 0.77 miliar pada 13:30, dan rentang terbesar — 2.39 miliar — pada setengah jam terakhir penutupan, di mana lelang penutupan dan aliran index-tracking terkonsentrasi.
Rekaman opsi
Opsi yang diperdagangkan mencapai 66.33 juta kontrak dari 11.04 juta cetakan.
SQL tepat di balik setiap angka
WITH
(
SELECT (any(underlying_symbol), any(toFloat64(strike_price)), any(option_type),
any(toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6)))),
sum(size), count(), round(avg(toFloat64(price)), 3))
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-06-29 00:00:00' AND sip_timestamp < '2026-06-30 00:00:00'
GROUP BY ticker
ORDER BY sum(size) DESC
LIMIT 1
) AS top_contract,
(
SELECT round(toFloat64(argMax(close, window_start)), 2)
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00'
) AS spy_regular_close
SELECT
round(count() / 1e6, 2) AS option_prints_m,
round(toFloat64(sum(size)) / 1e6, 2) AS contracts_m,
round(100.0 * sumIf(size, option_type = 'C') / sum(size), 1) AS call_pct_of_volume,
round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260629') / sum(size), 1) AS same_day_expiry_pct,
round(toFloat64(sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260702')) / 1e6, 2) AS thu_jul2_expiry_contracts_m,
countIf(substring(ticker, length(ticker) - 14, 6) = '260703') AS fri_jul3_expiry_prints,
countIf(sip_timestamp < '2026-06-29 13:30:00') AS premarket_prints,
reverse(arrayStringConcat(extractAll(reverse(toString(countIf(sip_timestamp < '2026-06-29 13:30:00'))), '[0-9]{1,3}'), ',')) AS premarket_prints_label,
countIf(sip_timestamp < '2026-06-29 13:30:00'
AND underlying_symbol NOT IN ('SPX', 'SPXW', 'XSP', 'RUTW', 'VIX', 'VIXW')) AS premarket_non_index_prints,
arrayStringConcat(arraySort(groupUniqArrayIf(underlying_symbol, sip_timestamp < '2026-06-29 13:30:00')), ', ') AS premarket_underlyings,
round(toFloat64(sumIf(size, underlying_symbol = 'SPY')) / 1e6, 2) AS spy_contracts_m,
round(toFloat64(sumIf(size, underlying_symbol = 'QQQ')) / 1e6, 2) AS qqq_contracts_m,
top_contract.1 AS top_contract_underlying,
top_contract.2 AS top_contract_strike,
top_contract.3 AS top_contract_type,
top_contract.4 AS top_contract_expiry,
top_contract.5 AS top_contract_volume,
reverse(arrayStringConcat(extractAll(reverse(toString(assumeNotNull(top_contract.5))), '[0-9]{1,3}'), ',')) AS top_contract_volume_label,
round(top_contract.7, 3) AS top_contract_avg_price,
round(top_contract.2 - spy_regular_close, 2) AS top_strike_minus_spy_close
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-06-29 00:00:00' AND sip_timestamp < '2026-06-30 00:00:00'Call mengambil 55.7% dari volume kontrak, dan 35.8% dari seluruh perdagangan berakhir pada hari Senin yang sama — pangsa zero-days-to-expiry (0DTE). Kontrak tunggal tersibuk adalah call SPY $741 hari yang sama: 788,133 kontrak dengan rata-rata premium $0.474, dengan penutupan SPY berada 0.12 dolar di bawah strike — opsi yang paling banyak diperdagangkan hari itu berakhir out of the money. SPY diperdagangkan sebanyak 12.01 juta kontrak sebagai underlying; QQQ 7.32 juta.
Panel juga mencatat 40,621 cetakan opsi sebelum pembukaan ekuitas pukul 9:30 — semuanya pada root indeks cash-settled (RUTW, SPX, SPXW, VIX, VIXW, XSP), dengan 0 cetakan opsi saham atau ETF pada jendela waktu yang sama. Hal ini merupakan aturan, bukan kebetulan: opsi indeks memiliki sesi perdagangan global yang diperpanjang, sedangkan opsi pada saham dan ETF dibuka bersamaan dengan pasar saham. Saham diperdagangkan lebih awal — lihat perdagangan premarket dan after-hours — namun opsi mereka tidak.
Tidak ada kontrak dengan kode kedaluwarsa Jumat, 3 Juli yang tercetak sepanjang hari (0 cetakan) — pasar tutup pada hari Jumat tersebut — sementara expiry Kamis, 2 Juli diperdagangkan sebanyak 10.73 juta.
Pita kuotasi: biaya perdagangan harian
Setiap harga di halaman ini berasal dari aliran kuotasi — National Best Bid and Offer, yang dipublikasikan ulang secara terus-menerus untuk setiap nama yang terdaftar. Selisih antara bid terbaik dan offer terbaik, bid-ask spread, adalah biaya yang dibayar sebuah order untuk melakukan eksekusi.
SQL tepat di balik setiap angka
SELECT
ticker,
round(count() / 1e6, 2) AS nbbo_updates_m,
round(quantileExactIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, bid_price > 0 AND ask_price >= bid_price), 2) AS median_spread_bps,
round(quantileExactIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, bid_price > 0 AND ask_price >= bid_price AND sip_timestamp >= '2026-06-29 13:30:00' AND sip_timestamp < '2026-06-29 14:00:00'), 2) AS open_30min_spread_bps,
round(quantileExactIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, bid_price > 0 AND ask_price >= bid_price AND sip_timestamp >= '2026-06-29 17:00:00' AND sip_timestamp < '2026-06-29 17:30:00'), 2) AS midday_spread_bps,
round(quantileExactIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, bid_price > 0 AND ask_price >= bid_price AND sip_timestamp >= '2026-06-29 13:30:00' AND sip_timestamp < '2026-06-29 14:00:00')
- quantileExactIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, bid_price > 0 AND ask_price >= bid_price AND sip_timestamp >= '2026-06-29 17:00:00' AND sip_timestamp < '2026-06-29 17:30:00'), 2) AS open_minus_midday_bps,
countIf(NOT (bid_price > 0 AND ask_price >= bid_price)) AS dropped_invalid_quotes
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'QQQ', 'MU', 'WDC')
AND sip_timestamp >= '2026-06-29 13:30:00' AND sip_timestamp < '2026-06-29 20:00:00'
GROUP BY ticker
ORDER BY tickerMedian lebar kuotasi SPY adalah 0.41 basis point dari mid-price, dibandingkan dengan 0.84 untuk QQQ, 4.6 untuk Micron, dan 8.2 untuk Western Digital — yang terlebar dari keempatnya. Satu basis point dari order $10.000 adalah satu dolar, jadi membeli dan segera menjual SPY senilai $10.000 pada harga kuotasi memakan biaya sekitar $0.41; transaksi pulang-pergi yang sama pada Western Digital memakan biaya $8.2. Ukuran perdagangan tidak berubah; yang berubah adalah nama instrumennya.
Keempatnya memiliki kuotasi yang lebih lebar pada setengah jam pertama pembukaan dibandingkan pada jendela kontrol tengah hari — SPY 0.41 bps dibandingkan 0.27, Western Digital 14.33 dibandingkan 7.55, dengan premi pembukaan sebesar 6.78 bp pada nama yang terlebar. Churn adalah sisi lainnya: 3.98 juta pembaruan NBBO pada SPY selama jam reguler, dan 4.42 juta pada QQQ.
Suku Bunga: kurva hampir tidak bergerak
Treasury mengalami hari Senin yang tenang. Yield adalah harga penutupan harian, berubah dibandingkan tanggal 26 Juni.
SQL tepat di balik setiap angka
SELECT
t.1 AS curve_point,
round(t.2, 2) AS jun29_yield_pct,
round((t.2 - t.3) * 100) AS one_day_change_bp
FROM (
SELECT arrayJoin([
('1 month', toFloat64(mon.yield_1_month), toFloat64(fri.yield_1_month)),
('3 month', toFloat64(mon.yield_3_month), toFloat64(fri.yield_3_month)),
('1 year', toFloat64(mon.yield_1_year), toFloat64(fri.yield_1_year)),
('2 year', toFloat64(mon.yield_2_year), toFloat64(fri.yield_2_year)),
('5 year', toFloat64(mon.yield_5_year), toFloat64(fri.yield_5_year)),
('10 year', toFloat64(mon.yield_10_year), toFloat64(fri.yield_10_year)),
('30 year', toFloat64(mon.yield_30_year), toFloat64(fri.yield_30_year)),
('2s10s spread', toFloat64(mon.yield_10_year - mon.yield_2_year), toFloat64(fri.yield_10_year - fri.yield_2_year))
]) AS t
FROM (SELECT * FROM global_markets.treasury_yields WHERE date = '2026-06-29') AS mon,
(SELECT * FROM global_markets.treasury_yields WHERE date = '2026-06-26') AS fri
)Tenor 10-tahun ditutup pada 4.38%, tidak berubah pada hari itu (0 bp), sementara bill 3-bulan naik 4 bp menjadi 3.87%. spread 2s10s — tenor 10-tahun dikurangi tenor 2-tahun — ditutup pada 0.28 poin persentase (-3 bp): tetap positif, sedikit lebih datar.
Kalender di balik hari ini
SQL tepat di balik setiap angka
WITH
(
SELECT (argMax(d, n), max(n))
FROM (
SELECT ex_dividend_date AS d, count() AS n
FROM global_markets.stocks_dividends
WHERE ex_dividend_date BETWEEN '2026-06-22' AND '2026-07-02'
GROUP BY d
)
) AS peak_ex_div,
(
SELECT (countIf(form_type = '424B2'), countIf(form_type = '4'), countIf(form_type = '8-K'), count())
FROM global_markets.stocks_sec_edgar_index
WHERE filing_date = '2026-06-29'
) AS filings,
(
SELECT (count(), uniqExact(publisher), countIf(has(tickers, 'NVDA')))
FROM global_markets.stocks_news
WHERE toDate(toTimeZone(published_utc, 'America/New_York')) = '2026-06-29'
) AS news,
(
SELECT max(n)
FROM (
SELECT t, count() AS n
FROM (
SELECT arrayJoin(tickers) AS t
FROM global_markets.stocks_news
WHERE toDate(toTimeZone(published_utc, 'America/New_York')) = '2026-06-29'
)
WHERE t NOT IN ('NVDA', 'SPCX')
GROUP BY t
)
) AS runner_up_articles,
(
SELECT (any(split_from), any(split_to), count())
FROM global_markets.stocks_splits
WHERE ticker = 'HON' AND execution_date = '2026-06-29'
) AS hon_split,
(
SELECT (
round(toFloat64(argMaxIf(close, window_start, window_start < '2026-06-27 00:00:00')), 2),
round(toFloat64(argMaxIf(close, window_start, window_start >= '2026-06-29 00:00:00')), 2)
)
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'HON'
AND ((window_start >= '2026-06-26 13:30:00' AND window_start < '2026-06-26 20:00:00')
OR (window_start >= '2026-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00'))
) AS hon_close
SELECT
(SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-06-29') AS ex_dividend_records_jun29,
(SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-06-29'
AND ticker IN ('AAPL', 'MSFT', 'NVDA', 'AMZN', 'GOOGL', 'GOOG', 'META', 'TSLA', 'JPM', 'JNJ',
'XOM', 'KO', 'PG', 'V', 'MA', 'HD', 'WMT', 'CVX', 'MRK', 'PEP',
'SPY', 'QQQ', 'DIA', 'IWM', 'VTI')) AS household_name_ex_dividends,
length(['AAPL', 'MSFT', 'NVDA', 'AMZN', 'GOOGL', 'GOOG', 'META', 'TSLA', 'JPM', 'JNJ',
'XOM', 'KO', 'PG', 'V', 'MA', 'HD', 'WMT', 'CVX', 'MRK', 'PEP',
'SPY', 'QQQ', 'DIA', 'IWM', 'VTI']) AS household_names_checked,
concat(monthName(peak_ex_div.1), ' ', toString(toDayOfMonth(peak_ex_div.1))) AS busiest_ex_div_day_of_window,
peak_ex_div.2 AS busiest_ex_div_day_records,
(SELECT count() FROM global_markets.stocks_splits WHERE execution_date = '2026-06-29') AS splits_executed,
(SELECT count() FROM global_markets.stocks_ipos WHERE listing_date = '2026-06-29') AS ipos_listed_jun29,
(SELECT arrayStringConcat(groupArray(ticker), ', ') FROM (
SELECT ticker FROM global_markets.stocks_ipos WHERE listing_date = '2026-07-01' ORDER BY ticker
)) AS jul1_ipo_debuts,
filings.4 AS sec_filings,
filings.1 AS prospectus_424b2_filings,
filings.2 AS insider_form4_filings,
filings.3 AS filings_8k,
news.1 AS news_articles,
news.2 AS news_publishers,
news.3 AS nvda_articles,
runner_up_articles AS next_most_covered_articles,
news.3 - runner_up_articles AS nvda_minus_next_most_covered,
hon_split.3 AS hon_split_records,
hon_split.1 AS hon_split_from,
hon_split.2 AS hon_split_to,
hon_close.1 AS hon_close_jun26,
hon_close.2 AS hon_close_jun29449 catatan dividen menjadi ex-dividend pada 29 Juni — Anda harus memiliki saham sebelum tanggal ex-dividend atau pembayaran tersebut bukan milik Anda — namun di antara 25 nama perusahaan terkenal yang kami periksa, 0 muncul. Gelombang akhir kuartal mencapai puncaknya pada 745 catatan pada July 1. 23 split dilaksanakan dan 0 IPO tercatat, debut hari Rabu (BSP, ITG, LIME) sudah ada dalam kalender.
SEC mencatat 6173 pengajuan tertanggal 29 Juni: 1473 suplemen harga produk terstruktur (formulir 424B2) dan 1277 laporan perdagangan orang dalam (Formulir 4) jauh lebih banyak daripada 231 8-K yang menjadi berita utama. Feed berita kami memuat 170 artikel dari 3 penerbit; tidak termasuk satu simbol yang digunakan kembali dengan tag ambigu (dihapus dalam kueri), nama yang paling banyak diliput adalah NVDA dengan 14 artikel dibandingkan dengan runner-up sebanyak 12.
Catatan data
Data yang tidak biasa akan diberi catatan, tidak pernah dihapus secara diam-diam — keempat hal ini memengaruhi angka utama.
- Keranjang sektor adalah metode yang telah ditetapkan. "Sektor" berarti sebelas SPDR sector ETF, dengan bobot market-value — nama yang sama setiap sesi, bukan klasifikasi per-ticker dari vendor.
- Volume dolar adalah proxy per menit — harga close × volume yang dijumlahkan per bar menit, mendekati tetapi tidak identik dengan jumlah nilai print.
- Quoted spread mengecualikan kuotasi tidak valid (catatan NBBO satu sisi atau crossed); panel mencatat apa yang dihapus (1544 pada SPY). Median quoted width adalah statistik kuotasi, bukan biaya per transaksi — order sering kali tereksekusi di dalam quote.
- Satu print tunggal dapat mengontaminasi harga high atau low pada bar menit. Bar pukul 11:07 ET pada QQQ mencatat low $709.58 sementara tidak ada bar di sekitarnya yang turun di bawah $715.09 — satu print $5.51 di bawah pasar saat itu. Setiap high dan low di atas telah diperiksa silang dengan bar yang berdekatan; session low QQQ sebesar $705.172 dinyatakan valid.
Catatan data lengkap
- Cakupan Treasury lebih tipis daripada skema. Empat maturitas yang diiklankan (6-month, 3-, 7-, dan 20-year) tidak pernah terisi; kurva menunjukkan tujuh yang tersedia, ditambah baris 2s10s.
- "Reverse split" Honeywell yang tercatat di tape bertentangan dengan fakta. Feed membawa catatan HON 1 tertanggal 29 Juni: reverse split yang mengonversi 2 saham lama menjadi 1 saham baru. HON tutup pada $231.3 hari Jumat dan $227.71 hari Senin — tidak ada penggandaan. Kami tidak menerapkannya.
- Jumlah berita berasal dari feed satu vendor, yaitu 3 penerbit yang kami bawa — bukan "semua berita pasar".
- Penerimaan tingkat tick — crossed quotes, koreksi phantom-volume, file short-volume FINRA yang terpotong (dan mengapa short volume bukan short interest) — tersedia di analisis mendalam.
Sesi, terverifikasi
SQL tepat di balik setiap angka
WITH
(
SELECT (
round(toFloat64(minIf(low, formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') = '11:07')), 2),
round(toFloat64(minIf(low, formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') IN ('11:04', '11:05', '11:06', '11:08', '11:09', '11:10'))), 2)
)
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'QQQ' AND window_start >= '2026-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00'
) AS qqq_lone
SELECT
(SELECT count() FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-03 00:00:00' AND window_start < '2026-07-04 00:00:00') AS jul3_spy_bars,
formatDateTime(min(toTimeZone(window_start, 'America/New_York')), '%H:%i') AS first_spy_bar_et,
formatDateTime(max(toTimeZone(window_start, 'America/New_York')), '%H:%i') AS last_spy_bar_et,
count() AS spy_minute_bars,
countIf(window_start >= '2026-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00') AS regular_session_bars,
qqq_lone.1 AS qqq_1107_lone_low,
qqq_lone.2 AS qqq_1107_adjacent_bars_low,
round(qqq_lone.2 - qqq_lone.1, 2) AS qqq_lone_print_below_adjacent
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-06-29 00:00:00' AND window_start < '2026-06-30 00:00:00'Bar SPY berjalan dari 04:00 hingga 19:59 waktu New York dengan tepat 390 bar jendela reguler — sesi lengkap, terverifikasi dari tape (dataset kalender bursa hanya memuat penutupan mendatang). Jumat, tiga Juli itu adalah penutupan penuh — 0 bar SPY tercetak sepanjang hari, empat Juli jatuh pada hari Sabtu; minggu dengan empat sesi tersebut memiliki rekap tersendiri.
FAQ
Bagaimana performa pasar saham pada 29 Juni 2026?
Hari penguatan yang dipimpin oleh saham growth: QQQ ditutup 2.57% lebih tinggi dari Jumat, SPY 1.62%, DIA 0.81% dan IWM 0.45%, dengan 62.3% ticker yang diperdagangkan senilai $1 juta atau lebih berakhir menguat.
Apakah 29 Juni 2026 merupakan hari besar bagi Nasdaq?
Besar, namun tidak luar biasa: pergerakan close-over-close QQQ sebesar 2.57% menempati peringkat 5 dari 21 sesi dalam satu bulan terakhir berdasarkan ukuran absolut, dibandingkan dengan angka tertinggi bulanan sebesar 4.76%.
Sektor mana yang memimpin pada 29 Juni 2026?
Teknologi (2.52%) dan consumer discretionary (2.37%) memimpin sebelas basket sektor SPDR; materials berada di posisi terakhir pada -1.82%, dengan spread sebesar 4.34 percentage points. Utilities, staples, energy dan real estate juga ditutup lebih rendah.
Berapa pangsa volume opsi pada 29 Juni 2026 yang merupakan 0DTE?
Ekspirasi hari yang sama adalah 35.8% dari 66.33 juta kontrak yang diperdagangkan; kontrak tunggal tersibuk, yaitu SPY $741 call hari yang sama (788,133 kontrak), berakhir out of the money.
Mengapa opsi diperdagangkan sebelum pasar saham buka?
Hanya opsi indeks yang melakukannya. Semua 40,621 cetakan opsi sebelum pukul 9:30 pagi ET pada 29 Juni berada pada akar indeks cash-settled (RUTW, SPX, SPXW, VIX, VIXW, XSP), yang mencantumkan sesi jam perdagangan global yang diperpanjang; cetakan opsi saham dan ETF dalam jendela waktu tersebut berjumlah 0.
Metodologi
- Timestamp disimpan dalam UTC, lalu dikonversi ke waktu New York di dalam query. "Close" adalah bar menit terakhir sesi reguler, bukan hasil lelang; perubahan harian membandingkan 29 Juni dengan 26 Juni, dan sesi diverifikasi dari rentang bar yang diamati.
- Peringkat trailing-month menggunakan pergerakan close-over-close jam reguler, sesi pertama dihapus (tidak ada close sebelumnya di dalam jendela waktu). Tanggal kedaluwarsa opsi diproses ulang dari ticker OCC (kolom kedaluwarsa pada tabel rusak).
- Setiap panel dibaca satu kali, pada saat penulisan, melalui jalur read-only yang terbatas. Status Warehouse per 13 Juli 2026.
Setiap panel adalah hasil query tersimpan — chart, tabel, dan SQL dalam satu objek. Tempelkan salah satunya ke dalam terminal Strasmore. Sesi berikutnya: 30 Juni.