Strasmore Research
Tổng hợp thị trường Matt ConnorBởi Matt Connor · Cập nhật 2026-07-23

Tổng kết thị trường ngày 1 tháng 7 năm 2026

Nửa cuối năm mở đầu với chỉ số biến động thấp nhưng diễn biến nội tại rất mạnh. Nhóm cổ phiếu bộ nhớ sụt giảm, META tăng trưởng và đa số các ngành S&P vẫn xanh.

Thứ Tư, ngày 1 tháng 7 năm 2026 — phiên giao dịch đầu tiên của nửa cuối năm — chứng kiến một trong những ngày chỉ số biến động thấp nhất trong tháng đi kèm với những đợt biến động mạnh nhất trên bảng điện tử. SPY đóng cửa ở mức -0.08% và QQQ đạt -1.44%, trong khi phức hợp bộ nhớ từng thúc đẩy quý hai đã mất một phần mười giá trị, META tăng 8.88%, và 7 của các quỹ ngành S&P thuộc 11 vẫn đóng cửa ở sắc xanh. Phiên trước đó: ngày 30 tháng 6.

Bảng điểm

Các thay đổi được so sánh giữa phiên giao dịch thường nhật cuối cùng ngày 1 tháng 7 với ngày thứ Ba 30 tháng 6.

Truy vấnSPY / QQQ / DIA / IWM — Ngày 1/7 so với giá đóng cửa 30/6, giờ giao dịch bình thường
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-06-30 13:30:00' AND window_start < '2026-06-30 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-01 13:30:00' AND window_start < '2026-07-01 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.ticker

Điểm nhấn nằm ở sự phân hóa: DIA ở mức 0.02% và SPY ở mức -0.08% đi ngang, trái ngược với mức -1.44% của QQQ và -0.37% của IWM — một đợt bán tháo nhóm cổ phiếu tăng trưởng mà thị trường chung hầu như không bị ảnh hưởng.

Một trong những ngày chỉ số biến động thấp nhất trong tháng qua

Truy vấnXếp hạng biến động open-to-close của SPY so với các phiên trong tháng trước (rank 1 = biến động tuyệt đối lớn nhất)
Câu lệnh SQL chính xác đằng sau mỗi con số
SELECT round(anyIf(oc_pct, d = toDate('2026-07-01')), 2) AS day_move_pct,
       arrayCount(x -> x > abs(anyIf(oc_pct, d = toDate('2026-07-01'))), groupArrayIf(abs(oc_pct), d != toDate('2026-07-01'))) + 1 AS abs_move_rank,
       count() AS sessions_compared,
       toString(min(d)) AS first_session
FROM (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
           (argMax(toFloat64(close), window_start) / argMin(toFloat64(open), window_start) - 1) * 100 AS oc_pct
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= toDateTime('2026-06-01 00:00:00')
      AND window_start < toDateTime('2026-07-02 00:00:00')
      AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
    GROUP BY d
)

Xét theo biến động từ giá mở cửa đến giá đóng cửa trong phiên — một góc nhìn khác so với so sánh giá đóng cửa phiên này với phiên trước — SPY đã biến động 0.09%: xếp thứ 20 trong số 22 phiên gần nhất xét theo giá trị tuyệt đối, chỉ có hai phiên biến động ít hơn. Nhóm các công cụ biến động cũng có xu hướng tương tự. Do không có chỉ số VIX giao ngay tại đây, chúng tôi kiểm tra thông qua các quỹ VIX-futures niêm yết — công cụ có khả năng giao dịch gần nhất để đo lường chi phí bảo hiểm:

Truy vấnNhóm biến động ngày 1/7: VIX-futures ETFs so với giá đóng cửa thứ Ba, với SPY làm mốc
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-01 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-01 00:00:00')) AS day_close,
        maxIf(toFloat64(high), window_start >= '2026-07-01 00:00:00') AS day_high,
        minIf(toFloat64(low), window_start >= '2026-07-01 00:00:00') AS day_low
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('SPY', 'SVXY', 'UVXY', 'VIXY', 'VXX')
      AND ((window_start >= '2026-06-30 13:30:00' AND window_start < '2026-06-30 20:00:00')
        OR (window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 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 / day_low - 1) * 100, 2) AS range_pct
