Strasmore Research
Market recaps Matt ConnorNi Matt Connor · Na-update noong 2026-08-02

Market Recap July 29, 2026: Mga Numero

July 29, 2026 recap mula sa tape: index scoreboard, breadth, sector spread, options flow, quote tape, rates at calendar, lahat query-backed ang figures.

Ang market recap na ito para sa Miyerkules, July 29, 2026 ay sumasaklaw sa buong session batay sa stored queries: umabot sa -1.52% ang close-over-close change ng SPY, sa 27.2% ang bahagi ng mga umakyat sa liquid tape, at nag-print ang options tape ng 66.84 milyong kontrata. Ang bawat window sa ibaba ay may malinaw na petsa sa magkabilang dulo, kaya kapag muling pinatakbo ang SQL ng alinmang panel, ibabalik nito ang parehong mga figure.

Ang talaan ng resulta

Ang bawat pagbabago ay paghahambing ng huling one-minute bar ng regular na session noong July 29 sa bar noong Tuesday, July 28—magkakasunod na trading session. Nakaayos ayon sa alpabeto ang mga row, kaya nananatili sa parehong puwesto ang bawat ETF.

QuerySPY / QQQ / DIA / IWM: Hulyo 29 kumpara sa pagsasara noong Hulyo 28, regular hours
Ang eksaktong SQL sa likod ng bawat numero
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-28 13:30:00' AND window_start < '2026-07-28 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-29 13:30:00' AND window_start < '2026-07-29 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
FROM sess s LEFT JOIN prior p ON s.ticker = p.ticker
ORDER BY ticker
Run this yourself

Ang DIA ay gumalaw ng -2.19%, ang IWM ng -1.63%, ang QQQ ng -2.07%, at ang SPY ng -1.52% tungo sa closing price na $729.51. Hinahati ng bawat row ang galaw sa dalawang bahagi: nagbukas ang SPY nang -0.11% mula sa closing price noong Tuesday at gumalaw ng -1.41% mula open hanggang close. Hindi kailangang magkatugma ang overnight leg at intraday leg. Ang paghahati sa mga ito ang unang fingerprint ng isang session.

Hindi karaniwan ang araw?

Maliit ang kahulugan ng bilang ng isang session kung walang distribution na pinagbabatayan. Kaya niraranggo ang araw sa loob ng sarili nitong trailing month gamit ang parehong lohika.

QueryGalaw ng SPY sa araw sa trailing context (open-to-close, Hunyo 29 hanggang Hulyo 29)
Ang eksaktong SQL sa likod ng bawat numero
SELECT
    round(anyIf(oc_pct, d = toDate('2026-07-29')), 2) AS spy_open_to_close_pct,
    arrayCount(x -> x > abs(anyIf(oc_pct, d = toDate('2026-07-29'))), groupArrayIf(abs(oc_pct), d != toDate('2026-07-29'))) + 1 AS spy_abs_move_rank,
    count() AS spy_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-29 13:30:00')
      AND window_start < toDateTime('2026-07-30 00:00:00')
      AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
    GROUP BY d
)
Run this yourself

Ang open-to-close move ng SPY na -1.41% ay nag-rank ng 1 sa 22 trailing sessions ayon sa absolute size, sa isang window na umaabot pabalik sa 2026-06-29. Binibilang sa rank kung ilang ibang session sa window ang may mas malaking galaw, at dinaragdagan ito ng isa. Kaya ang first place ay tumutukoy sa pinakamalaking galaw sa trailing month.

Lawak ng Galaw

Ang antas ng isang index ay iisang numero. Sinusukat ng lawak ng galaw kung ilang stock ang gumalaw kasabay nito.

QueryBreadth ng liquid tape: pagsasara noong Hulyo 29 kumpara sa pagsasara noong Hulyo 28, $1M-traded filter
Ang eksaktong SQL sa likod ng bawat numero
SELECT
    countIf(c29 > c28 AND liquid) AS advancers,
    countIf(c29 < c28 AND liquid) AS decliners,
    countIf(c29 = c28 AND liquid) AS unchanged,
    countIf(liquid) AS liquid_tickers,
    countIf(NOT liquid) AS dropped_by_liquidity_filter,
    round(100.0 * countIf(c29 > c28 AND liquid) / countIf(liquid), 1) AS advancer_pct
