Tổng hợp thị trường ngày 7 tháng 7 năm 2026
Nhóm bán dẫn giảm mạnh khiến chỉ số đi xuống nhưng NVDA vẫn xanh. Tỷ lệ mã giảm chiếm hai-đến-một và SPY ghi nhận spread hẹp nhất trong một tháng qua.
Thứ Ba, ngày 7 tháng 7 năm 2026 đã xóa sạch đà tăng trưởng từ mức tăng khi mở cửa phiên Thứ Hai — và thậm chí còn hơn thế: QQQ đóng cửa ở mức -1.82%, xóa bỏ hoàn toàn mức tăng của ngày Thứ Hai, trong khi DIA ở mức -0.29%. Ở các mã cổ phiếu riêng lẻ, tỷ lệ giảm giá chiếm hai-đến-một: có 4034 mã giảm điểm so với 2091 mã tăng điểm. Diễn biến chính trong ngày là sự sụt giảm của nhóm bán dẫn với quy mô gấp nhiều lần chỉ số — trong đó có một cổ phiếu khổng lồ của ngành này không tham gia biến động. Mọi con số dưới đây đều được trích xuất từ truy vấn lưu trữ — bạn có thể mở rộng bất kỳ bảng nào để xem mã SQL chính xác.
Bảng điểm
Mọi sự thay đổi đều so sánh phút cuối cùng của phiên giao dịch thường nhật ngày 7 tháng 7 với ngày thứ Hai 6 tháng 7 — các phiên giao dịch liên tiếp.
Câu lệnh SQL chính xác đằng sau mỗi con số
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-06 13:30:00' AND window_start < '2026-07-06 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-07 13:30:00' AND window_start < '2026-07-07 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_open) / toFloat64(p.prior_close) - 1) * 100, 2) AS gap_pct,
round((toFloat64(s.day_close) / toFloat64(s.day_open) - 1) * 100, 2) AS intraday_pct,
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.ticker-1.82% của QQQ dẫn đầu nhóm bốn ETF chỉ số giảm điểm; SPY đóng cửa ở mức -0.48%, IWM -0.9%, và mức thay đổi -0.29% của DIA là thấp nhất. Sự khác biệt giữa khoảng trống giá (gap) và xu hướng giao dịch (grind) cho thấy hai đầu thị trường không đồng nhất khi mở cửa: khoảng trống qua đêm của QQQ ở mức -1.17% và xu hướng từ lúc mở cửa đến khi đóng cửa ở mức -0.65% — khoảng trống giá gây ra phần lớn sự sụt giảm — trong khi DIA nhảy gap tăng 0.47% nhưng vẫn kết thúc ở sắc đỏ, với mức biến động từ lúc mở cửa đến khi đóng cửa là -0.76%. Vai trò dẫn dắt đã thay đổi sau mỗi phiên kể từ thứ Năm: DIA dẫn dắt vào thứ Năm, QQQ dẫn dắt thứ Hai, và DIA tiếp tục dẫn dắt vào thứ Ba.
Ngày hôm nay có bất thường không?
Câu lệnh SQL chính xác đằng sau mỗi con số
SELECT
round(anyIf(cc_pct, ticker = 'QQQ' AND d = toDate('2026-07-07')), 2) AS qqq_close_over_close_pct,
arrayCount(x -> x > abs(anyIf(cc_pct, ticker = 'QQQ' AND d = toDate('2026-07-07'))), groupArrayIf(abs(cc_pct), ticker = 'QQQ' AND d != toDate('2026-07-07'))) + 1 AS qqq_abs_move_rank,
countIf(ticker = 'QQQ') AS qqq_sessions_compared,
round(anyIf(oc_pct, ticker = 'SPY' AND d = toDate('2026-07-07')), 2) AS spy_open_to_close_pct,
arrayCount(x -> x > abs(anyIf(oc_pct, ticker = 'SPY' AND d = toDate('2026-07-07'))), groupArrayIf(abs(oc_pct), ticker = 'SPY' AND d != toDate('2026-07-07'))) + 1 AS spy_abs_move_rank,
countIf(ticker = 'SPY') AS spy_sessions_compared,
toString(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-06-04 00:00:00')
AND window_start < toDateTime('2026-07-08 00:00:00')
AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
GROUP BY ticker, d
)
)
WHERE isFinite(cc_pct)Xét về mức chỉ số, thì không đặc biệt. Biến động đóng cửa so với đóng cửa của QQQ đạt mức -1.82%, xếp thứ 9 trong số 21 phiên gần đây xét theo giá trị tuyệt đối. Biến động từ mở cửa đến đóng cửa của SPY là -0.34%, xếp thứ 15 trong số 21 — một tháng qua với những biến động mạnh vào cuối tháng 6 đã tạo ra một tiêu chuẩn rất cao. Sự phân hóa của các mã cổ phiếu bên dưới mới là điểm khác biệt của ngày 7 tháng 7.
Độ rộng thị trường: hai mã giảm cho mỗi một mã tăng
Câu lệnh SQL chính xác đằng sau mỗi con số
WITH per_ticker AS (
SELECT
ticker,
toFloat64(argMaxIf(close, window_start, window_start < '2026-07-07 00:00:00')) AS prior_close,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-07 00:00:00')) AS day_close,
sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-07 00:00:00') AS day_dollar_volume
FROM global_markets.delayed_stocks_minute_aggs
WHERE (window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00')
OR (window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 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
FROM per_ticker
WHERE prior_close > 0 AND day_close > 02091 mã tăng, 4034 mã giảm, 59 không đổi — 33.8% lượng giao dịch tăng, trái ngược với mức tăng của thứ Hai. Bộ lọc loại bỏ 5276 trong số 11460 ticker có khối lượng giao dịch hai phiên dưới 1 triệu USD được tính ở đây.
Nhóm cổ phiếu chip sụt giảm — ngoại trừ các mã lớn nhất
Áp lực bán tập trung vào nhóm bán dẫn: các công ty sản xuất chip, các công ty thiết bị cung ứng, nhóm lưu trữ liên quan và các ETF đòn bẩy đi kèm. Dưới đây là báo cáo về mức độ và sự biến động cùng chiều; dữ liệu không nêu rõ nguyên nhân.
Câu lệnh SQL chính xác đằng sau mỗi con số
WITH per_name AS (
SELECT
ticker,
toFloat64(argMaxIf(close, window_start, window_start < '2026-07-07 00:00:00')) AS prior_close,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-07 00:00:00')) AS day_close,
maxIf(toFloat64(high), window_start >= '2026-07-07 00:00:00') AS day_high,
minIf(toFloat64(low), window_start >= '2026-07-07 00:00:00') AS day_low,
argMinIf(window_start, (toFloat64(low), toInt64(toUnixTimestamp(window_start))), window_start >= '2026-07-07 00:00:00') AS low_bar,
argMaxIf(window_start, (toFloat64(high), -toInt64(toUnixTimestamp(window_start))), window_start >= '2026-07-07 00:00:00') AS high_bar,
round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-07 00:00:00') / 1e9, 2) AS day_dollar_bn
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('AMD', 'AVGO', 'INTC', 'KLAC', 'LRCX', 'MRVL', 'MU', 'NVDA', 'SNDK', 'SOXL', 'SOXS', 'STX', 'TER', 'WDC')
AND ((window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00')
OR (window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 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,
formatDateTime(toTimeZone(high_bar, 'America/New_York'), '%H:%i') AS day_high_et,
formatDateTime(toTimeZone(low_bar, 'America/New_York'), '%H:%i') AS day_low_et,
toHour(toTimeZone(high_bar, 'America/New_York')) * 60 + toMinute(toTimeZone(high_bar, 'America/New_York')) AS high_minute_et,
toHour(toTimeZone(low_bar, 'America/New_York')) * 60 + toMinute(toTimeZone(low_bar, 'America/New_York')) AS low_minute_et,
round((day_high / day_low - 1) * 100, 2) AS range_pct,
day_dollar_bn
FROM per_name
ORDER BY tickerTeradyne (-9.63%) và Intel (-9.59%) mất gần một phần mười giá trị, theo sau là Marvell (-7.41%), KLA (-7.23%), Lam Research (-6.8%) và AMD (-6.41%). Các mã bộ nhớ và lưu trữ vốn đã hồi phục một nửa vào thứ Hai nay đã giảm trở lại: SanDisk -7.1% với biên độ cao-thấp là 10.36%, Western Digital -7.81%, Seagate -4.84%, và MU -4.61% — trong đó MU có khối lượng giao dịch đạt $41.6 tỷ, lớn hơn tổng của ba mã lưu trữ còn lại (phân tích chuyên sâu về MU cung cấp thông tin chi tiết).
Hai gã khổng lồ của ngành không bị ảnh hưởng: NVDA đóng cửa ở mức tăng tại 0.67% và Broadcom kết thúc gần như đi ngang tại -0.83% — một ngày giảm điểm trên toàn ngành, ngoại trừ các thành viên lớn nhất (phân tích chuyên sâu về NVDA tháng 6).
Thời điểm biến động diễn ra đồng loạt — một đợt sụt giảm mạnh vào buổi sáng: TER, LRCX và MU lập mức thấp nhất phiên tại 10:41, 10:41 và 10:41 ET, cùng với SanDisk, Marvell, KLA, AVGO và SOXL trong cùng vài phút đó (bảng dữ liệu có ghi nhận từng mã), và SOXS, ETF bán khống bán dẫn đòn bẩy 3x, lập mức cao nhất phiên tại 10:42 — một sự đảo chiều hoàn toàn. Intel tiếp tục giảm sâu sau khi các mã khác đã ổn định, đạt mức thấp nhất tại 15:18. Các sản phẩm đòn bẩy phản ánh rõ mức độ biến động: SOXL -15.15% so với SOXS +15.87%.
Mặt khác của bảng điện
Tỷ lệ giảm giá hai-đối-một vẫn để lại một phần ba tăng trưởng. Những mã tăng giá trong khi nhóm chip giảm:
Câu lệnh SQL chính xác đằng sau mỗi con số
WITH per_name AS (
SELECT
ticker,
toFloat64(argMaxIf(close, window_start, window_start < '2026-07-07 00:00:00')) AS prior_close_raw,
toFloat64(argMinIf(open, window_start, window_start >= '2026-07-07 00:00:00')) AS day_open_raw,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-07 00:00:00')) AS day_close_raw,
round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-07 00:00:00') / 1e9, 2) AS day_dollar_bn
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('CRNX', 'CVX', 'JNJ', 'LLY', 'META', 'TSLA', 'UNH', 'XOM')
AND ((window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00')
OR (window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 20:00:00'))
GROUP BY ticker
)
SELECT
ticker,
round(prior_close_raw, 2) AS prior_close,
round(day_open_raw, 2) AS day_open,
round(day_close_raw, 2) AS day_close,
round((day_open_raw / prior_close_raw - 1) * 100, 2) AS gap_pct,
round((day_close_raw / day_open_raw - 1) * 100, 2) AS intraday_pct,
round((day_close_raw / prior_close_raw - 1) * 100, 2) AS pct_chg,
day_dollar_bn
FROM per_name
ORDER BY tickerNăng lượng và y tế dẫn dắt cột xanh: Exxon +3.78%, Chevron +3.47%, Johnson & Johnson +3.07%, Eli Lilly +2.75%, UnitedHealth +2.41%. Hai cổ phiếu vốn hóa lớn trong danh mục này có xu hướng trái chiều: META tăng +2.52% trong khi TSLA mất lại hầu hết mức tăng một chiều của thứ Hai ở mức -4.02%. Và biến động mạnh nhất trên bảng điện: Crinetics Pharmaceuticals (CRNX) đóng cửa ở mức +98.79% với khối lượng giao dịch 4.19 tỷ USD, gần như tăng gấp đôi — toàn bộ biến động này đến từ khoảng trống gap qua đêm (98.91% tại thời điểm mở cửa; phiên giao dịch chính thức chỉ khiến nó biến động -0.06%), kiểu định giá lại giữa các phiên thường xảy ra tại thị trường pre-market. Dữ liệu không cho biết lý do cụ thể.
Dòng tiền giao dịch ở đâu
Câu lệnh SQL chính xác đằng sau mỗi con số
SELECT leaderboard, ticker, dollar_volume_bn, 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(volume)) / 1e6, 1) AS shares_m
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 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(volume)) / 1e6, 1) AS shares_m
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 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 dẫn đầu khối lượng giao dịch của đồng USD với 41.6 tỷ USD — một phiên sau khi mất vị trí dẫn đầu, mã này đã giành lại ngôi vương — theo sau là SPY ($28.68 tỷ) và QQQ ($26.54 tỷ), cùng ba mã bán dẫn khác — NVDA ($19.95 tỷ), SNDK ($19.73 tỷ) và INTC ($13.82 tỷ) — chiếm các vị trí còn lại trong top 6. Khối lượng tương đối cho thấy sự tập trung vào các mã cổ phiếu riêng lẻ.
Trên bảng điện, SOXS đã giao dịch 566.3 triệu cổ phiếu — ETF bán dẫn nghịch đảo gấp 3 lần dẫn đầu về khối lượng trong phiên thứ ba liên tiếp (Thứ Hai và Thứ Năm là các phiên trước đó), lần này diễn ra ngay trong ngày nhóm ngành này thực sự bứt phá. CPOP là một ví dụ ngược lại: 161.3 triệu cổ phiếu chỉ có khối lượng giao dịch là $0.02 tỷ — khối lượng giao dịch thấp hơn ở các cổ phiếu giá rẻ. Cơ sở dữ liệu: Giờ giao dịch bình thường ngày 7 tháng 7; một niêm yết trùng ký hiệu đang được loại bỏ để chờ xác minh thực thể — biên lai của nó.
Diễn biến phiên giao dịch
Câu lệnh SQL chính xác đằng sau mỗi con số
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-07 13:30:00' AND window_start < '2026-07-07 20:00:00'
GROUP BY et_time
ORDER BY et_time2 tỷ cổ phiếu được giao dịch trong nửa giờ đầu, chạm đáy 0.64 tỷ tại 13:30, và đạt 2.14 tỷ vào lúc 15:30 đóng cửa — một mô hình hình nụ cười điển hình, với khối lượng lớn nhất vào cuối phiên.
Thị trường options
Câu lệnh SQL chính xác đằng sau mỗi con số
WITH
(
SELECT (groupArray(und), groupArray(strike), groupArray(typ), groupArray(vol), groupArray(avg_px), groupArray(is_0dte))
FROM (
SELECT any(underlying_symbol) AS und, any(toFloat64(strike_price)) AS strike, any(option_type) AS typ,
sum(size) AS vol, round(avg(toFloat64(price)), 3) AS avg_px,
if(substring(ticker, length(ticker) - 14, 6) = '260707', 1, 0) AS is_0dte
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-07 00:00:00' AND sip_timestamp < '2026-07-08 00:00:00'
GROUP BY ticker
ORDER BY vol DESC
LIMIT 2
)
) AS top2,
(
SELECT round(toFloat64(argMax(close, window_start)), 2)
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 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) = '260707') / sum(size), 1) AS same_day_expiry_pct,
round(toFloat64(sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260707')) / 1e6, 2) AS same_day_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,
round(toFloat64(sumIf(size, underlying_symbol = 'INTC')) / 1e6, 2) AS intc_contracts_m,
top2.1[1] AS top_contract_underlying,
top2.2[1] AS top_contract_strike,
top2.3[1] AS top_contract_type,
if(top2.3[1] = 'C', 1, 0) AS top_contract_is_call,
top2.4[1] AS top_contract_volume,
top2.5[1] AS top_contract_avg_price,
round(top2.2[1] - spy_regular_close, 2) AS top_strike_minus_spy_close,
top2.1[2] AS second_contract_underlying,
top2.2[2] AS second_contract_strike,
top2.3[2] AS second_contract_type,
if(top2.3[2] = 'P', 1, 0) AS second_contract_is_put,
top2.4[2] AS second_contract_volume,
top2.5[2] AS second_contract_avg_price,
round(spy_regular_close - top2.2[2], 2) AS spy_close_minus_second_strike,
top2.6[1] + top2.6[2] AS both_top_contracts_same_day,
spy_regular_close AS spy_close
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-07 00:00:00' AND sip_timestamp < '2026-07-08 00:00:00'Khối lượng giao dịch options đạt 61.13 triệu hợp đồng với 10.6 triệu lệnh khớp — quy mô tương đương thứ Hai — và các lệnh call vẫn chiếm 55.6% tổng khối lượng dù là một ngày giảm điểm. Các hợp đồng đáo hạn trong ngày chiếm 31.2% tổng khối lượng (19.08 triệu hợp đồng) — tỷ trọng 0DTE của một ngày thứ Ba bình thường. Hai hợp đồng giao dịch sôi động nhất trong ngày nằm ở hai đầu phiên đóng cửa, cả hai đều là các mức strike SPY đáo hạn trong ngày: lệnh call tại mức $749 (873438 hợp đồng với giá trung bình $0.647) kết thúc ở trạng thái out of the money $1.34, và lệnh put tại mức $747 (785834 hợp đồng với giá $0.88) kết thúc ở phía ngược lại $0.66. Mức đóng cửa 747.66 của SPY nằm giữa hai lệnh đặt cược lớn nhất trong ngày, và cả hai đều vô giá trị khi đáo hạn.
The quote tape
Under every price on this page sits the quote stream — the National Best Bid and Offer, re-quoted continuously across every listed name, the hardest dataset in this warehouse to come by. It gets measured here every session, ordinary or not.
Câu lệnh SQL chính xác đằng sau mỗi con số
SELECT
round(countIf(toDate(sip_timestamp) = toDate('2026-07-07')) / 1e6, 2) AS jul7_updates_m,
round(countIf(toDate(sip_timestamp) = toDate('2026-07-06')) / 1e6, 2) AS jul6_updates_m,
round((countIf(toDate(sip_timestamp) = toDate('2026-07-07')) / countIf(toDate(sip_timestamp) = toDate('2026-07-06')) - 1) * 100, 1) AS day_over_day_pct,
toHour(toTimeZone(maxIf(sip_timestamp, toDate(sip_timestamp) = toDate('2026-07-07')), 'America/New_York')) * 60
+ toMinute(toTimeZone(maxIf(sip_timestamp, toDate(sip_timestamp) = toDate('2026-07-07')), 'America/New_York')) AS jul7_last_quote_et_minute,
round(countIf(sip_timestamp >= '2026-07-07 19:00:00' AND sip_timestamp < '2026-07-07 20:00:00') / 1e6, 2) AS jul7_close_hour_updates_m
FROM global_markets.cache_stocks_quotes
WHERE sip_timestamp >= '2026-07-06 00:00:00' AND sip_timestamp < '2026-07-08 00:00:00'The equity tape carried 492.76 million NBBO updates on July 7 — 25.7% more than Monday's 391.96 million. More re-quoting, not wider quoting:
Câu lệnh SQL chính xác đằng sau mỗi con số
SELECT
ticker,
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-07-07 14:36:00' AND sip_timestamp < '2026-07-07 14:48:00'), 2) AS pocket_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-07-07 17:30:00' AND sip_timestamp < '2026-07-07 17:42: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-07-07 14:36:00' AND sip_timestamp < '2026-07-07 14:48: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-07-07 17:30:00' AND sip_timestamp < '2026-07-07 17:42:00'), 2) AS spread_delta_bps,
round(countIf(sip_timestamp >= '2026-07-07 14:36:00' AND sip_timestamp < '2026-07-07 14:48:00') / 1e3, 1) AS pocket_updates_k,
round(countIf(sip_timestamp >= '2026-07-07 17:30:00' AND sip_timestamp < '2026-07-07 17:42:00') / 1e3, 1) AS midday_updates_k,
round(countIf(sip_timestamp >= '2026-07-07 14:36:00' AND sip_timestamp < '2026-07-07 14:48:00') / countIf(sip_timestamp >= '2026-07-07 17:30:00' AND sip_timestamp < '2026-07-07 17:42:00'), 1) AS quote_rate_ratio,
round(count() / 1e6, 2) AS session_updates_m,
countIf(bid_price <= 0 OR ask_price <= 0 OR bid_price > ask_price) AS dropped_invalid_quotes
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('AMD', 'INTC', 'MU', 'NVDA', 'QQQ', 'SNDK', 'SOXL', 'SOXS', 'SPY', 'WDC')
AND sip_timestamp >= '2026-07-07 13:30:00' AND sip_timestamp < '2026-07-07 20:00:00'
GROUP BY ticker
ORDER BY tickerAt the morning lows the checked names re-quoted at multiples of their midday pace — MU 3.4x, SanDisk 4.1x, AMD 4.6x — and the bid-ask spread barely moved: MU's median width was 5.02 bps in the pocket against 4.81 midday, NVDA's 1.04 against 1.01, and SPY's did not move at all (0 bps change on a 0.27 bps touch). The two names that paid a real width penalty were AMD (+2.6 bps) and Intel (+0.95) — Intel the one name that kept falling after the pocket — while the leveraged pair actually tightened at the bottom (SOXL -2.59 bps, SOXS -1.49). A liquidity vacuum looks like wide quotes and silence; this was the opposite — a quote storm with the touch pinned. Crossing costs stayed name-dependent all the same: SOXS quoted 19.59 bps wide at the bottom against NVDA's 1.04.
Câu lệnh SQL chính xác đằng sau mỗi con số
SELECT
round(anyIf(avg_spread_cents, d = toDate('2026-07-07')), 3) AS jul7_avg_spread_cents,
arrayCount(x -> x < anyIf(avg_spread_cents, d = toDate('2026-07-07')), groupArrayIf(avg_spread_cents, d != toDate('2026-07-07'))) + 1 AS tightness_rank,
count() AS sessions_compared,
round(min(avg_spread_cents), 3) AS tightest_session_cents,
round(max(avg_spread_cents), 3) AS widest_session_cents,
toString(min(d)) AS first_session,
sum(dropped_invalid) AS dropped_invalid_quotes
FROM (
SELECT toDate(toTimeZone(sip_timestamp, 'America/New_York')) AS d,
avgIf(toFloat64(ask_price - bid_price), bid_price > 0 AND ask_price >= bid_price) * 100 AS avg_spread_cents,
countIf(NOT (bid_price > 0 AND ask_price >= bid_price)) AS dropped_invalid
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'SPY'
AND sip_timestamp >= toDateTime('2026-06-05 00:00:00')
AND sip_timestamp < toDateTime('2026-07-08 00:00:00')
AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
GROUP BY d
)And the ordinary-check this section runs every session: by update-weighted average quoted spread, July 7 was SPY's tightest session of the trailing month — 1.809 cents, rank 1 of 21, against a month that reached 2.865 cents at its widest. A two-to-one red tape priced at the month's tightest index touch is a fact only the quote stream can settle.
Câu lệnh SQL chính xác đằng sau mỗi con số
WITH
(
SELECT count()
FROM global_markets.cache_options_quotes
WHERE toYYYYMMDD(sip_timestamp) = 20260707
) AS jul7_option_rows,
(
SELECT count()
FROM global_markets.cache_options_quotes
WHERE toYYYYMMDD(sip_timestamp) = 20260706
) AS jul6_option_rows,
(
SELECT count()
FROM global_markets.cache_stocks_quotes
WHERE toYYYYMMDD(sip_timestamp) = 20260707
) AS jul7_stock_quote_rows
SELECT
jul7_option_rows AS jul7_option_quote_rows,
round(jul7_option_rows / 1e9, 2) AS jul7_option_quote_updates_bn,
round(jul6_option_rows / 1e9, 2) AS jul6_option_quote_updates_bn,
round((jul7_option_rows / jul6_option_rows - 1) * 100, 1) AS day_over_day_pct,
round(jul7_stock_quote_rows / 1e6, 2) AS jul7_stock_quote_updates_m,
round(jul7_option_rows / jul7_stock_quote_rows, 1) AS jul7_option_to_stock_ratioThe options quote stream is larger still, and it is the biggest dataset in this warehouse. July 7 carried 8.69 billion option NBBO updates, 17.6 times the size of the same session's entire stock-quote tape (492.76 million updates). Monday's options tape held 6.49 billion, so the option stream expanded 34% session over session, alongside the equity stream's 25.7%.
Câu lệnh SQL chính xác đằng sau mỗi con số
WITH
(
SELECT count()
FROM global_markets.cache_stocks_quotes
WHERE toYYYYMMDD(sip_timestamp) = 20260707
) AS jul7_stock_quote_rows,
(
SELECT round(toFloat64(avg(close)), 2)
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= '2026-07-07 14:36:00' AND window_start < '2026-07-07 14:48:00'
) AS spy_pocket_price,
(
SELECT round(toFloat64(avg(close)), 2)
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= '2026-07-07 17:30:00' AND window_start < '2026-07-07 17:42:00'
) AS spy_midday_price
SELECT
round(count() / 1e6, 2) AS spy_option_updates_m,
round(100.0 * count() / jul7_stock_quote_rows, 1) AS pct_of_whole_equity_quote_tape,
uniqExact(ticker) AS spy_contracts_quoted,
round(countIf(substring(ticker, -15, 6) = '260707') / 1e6, 2) AS same_day_updates_m,
spy_pocket_price AS spy_price_in_pocket,
spy_midday_price AS spy_price_midday,
round(quantileExactIf(0.5)(toFloat64(ask_price - bid_price),
bid_price > 0 AND ask_price >= bid_price
AND substring(ticker, -15, 6) = '260707'
AND abs(toFloat64(toUInt32OrZero(substring(ticker, -8))) / 1000 - spy_pocket_price) <= 2
AND sip_timestamp >= '2026-07-07 14:36:00' AND sip_timestamp < '2026-07-07 14:48:00'), 3) AS pocket_atm_spread_dollars,
round(quantileExactIf(0.5)(toFloat64(ask_price - bid_price),
bid_price > 0 AND ask_price >= bid_price
AND substring(ticker, -15, 6) = '260707'
AND abs(toFloat64(toUInt32OrZero(substring(ticker, -8))) / 1000 - spy_midday_price) <= 2
AND sip_timestamp >= '2026-07-07 17:30:00' AND sip_timestamp < '2026-07-07 17:42:00'), 3) AS midday_atm_spread_dollars,
round(pocket_atm_spread_dollars - midday_atm_spread_dollars, 3) AS atm_spread_delta_dollars,
round(countIf(substring(ticker, -15, 6) = '260707'
AND abs(toFloat64(toUInt32OrZero(substring(ticker, -8))) / 1000 - spy_pocket_price) <= 2
AND sip_timestamp >= '2026-07-07 14:36:00' AND sip_timestamp < '2026-07-07 14:48:00') / 1e3, 1) AS pocket_atm_updates_k,
round(countIf(substring(ticker, -15, 6) = '260707'
AND abs(toFloat64(toUInt32OrZero(substring(ticker, -8))) / 1000 - spy_midday_price) <= 2
AND sip_timestamp >= '2026-07-07 17:30:00' AND sip_timestamp < '2026-07-07 17:42:00') / 1e3, 1) AS midday_atm_updates_k,
round(pocket_atm_updates_k / midday_atm_updates_k, 1) AS atm_quote_rate_ratio,
countIf(NOT (bid_price > 0 AND ask_price >= bid_price)
AND substring(ticker, -15, 6) = '260707') AS dropped_invalid_same_day_quotes
FROM global_markets.cache_options_quotes
WHERE ticker >= 'O:SPY26' AND ticker < 'O:SPY27'
AND sip_timestamp >= '2026-07-07 13:30:00' AND sip_timestamp < '2026-07-07 20:00:00'
HAVING pocket_atm_updates_k > 0 AND midday_atm_updates_k > 0SPY's 2026-dated contracts alone took 327.55 million of those updates in regular hours, spread across 9116 listed contracts. That is 66.5% of what the entire equity market quoted the same day, from one underlying. The same-day expiries that carry the 0DTE tape account for 13.61 million of them.
Through the twelve minutes of the morning air pocket, the near-the-money same-day contracts quoted a median $0.01 wide, precisely what they quoted in the midday control ($0.01, a delta of 0). The quote rate across that same pair ran 3x: 191.1 thousand updates at the lows against 64 thousand at lunch. The option touch did what the stock touch did. It held its width while the quoting machinery ran hot. Near-the-money means a strike within $2 of SPY's average price in the same window, and the panel prints both prices (746 in the pocket, 749.08 midday).
Lãi suất: đường cong lợi suất giảm mạnh cùng với xu hướng tăng trưởng
Câu lệnh SQL chính xác đằng sau mỗi con số
SELECT
t.1 AS curve_point,
round(t.2, 2) AS jul7_yield_pct,
round((t.2 - t.3) * 100) AS session_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-07') AS d,
(SELECT * FROM global_markets.treasury_yields WHERE date = '2026-07-06') AS p
)Lợi suất trái phiếu Chính phủ Mỹ giảm mạnh cùng với xu hướng tăng trưởng. Lợi suất kỳ hạn 1 năm tăng 11 điểm cơ bản lên mức 4.06%, kỳ hạn 10 năm tăng 7 lên 4.55%, và kỳ hạn 30 năm tăng 6 lên 5.05% — vượt ngưỡng năm phần trăm. 2s10s spread duy trì ở mức 0.36 điểm phần trăm (thay đổi 1 điểm cơ bản): đây chủ yếu là sự dịch chuyển song song, không phải sự thay đổi hình dạng đường cong.
Lịch trình trong ngày
Câu lệnh SQL chính xác đằng sau mỗi con số
WITH
(
SELECT (count(), uniqExact(publisher))
FROM global_markets.stocks_news
WHERE toDate(toTimeZone(published_utc, 'America/New_York')) = '2026-07-07'
) AS news,
(
SELECT (argMax(t, n), max(n), max(n) - arraySort(x -> -x, groupArray(n))[2])
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-07'
)
WHERE t != 'SPCX'
GROUP BY t
)
) AS top_news
SELECT
(SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-07') AS ex_dividend_records,
(SELECT count() FROM global_markets.stocks_splits WHERE execution_date = '2026-07-07') AS splits_executed,
(SELECT countIf(toFloat64(split_from) > toFloat64(split_to)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-07') AS reverse_splits,
(SELECT countIf(toFloat64(split_to) > toFloat64(split_from)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-07') AS forward_splits,
(SELECT count() FROM global_markets.stocks_ipos WHERE listing_date = '2026-07-07') AS ipos_listed,
(SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-07') AS sec_filings,
(SELECT uniqExactIf(accession_number, form_type = '4') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-07') AS insider_form4_filings,
(SELECT uniqExactIf(accession_number, form_type = '8-K') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-07') AS filings_8k,
news.1 AS news_articles,
news.2 AS news_publishers,
top_news.1 AS most_covered_ticker,
if(top_news.1 = 'NVDA', 1, 0) AS most_covered_is_nvda,
top_news.2 AS most_covered_articles,
top_news.3 AS most_covered_lead_over_next,
(SELECT countIf(has(tickers, 'CRNX')) FROM global_markets.stocks_news
WHERE toDate(toTimeZone(published_utc, 'America/New_York')) = '2026-07-07') AS crnx_articles79 cổ phiếu đã chia tách cổ tức, 7 đợt chia tách cổ phiếu đã được thực hiện — trong đó 5 là chia tách ngược, các đợt hợp nhất giá dưới một đô la tạo ra mức "tăng trưởng" ba chữ số giả trên bảng điện chưa điều chỉnh, đối lập với 2 cổ phiếu kỳ hạn — và 1 mã niêm yết mới đã xuất hiện. Chỉ số SEC ghi nhận 2433 hồ sơ: 463 Form 4, 173 báo cáo 8-K. Luồng tin tức của chúng tôi có 215 bài viết từ 3 nhà xuất bản; mã được đề cập nhiều nhất là NVDA với 17 bài viết, vượt qua mã tiếp theo 4 bài viết — cũng chính là NVDA, mã đã đóng cửa ở sắc xanh bất chấp sự sụt giảm của toàn ngành. Luồng tin cũng đăng tải 0 bài viết về CRNX, mã tăng mạnh nhất trên bảng điện — đây là sự chú ý của một luồng tin, không phải của toàn bộ truyền thông thế giới.
Phiên giao dịch đã được xác nhận
Câu lệnh SQL chính xác đằng sau mỗi con số
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-07 13:30:00' AND window_start < '2026-07-07 20:00:00') AS regular_session_bars,
uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 20:00:00') AS day_sessions,
(SELECT count() FROM global_markets.stocks_market_holidays WHERE date = '2026-07-07') AS jul7_holiday_rows,
(SELECT toString(min(date)) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-07' AND status = 'closed') AS next_closure_date,
(SELECT argMin(name, date) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-07' AND status = 'closed') AS next_closure_name
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-07 00:00:00' AND window_start < '2026-07-08 00:00:00'Ngày 7 tháng 7 là một phiên giao dịch đầy đủ, không phải đóng cửa sớm: các thanh nến của SPY chạy từ 04:00 đến 19:59 giờ New York với chính xác 390 thanh nến trong khung giờ giao dịch bình thường, và bảng ngày lễ có 0 dòng cho ngày này. Thời điểm đóng cửa tiếp theo được lên lịch là Labor Day, 2026-09-07.
Ghi chú dữ liệu
- Dollar volume là đại diện theo từng phút — tính bằng giá đóng cửa nhân với khối lượng cộng dồn theo mỗi thanh một phút, trong giờ giao dịch chính thức.
- Tỷ lệ gap-versus-grind được đo từ thanh giao dịch chính thức đầu tiên của mỗi mã (giá mở cửa) so với giá đóng cửa chính thức cuối cùng của phiên trước đó; phần còn lại là biến động từ lúc mở cửa đến lúc đóng cửa trong ngày 7 tháng 7.
- Các mức thấp nhất đồng bộ vào buổi sáng đã được đối chiếu với các thanh giao dịch liền kề tại thời điểm soạn thảo — mỗi mức thấp nhất được xác định bởi các phút lân cận, không phải là một lệnh đơn lẻ; không có mức nào được coi là bất thường. Nếu một mức cực đoan xuất hiện trong nhiều phút, bảng dữ liệu sẽ hiển thị thanh giao dịch sớm nhất (quy tắc phân xử cố định).
- Một mã chứng khoán bị trùng lặp ký hiệu đã bị loại khỏi bảng xếp hạng khối lượng và phần tin tức để chờ xác minh thực thể; bài viết riêng của mã này có chứa các bằng chứng.
- Thống kê quoted-spread loại trừ các báo giá không hợp lệ (báo giá một chiều hoặc NBBO bị chéo), và mỗi bảng spread sẽ đếm số lượng bị loại trong một cột riêng. "Update-weighted average spread" tính trung bình độ rộng báo giá qua mọi cập nhật NBBO hợp lệ — các thời điểm giao dịch sôi động sẽ có trọng số lớn hơn; đây là thống kê báo giá, không phải chi phí trên mỗi giao dịch.
- Các báo giá option của ngày 7 tháng 7 được cập nhật sau khi bài viết này xuất bản lần đầu.
cache_options_quotescó độ trễ nạp dữ liệu lâu nhất, vì vậy phiên bản đầu tiên đã gửi một kết quả có hàng số không (zero-row) tại vị trí các bảng báo giá option hiện tại. Các hàng dữ liệu đã được nạp vào, nhưng giới hạn hàng số không đã thất bại khi tái tạo, và bản sửa đổi này đọc 8.69 tỷ cập nhật của phiên giao dịch. Dữ liệu báo giá cổ phiếu đã hoàn tất ngay từ đầu: cập nhật cuối cùng của ngày 7 tháng 7 được ghi nhận vào phút 1199 ET, với 77.13 triệu cập nhật trong giờ giao dịch chính thức cuối cùng (các cột dữ liệu nằm trong bảng quote-tape). - Độ rộng báo giá option được đo quanh mức at-the-money. Giá trung vị theo từng cập nhật qua mọi hợp đồng cùng ngày là một thống kê tổng hợp: các hợp đồng deep in-the-money có độ rộng báo giá tính bằng đô la, các hợp đồng far out-of-the-money báo giá tính bằng cent, và các hợp đồng nào có thay đổi báo giá trong phiên. So sánh pocket-versus-midday chỉ giới hạn các mức strike trong phạm vi $2 so với giá trung bình của SPY trong mỗi khung giờ, và cả hai mức giá đều là các cột trong bảng. Các báo giá option không hợp lệ (một chiều hoặc bị chéo) được đếm trong bảng đó, không bị loại bỏ âm thầm.
- Dữ liệu treasury cho ngày 7 tháng 7 được nạp dữ liệu muộn — phiên bản đầu tiên đã gửi một kết quả có thông báo độ trễ; hệ thống cảnh báo đã kích hoạt vào ngày 8 tháng 7 khi dữ liệu được nạp vào, và bản sửa đổi này chứa đường cong thực tế.
Phương pháp luận
- Giai đoạn được tính là một phiên giao dịch duy nhất (phiên 1, được xác minh từ các thanh nến quan sát được và lịch nghỉ lễ — không dựa trên giả định). Các mốc thời gian được lưu trữ theo giờ UTC và chuyển đổi sang giờ New York trong các truy vấn. "Close" (Giá đóng cửa) là thanh nến phút cuối cùng của phiên giao dịch thường lệ; việc thay đổi ngày được so sánh giữa ngày 7 tháng 7 với ngày 6 tháng 7, các phiên giao dịch liên tiếp.
- Các cột số thập phân được chuyển đổi sang dạng float 64-bit trước khi thực hiện phép tính tỷ lệ; ngày đáo hạn quyền chọn được phân tích lại từ ticker của OCC (cột ngày đáo hạn riêng của bảng này đang bị lỗi). Tất cả các bảng dữ liệu được đọc một lần tại thời điểm biên soạn thông qua đường dẫn chỉ đọc được kiểm soát. Trạng thái kho dữ liệu tính đến ngày 8 tháng 7, 2026.
- Phần dữ liệu quote-tape được thêm vào trong bản cập nhật ngày 8 tháng 7 (cùng bản cập nhật đã thay thế chứng từ trễ trái phiếu kho bạc bằng landed print), và các bảng quote quyền chọn của nó được viết lại ngay khi các dòng NBBO quyền chọn của ngày 7 tháng 7 được cập nhật. Quá trình tạo dữ liệu được thiết kế theo dạng xử lý hàng loạt (batch job): bảng quote quyền chọn SPY quét hàng trăm triệu bản ghi NBBO, trong khi các số liệu tape-size đọc tổng số hàng của các phân vùng trong ngày, đây là cách một bảng chứa hàng tỷ hàng mỗi phiên có thể trả về kết quả đếm trong chưa đầy một giây.
Mỗi bảng dữ liệu là kết quả của một truy vấn đã lưu trữ — biểu đồ, bảng và SQL là một đối tượng duy nhất. Bạn có thể dán bất kỳ đối tượng nào vào terminal Strasmore để sử dụng. Phiên trước đó: ngày 6 tháng 7.