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

Market Recap July 28, 2026: Buod ng Session

Market recap noong July 28, 2026: index scoreboard, breadth, sector spread, options flow, quote tape, rates at calendar, batay sa stored queries.

Ang market recap na ito para sa Martes, July 28, 2026 ay naglalahad ng buong session batay sa stored queries: umabot sa 0.24% ang close-over-close change ng SPY, sa 58.6% ang bahagi ng mga umakyat sa presyo sa liquid tape, at nag-print ang options tape ng 59.28 milyong contracts. Ang bawat window sa ibaba ay may tiyak na petsa sa magkabilang dulo, kaya kapag muling pinatakbo ang SQL ng anumang panel, ibabalik nito ang parehong mga figure.

Ang scoreboard

Ang bawat pagbabago ay paghahambing ng huling one-minute bar ng regular session noong July 28 at ng huling bar noong Monday July 27, na magkakasunod na trading sessions. Nakaayos nang alphabetical ang mga row, kaya nananatili sa parehong posisyon ang bawat ETF.

QuerySPY / QQQ / DIA / IWM: Hulyo 28 kumpara sa pagsara noong Hulyo 27, 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-27 13:30:00' AND window_start < '2026-07-27 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-28 13:30:00' AND window_start < '2026-07-28 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

Umusad ang DIA nang 1.07%, ang IWM nang 0.15%, ang QQQ nang -0.96%, at ang SPY nang 0.24% hanggang sa pagsara sa $740.76. Hinahati ng bawat row ang galaw sa dalawang bahagi: nagbukas ang SPY nang 0.02% kumpara sa close noong Monday at gumalaw nang 0.21% mula open hanggang close. Hindi kailangang magtugma ang overnight leg at ang intraday leg. Ang paghahati sa pagitan ng mga ito ang unang fingerprint ng isang session.

Hindi ba pangkaraniwan ang araw?

Kaunti ang ibig sabihin ng numero ng isang session kung hindi alam ang distribution sa likod nito. Kaya niraranggo ang araw sa loob ng sarili nitong trailing month gamit ang parehong pamamaraan.

QueryGalaw ng SPY sa araw ayon sa trailing context (open-to-close, Hunyo 29 hanggang Hulyo 28)
Ang eksaktong SQL sa likod ng bawat numero
SELECT
    round(anyIf(oc_pct, d = toDate('2026-07-28')), 2) AS spy_open_to_close_pct,
    arrayCount(x -> x > abs(anyIf(oc_pct, d = toDate('2026-07-28'))), groupArrayIf(abs(oc_pct), d != toDate('2026-07-28'))) + 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-29 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 0.21% ay nasa ika-14 puwesto sa 21 trailing sessions batay sa absolute size, sa window na umaabot pabalik sa 2026-06-29. Binibilang ng ranggo kung ilang iba pang session sa window ang may mas malaking galaw, at nagdadagdag ng isa. Kaya ang first place ang pinakamalaking galaw sa trailing month.

Lawak ng Partisipasyon

Isang numero ang antas ng index. Binibilang ng lawak ng partisipasyon kung ilang stock ang gumalaw kasabay nito.

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

Sa 6008 pangalan na lumampas sa one-million-dollar turnover threshold sa regular hours, nagsara ang 3519 na mas mataas kaysa sa close noong Lunes at nagsara ang 2423 na mas mababa, na may bahagdan ng mga umangat na 58.6%. Isinama sa bilang ang 5346 na mas kaunti ang trading volume, sa halip na tahimik na alisin ang mga ito.

Ang mega-cap shelf

Pareho ang walong mega-cap names na lumalabas sa bawat session. Nakaayos ang mga ito ayon sa alpabeto para manatili ang bawat isa sa sariling row. Ang fixed basket ang mahalaga: natututunan ng reader ang mga row, at walang editorial na pumipili ng mga panalo pagkatapos ng aktwal na resulta.