FROM (
    SELECT ticker, c28, c29, dv29 >= 1000000 AS liquid
    FROM (
        SELECT ticker,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-28 13:30:00' AND window_start < '2026-07-28 20:00:00') AS c28,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00') AS c29,
               sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-29 13:30:00') AS dv29
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE window_start >= '2026-07-28 13:30:00' AND window_start < '2026-07-29 20:00:00'
        GROUP BY ticker
        HAVING c28 > 0 AND c29 > 0
    )
)
Run this yourself

Sa 6066 stock na lumampas sa one-million-dollar turnover threshold sa regular trading hours, 1652 ang nagsara na mas mataas kaysa sa closing level noong Martes at 4342 ang nagsara na mas mababa. Katumbas ito ng 27.2% na bahagi ng mga stock na tumaas. Isinantabi ng filter ang 5363 na stock na mas mababa ang trading volume, ngunit isinama pa rin ang mga ito sa bilang sa halip na tahimik na alisin.

Ang shelf ng mega-cap

Ang parehong walong mega-cap na pangalan ay lumilitaw sa bawat session, nakaayos ayon sa alpabeto para manatili ang bawat isa sa sarili nitong row. Ang fixed basket ang punto: natututunan ng mambabasa ang mga row, at walang editorial na pumipili ng mga winner pagkatapos ng kaganapan.

QueryWalong mega-cap: pagbabago kumpara sa Hulyo 28 at regular-hours dollars, Hulyo 29
Ang eksaktong SQL sa likod ng bawat numero
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-29 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-29 00:00:00')) AS day_close,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-29 00:00:00') / 1e9, 2) AS day_dollar_bn
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('AAPL', 'AMZN', 'AVGO', 'GOOGL', 'META', 'MSFT', 'NVDA', 'TSLA')
      AND ((window_start >= '2026-07-28 13:30:00' AND window_start < '2026-07-28 20:00:00')
        OR (window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 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,
    day_dollar_bn
FROM per_name
ORDER BY ticker
Run this yourself

Gumalaw ang AAPL ng -0.63%, META ng -1.12%, MSFT ng -0.27%, at NVDA ng -3.51% sa regular-hours turnover na 22.26 bilyong dolyar, habang nasa -2.97% ang TSLA. Ipinapakita ng dollar column kung gaano kalaki sa tape ang dala ng walong pangalang ito nang sila lamang; ang breadth panel sa itaas ang sumusukat kung gaano kalawak na sumabay sa kanila ang natitirang market.

Mga gumalaw ngayong araw

Parehong nangangailangan ang dalawang board ng turnover na five million dollars sa regular hours. Hindi kasama ang anumang pangalan na nag-execute ng stock split sa pagitan ng dalawang close na sinusukat nila. Hindi rin kasama ang isang reused symbol sa ilalim ng ambiguity guard ng kumpanya na inilalarawan sa mga note.

QueryPinakamalalaking gainers at decliners: pagsasara noong Hulyo 29 kumpara sa pagsasara noong Hulyo 28, $5M+ traded, hindi kasama ang splits
Ang eksaktong SQL sa likod ng bawat numero
SELECT ticker, board, day_pct, day_dollar_m
FROM (
    SELECT 'gainers' AS board, ticker, round((c29 / c28 - 1) * 100, 1) AS day_pct, round(dv / 1e6, 1) AS day_dollar_m
    FROM (
        SELECT ticker,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-28 13:30:00' AND window_start < '2026-07-28 20:00:00') AS c28,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00') AS c29,
               sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-29 13:30:00') AS dv
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker NOT IN ('SPCX')
          AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits WHERE execution_date > '2026-07-28' AND execution_date <= '2026-07-29')
          AND window_start >= '2026-07-28 13:30:00' AND window_start < '2026-07-29 20:00:00'
        GROUP BY ticker
        HAVING c28 > 0 AND c29 > 0 AND dv >= 5000000
    )
    ORDER BY day_pct DESC
    LIMIT 8
    UNION ALL
    SELECT 'decliners' AS board, ticker, round((c29 / c28 - 1) * 100, 1) AS day_pct, round(dv / 1e6, 1) AS day_dollar_m
    FROM (
        SELECT ticker,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-28 13:30:00' AND window_start < '2026-07-28 20:00:00') AS c28,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00') AS c29,
               sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-29 13:30:00') AS dv
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker NOT IN ('SPCX')
          AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits WHERE execution_date > '2026-07-28' AND execution_date <= '2026-07-29')
          AND window_start >= '2026-07-28 13:30:00' AND window_start < '2026-07-29 20:00:00'
        GROUP BY ticker
        HAVING c28 > 0 AND c29 > 0 AND dv >= 5000000
    )
    ORDER BY day_pct ASC
    LIMIT 8
)
ORDER BY board DESC, abs(day_pct) DESC
Run this yourself

