Strasmore Research
Обзор рынка Matt ConnorАвтор: Matt Connor · Обновлено 2026-08-03

Итоги торгов на фондовом рынке за двадцать восьмое июля

Обзор рыночных данных за двадцать восьмое июля две тысячи двадцать шестого года. В отчете представлены показатели индексов, динамика секторов и объемы торгов по опционам.

Этот рыночный обзор за вторник, 28 июля 2026 года, отражает итоги всей сессии на основе сохраненных запросов: изменение цены закрытия SPY к закрытию предыдущего дня составило 0.24%, доля растущих акций в ликвидном сегменте рынка достигла 58.6%, а объем торгов на рынке опционов составил 59.28 миллиона контрактов. Каждое окно ниже привязано к конкретным датам с обеих сторон, поэтому повторный запуск SQL-запроса для любой панели вернет эти же показатели.

Табло результатов

Каждое изменение сравнивает минутный бар последней минуты регулярной сессии 28 июля с аналогичным показателем понедельника, 27 июля, для последовательных торговых сессий. Строки расположены в алфавитном порядке, поэтому каждый ETF сохраняет фиксированную позицию.

ЗапросSPY / QQQ / DIA / IWM: 28 июля к закрытию 27 июля, основная торговая сессия
Точный SQL-код для каждого числа
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

DIA изменился на 1.07%, IWM на 0.15%, QQQ на -0.96%, а SPY на 0.24% до закрытия на уровне $740.76. Каждая строка разделяет движение на два этапа: SPY открылся с гэпом 0.02% относительно закрытия понедельника и изменился на 0.21% от открытия до закрытия. Ночной этап и внутридневной этап не обязаны совпадать, и их разделение является первым индикатором сессии.

Был ли этот день необычным?

Результаты одной сессии мало что значат без понимания стоящего за ними распределения, поэтому день ранжируется внутри своего скользящего месяца по аналогичной логике.

ЗапросДинамика SPY в контексте периода (от открытия до закрытия, с 29 июня по 28 июля)
Точный SQL-код для каждого числа
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

Движение SPY от открытия до закрытия на 0.21% заняло 14 место из 21 скользящих сессий по абсолютному значению в окне, охватывающем период с 2026-06-29. Ранг показывает, сколько еще сессий в этом окне имели более значительное движение, плюс один; таким образом, первое место соответствует самому большому движению за скользящий месяц.

Рыночный охват

Уровень индекса — это одно число. Рыночный охват показывает, сколько акций двигалось вместе с ним.

ЗапросШирина рынка по ликвидным инструментам: закрытие 28 июля к 27 июля, фильтр по объему торгов от $1 млн
Точный SQL-код для каждого числа
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

Среди 6008 инструментов, объем торгов по которым в основную сессию превысил один миллион долларов, 3519 закрылись выше уровня закрытия понедельника, а 2423 — ниже, что дает долю растущих акций на уровне 58.6%. Фильтр исключил 5346 менее ликвидных бумаг, которые были учтены здесь, а не просто отброшены.

Список мегакапитализированных компаний

Одни и те же восемь компаний с мегакапитализацией появляются здесь каждую сессию, отсортированные по алфавиту, чтобы каждая сохраняла свою строку. Фиксированная корзина — это суть подхода: читатель запоминает строки, и редактор не выбирает фаворитов постфактум.

ЗапросВосемь мега-капитализированных компаний: изменение к 27 июля и объем торгов в долларах за 28 июля
Точный SQL-код для каждого числа
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

Акции AAPL изменились на 0.97%, META на -0.05%, MSFT на 1.12%, а NVDA на 0.23% при объеме торгов в основную сессию в 21.11 миллиарда долларов, при этом показатель TSLA составил -0.57%. Столбец в долларовом выражении показывает, какую долю оборота эти восемь компаний обеспечивают самостоятельно; панель широты рынка выше служит индикатором того, насколько далеко остальной рынок продвинулся вместе с ними.

Лидеры движения за день

Обе таблицы требуют наличия пяти миллионов долларов оборота в основную торговую сессию, исключают любые бумаги, по которым между двумя сравниваемыми закрытиями произошел сплит, и исключают один повторно использованный тикер согласно правилу устранения неоднозначности, описанному в примечаниях.