QueryWalong mega-cap: pagbabago kumpara sa Hulyo 27 at regular-hours dollars, Hulyo 28
Ang eksaktong SQL sa likod ng bawat numero
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-28 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-28 00:00:00')) AS day_close,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-28 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-27 13:30:00' AND window_start < '2026-07-27 20:00:00')
        OR (window_start >= '2026-07-28 13:30:00' AND window_start < '2026-07-28 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.97%, ang META ng -0.05%, ang MSFT ng 1.12%, at ang NVDA ng 0.23% sa regular-hours turnover na 21.11 billion dollars, habang nasa -0.57% ang TSLA. Ipinapakita ng dollar column kung gaano kalaking bahagi ng tape ang kinakatawan ng walong names na ito nang sila lamang; ang breadth panel sa itaas ang sumusukat kung gaano kalawak na sumabay sa kanila ang natitirang market.

Mga gumalaw sa araw

Kapwa nangangailangan ang dalawang board ng five million dollars na turnover sa regular hours. Hindi isinama ang anumang pangalan na ang split ay na-execute sa pagitan ng dalawang close na sinusukat nila. Hindi rin isinama ang isang simbolong muling ginamit alinsunod sa ambiguity guard ng kompanya na inilalarawan sa notes.

QueryPinakamalalaking gainers at decliners: pagsara noong Hulyo 28 kumpara sa pagsara noong Hulyo 27, $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((c28 / c27 - 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-27 13:30:00' AND window_start < '2026-07-27 20:00:00') AS c27,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-28 13:30:00' AND window_start < '2026-07-28 20:00:00') AS c28,
               sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-28 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-27' AND execution_date <= '2026-07-28')
          AND window_start >= '2026-07-27 13:30:00' AND window_start < '2026-07-28 20:00:00'
        GROUP BY ticker
        HAVING c27 > 0 AND c28 > 0 AND dv >= 5000000
    )
    ORDER BY day_pct DESC
    LIMIT 8
    UNION ALL
    SELECT 'decliners' AS board, ticker, round((c28 / c27 - 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-27 13:30:00' AND window_start < '2026-07-27 20:00:00') AS c27,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-28 13:30:00' AND window_start < '2026-07-28 20:00:00') AS c28,
               sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-28 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-27' AND execution_date <= '2026-07-28')
          AND window_start >= '2026-07-27 13:30:00' AND window_start < '2026-07-28 20:00:00'
        GROUP BY ticker
        HAVING c27 > 0 AND c28 > 0 AND dv >= 5000000
    )
    ORDER BY day_pct ASC
    LIMIT 8
)
ORDER BY board DESC, abs(day_pct) DESC
Run this yourself

Ang nangungunang tumaas sa board, STKH, ay gumalaw ng 166.7% sa 113.2 million dollars na na-trade. Ang pinakamalaking bumaba, YYAI, ay nag-print ng -71% sa 18.3 million. Itinatala ng page na ito ang mga laki at resibo; wala itong ikinakabit na kuwento sa mga ito.

Pagkakaiba-iba ng performance ng mga sektor

Ang labing-isang SPDR select-sector funds, batay sa pagsara noong July 28 kumpara sa July 27, ay inayos mula sa pinakamahusay hanggang sa pinakamahina. Nakapirmi ang basket na ito at malinaw na tinukoy; hindi ito classification ng vendor.

QuerySector ETFs, pagsara noong Hulyo 28 kumpara sa pagsara noong Hulyo 27, naka-ranggo
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((c28 / c27 - 1) * 100, 2) AS day_pct
    FROM (
        SELECT ticker,
               argMaxIf(toFloat64(close), window_start, window_start < '2026-07-28 00:00:00') AS c27,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-28 00:00:00') AS c28
        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-27 13:30:00' AND window_start < '2026-07-27 20:00:00')
            OR (window_start >= '2026-07-28 13:30:00' AND window_start < '2026-07-28 20:00:00'))
        GROUP BY ticker
        HAVING c27 > 0 AND c28 > 0
    )
)
ORDER BY day_pct DESC
Run this yourself

Nanguna ang Health Care sa 2.36%, habang nasa hulihan ang Technology sa -1.9%, na 4.26 percentage points ang naiwan. Iyan ang sector dispersion ng araw: ibang-iba ang galaw ng market kapag lahat ng labing-isang sektor ay nasa loob ng isang point kumpara sa kapag kumalat ang mga ito sa ilang puntos.

Kung saan nag-trade ang mga dollar