FROM per_name
ORDER BY ticker

VXX, quỹ VIX futures kỳ hạn gần nhất lớn nhất, tăng 0.72%; VIXY 0.8%; quỹ đòn bẩy UVXY 1.13% trong phạm vi 3.68%; và quỹ nghịch đảo SVXY -0.42%. Những sai số làm tròn này không đáng kể so với biến động của các cổ phiếu riêng lẻ.

Độ rộng thị trường: số mã giảm nhiều hơn số mã tăng — và số mã lập đỉnh mới nhiều hơn số mã lập đáy mới

Truy vấnSố mã tăng, giảm và các mức cao/thấp mới trong quý của các ticker có khối lượng giao dịch ít nhất $1M vào ngày 1/7
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-01 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-01 00:00:00')) AS day_close,
        maxIf(toFloat64(high), window_start < '2026-07-01 00:00:00') AS quarter_high,
        minIf(toFloat64(low), window_start < '2026-07-01 00:00:00') AS quarter_low,
        maxIf(toFloat64(high), window_start >= '2026-07-01 00:00:00') AS day_high,
        minIf(toFloat64(low), window_start >= '2026-07-01 00:00:00') AS day_low,
        sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-01 00:00:00') AS day_dollar_volume,
        countIf(window_start < '2026-07-01 00:00:00') AS quarter_bars
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ((window_start >= '2026-04-01 13:30:00' AND window_start < '2026-06-30 20:00:00')
        OR (window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 20:00:00'))
      AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
    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,
    round(100.0 * countIf(day_close > prior_close AND day_dollar_volume >= 1000000)
        / countIf(day_dollar_volume >= 1000000), 1) AS advancer_pct,
    countIf(day_dollar_volume >= 1000000 AND quarter_bars >= 1000 AND day_high > quarter_high) AS new_quarter_highs,
    countIf(day_dollar_volume >= 1000000 AND quarter_bars >= 1000 AND day_low < quarter_low) AS new_quarter_lows,
    round(countIf(day_dollar_volume >= 1000000 AND quarter_bars >= 1000 AND day_high > quarter_high)
        / countIf(day_dollar_volume >= 1000000 AND quarter_bars >= 1000 AND day_low < quarter_low), 1) AS highs_per_low,
    countIf(day_dollar_volume >= 1000000 AND quarter_bars >= 1000) AS names_with_a_full_quarter,
    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,
    countIf(day_dollar_volume >= 1000000 AND quarter_bars < 1000) AS dropped_short_quarter_history
FROM per_ticker
WHERE prior_close > 0 AND day_close > 0

2928 mã tăng, 3465 mã giảm, 82 không đổi — 45.2% khối lượng giao dịch của các mã tăng giá. Tuy nhiên, phạm vi không phản ánh mức độ biến động: so với biên độ trong giờ giao dịch thường của quý hai, 836 trong số 6217 mã có đủ một quý giao dịch đã lập đỉnh mới của quý trong ngày giảm điểm này, trong khi 246 lập đáy mới — tỷ lệ giữa số mã lập đỉnh mới trên số mã lập đáy mới là 3.4. Đa số các mã đều giảm nhẹ; rất ít mã phá vỡ biên độ dao động. Các mã giảm: 5435 của 11910 ticker giao dịch hai phiên liên tiếp với bộ lọc dưới 1 triệu USD, 258 các mã có thanh khoản nhưng không có đủ số lượng nến trong một quý.

Bảng điện ngành: thiệt hại chỉ nằm ở một nhóm ngành

Mười một quỹ ETF theo ngành của SPDR là cách rẻ nhất để nắm giữ toàn bộ thị trường — cùng một danh mục mỗi phiên.

Truy vấn11 ETF ngành của S&P vào ngày 1/7, từ tốt nhất đến tệ nhất so với giá đóng cửa thứ Ba
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-01 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-01 00:00:00')) AS day_close,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-01 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-06-30 13:30:00' AND window_start < '2026-06-30 20:00:00')
        OR (window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 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 pct_above_worst_sector,
    sum(if(day_close > prior_close, 1, 0)) OVER (ORDER BY (day_close / prior_close) DESC ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS green_so_far,
    day_dollar_bn
FROM per_name
ORDER BY pct_chg DESC

Dịch vụ truyền thông (XLC) — quỹ ngành nắm giữ META — dẫn đầu ở mức 2.41%, nhóm tài chính (XLF) theo sau ở mức 2.2%. Nhóm công nghệ (XLK) đứng cuối cùng, thấp hơn nhóm dẫn đầu -2.56% và 4.97 điểm phần trăm. Tổng cộng, 7 trên 11 quỹ đóng cửa ở sắc xanh — gồm tiêu dùng không thiết yếu 0.68% và chăm sóc sức khỏe 0.57% — đối lập với nhóm tiện ích (-1.28%), công nghiệp (-0.98%) và năng lượng (-0.6%) ở sắc đỏ. Điều này có nghĩa là "chỉ số gần như không biến động" khi nhìn từ dưới lên.

Điểm nhấn trong ngày: nhóm bộ nhớ sụt giảm, META đi ngược xu hướng

Có tám mã cổ phiếu gây ra sự phân hóa: bốn cổ phiếu về bộ nhớ và lưu trữ dẫn dắt quý hai, cùng bốn cổ phiếu về chip và nền tảng xoay quanh chúng. Bài viết báo cáo về sự biến động cùng chiều, mức độ và thời điểm; dữ liệu không giải thích nguyên nhân.

Truy vấnNhóm cổ phiếu tiêu biểu và megacaps: thay đổi so với giá đóng cửa thứ Ba, khung thời gian dao động và dollar volume
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-01 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-01 00:00:00')) AS day_close,
        maxIf(toFloat64(high), window_start >= '2026-07-01 00:00:00') AS day_high,
        minIf(toFloat64(low), window_start >= '2026-07-01 00:00:00') AS day_low,
        argMinIf(window_start, (toFloat64(low), toInt64(toUnixTimestamp(window_start))), window_start >= '2026-07-01 00:00:00') AS low_bar,
        argMaxIf(window_start, (toFloat64(high), -toInt64(toUnixTimestamp(window_start))), window_start >= '2026-07-01 00:00:00') AS high_bar,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-01 00:00:00') / 1e9, 2) AS day_dollar_bn
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('AMD', 'META', 'MRVL', 'MU', 'NVDA', 'SNDK', 'STX', 'WDC')
      AND ((window_start >= '2026-06-30 13:30:00' AND window_start < '2026-06-30 20:00:00')
        OR (window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 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(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 ticker

SanDisk (-10.45%) và Micron (-10.23%) đều mất hơn một phần mười giá trị; Marvell -8.68%, AMD -6.87%, Western Digital -6.3%, Seagate -5.11%. MU có khối lượng giao dịch đạt $42.94 tỷ, cao hơn tổng khối lượng giao dịch của SPY cả ngày; MU, AMD và Marvell đều chạm mức thấp nhất phiên vào những phút cuối phiên (15:59, 15:57, 15:58 ET) — áp lực bán xuất hiện tại phiên đấu giá đóng cửa, không phải do khoảng trống thanh khoản vào buổi sáng (phân tích sâu về MU đã kết thúc quý trước đó]).

META đi theo hướng ngược lại: 8.88% trên $22.72 tỷ khối lượng giao dịch, mức thấp nhất tại 09:30 ET — ngay tại cây nến mở cửa — và không bao giờ quay lại mức đó. NVDA không có biến động đáng kể tại -1.09% (tháng 6 của NVDA).

Những gì đã được nói

Trang này không bao giờ chỉ định nguyên nhân. Nhưng nguồn tin tức được cấp phép của chúng tôi cũng giống như bất kỳ bảng dữ liệu nào khác — đây là những gì nguồn tin đã đăng tải trong ngày hôm đó:

Truy vấn12 tin tức cuối cùng trong ngày có gắn thẻ MU, SNDK, STX, WDC hoặc META (một nguồn tin được cấp phép)
Câu lệnh SQL chính xác đằng sau mỗi con số
SELECT published_et, publisher, names_tagged, headline
FROM (
    SELECT
        published_utc,
        formatDateTime(toTimeZone(published_utc, 'America/New_York'), '%H:%i') AS published_et,
        JSONExtractString(publisher, 'name') AS publisher,
        arrayStringConcat(arrayFilter(x -> x IN ('MU', 'SNDK', 'STX', 'WDC', 'META'), tickers), ' ') AS names_tagged,
        substring(title, 1, 72) AS headline
    FROM global_markets.stocks_news
    WHERE published_utc >= '2026-07-01 04:00:00' AND published_utc < '2026-07-02 04:00:00'
      AND hasAny(tickers, ['MU', 'SNDK', 'STX', 'WDC', 'META'])
      AND NOT has(tickers, 'SPCX')
      AND position(title, 'SPCX') = 0
    ORDER BY published_utc DESC
    LIMIT 12
)
ORDER BY published_utc ASC

Bài viết giữa buổi chiều của The Motley Fool về Micron (14:11 ET) có tiêu đề là "Why Micron Stock Is Plummeting Today". Bản tin tổng kết buổi tối (17:12 ET) và bài viết tiếp theo bốn phút sau đó (17:16 ET) đều đặt sự tăng trưởng của META bên cạnh thông tin về kế hoạch bán năng lực tính toán AI dư thừa dưới dạng dịch vụ đám mây. Đó là cách đặt vấn đề của cơ quan báo chí, không phải là kết luận từ dữ liệu giao dịch, và 12 bài viết từ hai nhà xuất bản chỉ là sự chú ý của một nguồn tin, không phải của toàn bộ thị trường.

Các dòng tiền giao dịch

Truy vấnDẫn đầu về volume theo hai cách: top 6 theo dollars traded, top 4 theo shares traded (loại trừ một mã trùng lặp đang chờ xác minh thực thể)
Câu lệnh SQL chính xác đằng sau mỗi con số
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-01 13:30:00' AND window_start < '2026-07-01 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-01 13:30:00' AND window_start < '2026-07-01 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) DESC

MU dẫn đầu thị trường với $42.94 tỷ — SPY đứng thứ hai với $27.76 tỷ, META đứng thứ tư với $22.72 tỷ — một cổ phiếu đang giảm giá có khối lượng giao dịch cao hơn gấp rưỡi so với quỹ chỉ số. Các mã có biến động mạnh nhất là những cái tên giao dịch sôi nổi nhất. Bảng điện tử cho thấy những con số biến động mạnh: SOXS, ETF nghịch đảo 3x nhóm bán dẫn, dẫn đầu với 553.1 triệu cổ phiếu — giao dịch nhiều nhất trong ngày nhóm chip sụt giảm — trong khi một mã giá thấp chốt hạ ở mức 189.8 triệu cổ phiếu trị giá $319 triệu (khối lượng tương đối đã chỉ ra chính xác điều này). Cơ sở: giờ giao dịch chính thức ngày 1 tháng 7, loại trừ một niêm yết sử dụng lại ký hiệu (biên lai).

Thị trường options

Truy vấnMột dòng cho cả ngày giao dịch options: volume, expiry trong ngày, put/call skew và hợp đồng giao dịch nhiều nhất
Câu lệnh SQL chính xác đằng sau mỗi con số
WITH
    (
        SELECT (any(underlying_symbol), any(toFloat64(strike_price)), any(option_type),
                sum(size), round(avg(toFloat64(price)), 3),
                any(if(substring(ticker, length(ticker) - 14, 6) = '260701', 1, 0)))
        FROM global_markets.options_trades
        WHERE sip_timestamp >= '2026-07-01 00:00:00' AND sip_timestamp < '2026-07-02 00:00:00'
        GROUP BY ticker
        ORDER BY sum(size) DESC, ticker ASC
        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-01 13:30:00' AND window_start < '2026-07-01 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(sumIf(toFloat64(size), option_type = 'P') / sumIf(toFloat64(size), option_type = 'C'), 2) AS put_call_ratio,
    round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260701') / 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, underlying_symbol = 'SPY' AND option_type = 'P')) / 1e6, 2) AS spy_put_contracts_m,
    round(100.0 * sumIf(size, underlying_symbol = 'SPY' AND option_type = 'P' AND toFloat64(strike_price) < spy_regular_close * 0.98)
        / sumIf(size, underlying_symbol = 'SPY' AND option_type = 'P'), 1) AS spy_puts_2pct_below_pct,
    round(100.0 * sumIf(size, underlying_symbol = 'SPY' AND option_type = 'C' AND toFloat64(strike_price) > spy_regular_close * 1.02)
        / sumIf(size, underlying_symbol = 'SPY' AND option_type = 'C'), 1) AS spy_calls_2pct_above_pct,
    round(sumIf(toFloat64(size), underlying_symbol = 'MU' AND option_type = 'P')
        / sumIf(toFloat64(size), underlying_symbol = 'MU' AND option_type = 'C'), 2) AS mu_put_call_ratio,
    round(sumIf(toFloat64(size), underlying_symbol = 'META' AND option_type = 'P')
        / sumIf(toFloat64(size), underlying_symbol = 'META' AND option_type = 'C'), 2) AS meta_put_call_ratio,
    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_volume,
    reverse(arrayStringConcat(extractAll(reverse(toString(assumeNotNull(top_contract.4))), '\\d{1,3}'), ',')) AS top_contract_volume_fmt,
    round(top_contract.5, 3) AS top_contract_avg_price,
    top_contract.6 AS top_contract_is_same_day,
    round(top_contract.2 - spy_regular_close, 2) AS top_strike_minus_spy_close,
    spy_regular_close AS spy_close
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-01 00:00:00' AND sip_timestamp < '2026-07-02 00:00:00'

Khối lượng giao dịch options đạt 68.46 triệu hợp đồng qua 11.22 triệu lệnh khớp — trong đó call chiếm 58.6% tổng khối lượng, các hợp đồng đáo hạn trong ngày chiếm 33.5%. Không có hoạt động phòng vệ chỉ số: tỷ lệ put trên call toàn thị trường là 0.71, và trong số 5.76 triệu lệnh put của SPY chỉ có 11.6% có mức giá thực hiện thấp hơn hai phần trăm so với mức đóng cửa 745.69 — đây là những mức giá thực hiện ở vùng giảm sâu, vốn chỉ có lợi khi thị trường sụp đổ. Độ lệch (skew) tập trung ở các cổ phiếu riêng lẻ: số lượng put của Micron vượt qua call (1.11 per call), trong khi call của META vượt qua put với tỷ lệ tốt hơn hai to one (0.39). Hợp đồng giao dịch nhiều nhất là SPY call $748 đáo hạn trong ngày — 878,947 hợp đồng với mức giá trung bình là $0.707 — đáo hạn ở trạng thái lỗ (out of the money) 2.31 đô la, giống như phiên thứ Ba. Không có giao dịch nào cho ngày đáo hạn 3 tháng 7 trong cả ngày (0 lệnh — thứ Sáu đó là ngày nghỉ); các hợp đồng weekly đáo hạn vào thứ Năm đạt 14.43 triệu.

Rates: drifting up, front end down

Yields are daily closes against June 30.

Truy vấnĐường cong lợi suất Treasury, giá đóng cửa 1/7 so với 30/6 (chỉ hiển thị các kỳ hạn có dữ liệu)
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 jul1_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-01') AS d,
         (SELECT * FROM global_markets.treasury_yields WHERE date = '2026-06-30') AS p
)

The 10-year added 4 bp to 4.48% and the 30-year 6 bp, while the 1-month bill moved -3 bp — belly and long end up, front end down. The 2s10s spread closed at 0.31 percentage points: nothing here matched the equity dispersion.

The calendar behind the day

Truy vấnLịch sự kiện doanh nghiệp và dòng thông tin ngày 1/7, trong một dòng
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-01'
    ) 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-01'
            )
            WHERE t != 'SPCX'
            GROUP BY t
        )
    ) AS top_news