Ang pinakamalaking tumaas sa board, DFNS, ay gumalaw ng 119.8% sa 544.9 million dollars na na-trade. Ang pinakamalaking bumaba, YYAI, ay nag-print ng -68.1% sa 8.5 million. Itinatala ng page na ito ang mga laki at resibo; wala itong iniuugnay na kuwento sa mga ito.

Pagkakaiba-iba ng performance ng mga sektor

Ang labing-isang SPDR select-sector funds, batay sa pagsasara noong July 29 kumpara sa July 28, ay inayos mula sa pinakamahusay hanggang sa pinakamahina. Ang basket ay itinakda at permanente; hindi ito vendor classification.

QuerySector ETFs, pagsasara noong Hulyo 29 kumpara sa pagsasara noong Hulyo 28, naka-rank
Ang eksaktong SQL sa likod ng bawat numero
SELECT sector, day_pct, round(max(day_pct) OVER () - day_pct, 2) AS points_behind_best
FROM (
    SELECT multiIf(ticker = 'XLK', 'Technology', ticker = 'XLC', 'Communications', ticker = 'XLE', 'Energy',
                   ticker = 'XLF', 'Financials', ticker = 'XLI', 'Industrials', ticker = 'XLB', 'Materials',
                   ticker = 'XLP', 'Staples', ticker = 'XLRE', 'Real Estate', ticker = 'XLU', 'Utilities',
                   ticker = 'XLV', 'Health Care', 'Consumer Discretionary') AS sector,
           round((c29 / c28 - 1) * 100, 2) AS day_pct
    FROM (
        SELECT ticker,
               argMaxIf(toFloat64(close), window_start, window_start < '2026-07-29 00:00:00') AS c28,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-29 00:00:00') AS c29
        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-28 13:30:00' AND window_start < '2026-07-28 20:00:00')
            OR (window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00'))
        GROUP BY ticker
        HAVING c28 > 0 AND c29 > 0
    )
)
ORDER BY day_pct DESC
Run this yourself

Nanguna ang Energy sa 1.89%, habang nasa hulihan ang Industrials sa -3.21%, na 5.1 percentage points ang layo. Ito ang sector dispersion sa araw na iyon: ibang-iba ang market tape kapag lahat ng labing-isa ay nasa loob ng isang point kumpara sa kapag kumalat ang performance sa ilang puntos.

Kung saan ipinagpalit ang mga dolyar

QueryNangungunang 6 batay sa dollars traded, nangungunang 4 batay sa shares traded: regular hours ng Hulyo 29
Ang eksaktong SQL sa likod ng bawat numero
SELECT leaderboard, ticker, dollar_volume_bn, shares_m,
    round(1000 * dollar_volume_bn / shares_m, 2) AS implied_avg_price
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-29 13:30:00' AND window_start < '2026-07-29 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-29 13:30:00' AND window_start < '2026-07-29 20:00:00'
      AND ticker NOT IN ('SPCX')
    GROUP BY ticker
    ORDER BY shares_m DESC
    LIMIT 4
)
ORDER BY leaderboard, if(leaderboard = 'by shares traded', shares_m, dollar_volume_bn) DESC
Run this yourself

Pinangunahan ng MU ang dollar board na may 44.99 bilyon na regular-hours turnover, habang nasa likod nito ang SPY na may 42.29 bilyon. Iba ang sinasagot ng share board: nanguna rito ang SNXX na may 173.4 milyong shares at implied average price na $7.32. Ipinapakita ng dollar volume kung saan nakatuon ang atensiyon ng market, habang ipinapakita ng share volume ang dalas ng pagpapalit ng pagmamay-ari. Ang bersiyon ng panukat na ito para sa bawat pangalan ay relative volume.