QueryTop 6 ayon sa dollars traded, top 4 ayon sa shares traded: regular hours noong Hulyo 28
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-28 13:30:00' AND window_start < '2026-07-28 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-28 13:30:00' AND window_start < '2026-07-28 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 sa turnover na 39.21 bilyon sa regular hours, kasunod ang QQQ sa 29.98 bilyon. Ibang tanong ang sinasagot ng share board: nanguna rito ang ONFO sa 182.4 milyong shares, na may implied average price na $0.16. Ipinapakita ng dollar volume kung saan nakatuon ang atensyon ng market, habang ipinapakita ng share volume ang churn nito. 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 Lunes, 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) = '260728', 1, 0) AS is_0dte
            FROM global_markets.options_trades
            WHERE sip_timestamp >= '2026-07-28 00:00:00' AND sip_timestamp < '2026-07-29 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-28 13:30:00' AND window_start < '2026-07-28 20:00:00'
    ) AS spy_regular_close,
    (
        SELECT round(toFloat64(sum(size)) / 1e6, 2)
        FROM global_markets.options_trades
        WHERE sip_timestamp >= '2026-07-27 00:00:00' AND sip_timestamp < '2026-07-28 00:00:00'
    ) AS jul27_contracts_m,
    (
        SELECT round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260727') / sum(size), 1)
        FROM global_markets.options_trades
        WHERE sip_timestamp >= '2026-07-27 00:00:00' AND sip_timestamp < '2026-07-28 00:00:00'
    ) AS jul27_pct_0dte
SELECT
    round(count() / 1e6, 2) AS option_prints_m,
    round(toFloat64(sum(size)) / 1e6, 2) AS contracts_m,
    jul27_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) = '260728') / sum(size), 1) AS pct_0dte,
    jul27_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-28 00:00:00' AND sip_timestamp < '2026-07-29 00:00:00'
Run this yourself

Nag-print ang options tape ng 10.07 milyong trades para sa 59.28 milyong contracts, kumpara sa 64.69 milyon noong Lunes. Umabot ang calls sa 55% ng contract volume. Ang mga contract na nag-expire sa parehong session, o ang grupong zero-days-to-expiry, ay umabot sa 29% kumpara sa 39.3% noong Lunes. Ang galaw na ito ay itinakda ng timing ng expiration. Ang pinaka-abalang SPY contract ay ang 742 C na may 0.72 milyong contracts. Ang strike nito ay 1.24 dollars ang layo sa regular close ng SPY na $740.76, na sinukat bilang 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 karaniwang araw.

QueryBilang ng NBBO updates ng stocks: Hulyo 28 kumpara sa Hulyo 27, 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-28')) / 1e6, 2) AS jul28_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-27')) / 1e6, 2) AS jul27_updates_m,
    round((countIf(toDate(sip_timestamp) = toDate('2026-07-28')) / countIf(toDate(sip_timestamp) = toDate('2026-07-27')) - 1) * 100, 1) AS day_over_day_pct,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-28') AND ticker = 'SPY') / 1e6, 2) AS jul28_spy_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-28') AND ticker = 'QQQ') / 1e6, 2) AS jul28_qqq_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-28') AND ticker = 'NVDA') / 1e6, 2) AS jul28_nvda_updates_m
FROM global_markets.cache_stocks_quotes
WHERE sip_timestamp >= '2026-07-27 00:00:00' AND sip_timestamp < '2026-07-29 00:00:00'
Run this yourself

Nagtala ang stock-quote tape ng 536.07 milyong NBBO updates kumpara sa 553.53 milyon noong Lunes, isang day-over-day na pagbabago na -3.2%. Nagtala ang SPY ng 4.72 milyong updates, ang QQQ ng 5.94 milyon, at ang NVDA ng 3.01 milyon.

QueryPitong pangalan: RTH median quoted spread sa basis points, kasama ang bilang ng quote-quality, Hulyo 28
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-28 13:30:00' AND sip_timestamp < '2026-07-28 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, habang 0.74 para sa QQQ at 1.52 para sa NVDA. Ang huling dalawang column ang disclosure: binibilang ang one-sided at crossed quotes para sa bawat pangalan at inihihiwalay ang mga ito sa median sa halip na basta 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 inihanay laban sa bawat session ng Hulyo, pinakamakitid muna
Ang eksaktong SQL sa likod ng bawat numero
SELECT round(anyIf(spread_bps, d = toDate('2026-07-28')), 2) AS jul28_median_spread_bps,
       arrayCount(x -> x < anyIf(spread_bps, d = toDate('2026-07-28')), groupArrayIf(spread_bps, d != toDate('2026-07-28'))) + 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-28 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 ikukumpara sa bawat July session gamit ang kaparehong logic, ang median spread ng SPY sa araw na iyon na 0.27 basis points ay nasa ika-16 sa 19, mula sa pinakamaliit, sa window na nagsisimula sa 2026-07-01. Sa isang tahimik na tape, iyon ang punto ng panel: ang isang karaniwang 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 28