SELECT
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-01') AS ex_dividend_records,
    (SELECT countIf(frequency = 12) FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-01') AS monthly_payers,
    (SELECT countIf(frequency = 4) FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-01') AS quarterly_payers,
    (SELECT round(100.0 * countIf(frequency = 12) / count(), 1) FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-01') AS monthly_payer_pct,
    (SELECT count() FROM global_markets.stocks_splits WHERE execution_date = '2026-07-01') AS splits_executed,
    (SELECT count() FROM global_markets.stocks_ipos WHERE listing_date = '2026-07-01') AS ipos_listed,
    (SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-01') AS sec_filings,
    (SELECT uniqExactIf(accession_number, form_type = '4') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-01') AS insider_form4_filings,
    (SELECT uniqExactIf(accession_number, form_type = '8-K') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-01') 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-01' 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

The quarter turn crested here: 745 dividend records went ex-dividend — the wave the June recap watched building — alongside 9 splits and 3 listings (BSP — Bending Spoons S.p.A.; ITG — ITG Inc.; LIME — Neutron Holdings Inc.). The filing feed revived: 4282 filings, 1072 of them Form 4s and 248 8-Ks, after June 30's near-empty index day (the month-end gap note). Our feed carried 201 articles, most-covered MSFT at 16.

But a count says nothing about who was paying. Ranked by the money that traded in them, the board is not corporate at all:

Truy vấnCác mã lớn sắp ex-dividend vào ngày 1/7, xếp hạng theo dollar volume trong ngày
Câu lệnh SQL chính xác đằng sau mỗi con số
WITH divs AS (
    SELECT ticker, max(toFloat64(cash_amount)) AS cash, max(frequency) AS freq
    FROM global_markets.stocks_dividends
    WHERE ex_dividend_date = '2026-07-01' AND distribution_type = 'recurring'
    GROUP BY ticker
),
tape AS (
    SELECT ticker,
           sum(toFloat64(close) * toFloat64(volume)) AS dollar_volume,
           toFloat64(argMax(close, (window_start, close))) AS day_close
    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'
      AND ticker NOT IN ('SPCX')
    GROUP BY ticker
)
SELECT
    d.ticker AS ticker,
    round(d.cash, 4) AS cash_per_share,
    d.freq AS payments_per_year,
    round(t.day_close, 2) AS day_close,
    round(100 * d.cash / t.day_close, 2) AS pct_of_price,
    round(100 * d.cash * d.freq / t.day_close, 2) AS annualized_yield_pct,
    round(t.dollar_volume / 1e9, 2) AS day_dollar_bn
FROM divs d JOIN tape t ON d.ticker = t.ticker
WHERE t.dollar_volume > 0 AND d.cash > 0
ORDER BY t.dollar_volume DESC
LIMIT 8

Every one of the eight busiest ex-dividend tickers is a fund paying 12 times a year: SGOV, a Treasury-bill fund, went ex on $0.2958 a share (0.29% of price, 3.54% annualized) on $3.5 billion traded; HYG, a high-yield bond fund, on $0.3688. That is a first-of-month wave: 572 of the day's 745 records (76.8%) are monthly payers — funds distributing interest — against 123 quarterly payers. The ex-date drop is mechanical, not a loss.

Ngày đầu tiên của một quý có bao giờ là một ngày bình thường không?

Kịch bản thường thấy là: quý mới, dòng tiền mới và các phân bổ mới. Tuy nhiên, dữ liệu thực tế lại cho thấy điều ngược lại.

Truy vấnMọi phiên mở cửa quý từ năm 2004: biến động open-to-close của SPY, với ngày 1/7 được xếp hạng trong đó
Câu lệnh SQL chính xác đằng sau mỗi con số
SELECT
    count() AS quarter_opens_measured,
    round(quantileExact(0.5)(oc_pct), 2) AS median_quarter_open_pct,
    countIf(oc_pct > 0) AS quarter_opens_green,
    countIf(oc_pct <= 0) AS quarter_opens_red,
    round(anyIf(oc_pct, first_day = toDate('2026-07-01')), 2) AS jul1_oc_pct,
    arrayCount(x -> x < anyIf(oc_pct, first_day = toDate('2026-07-01')), groupArrayIf(oc_pct, first_day != toDate('2026-07-01'))) + 1 AS jul1_rank_worst_to_best,
    round(min(oc_pct), 2) AS worst_quarter_open_pct,
    round(max(oc_pct), 2) AS best_quarter_open_pct,
    concat(monthName(min(first_day)), ' ', toString(toYear(min(first_day)))) AS first_measured
FROM (
    SELECT f.first_day AS first_day, d.oc_pct AS oc_pct
    FROM (
        SELECT toStartOfQuarter(d) AS q, min(d) AS first_day
        FROM (
            SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d
            FROM global_markets.delayed_stocks_minute_aggs
            WHERE ticker = 'SPY'
              AND window_start >= toDateTime('2004-01-01 00:00:00')
              AND window_start < toDateTime('2026-07-02 00:00:00')
              AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
            GROUP BY d
        )
        GROUP BY q
    ) f
    INNER JOIN (
        SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
               (argMax(toFloat64(close), (window_start, close)) / argMin(toFloat64(open), (window_start, open)) - 1) * 100 AS oc_pct
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY'
          AND window_start >= toDateTime('2004-01-01 00:00:00')
          AND window_start < toDateTime('2026-07-02 00:00:00')
          AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
        GROUP BY d
    ) d ON d.d = f.first_day
)

Trong số 91 phiên mở cửa đầu quý kể từ January 2004, mức biến động trung vị từ lúc mở cửa đến khi đóng cửa của SPY vào ngày đầu tiên của quý là 0.01% — với 46 phiên tăng và 45 phiên giảm, kéo dài từ -2.28% đến 3.18%: kết quả tương đương với việc tung đồng xu nhưng có sai số làm tròn. Ngày 1 tháng 7 ghi nhận mức 0.09%, xếp hạng 50 trên 91 từ tệ nhất đến tốt nhất — nằm ngay chính giữa. Cơ sở dữ liệu: biến động từ lúc mở cửa đến khi đóng cửa trong giờ giao dịch bình thường của SPY, tính trên mọi phiên đầu tiên của mỗi quý trong cơ sở dữ liệu.

Những điểm đáng lưu ý trong ngày

Chỉ số biến động 0.09%; nhóm tám cổ phiếu lớn dao động từ -10.45% đến 8.88%; chi phí bảo hiểm gần như không đổi. Đó là kết quả tất yếu của một thị trường có tính tập trung cao — khi thua lỗ của một nhóm ngành được bù đắp bởi lợi nhuận của 7 trong số 11 nhóm ngành khác, đó là cách một chỉ số tính toán tổng thể. Nếu chỉ nhìn vào cấp độ chỉ số, bạn sẽ không thấy biến động lớn; nhưng nếu nhìn vào từng vị thế cụ thể, bạn sẽ thấy một phần mười giá trị nắm giữ đã biến mất chỉ trong một ngày.

Phiên giao dịch, đã xác minh

Truy vấnKiểm tra phiên: phạm vi minute-bar quan sát được của SPY
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-01 13:30:00' AND window_start < '2026-07-01 20:00:00') AS regular_session_bars,
    uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 20:00:00') AS day_sessions,
    (SELECT count() FROM global_markets.stocks_market_holidays WHERE date = '2026-07-01') AS jul1_holiday_rows
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-01 00:00:00' AND window_start < '2026-07-02 00:00:00'

Các thanh nến của SPY chạy từ 04:00 đến 19:59 giờ New York, với 390 thanh nến trong khung giờ giao dịch bình thường và 0 hàng nến ngày lễ vào ngày này — một phiên giao dịch đầy đủ, đã được xác minh từ tape.

FAQ

Thị trường chứng khoán tăng hay giảm vào ngày 1 tháng 7 năm 2026?

Kết quả tùy thuộc vào chỉ số bạn quan sát. SPY đóng cửa ở mức -0.08%, DIA 0.02%, QQQ -1.44%; các mã có tính thanh khoản 3465 giảm trong khi 2928 tăng — tuy nhiên 7 trong số các quỹ ngành 11 đóng cửa ở sắc xanh, ngoại trừ nhóm công nghệ.

Tại sao Micron, SanDisk, Western Digital và Seagate đều giảm vào ngày 1 tháng 7 năm 2026?

Dữ liệu này báo cáo sự biến động cùng chiều, không phải nguyên nhân: cả bốn mã đều giảm trong khoảng từ -5.11% đến -10.45%. Bài viết cùng ngày của The Motley Fool về Micron (trong bảng tin trên trang này, lúc 14:11 ET) có tiêu đề là "Why Micron Stock Is Plummeting Today". Đó là cách đặt vấn đề của tờ báo, không phải là kết luận từ dữ liệu giao dịch.

Tại sao META tăng vào ngày 1 tháng 7 năm 2026?

META đóng cửa cao hơn 8.88%, mức thấp nhất nằm ở nến mở cửa. Bài viết của The Motley Fool cho rằng biến động này do các báo cáo về việc công ty có kế hoạch bán năng lực tính toán AI dư thừa dưới dạng dịch vụ đám mây: đây là nhận định của tờ báo, không phải của chúng tôi.

Ngày giao dịch đầu tiên của một quý thường có biến động mạnh không?

Không có sự khác biệt đáng kể. Trong số 91 lần mở cửa quý kể từ January 2004, mức biến động trung vị từ giá mở cửa đến giá đóng cửa của SPY là 0.01%: 46 tăng, 45 giảm — tương đương như tung đồng xu; ngày 1 tháng 7 nằm ở mức trung bình.

Thị trường options có đang phòng vệ cho đợt bán tháo vào ngày 1 tháng 7 năm 2026 không?

Không ở cấp độ chỉ số: tỷ lệ put trên call toàn thị trường là 0.71, và chỉ có 11.6% khối lượng put của SPY chạm mức thấp hơn hai phần trăm so với giá đóng cửa.

Ghi chú dữ liệu

  • Khối lượng giao dịch theo USD là đại diện tính theo từng phút — giá đóng cửa × khối lượng được cộng dồn theo mỗi thanh nến một phút, trong giờ giao dịch chính thức. Các giá trị cực đại hiển thị đã được đối chiếu với các thanh nến liền kề; nếu bằng nhau, giá trị sớm nhất sẽ được chọn.
  • Không có chỉ số VIX giao ngay tại đây. Bảng biến động hiển thị các quỹ VIX-futures niêm yết, các quỹ này nắm giữ và thực hiện lăn kỳ hạn — có liên quan đến chỉ số nhưng không bao giờ đồng nhất.
  • Các mức cao/thấp mới của quý so sánh các mức cực đại trong giờ giao dịch chính thức của ngày 1 tháng 7 với phạm vi từ ngày 1 tháng 4 đến ngày 30 tháng 6 của từng mã; áp dụng cho các mã có tính thanh khoản cao và có đầy đủ dữ liệu của cả quý; các mức giảm được hiển thị trong bảng.
  • Bảng ngành là một rổ chứng khoán được chọn lọc (gồm mười một ETF của SPDR, không phải trường dữ liệu từ nhà cung cấp); bảng tin là một nguồn tin được cấp phép (12 bài báo, từ hai nhà xuất bản); một mã trùng lặp đã bị loại khỏi bảng xếp hạng (biên lai của nó).

Phương pháp luận

  • Một phiên giao dịch (1 phiên, được xác minh từ các thanh nến quan sát được và bảng ngày lễ — không bao giờ tự giả định). Dấu thời gian được lưu trữ ở múi giờ UTC và được chuyển đổi sang giờ New York trong các truy vấn; "close" là phút cuối cùng của phiên giao dịch thường lệ, ngày thay đổi dựa trên mốc 30 tháng 6.
  • Các 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ác bảng dữ liệu được chạy 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 13 tháng 7 năm 2026; phiên bản này bổ sung thêm các bảng về ngành, biến động, tin tức, cổ tức và lịch sử quý.

Mỗi bảng dữ liệu là kết quả của một truy vấn đã lưu — 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. Tiếp theo: ngày 2 tháng 7; tuần: tuần lễ nghỉ lễ.