Ang options tape

QueryOptions tape: contracts, call share, same-day share kumpara sa Martes, pinakaabalang SPY contract
Ang eksaktong SQL sa likod ng bawat numero
WITH
    (
        SELECT (strike, typ, vol_m, is_0dte)
        FROM (
            SELECT toFloat64(any(strike_price)) AS strike, any(option_type) AS typ,
                   round(toFloat64(sum(size)) / 1e6, 2) AS vol_m,
                   if(substring(ticker, length(ticker) - 14, 6) = '260729', 1, 0) AS is_0dte
            FROM global_markets.options_trades
            WHERE sip_timestamp >= '2026-07-29 00:00:00' AND sip_timestamp < '2026-07-30 00:00:00'
              AND underlying_symbol = 'SPY'
            GROUP BY ticker
            ORDER BY vol_m DESC, strike ASC
            LIMIT 1
        )
    ) AS top_spy,
    (
        SELECT round(toFloat64(argMax(close, window_start)), 2)
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY' AND window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00'
    ) AS spy_regular_close,
    (
        SELECT round(toFloat64(sum(size)) / 1e6, 2)
        FROM global_markets.options_trades
        WHERE sip_timestamp >= '2026-07-28 00:00:00' AND sip_timestamp < '2026-07-29 00:00:00'
    ) AS jul28_contracts_m,
    (
        SELECT round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260728') / sum(size), 1)
        FROM global_markets.options_trades
        WHERE sip_timestamp >= '2026-07-28 00:00:00' AND sip_timestamp < '2026-07-29 00:00:00'
    ) AS jul28_pct_0dte
SELECT
    round(count() / 1e6, 2) AS option_prints_m,
    round(toFloat64(sum(size)) / 1e6, 2) AS contracts_m,
    jul28_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) = '260729') / sum(size), 1) AS pct_0dte,
    jul28_pct_0dte,
    spy_regular_close,
    top_spy.1 AS top_spy_strike,
    top_spy.2 AS top_spy_type,
    top_spy.3 AS top_spy_contracts_m,
    top_spy.4 AS top_spy_is_0dte,
    round(top_spy.1 - spy_regular_close, 2) AS top_spy_strike_minus_close
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-29 00:00:00' AND sip_timestamp < '2026-07-30 00:00:00'
Run this yourself

Nagtala ang options tape ng 11.03 milyong trades para sa 66.84 milyong contracts, kumpara sa 59.28 milyon noong Martes. Umabot sa 53.6% ng volume ng contracts ang calls. Ang mga contract na nag-expire sa parehong session, o ang mga zero-days-to-expiry, ay umabot sa 33.1% kumpara sa 29% noong Martes. Ang ritmo nito ay itinakda ng timing ng expiration. Ang pinaka-aktibong SPY contract ay ang 735 P, na may 0.36 milyong contracts. Ang strike nito ay 5.49 dollars mula sa regular close ng SPY na $729.51, batay sa strike minus close.

Ang quote tape

Ang quote data ang pinakakaunting dataset ng desk na ito, at sinusukat ito sa bawat session. Itinatala rin ang mga ordinaryong araw.

QueryBilang ng NBBO updates ng stocks: Hulyo 29 kumpara sa Hulyo 28, kasama ang updates ng mga pinangalanang ticker (millions)
Ang eksaktong SQL sa likod ng bawat numero
SELECT
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-29')) / 1e6, 2) AS jul29_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-28')) / 1e6, 2) AS jul28_updates_m,
    round((countIf(toDate(sip_timestamp) = toDate('2026-07-29')) / countIf(toDate(sip_timestamp) = toDate('2026-07-28')) - 1) * 100, 1) AS day_over_day_pct,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-29') AND ticker = 'SPY') / 1e6, 2) AS jul29_spy_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-29') AND ticker = 'QQQ') / 1e6, 2) AS jul29_qqq_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-29') AND ticker = 'NVDA') / 1e6, 2) AS jul29_nvda_updates_m