Ang eksaktong SQL sa likod ng bawat numero
WITH
    (SELECT count() FROM global_markets.cache_options_quotes WHERE sip_timestamp >= '2026-07-28 00:00:00' AND sip_timestamp < '2026-07-29 00:00:00') AS jul28_options_rows,
    (SELECT count() FROM global_markets.cache_stocks_quotes WHERE sip_timestamp >= '2026-07-28 00:00:00' AND sip_timestamp < '2026-07-29 00:00:00') AS jul28_stock_quote_rows
SELECT
    round(jul28_options_rows / 1e9, 2) AS jul28_options_bn,
    round(jul28_options_rows / jul28_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-28 13:30:00' AND sip_timestamp < '2026-07-28 20:00:00') / 1e6, 0) AS jul28_spy_options_m
Run this yourself

Nagtala ang options NBBO tape ng 10.23 bilyong updates, 19.1 na beses ng stock quote tape, at ang SPY root lamang ay may 382 milyong updates sa regular hours.

Mga Rate

QueryTreasury curve prints na nasa file, Hulyo 23 hanggang Hulyo 28
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-23' AND date <= '2026-07-28'
ORDER BY date
Run this yourself

Ang file ng Treasury ay karaniwang nahuhuli ng isang session kumpara sa tape, kaya ang panel na ito ay nag-uulat ng mga print na hawak nito: 4 na may petsang mga row sa window. Ang pinakabago, na may petsang 2026-07-28, ay naglagay sa two-year sa 4.26%, sa ten-year sa 4.61%, at sa thirty-year sa 5.09%, na may two-to-ten-year spread na 35 basis points.

The calendar behind the day

QueryEx-dividends, splits, listings, news, at halo ng July 28 SEC filings
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-28 04:00:00' AND published_utc < '2026-07-29 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-28'
    ) AS fil
