Rekap Pasar 2 Juli 2026
Rotasi menjelang hari libur dengan breadth positif meski Nasdaq turun, sektor tech menjadi satu dari sebelas dana sektor yang melemah, serta hari kedua rout memori.
Kamis, 2 Juli 2026 — sesi terakhir sebelum penutupan Hari Kemerdekaan — merupakan hari rotasi yang terlihat seperti aksi jual. QQQ mencatat -1.71% sementara DIA naik 1.04%, dan breadth bersifat POSITIVE: 3398 nama likuid naik dibandingkan 2758, dengan 54.6% dari tape berwarna hijau saat indeks growth turun. Delapan dari sebelas dana sektor ditutup lebih tinggi; aksi jual terjadi pada sektor tech dan kompleks memori yang anjlok sehari sebelumnya.
Papan skor
SQL tepat di balik setiap angka
WITH prior AS (
SELECT ticker, argMax(close, window_start) AS prior_close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'QQQ', 'DIA', 'IWM')
AND window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 20:00:00'
GROUP BY ticker
),
sess AS (
SELECT ticker,
argMin(open, window_start) AS day_open,
argMax(close, window_start) AS day_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-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00'
GROUP BY ticker
)
SELECT
s.ticker AS ticker,
round(toFloat64(p.prior_close), 2) AS prior_close,
round(toFloat64(s.day_open), 2) AS day_open,
round(toFloat64(s.day_close), 2) AS day_close,
round((toFloat64(s.day_close) / toFloat64(p.prior_close) - 1) * 100, 2) AS pct_change,
round(toFloat64(s.day_high), 2) AS day_high,
round(toFloat64(s.day_low), 2) AS day_low,
s.shares_traded_m AS shares_traded_m
FROM sess s
JOIN prior p ON s.ticker = p.ticker
ORDER BY s.tickerDIA di 1.04% melawan QQQ di -1.71% adalah ringkasan hari ini — sektor industri dan growth terpaut hampir tiga poin return harian. SPY berada di tengah-tengah pada -0.12%; IWM ditutup -0.59%.
Apakah hari ini tidak biasa?
Dua perspektif dalam satu panel: pergerakan open-to-close SPY dan pergerakan close-over-close QQQ, masing-masing diperingkat berdasarkan ukuran absolut terhadap satu bulan terakhir (peringkat satu = terbesar).
SQL tepat di balik setiap angka
WITH per_day AS (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
(argMax(toFloat64(close), window_start) / argMin(toFloat64(open), window_start) - 1) * 100 AS oc_pct,
argMax(toFloat64(close), window_start) AS rth_close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'QQQ')
AND window_start >= toDateTime('2026-06-02 00:00:00')
AND window_start < toDateTime('2026-07-03 00:00:00')
AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
GROUP BY ticker, d
),
with_prev AS (
SELECT ticker, d, oc_pct,
lagInFrame(rth_close) OVER (PARTITION BY ticker ORDER BY d) AS prev_close,
(rth_close / lagInFrame(rth_close) OVER (PARTITION BY ticker ORDER BY d) - 1) * 100 AS cc_pct
FROM per_day
)
SELECT
round(anyIf(oc_pct, ticker = 'SPY' AND d = toDate('2026-07-02')), 2) AS spy_open_to_close_pct,
arrayCount(x -> x > abs(anyIf(oc_pct, ticker = 'SPY' AND d = toDate('2026-07-02'))),
groupArrayIf(abs(oc_pct), ticker = 'SPY' AND d != toDate('2026-07-02'))) + 1 AS spy_abs_move_rank,
countIf(ticker = 'SPY') AS spy_sessions_compared,
round(anyIf(cc_pct, ticker = 'QQQ' AND d = toDate('2026-07-02')), 2) AS qqq_close_over_close_pct,
arrayCount(x -> x > abs(anyIf(cc_pct, ticker = 'QQQ' AND d = toDate('2026-07-02'))),
groupArrayIf(abs(cc_pct), ticker = 'QQQ' AND d != toDate('2026-07-02') AND isFinite(cc_pct) AND prev_close > 0)) + 1 AS qqq_abs_move_rank,
countIf(ticker = 'QQQ' AND isFinite(cc_pct) AND prev_close > 0) AS qqq_sessions_compared,
toString(minIf(d, ticker = 'SPY')) AS first_session
FROM with_prevPada level indeks, tidak. -0.35% open-to-close SPY berada di peringkat 15 dari 22 sesi terakhir — berada di paruh bawah. QQQ lebih volatil namun tetap tidak ekstrem: -1.71% close-over-close berada di peringkat 9 dari 21 sesi dengan close sebelumnya yang terdefinisi, kembali ke 2026-06-02 — hari buruk yang berada di posisi tengah bagi indeks growth. Pergerakan saham individual adalah bagian yang terlihat mencolok pada dua Juli.
Breadth: tape hijau, indeks pertumbuhan merah
SQL tepat di balik setiap angka
WITH per_ticker AS (
SELECT
ticker,
toFloat64(argMaxIf(close, window_start, window_start < '2026-07-02 00:00:00')) AS prior_close,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-02 00:00:00')) AS day_close,
sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-02 00:00:00') AS day_dollar_volume
FROM global_markets.delayed_stocks_minute_aggs
WHERE (window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 20:00:00')
OR (window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00')
GROUP BY ticker
)
SELECT
countIf(day_close > prior_close AND day_dollar_volume >= 1000000) AS advancers,
countIf(day_close < prior_close AND day_dollar_volume >= 1000000) AS decliners,
countIf(day_close = prior_close AND day_dollar_volume >= 1000000) AS unchanged,
countIf(day_dollar_volume >= 1000000) AS liquid_tickers,
count() AS tickers_traded_both_sessions,
count() - countIf(day_dollar_volume >= 1000000) AS dropped_by_liquidity_filter,
round(100.0 * countIf(day_close > prior_close AND day_dollar_volume >= 1000000)
/ countIf(day_dollar_volume >= 1000000), 1) AS advancer_pct,
reverse(arrayStringConcat(extractAll(reverse(toString(countIf(day_close > prior_close AND day_dollar_volume >= 1000000))), '[0-9]{1,3}'), ',')) AS advancers_fmt,
reverse(arrayStringConcat(extractAll(reverse(toString(countIf(day_close < prior_close AND day_dollar_volume >= 1000000))), '[0-9]{1,3}'), ',')) AS decliners_fmt,
reverse(arrayStringConcat(extractAll(reverse(toString(count() - countIf(day_dollar_volume >= 1000000))), '[0-9]{1,3}'), ',')) AS dropped_by_liquidity_filter_fmt,
reverse(arrayStringConcat(extractAll(reverse(toString(count())), '[0-9]{1,3}'), ',')) AS tickers_traded_both_sessions_fmt
FROM per_ticker
WHERE prior_close > 0 AND day_close > 03,398 saham naik, 2,758 saham turun, 63 tidak berubah — 54.6% dari tape likuid meningkat sementara QQQ turun. Indeks cap-weighted dan breadth equal-count memberikan hasil yang berbeda; hari-hari seperti ini adalah alasan mengapa keduanya mendapatkan panel. Filter menghapus 5,317 dari 11,536 ticker dual-session dengan volume perdagangan di bawah $1 juta.
Sektor demi sektor: di mana zona hijau berada
Breadth menghitung jumlah nama; ia tidak menyebutkan jenisnya. Sebelas dana sektor SPDR membagi sesi berdasarkan industri, dan selisih antara yang terbaik dan terburuk adalah dispersi hari itu dalam satu angka.
SQL tepat di balik setiap angka
WITH per_etf AS (
SELECT
ticker,
toFloat64(argMaxIf(close, window_start, window_start < '2026-07-02 00:00:00')) AS prior_close,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-02 00:00:00')) AS day_close,
round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-02 00:00:00') / 1e9, 2) AS day_dollar_bn
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-07-01 13:30:00' AND window_start < '2026-07-01 20:00:00')
OR (window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00'))
GROUP BY ticker
)
SELECT
ticker,
round(prior_close, 2) AS prior_close,
round(day_close, 2) AS day_close,
round((day_close / prior_close - 1) * 100, 2) AS pct_chg,
round((day_close / prior_close - 1) * 100 - min((day_close / prior_close - 1) * 100) OVER (), 2) AS pts_above_worst_sector,
day_dollar_bn
FROM per_etf
ORDER BY tickerHealth care (XLV) memuncaki daftar pada 2.63%, diikuti oleh utilities 2.23%, staples 2%, dan materials 1.94%. Technology (XLK) berakhir di posisi terakhir pada -2.71%, menjadi satu-satunya sektor yang turun lebih dari satu poin; consumer discretionary (-0.81%) dan communication services (-0.13%) adalah dana merah lainnya, sementara delapan sisanya berwarna hijau. Dispersi terbaik-ke-terburuk: 5.34 percentage points. Pembagian DIA-naik/QQQ-turun terjadi di seluruh pasar, tidak hanya pada empat megacaps — itulah sebabnya garis advance-decline yang hijau di bawah Nasdaq yang sedang turun bukanlah sebuah kontradiksi.
Sorotan hari ini: kejatuhan sektor memori, hari kedua
Kompleks yang melemah pada hari Rabu jatuh lebih dalam pada hari Kamis — ini terkait besaran dan pergerakan bersama, bukan penyebab.
SQL tepat di balik setiap angka
WITH per_name AS (
SELECT
ticker,
toFloat64(argMaxIf(close, window_start, window_start < '2026-07-02 00:00:00')) AS prior_close,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-02 00:00:00')) AS day_close,
maxIf(toFloat64(high), window_start >= '2026-07-02 00:00:00') AS day_high,
minIf(toFloat64(low), window_start >= '2026-07-02 00:00:00') AS day_low,
argMinIf(window_start, toFloat64(low), window_start >= '2026-07-02 00:00:00') AS low_bar,
argMaxIf(window_start, toFloat64(high), window_start >= '2026-07-02 00:00:00') AS high_bar,
round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-02 00:00:00') / 1e9, 2) AS day_dollar_bn
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('MU', 'SNDK', 'STX', 'WDC')
AND ((window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 20:00:00')
OR (window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00'))
GROUP BY ticker
)
SELECT
ticker,
round(prior_close, 2) AS prior_close,
round(day_close, 2) AS day_close,
round((day_close / prior_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,
day_dollar_bn
FROM per_name
ORDER BY tickerSanDisk mencatat -14.32%, Seagate -10.38%, Western Digital -9.92%, MU -5.57% — dengan turnover MU sebesar $51.4 miliar, kira-kira satu setengah kali lipat dari SPY. MU dan SanDisk mencatat titik terendah mereka di akhir sesi (15:26, 15:26 ET), Seagate dan Western Digital lebih awal (14:23, 13:59). Konteks: hari Rabu dan analisis mendalam MU.
Bagian lain dari rotasi ini, pada saham megacap:
SQL tepat di balik setiap angka
WITH per_name AS (
SELECT
ticker,
toFloat64(argMaxIf(close, window_start, window_start < '2026-07-02 00:00:00')) AS prior_close,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-02 00:00:00')) AS day_close,
maxIf(toFloat64(high), window_start >= '2026-07-02 00:00:00') AS day_high,
minIf(toFloat64(low), window_start >= '2026-07-02 00:00:00') AS day_low,
argMinIf(window_start, toFloat64(low), window_start >= '2026-07-02 00:00:00') AS low_bar,
argMaxIf(window_start, toFloat64(high), window_start >= '2026-07-02 00:00:00') AS high_bar,
round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-02 00:00:00') / 1e9, 2) AS day_dollar_bn
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('AAPL', 'MSFT', 'NVDA', 'TSLA')
AND ((window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 20:00:00')
OR (window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00'))
GROUP BY ticker
)
SELECT
ticker,
round(prior_close, 2) AS prior_close,
round(day_close, 2) AS day_close,
round((day_close / prior_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,
day_dollar_bn
FROM per_name
ORDER BY tickerAAPL naik 4.75% dalam garis satu arah — titik terendah pada 09:30 ET, titik tertinggi pada 15:57, tiga menit sebelum penutupan — sementara TSLA bergerak berlawanan pada -7.65%. MSFT bertambah 1.41%; NVDA ditutup -1.55%. Indeks yang sama, hari yang berlawanan.
Di mana uang diperdagangkan
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-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00'
AND ticker NOT IN ('SPCX')
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-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00'
AND ticker NOT IN ('SPCX')
GROUP BY ticker
ORDER BY shares_m DESC
LIMIT 4
)
ORDER BY leaderboard ASC, if(leaderboard = 'by dollars traded', dollar_volume_bn, shares_m) DESCMU dengan $51.4 miliar memimpin perdagangan selama empat sesi berturut-turut (Senin, Selasa, Rabu) dibandingkan SPY sebesar $32.7 miliar, dan SanDisk sebesar $26.57 miliar menempatkan nama memori kedua dalam empat besar. SOXS — ETF semiconductor 3x-inverse — memuncaki papan jumlah saham dengan 748.2 juta: saham murah mendominasi jumlah saham, saham mahal mendominasi jumlah dolar, dan volume relatif membandingkan salah satunya terhadap norma nama tersebut. Basis: jam reguler dua Juli, satu pencatatan simbol yang digunakan kembali dikecualikan (tanda terima).
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
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00'
GROUP BY et_time
ORDER BY et_time2.13 miliar saham pada setengah jam pertama, titik terendah 0.81 miliar pada 14:30, 2.3 miliar menjelang penutupan malam libur — ember terakhir adalah yang terbesar hari itu, karena lelang penutupan menarik pesanan yang tertunda ke dalam satu cetakan.
Rekaman opsi: weekly yang bergeser tiba
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-07-02 00:00:00' AND sip_timestamp < '2026-07-03 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-07-02 13:30:00' AND window_start < '2026-07-02 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) = '260702') / 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,
round(toFloat64(sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260710')) / 1e6, 2) AS jul10_weekly_contracts_m,
round(toFloat64(sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260717')) / 1e6, 2) AS jul17_monthly_contracts_m,
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_fmt,
round(top_contract.7, 3) AS top_contract_avg_price,
round(top_contract.2 - spy_regular_close, 2) AS top_strike_minus_spy_close,
round(spy_regular_close - top_contract.2, 2) AS spy_close_minus_strike
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-02 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00'Opsi yang diperdagangkan mencapai 80.96 juta kontrak dalam 13.15 juta cetakan, dan 47.4% dari volume tersebut kedaluwarsa pada hari Kamis yang sama. Tidak ada kontrak dengan kode kedaluwarsa tiga Juli yang tercatat sepanjang hari (0 cetakan), sehingga hari Kamis membawa expiry harian dan shifted weekly minggu ini secara bersamaan. Kontrak tersibuk adalah put SPY $740 hari yang sama — 540,403 kontrak dengan premi rata-rata $0.499, dengan penutupan SPY 4.8 dolar di atas strike: out of the money, dan sebuah put di papan di mana Selasa dan Rabu memiliki call. Call tetap mengambil 58.4% dari volume; weekly berikutnya menarik 9.64 juta kontrak, dan monthly Juli 8.82 juta (mekanisme expiry).
Pita kuotasi: biaya perdagangan
Harga menunjukkan apa yang terjadi; kuotasi menunjukkan biayanya. bid-ask spread adalah biaya pada setiap transaksi pulang-pergi, dalam basis point dari mid-price (satu basis point adalah seperseratus persen). Kami mengukurnya setiap sesi, baik sesi biasa maupun tidak — hal inilah yang membuat klaim "spreads blew out" dapat dibuktikan kebenarannya.
SQL tepat di balik setiap angka
SELECT
round(countIf(toDate(sip_timestamp) = toDate('2026-07-02')) / 1e6, 2) AS jul2_updates_m,
round(countIf(toDate(sip_timestamp) = toDate('2026-07-01')) / 1e6, 2) AS jul1_updates_m,
round((countIf(toDate(sip_timestamp) = toDate('2026-07-02')) / countIf(toDate(sip_timestamp) = toDate('2026-07-01')) - 1) * 100, 1) AS day_over_day_pct,
round(countIf(toDate(sip_timestamp) = toDate('2026-07-02') AND ticker = 'SPY') / 1e6, 2) AS jul2_spy_updates_m,
round(countIf(toDate(sip_timestamp) = toDate('2026-07-02') AND ticker = 'QQQ') / 1e6, 2) AS jul2_qqq_updates_m,
round(countIf(toDate(sip_timestamp) = toDate('2026-07-02') AND ticker = 'MU') / 1e6, 2) AS jul2_mu_updates_m
FROM global_markets.cache_stocks_quotes
WHERE sip_timestamp >= '2026-07-01 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00'National best bid and offer — bagian teratas dari consolidated book — diperbarui sebanyak 597.22 juta kali pada dua Juli dibandingkan 449.15 juta pada satu Juli: sebuah lonjakan 33% menjelang penutupan. QQQ mencatat 7.56 juta, di atas SPY yang sebesar 5.42 juta; MU 1.01 juta.
SQL tepat di balik setiap angka
SELECT
ticker,
round(med_bps, 2) AS median_spread_bps,
round(med_dollars * 100, 1) AS median_spread_cents,
round(med_bps / min(med_bps) OVER (), 1) AS times_the_spy_spread,
round(quote_updates / 1e6, 2) AS rth_updates_m,
invalid_quotes_dropped
FROM (
SELECT
ticker,
quantileExactIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000,
toFloat64(bid_price) > 0 AND toFloat64(ask_price) > toFloat64(bid_price)) AS med_bps,
quantileExactIf(0.5)(toFloat64(ask_price) - toFloat64(bid_price),
toFloat64(bid_price) > 0 AND toFloat64(ask_price) > toFloat64(bid_price)) AS med_dollars,
count() AS quote_updates,
countIf(NOT (toFloat64(bid_price) > 0 AND toFloat64(ask_price) > toFloat64(bid_price))) AS invalid_quotes_dropped
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'QQQ', 'AAPL', 'TSLA', 'NVDA', 'MU', 'SNDK', 'WDC')
AND sip_timestamp >= '2026-07-02 13:30:00' AND sip_timestamp < '2026-07-02 20:00:00'
GROUP BY ticker
)
ORDER BY median_spread_bps ASCSPY mengutip median lebar 0.27 basis points: sekitar 2 sen pada ETF seharga $744.8. QQQ berada di angka 0.83 bps, NVDA 1.03. Saham-saham yang mengalami penurunan adalah yang paling mahal untuk diperdagangkan: MU 5.52 bps, SanDisk 10.4, Western Digital 10.79 — 40 kali spread SPY. Melakukan crossing pada sekeranjang saham memori memakan biaya berkali-kali lipat dibandingkan crossing indeks, sebelum adanya price impact. Kuotasi yang tidak valid (satu sisi, crossed) dihitung per nama, tidak disembunyikan.
SQL tepat di balik setiap angka
WITH per_day AS (
SELECT toDate(sip_timestamp) AS d,
quantileExact(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000) AS med_bps
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'SPY'
AND sip_timestamp >= '2026-06-02 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00'
AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
AND toFloat64(bid_price) > 0 AND toFloat64(ask_price) > toFloat64(bid_price)
GROUP BY d
)
SELECT
round(anyIf(med_bps, d = toDate('2026-07-02')), 3) AS jul2_median_spread_bps,
round(quantileExact(0.5)(med_bps), 3) AS trailing_median_bps,
round(anyIf(med_bps, d = toDate('2026-07-02')) - quantileExact(0.5)(med_bps), 3) AS jul2_minus_trailing_bps,
arrayCount(x -> x > anyIf(med_bps, d = toDate('2026-07-02')), groupArrayIf(med_bps, d != toDate('2026-07-02'))) + 1 AS wider_rank,
count() AS sessions_compared,
round(max(med_bps), 3) AS widest_session_bps
FROM per_dayHari yang biasa untuk likuiditas, dan itulah temuannya: median spread SPY sebesar 0.27 bps terpaut 0 bps dari median bulan terakhir (0.27 bps), menempati peringkat 11 dari 22 sesi berdasarkan lebarnya — jauh dari yang terlebar bulan ini di angka 0.409 bps. Penurunan terpusat di bawah green tape tidak memberikan tekanan pada infrastruktur pasar.
Suku Bunga: data dua Juli telah tersedia
SQL tepat di balik setiap angka
SELECT
(SELECT count() FROM global_markets.treasury_yields WHERE date = '2026-07-02') AS jul2_rows,
(SELECT count() FROM global_markets.treasury_yields WHERE date = '2026-07-01') AS jul1_rowsUmpan data Treasury berjalan terlambat satu atau dua hari dari pencatatan aktual: pada publikasi pertama, penutupan dua Juli tidak memiliki data dalam berkas, dan halaman ini menyatakannya demikian daripada menebak. Data tersebut kini telah tersedia — baris 1 untuk dua Juli, 1 untuk satu Juli — sehingga panel di bawah ini menampilkan kurva sesi tersebut.
SQL tepat di balik setiap angka
SELECT
t.1 AS curve_point,
round(t.2, 2) AS jul2_yield_pct,
round((t.2 - t.3) * 100) AS one_day_change_bp
FROM (
SELECT arrayJoin([
('1 month', toFloat64(d.yield_1_month), toFloat64(p.yield_1_month)),
('3 month', toFloat64(d.yield_3_month), toFloat64(p.yield_3_month)),
('1 year', toFloat64(d.yield_1_year), toFloat64(p.yield_1_year)),
('2 year', toFloat64(d.yield_2_year), toFloat64(p.yield_2_year)),
('5 year', toFloat64(d.yield_5_year), toFloat64(p.yield_5_year)),
('10 year', toFloat64(d.yield_10_year), toFloat64(p.yield_10_year)),
('30 year', toFloat64(d.yield_30_year), toFloat64(p.yield_30_year)),
('2s10s spread', toFloat64(d.yield_10_year - d.yield_2_year), toFloat64(p.yield_10_year - p.yield_2_year))
]) AS t
FROM (SELECT * FROM global_markets.treasury_yields WHERE date = '2026-07-02') AS d,
(SELECT * FROM global_markets.treasury_yields WHERE date = '2026-07-01') AS p
)Pada saat penutupan, tenor 10-year berada di 4.49%, dengan spread 2s10s sebesar 0.35 basis point.
Kalender di balik hari ini
SQL tepat di balik setiap angka
WITH
(
SELECT (count(), uniqExact(publisher))
FROM global_markets.stocks_news
WHERE toDate(toTimeZone(published_utc, 'America/New_York')) = '2026-07-02'
) AS news,
(
SELECT (argMax(t, n), 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-07-02'
)
WHERE t != 'SPCX'
GROUP BY t
)
) AS top_news,
(
SELECT (count(), countIf(split_to > split_from), countIf(split_to < split_from),
arrayStringConcat(groupArray(concat(ticker, ' ', toString(split_to), '-for-', toString(split_from))), '; '))
FROM global_markets.stocks_splits
WHERE execution_date = '2026-07-02' AND ticker NOT IN ('SPCX')
) AS splits
SELECT
(SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-02') AS ex_dividend_records,
splits.1 AS splits_executed,
splits.2 AS forward_splits,
splits.3 AS reverse_splits,
splits.4 AS split_records,
(SELECT count() FROM global_markets.stocks_ipos WHERE listing_date = '2026-07-02') AS ipos_listed,
(SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-02') AS sec_filings,
(SELECT uniqExactIf(accession_number, form_type = '4') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-02') AS insider_form4_filings,
(SELECT uniqExactIf(accession_number, form_type = '8-K') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-02') AS filings_8k,
(SELECT arrayStringConcat(groupArray(concat(ticker, ' — ', issuer_name)), '; ') FROM (
SELECT ticker, issuer_name FROM global_markets.stocks_ipos WHERE listing_date = '2026-07-02' ORDER BY ticker
)) AS ipo_names,
news.1 AS news_articles,
news.2 AS news_publishers,
top_news.1 AS most_covered_ticker,
top_news.2 AS most_covered_articles,
(SELECT any(split_from) FROM global_markets.stocks_splits WHERE ticker = 'CRWD' AND execution_date = '2026-07-02') AS crwd_split_from,
(SELECT any(split_to) FROM global_markets.stocks_splits WHERE ticker = 'CRWD' AND execution_date = '2026-07-02') AS crwd_split_to,
(SELECT round(toFloat64(argMax(close, window_start)), 2) FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'CRWD' AND window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 20:00:00') AS crwd_prev_close,
(SELECT round(toFloat64(argMax(close, window_start)), 2) FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'CRWD' AND window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00') AS crwd_day_close,
(SELECT round(sum(toFloat64(close) * toFloat64(volume)) / 1e6, 2) FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'CRWD' AND window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00') AS crwd_dollar_m,
(SELECT count() FROM (
SELECT ticker FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN (SELECT ticker FROM global_markets.stocks_splits WHERE execution_date = '2026-07-02')
AND window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00'
GROUP BY ticker
)) AS split_names_with_bars319 catatan dividen telah ex-dividend, 2 pencatatan baru tiba (MIACU — Meridian3 Industrials Acquisition Corp.; VIIU — Viking Acquisition Corp. II), dan indeks SEC mencatat 5200 pengajuan menjelang hari libur — 2109 Form 4s, 258 8-Ks. Feed berita memuat 201 artikel dari 3 penerbit (NVDA yang paling banyak diliput, 18 di antaranya).
Stock split menjebak siapa pun yang membaca harga penutupan mentah. CRWD melakukan forward split 4-untuk-1, sehingga data yang tidak disesuaikan menunjukkan $772.45 pada hari Rabu dan $193.67 pada hari Kamis — penurunan palsu yang sebenarnya adalah empat saham baru untuk setiap satu saham lama. Hal ini tidak terjadi sendiri: 8 catatan split dieksekusi, 5 forward dan 3 reverse (kolom split_records mencantumkannya), dan reverse split menciptakan efek sebaliknya — harga mentah yang melonjak dalam semalam. Hanya 2 dari nama-nama tersebut yang diperdagangkan di tape kami; turnover CRWD sebesar $1473.51 juta adalah satu-satunya yang cukup besar untuk mengganggu layar, dan setiap layar pergerakan harga di sini mengecualikannya.
Agenda mendatang
Fakta kalender, bukan prediksi — apa yang tercatat dalam tabel untuk sesi berikutnya.
SQL tepat di balik setiap angka
SELECT
(SELECT count() FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00') AS jul6_spy_regular_bars,
(SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-06') AS exdiv_records_jul6,
(SELECT arrayStringConcat(groupArray(ticker), ', ') FROM global_markets.stocks_dividends
WHERE ex_dividend_date = '2026-07-06'
AND ticker IN ('AAPL', 'MSFT', 'JPM', 'JNJ', 'XOM', 'KO', 'PG', 'WMT', 'CVX', 'HD')) AS household_exdivs_jul6,
(SELECT count() FROM global_markets.stocks_splits WHERE execution_date = '2026-07-06') AS splits_jul6,
(SELECT toString(min(date)) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-02') AS next_scheduled_closure,
(SELECT any(name) FROM global_markets.stocks_market_holidays
WHERE date = (SELECT min(date) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-02')) AS next_closure_name,
(SELECT any(status) FROM global_markets.stocks_market_holidays
WHERE date = (SELECT min(date) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-02')) AS next_closure_status,
(SELECT toString(max(settlement_date)) FROM global_markets.stocks_short_interest
WHERE settlement_date <= '2026-07-02') AS latest_si_settlement,
(SELECT dateDiff('day', max(settlement_date), toDate('2026-07-02')) FROM global_markets.stocks_short_interest
WHERE settlement_date <= '2026-07-02') AS si_settlement_age_daysSenin 6 Juli dibuka kembali dengan sesi penuh 390-bar, terverifikasi dari bar itu sendiri. Sesi ini mencakup 118 catatan ex-dividend — satu nama terkenal di antara sepuluh yang kami teliti (JPM) — dan 15 eksekusi split. Penutupan terjadwal berikutnya: Labor Day, 2026-09-07 (closed). Short interest adalah berita lama, seperti biasa — settlement terbaru yang tercatat 2026-06-30, 2 hari yang lalu, dengan publikasi tertinggal sekitar dua minggu dari settlement (mengapa).
Sesi terverifikasi — dan hari Jumat yang tidak ada
SQL tepat di balik setiap angka
SELECT
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-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00') AS regular_session_bars,
uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00') AS day_sessions,
(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
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-02 00:00:00' AND window_start < '2026-07-03 00:00:00'2 Juli adalah sesi penuh, bukan penutupan awal: bar SPY berjalan dari 04:00 hingga 19:59 waktu New York (termasuk bar pre-market dan after-hours), dengan tepat 390 bar jendela reguler. Jumat 3 Juli mencetak 0 bar SPY — penutupan penuh untuk Independence Day, karena 4 Juli jatuh pada hari Sabtu. Minggu dengan empat sesi: rekap mingguan.
FAQ
Mengapa Dow naik sementara Nasdaq turun pada 2 Juli 2026?
Kedua indeks tersebut memiliki perusahaan yang berbeda: DIA ditutup pada 1.04%, QQQ -1.71%. Papan sektor menunjukkan pembagian yang sama — layanan kesehatan, utilitas, dan barang konsumsi pokok berada di posisi teratas, teknologi berada di posisi terakhir pada -2.71%, dengan selisih 5.34 poin antara yang terbaik dan terburuk.
Apakah pasar saham buka pada hari Jumat di minggu Independence Day?
Tidak. Independence Day jatuh pada hari Sabtu, dan bursa memperingatinya dengan penutupan penuh pada hari Jumat setelah sesi ini: data kami menunjukkan 0 minute bars SPY untuk periode tersebut.
Apa dampak stock split forward terhadap harga saham?
Hal ini mengalikan jumlah saham sebanyak empat kali dan membagi harga menjadi empat; nilai posisi tetap tidak berubah. CRWD, 2 Juli: penutupan tidak disesuaikan sebesar $772.45 pada hari Rabu, $193.67 pada hari Kamis — penurunan semu pada screener apa pun yang mengabaikan split.
Seberapa lebar bid-ask spreads pada 2 Juli 2026?
Median quoted spread SPY adalah 0.27 basis point dari mid-price pada jam reguler — 11 dari 22 sesi sebelumnya berdasarkan lebar spread, yang merupakan hari biasa. Saham tunggal memiliki spread yang lebih lebar: MU 5.52 bps, WDC 10.79.
Catatan data
- Volume dolar adalah proksi per menit — harga penutupan × volume, dijumlahkan per bar.
- Data treasury tanggal dua Juli muncul setelah publikasi pertama — catatan asli mengungkapkan ketiadaannya dengan tanda terima jumlah baris; revisi ini menyertakan data tersebut, tanda terima ditampilkan.
- Perubahan penutupan mentah CRWD adalah artefak split — dikecualikan dari layar penggerak harga.
Catatan data lengkap
- Papan sektor adalah sebelas dana SPDR Select Sector (XLB, XLC, XLE, XLF, XLI, XLK, XLP, XLRE, XLU, XLV, XLY) — sebuah keranjang tetap yang diungkapkan, bukan bidang sektor vendor.
- Hitungan quote-tape dikelompokkan berdasarkan tanggal UTC dari timestamp SIP; sesi musim panas jatuh dalam satu hari UTC.
- Satu pencatatan Juni dengan simbol yang digunakan kembali dikecualikan dari papan peringkat (tanda terima); pengerjaan tick forensik terdapat dalam analisis mendalam.
Metodologi
- Periode yang digunakan adalah satu sesi perdagangan (sesi 1, diverifikasi dari bar yang teramati). Timestamp disimpan dalam UTC dan dikonversi ke waktu New York di dalam query; "close" berarti bar menit terakhir pada sesi reguler, dan perubahan hari membandingkan tanggal dua Juli dengan satu Juli. Penutupan tanggal tiga Juli diverifikasi dari bar, tidak pernah diasumsikan.
- Spread dikutip (ask dikurangi bid) dalam basis point dari mid-price, median dari pembaruan NBBO jam reguler, pada kuantil deterministik. Desimal dikonversi menjadi float sebelum aritmatika rasio; masa berlaku opsi diparse ulang dari ticker OCC. Setiap panel dibaca satu kali, pada saat penulisan, melalui jalur read-only yang dibatasi.
Grafik, tabel, dan SQL adalah satu objek. Tempelkan panel apa pun ke dalam terminal Strasmore dan sesuaikan sendiri. Sesi sebelumnya: satu Juli. Minggu ini: minggu libur empat sesi.