ЗапросЛидеры роста и падения: закрытие 28 июля к 27 июля, объем торгов от $5 млн, без учета сплитов
Точный SQL-код для каждого числа
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

Лидер роста, STKH, изменился на 166.7% при объеме торгов в 113.2 миллионов долларов. Акция с самым резким падением, YYAI, зафиксировала результат -71% при объеме в 18.3 миллионов. На этой странице отражены объемы и показатели доходности; она не содержит аналитических комментариев к ним.

Отраслевая дисперсия

Одиннадцать отраслевых фондов SPDR, сравнение цен закрытия 28 июля и 27 июля, ранжированные от лучших к худшим. Состав корзины фиксирован и определен заранее, это не классификация стороннего провайдера.

ЗапросОтраслевые ETF, закрытие 28 июля к 27 июля, ранжирование
Точный SQL-код для каждого числа
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

Health Care возглавил список с результатом 2.36%, а Technology оказался в самом низу с показателем -1.9%, отстав на 4.26 процентных пункта. Этот спред представляет собой отраслевую дисперсию за день: ситуация, когда все одиннадцать фондов укладываются в один процентный пункт, существенно отличается от картины, при которой результаты растянуты на несколько пунктов.

Где сосредоточены долларовые объемы торгов

ЗапросТоп-6 по объему торгов в долларах, топ-4 по количеству акций: основная сессия 28 июля
Точный SQL-код для каждого числа
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

MU лидирует по объему торгов в долларовом выражении с показателем 39.21 миллиарда в основную торговую сессию, за ним следует QQQ с 29.98 миллиарда. В сегменте акций картина иная: ONFO занял первое место с 182.4 миллиона акций при подразумеваемой средней цене в 0.16 доллара. Долларовый объем показывает, куда направлено внимание рынка, объем в акциях отражает интенсивность оборота, а индивидуальный показатель для каждого инструмента — это относительный объем.

Лента опционных сделок

ЗапросПоток опционов: контракты, доля колл-опционов, доля внутридневных сделок к понедельнику, наиболее активный контракт SPY
Точный SQL-код для каждого числа
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

На ленте опционных сделок зафиксировано 10.07 миллиона транзакций общим объемом 59.28 миллиона контрактов, по сравнению с 64.69 миллиона в понедельник. На долю call-опционов пришлось 55% объема контрактов. Контракты с истечением в день совершения сделки, так называемые 0DTE-опционы, составили 29% против 39.3% в понедельник, что соответствует ритму, заданному графиком экспирации. Самым активным контрактом по SPY стал 742 C с объемом 0.72 миллиона контрактов; цена исполнения этого опциона находилась на расстоянии 1.24 долларов от цены закрытия SPY на уровне $740.76 (разница между ценой исполнения и ценой закрытия).

Лента котировок

Данные по котировкам — самый дефицитный набор данных для нашего торгового подразделения, и мы измеряем его каждую сессию. Обычные торговые дни также фиксируются в отчетности.

ЗапросКоличество обновлений NBBO по акциям: 28 июля к 27 июля, с разбивкой по тикерам (млн)
Точный SQL-код для каждого числа
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

Лента котировок акций зафиксировала 536.07 миллиона обновлений NBBO против 553.53 миллионов в понедельник, изменение день к дню составило -3.2%. По SPY было зарегистрировано 4.72 миллиона обновлений, по QQQ — 5.94 миллиона, по NVDA — 3.01 миллиона.

ЗапросСемь инструментов: медианный спред RTH в базисных пунктах и показатели качества котировок, 28 июля
Точный SQL-код для каждого числа
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

Медианный котировочный спред SPY в основную торговую сессию составил 0.27 базисных пункта от средней цены, у QQQ — 0.74, у NVDA — 1.52. Последние два столбца представляют собой раскрытие информации: односторонние и пересекающиеся котировки учитываются по каждому инструменту и исключаются из расчета медианы, а не просто отбрасываются. Пересекающаяся котировка, когда цена покупки выше цены продажи, является обычным артефактом консолидированной ленты, собираемой из множества площадок с наносекундным разрешением.