FROM global_markets.cache_stocks_quotes
WHERE sip_timestamp >= '2026-07-28 00:00:00' AND sip_timestamp < '2026-07-30 00:00:00'
Run this yourself

Nagtala ang stock-quote tape ng 722.65 milyong NBBO updates kumpara sa 536.07 milyon noong Martes, isang day-over-day na pagbabago na 34.8%. Nagtala ang SPY ng 7.32 milyong updates, ang QQQ ng 8.72 milyon, at ang NVDA ng 4.41 milyon.

QueryPitong pangalan: median quoted spread sa RTH sa basis points, kasama ang quote-quality counts, Hulyo 29
Ang eksaktong SQL sa likod ng bawat numero
SELECT ticker,
       round(quantileExactIf(0.5)(10000 * (toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2), bid_price > 0 AND ask_price > 0 AND ask_price >= bid_price), 2) AS median_spread_bps,
       round(count() / 1e6, 2) AS quote_updates_m,
       countIf(bid_price <= 0 OR ask_price <= 0) AS one_sided_quote_count,
       countIf(bid_price > ask_price AND bid_price > 0 AND ask_price > 0) AS crossed_quote_count
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('AAPL', 'DIA', 'IWM', 'NVDA', 'QQQ', 'SPY', 'TSLA')
  AND sip_timestamp >= '2026-07-29 13:30:00' AND sip_timestamp < '2026-07-29 20:00:00'
GROUP BY ticker
HAVING countIf(bid_price > 0 AND ask_price > 0 AND ask_price >= bid_price) > 0
ORDER BY ticker
Run this yourself

Ang median quoted spread ng SPY sa regular hours ay 0.27 basis points ng mid, ang sa QQQ ay 0.75, at ang sa NVDA ay 1.55. Ang huling dalawang column ang disclosure: binibilang ang one-sided at crossed quotes sa bawat pangalan at inihihiwalay ang mga ito sa median, sa halip na tahimik na alisin. Ang crossed quote, kung saan mas mataas ang bid kaysa ask, ay karaniwang artifact ng consolidated feed na pinagsama mula sa maraming venue sa nanosecond resolution.

QueryMedian spread ng SPY na naka-rank kumpara sa bawat July session, pinakamakitid muna
Ang eksaktong SQL sa likod ng bawat numero
SELECT round(anyIf(spread_bps, d = toDate('2026-07-29')), 2) AS jul29_median_spread_bps,
       arrayCount(x -> x < anyIf(spread_bps, d = toDate('2026-07-29')), groupArrayIf(spread_bps, d != toDate('2026-07-29'))) + 1 AS rank_tightest,
       count() AS sessions_compared,
       toString(min(d)) AS first_session
FROM (
    SELECT toDate(sip_timestamp) AS d,
           quantileExactIf(0.5)(10000 * (toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2), bid_price > 0 AND ask_price > 0 AND ask_price >= bid_price) AS spread_bps
    FROM global_markets.cache_stocks_quotes
    WHERE ticker = 'SPY'
      AND sip_timestamp >= '2026-07-01 13:30:00' AND sip_timestamp < '2026-07-29 20:00:00'
      AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
    GROUP BY d
    HAVING countIf(bid_price > 0 AND ask_price > 0 AND ask_price >= bid_price) > 0
)
Run this yourself

Kung ihahambing sa bawat July session gamit ang parehong logic, ang median spread ng SPY na 0.27 basis points noong araw na iyon ay nasa 20 ng 20, binilang mula sa pinakamaliit, sa window na nagsimula noong 2026-07-01. Sa isang tahimik na tape, ito ang punto ng panel: ang ordinaryong araw para sa liquidity ay isang finding na inilathala at may malinaw na saklaw.

QueryOptions NBBO tape: kabuuang updates kumpara sa stock tape, kasama ang SPY root slice, Hulyo 29
Ang eksaktong SQL sa likod ng bawat numero
WITH
    (SELECT count() FROM global_markets.cache_options_quotes WHERE sip_timestamp >= '2026-07-29 00:00:00' AND sip_timestamp < '2026-07-30 00:00:00') AS jul29_options_rows,
    (SELECT count() FROM global_markets.cache_stocks_quotes WHERE sip_timestamp >= '2026-07-29 00:00:00' AND sip_timestamp < '2026-07-30 00:00:00') AS jul29_stock_quote_rows