SELECT
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-28') AS ex_dividend_records,
    (SELECT countIf(toFloat64(split_from) > toFloat64(split_to)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-28') AS reverse_splits,
    (SELECT countIf(toFloat64(split_to) > toFloat64(split_from)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-28') AS forward_splits,
    (SELECT count() FROM global_markets.stocks_ipos WHERE listing_date = '2026-07-28') AS listings,
    (SELECT count() FROM global_markets.stocks_news WHERE published_utc >= '2026-07-28 04:00:00' AND published_utc < '2026-07-29 04:00:00') AS news_articles,
    (SELECT uniqExact(JSONExtractString(publisher, 'name')) FROM global_markets.stocks_news WHERE published_utc >= '2026-07-28 04:00:00' AND published_utc < '2026-07-29 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

147 dividend records went ex-dividend on July 28, 3 reverse and 0 forward splits executed, and 2 new listings hit the tape. The news feed carried 161 articles from 2 publishers, with MSFT the most-covered ticker in this one feed's window at 9 articles. The EDGAR daily index holds 5915 filings for the date from 2898 distinct filers: 856 insider Form 4 reports, 315 8-K current reports, 900 424B2 pricing supplements and 100 10-Q quarterly reports. That index lands on its own schedule, and this panel reports whatever it holds at generation time.

Nakatakda

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

QueryHulyo 29 hanggang 31 sa calendar: closures, ex-dividends, splits, Friday expiry, at 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-29' 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-29' 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-29' AND ex_dividend_date <= '2026-07-31') AS household_exdivs,
    (SELECT count() FROM global_markets.stocks_splits WHERE execution_date >= '2026-07-29' 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_tue_volume,
    (SELECT toString(max(settlement_date)) FROM global_markets.stocks_short_interest WHERE settlement_date <= '2026-07-28') AS latest_short_interest_settlement
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-28 00:00:00' AND sip_timestamp < '2026-07-29 00:00:00'
Run this yourself

Ipinapakita ng holiday table ang 0 mga pagsasara sa Miyerkules, July 29, Huwebes, July 30, at Biyernes, July 31. Ang 696 dividend records ay magiging ex-dividend sa tatlong session na iyon, 0 sa mga ito ay mula sa sampung sinuring household names, at nakatakdang isagawa ang 15 splits. Sa option volume noong Martes, 17.5% ang nasa mga kontratang nakatakdang mag-expire sa Biyernes, July 31. Ang pinakabagong short-interest settlement sa file ay 2026-07-15, isang file na inilalabas nang may sapat na lag upang 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-28 13:30:00' AND window_start < '2026-07-28 20:00:00') AS regular_session_bars,
    uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-28 13:30:00' AND window_start < '2026-07-28 20:00:00') AS day_sessions,
    (SELECT count() FROM global_markets.stocks_market_holidays WHERE date = '2026-07-28') AS jul28_holiday_rows,
    (SELECT toString(min(date)) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-28' 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-28' 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-28 00:00:00' AND window_start < '2026-07-29 00:00:00'
Run this yourself

Isang buong regular session: unang SPY bar sa 04:00 ET, huling bar sa 19:59 ET, 390 bars sa regular hours, 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 Madalas Itanong

Kumusta ang performance ng stock market noong Martes, Hulyo 28, 2026?

Nagbago ang SPY ng 0.24% mula close hanggang close sa $740.76, habang nasa -0.96% ang QQQ, 1.07% ang DIA, at 0.15% ang IWM. Sa mga liquid na pangalan, tumaas ang 3519 at bumaba ang 2423.

Aling sektor ang nanguna noong Hulyo 28, 2026?

Ang Health Care, sa 2.36%, batay sa labing-isang SPDR select-sector funds. Ang pinakamahina sa labing-isa, ang Technology, ay nagtala ng -1.9%.

Gaano kaaktibo ang options market noong Hulyo 28, 2026?

59.28 milyong kontrata ang na-trade, kumpara sa 64.69 milyon noong nakaraang session. Umabot sa 29% ng volume ang same-day contracts, at 55% naman ang bahagi ng calls.

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

Ang MU, na may 39.21 billion na regular-hours dollar volume, na sinundan ng QQQ sa 29.98 billion.

Mga tala sa datos

Pinupunan ng edisyong ito ang puwang noong July 28 sa daily series: saklaw ng daily noong July 27 ang session bago nito, saklaw ng daily noong July 29 ang session pagkatapos nito, at dala ng weekly recap ang linggo bago ang dalawang iyon. Ang mga panel na pinangalanan ayon sa ticker ay inayos nang alphabetical para tumukoy ang mga reference sa prose sa mga nakapirming row; ang leaderboards at mover boards ay inayos ayon sa value, at ang bawat positional claim na dala ng mga ito ay naka-encode bilang sanity bound. Ang mega-cap basket at ang eleven-fund sector basket ay mga idineklarang fixed set, hindi vendor classifications. Gumagamit ang mover boards ng five-million-dollar regular-hours turnover bar, inaalis ang anumang pangalan na may split na nag-execute sa pagitan ng dalawang close na sinusukat nito, at inaalis ang isang reused symbol sa ilalim ng house ambiguity guard, kaya ang bawat callout ay napupunta sa isang pangalang mabe-verify. Binibilang ng mga quote panel ang one-sided at crossed quotes sa bawat pangalan sa halip na tahimik na alisin ang mga ito. Ang file ng Treasury at ang EDGAR daily index ay dumarating ayon sa kani-kanilang schedule, kaya iniuulat ng mga panel na iyon ang aktuwal nilang hawak sa halip na ipagpalagay na dumating na ang mga ito. Walang implied-volatility index dito: hindi lisensyado ang mga series na iyon sa warehouse na ito, kaya sinusukat ang volatility mula sa tape gamit ang mga range, same-day options share at gawi ng mga quote.

Pamamaraan

  • 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 ipinapalagay na 16:00 print at hindi rin extended-hours print.
  • Pangangasiwa sa time zone: lahat ng nakaimbak na timestamp ay UTC; gumagamit ang WHERE clauses ng raw UTC literals, at lumilitaw ang toTimeZone sa SELECT lists lamang para sa mga ET label.
  • Pagpapatunay ng session: mula sa holiday table at mga naobserbahang bar, hindi kailanman ipinapalagay batay lamang sa calendar.
  • Mga paghahambing sa naunang session: kino-compute sa query mula July 27 at hindi kinokopya 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 query; ang bawat pahayag tungkol sa pagkakasunod-sunod o direksiyon ay naka-encode bilang sanity bound.
  • Warehouse as-of date: August 1, 2026, apat na araw matapos ang session at lampas sa karaniwang one-to-two-day ingest lag ng tape; pananatilihin ng mga bounded receipt sa itaas ang post kung may dataset na hindi makita sa generation.

Mga cross-link: ang daily recap para sa July 27, ang daily recap para sa July 29, 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 ilipat ang window sa ibang session.