ЗапросРейтинг медианного спреда SPY по всем сессиям июля, от минимального к максимальному
Точный SQL-код для каждого числа
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

При ранжировании по отношению ко всем июльским сессиям по аналогичной логике, медианный спред SPY за день, составивший 0.27 базисных пункта, оказался на 16 месте из 19, считая от самого узкого, в окне, начинающемся с 2026-07-01. В условиях спокойной ленты это предложение является сутью панели: обычный день для ликвидности — это результат, который публикуется и ограничивается рамками.

ЗапросПоток NBBO по опционам: общее количество обновлений к потоку по акциям, включая долю SPY, 28 июля
Точный SQL-код для каждого числа
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

Лента NBBO по опционам составила 10.23 миллиарда обновлений, что в 19.1 раза больше, чем лента котировок акций, при этом только по базовому активу SPY было зафиксировано 382 миллиона обновлений в основную торговую сессию.

Ставки

ЗапросКривая доходности казначейских облигаций: данные с 23 по 28 июля
Точный SQL-код для каждого числа
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

Данные Казначейства отстают от рыночных котировок примерно на одну сессию, поэтому в данной таблице представлены зафиксированные сделки: 4 строк с датами в окне наблюдения. Последние данные от 2026-07-28 показывают доходность двухлетних облигаций на уровне 4.26%, десятилетних — 4.61%, а тридцатилетних — 5.09%, что соответствует спреду между двухлетними и десятилетними бумагами в 35 базисных пунктов.

Календарь событий за день

ЗапросЭкс-дивиденды, сплиты, листинги, новости и отчетность SEC за 28 июля
Точный SQL-код для каждого числа
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 дивидендных записей перешли в статус ex-dividend двадцать восьмого июля, 3 обратных и 0 прямых сплитов было исполнено, а 2 новых листингов вышли на торги. Лента новостей содержала 161 статей от 2 издателей, при этом MSFT стал самым освещаемым тикером в окне данной ленты с показателем в 9 статей. Ежедневный индекс EDGAR содержит 5915 отчетов за эту дату от 2898 отдельных эмитентов: 856 инсайдерских отчетов по форме 4, 315 текущих отчетов по форме 8-K, 900 дополнений к ценообразованию 424B2 и 100 квартальных отчетов 10-Q. Этот индекс формируется по собственному графику, и данная панель отображает те данные, которые доступны на момент генерации.

В ближайшей повестке

Оставшуюся часть недели следует анализировать по тем же таблицам, намеренно игнорируя текущий период.

ЗапросКалендарь на 29–31 июля: закрытия, экс-дивиденды, сплиты, экспирация в пятницу и лаг по коротким позициям
Точный SQL-код для каждого числа
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

Календарь праздничных дней указывает на 0 закрытий в среду 29 июля, четверг 30 июля и пятницу 31 июля. 696 эмитентов выходят на ex-dividend date в течение этих трех сессий, 0 из них входят в десятку проверенных компаний с высокой капитализацией, также запланировано 15 дробление акций. Из общего объема опционных контрактов во вторник 17.5% приходилось на инструменты со сроком экспирации в пятницу, 31 июля. Последние доступные данные по объему коротких позиций датированы 2026-07-15; этот отчет публикуется с задержкой, достаточной для того, чтобы иметь собственное пояснение.

Торговая сессия, подтверждено

ЗапросВерификация сессии: время первого/последнего бара SPY (ET), количество основных баров, праздничные данные, следующее закрытие
Точный SQL-код для каждого числа
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

Полноценная регулярная сессия: первый бар SPY в 04:00 по восточному времени, последний в 19:59 по восточному времени, 390 баров в рамках регулярных торгов, 1 сессий в окне и 0 праздничных строк для данной даты. Следующее запланированное закрытие торгов состоится Labor Day числа 2026-09-07.

Часто задаваемые вопросы

Как закрылся фондовый рынок во вторник, 28 июля 2026 года?

Фонд SPY изменился на 0.24% по сравнению с ценой закрытия предыдущего дня, достигнув $740.76; котировки QQQ составили -0.96%, DIA — 1.07%, а IWM — 0.15%. Среди ликвидных бумаг акции 3519 выросли, а 2423 — снизились.