SELECT
    round(jul29_options_rows / 1e9, 2) AS jul29_options_bn,
    round(jul29_options_rows / jul29_stock_quote_rows, 1) AS options_to_stock_ratio,
    round((SELECT count() FROM global_markets.cache_options_quotes WHERE ticker >= 'O:SPY26' AND ticker < 'O:SPY27' AND sip_timestamp >= '2026-07-29 13:30:00' AND sip_timestamp < '2026-07-29 20:00:00') / 1e6, 0) AS jul29_spy_options_m
Run this yourself

Umabot sa 13.55 billion updates ang options NBBO tape, o 18.8 beses ng stock quote tape, habang ang SPY root lamang ay nagtala ng 600 milyong updates sa regular hours.

Mga Rate

QueryTreasury curve prints na naka-file, Hulyo 24 hanggang Hulyo 29
Ang eksaktong SQL sa likod ng bawat numero
SELECT toString(date) AS date,
       round(toFloat64(yield_2_year), 2) AS yield_2y_pct,
       round(toFloat64(yield_10_year), 2) AS yield_10y_pct,
       round(toFloat64(yield_30_year), 2) AS yield_30y_pct,
       round((toFloat64(yield_10_year) - toFloat64(yield_2_year)) * 100) AS spread_2s10s_bp
FROM global_markets.treasury_yields
WHERE date >= '2026-07-24' AND date <= '2026-07-29'
ORDER BY date
Run this yourself

Ang file ng Treasury ay karaniwang nahuhuli ng isang session kumpara sa tape, kaya inilalahad ng panel na ito ang mga naitalang trade na hawak nito: mga row na may petsa na 4 sa loob ng window. Ang pinakabago, na may petsang 2026-07-29, ay nagtakda sa two-year sa 4.22%, ten-year sa 4.67%, at thirty-year sa 5.2%, na may two-to-ten-year spread na 45 basis points.

Ang kalendaryong nasa likod ng araw

QueryEx-dividends, splits, listings, news, at ang mix ng SEC filings noong Hulyo 29
Ang eksaktong SQL sa likod ng bawat numero
WITH
    (
        SELECT (argMax(t, (n, t)), max(n))
        FROM (
            SELECT t, count() AS n
            FROM (
                SELECT arrayJoin(tickers) AS t
                FROM global_markets.stocks_news
                WHERE published_utc >= '2026-07-29 04:00:00' AND published_utc < '2026-07-30 04:00:00'
            )
            WHERE t != 'SPCX'
            GROUP BY t
        )
    ) AS top_news,
    (
        SELECT (count(), uniqExact(cik), countIf(form_type = '4'), countIf(form_type = '8-K'), countIf(form_type = '424B2'), countIf(form_type = '10-Q'))
        FROM global_markets.stocks_sec_edgar_index
        WHERE filing_date = '2026-07-29'
    ) AS fil