Какой сектор показал лучшие результаты 28 июля 2026 года?

Сектор Health Care с результатом 2.36%, если оценивать по одиннадцати отраслевым фондам SPDR. Самым слабым из одиннадцати стал Technology, зафиксировавший -1.9%.

Насколько активным был рынок опционов 28 июля 2026 года?

Объем торгов составил 59.28 миллиона контрактов по сравнению с 64.69 миллионами в предыдущую сессию. На долю контрактов с исполнением в тот же день пришлось 29% от общего объема, а на долю call-опционов — 55%.

Акции какой компании показали наибольший объем торгов в денежном выражении 28 июля 2026 года?

MU с объемом торгов в основную сессию на уровне 39.21 миллиарда долларов, опередив QQQ с показателем 29.98 миллиарда долларов.

Примечания к данным

Этот выпуск заполняет пробел в ежедневной серии за двадцать восьмое июля: ежедневный обзор за двадцать седьмое июля охватывает сессию до него, ежедневный обзор за двадцать девятое июля — сессию после, а еженедельный обзор содержит данные за неделю, предшествующую обоим дням. Панели с разбивкой по тикерам отсортированы в алфавитном порядке, чтобы ссылки в тексте указывали на фиксированные строки; таблицы лидеров и наиболее активных бумаг отсортированы по значению, и каждое утверждение о позиции в них подкреплено проверкой на достоверность. Корзина акций с мега-капитализацией и корзина из одиннадцати отраслевых фондов являются фиксированными наборами, а не классификациями поставщиков данных. Таблицы наиболее активных бумаг применяют порог оборота в пять миллионов долларов в основную торговую сессию, исключают любые инструменты, по которым между двумя сравниваемыми закрытиями произошел сплит, и исключают один повторно использованный символ согласно правилу устранения неоднозначности, чтобы упоминание всегда соответствовало проверяемому названию. Панели котировок учитывают односторонние и пересекающиеся котировки по каждому наименованию, а не игнорируют их. Файл Казначейства и ежедневный индекс EDGAR публикуются по собственному графику, поэтому эти панели отражают имеющиеся данные, а не предполагают их поступление. Индексы подразумеваемой волатильности здесь не представлены: эти серии не лицензированы для данного хранилища, поэтому волатильность считывается непосредственно с ленты сделок через диапазоны, объемы опционов внутри дня и поведение котировок.

Методология

  • Источник рыночных данных: консолидированная лента. delayed_stocks_minute_aggs для цен и объемов, options_trades для ленты опционов, cache_stocks_quotes и cache_options_quotes для панелей NBBO.
  • Закрытие: последний минутный бар основной торговой сессии, не предполагаемый принт в 16:00 и не принт внеурочных торгов.
  • Обработка часовых поясов: все сохраненные временные метки указаны в UTC; предложения WHERE используют необработанные литералы UTC, а toTimeZone появляется только в списках SELECT для меток ET.
  • Верификация сессии: на основе таблицы праздничных дней и наблюдаемых баров, а не на основе календаря.
  • Сравнение с предыдущей сессией: вычисляется внутри запроса от двадцать седьмого июля, данные не переносятся из предыдущих публикаций.
  • Десятичные дроби: столбцы цены, размера и объема приводятся к типу Float64 перед любым делением или умножением.
  • Детерминированные агрегаты: точные квантили и разрешение ничьих по кортежным ключам; каждое утверждение о порядке или знаке в тексте закодировано как предел достоверности.
  • Дата актуальности хранилища: первое августа две тысячи двадцать шестого года, через четыре дня после сессии, после обычной задержки поступления данных в ленту, составляющей от одного до двух дней; указанные выше ограниченные поступления сохраняют публикацию, если при генерации обнаруживается отсутствие набора данных.

Перекрестные ссылки: ежедневный обзор за двадцать седьмое июля, ежедневный обзор за двадцать девятое июля, когда истекают опционы, что такое спред bid-ask и спред от двух до десяти лет.

Каждый запрос выше выполняется без изменений на терминале Strasmore, если вы хотите перенаправить окно на другую сессию.