SELECT
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-29') AS ex_dividend_records,
    (SELECT countIf(toFloat64(split_from) > toFloat64(split_to)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-29') AS reverse_splits,
    (SELECT countIf(toFloat64(split_to) > toFloat64(split_from)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-29') AS forward_splits,
    (SELECT count() FROM global_markets.stocks_ipos WHERE listing_date = '2026-07-29') AS listings,
    (SELECT count() FROM global_markets.stocks_news WHERE published_utc >= '2026-07-29 04:00:00' AND published_utc < '2026-07-30 04:00:00') AS news_articles,
    (SELECT uniqExact(JSONExtractString(publisher, 'name')) FROM global_markets.stocks_news WHERE published_utc >= '2026-07-29 04:00:00' AND published_utc < '2026-07-30 04:00:00') AS news_publishers,
    top_news.1 AS top_news_ticker,
    top_news.2 AS top_news_n,
    fil.1 AS fil_total,
    fil.2 AS fil_filers,
    fil.3 AS fil_form4,
    fil.4 AS fil_8k,
    fil.5 AS fil_424b2,
    fil.6 AS fil_10q
Run this yourself

85 talaan ng dividend ang nagkaroon ng ex-dividend date noong Hulyo 29, isinagawa ang 2 reverse at 1 forward splits, at pumasok sa tape ang 1 bagong listing. Naglaman ang news feed ng 190 artikulo mula sa 2 publisher, kung saan ang ticker na pinakamaraming coverage sa window ng feed na ito ay NVDA, na may 13 artikulo. May 5742 filing ang EDGAR daily index para sa petsang ito mula sa 3064 magkakaibang filer: 712 insider Form 4 report, 440 8-K current report, 884 424B2 pricing supplement at 174 10-Q quarterly report. May sarili itong iskedyul ang index, at iniuulat ng panel na ito ang anumang hawak nito sa oras ng pagbuo.

Nakatakda

Para sa natitirang bahagi ng linggo, basahin ang parehong mga talahanayan, habang sadyang tinitingnan ang lampas sa kasalukuyang period.

QueryHulyo 30 at 31 sa calendar: closures, ex-dividends, splits, Friday expiry, at ang lag ng short interest
Ang eksaktong SQL sa likod ng bawat numero
SELECT
    (SELECT count() FROM global_markets.stocks_market_holidays WHERE date >= '2026-07-30' AND date <= '2026-07-31' AND status != 'open') AS closures_rest_of_week,
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date >= '2026-07-30' AND ex_dividend_date <= '2026-07-31') AS exdiv_records_rest_of_week,
    (SELECT countIf(ticker IN ('AAPL', 'MSFT', 'JPM', 'KO', 'JNJ', 'XOM', 'CVX', 'PG', 'WMT', 'HD')) FROM global_markets.stocks_dividends WHERE ex_dividend_date >= '2026-07-30' AND ex_dividend_date <= '2026-07-31') AS household_exdivs,
    (SELECT count() FROM global_markets.stocks_splits WHERE execution_date >= '2026-07-30' AND execution_date <= '2026-07-31') AS splits_rest_of_week,
    round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260731') / sum(size), 1) AS jul31_expiry_pct_of_wed_volume,
    (SELECT toString(max(settlement_date)) FROM global_markets.stocks_short_interest WHERE settlement_date <= '2026-07-29') AS latest_short_interest_settlement
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-29 00:00:00' AND sip_timestamp < '2026-07-30 00:00:00'
Run this yourself

Ipinapakita ng holiday table ang 0 pagsasara sa Huwebes, July 30, at Biyernes, July 31. Ang 611 dividend records ay magiging ex-dividend sa dalawang session na iyon, kabilang ang 0 sa sampung sinuring household names, at nakatakdang ipatupad ang 12 splits. Sa option volume noong Miyerkules, 19.7% ay nasa mga kontratang nakatakdang mag-expire sa Biyernes, July 31. Ang pinakabagong short-interest settlement na nasa file ay 2026-07-15, isang file na inilalabas nang may sapat na delay para magkaroon ng sarili nitong paliwanag.

Ang session, na-verify

QueryPag-verify ng session: unang/huling SPY bar ET, bilang ng regular bars, holiday receipts, susunod na closure
Ang eksaktong SQL sa likod ng bawat numero
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,
    countIf(window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00') AS regular_session_bars,
    uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00') AS day_sessions,
    (SELECT count() FROM global_markets.stocks_market_holidays WHERE date = '2026-07-29') AS jul29_holiday_rows,
    (SELECT toString(min(date)) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-29' AND date <= '2026-12-31' AND status = 'closed') AS next_closure_date,
    (SELECT argMin(name, date) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-29' AND date <= '2026-12-31' AND status = 'closed') AS next_closure_name
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-29 00:00:00' AND window_start < '2026-07-30 00:00:00'
Run this yourself

Isang buong regular session: unang SPY bar sa 04:00 ET, huling bar sa 19:59 ET, 390 regular-hours bars, 1 session sa window, at 0 holiday rows para sa petsa. Ang susunod na nakaiskedyul na pagsasara ay Labor Day sa 2026-09-07.

Mga FAQ

Kumusta ang stock market noong Miyerkules, Hulyo 29, 2026?

Nagbago ang SPY ng -1.52% close over close sa $729.51, habang nasa -2.07% ang QQQ, -2.19% ang DIA at -1.63% ang IWM. Sa mga liquid na pangalan, tumaas ang 1652 at bumaba ang 4342.

Aling sektor ang nanguna noong Hulyo 29, 2026?

Ang Energy, sa 1.89%, batay sa labing-isang SPDR select-sector funds. Ang pinakamahina sa labing-isa, ang Industrials, ay nagtala ng -3.21%.

Gaano kaaktibo ang options market noong Hulyo 29, 2026?

66.84 milyong kontrata ang na-trade, kumpara sa 59.28 milyon noong nakaraang session. Ang same-day contracts ay bumuo ng 33.1% ng volume, at ang calls ay 53.6%.

Aling stock ang may pinakamalaking dollar trading volume noong Hulyo 29, 2026?

Ang MU, na may 44.99 bilyong regular-hours dollar volume, na mas mataas kaysa sa SPY na may 42.29 bilyon.

Mga tala sa datos

Ipinagpapatuloy ng edisyong ito ang daily series; ang naunang daily edition ay Hulyo 10, 2026, at ang weekly recap ay naglalaman ng linggo bago nito. Ang mga panel na pinangalanan ayon sa ticker ay nakaayos nang paalpabeto upang tumukoy ang prose sa mga nakapirming row; ang mga leaderboard at mover board ay nakaayos ayon sa value, at bawat positional claim na dala ng mga ito ay may naka-encode na sanity bound. Ang mega-cap basket at ang eleven-fund sector basket ay mga itinakda at hindi nagbabagong set, hindi mga vendor classification. Gumagamit ang mover boards ng five-million-dollar turnover bar para sa regular hours, inaalis ang anumang pangalan na nagkaroon ng split na na-execute sa pagitan ng dalawang close na sinusukat ng mga ito, at inaalis ang isang reused symbol sa ilalim ng house ambiguity guard, kaya ang bawat callout ay napupunta sa isang pangalang maaaring beripikahin. Binibilang ng quote panels ang one-sided at crossed quotes bawat pangalan sa halip na tahimik na alisin ang mga ito. Dumarating ang file ng Treasury at ang EDGAR daily index ayon sa kani-kanilang schedule, kaya iniuulat ng mga panel na iyon ang hawak nilang data sa halip na ipagpalagay na dumating na ito. Walang implied-volatility index dito: hindi lisensyado ang mga series na iyon sa warehouse na ito, kaya sinusukat ang volatility mula sa tape sa pamamagitan ng ranges, same-day options share at gawi ng quotes.

Metodolohiya

  • Pinagmulan ng market data: consolidated tape. delayed_stocks_minute_aggs para sa mga presyo at volume, options_trades para sa options tape, at cache_stocks_quotes at cache_options_quotes para sa mga NBBO panel.
  • Pagsasara: ang huling regular-session minute bar, hindi kailanman isang ipinagpalagay na 16:00 print at hindi rin extended-hours print.
  • Pangangasiwa sa time zone: UTC ang lahat ng nakaimbak na timestamp; raw UTC literals ang ginagamit sa WHERE clauses, at lumilitaw lamang ang toTimeZone sa mga SELECT list para sa mga ET label.
  • Pagpapatunay ng session: batay sa holiday table at sa mga naobserbahang bar, hindi kailanman batay lamang sa calendar.
  • Mga paghahambing sa naunang session: kinakalkula sa loob ng query mula July 28, at hindi kinukuha mula sa naunang post.
  • Mga decimal: kino-convert sa Float64 ang mga column ng presyo, size at volume bago ang anumang division o product.
  • Mga deterministic aggregate: exact quantiles at tuple-keyed tie-breaks sa buong proseso; ang bawat pahayag tungkol sa pagkakasunod-sunod o direksiyon ay ine-encode bilang sanity bound.
  • As-of date ng warehouse: August 1, 2026, tatlong araw matapos ang session, kaya lampas na sa karaniwang one-to-two-day ingest lag ng tape; pananatilihin ng mga bounded receipt sa itaas ang post kung may dataset na mapatunayang nawawala sa oras ng generation.

Mga cross-link: nakaraang daily recap, weekly recap, kung kailan nag-e-expire ang options, kung ano ang bid-ask spread, at ang two-to-ten-year spread.

Tumatakbo nang walang pagbabago ang bawat query sa Strasmore terminal kung nais mong ituro muli ang isang window sa ibang session.