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

Обзор рынка за 29 июля 2026 года итоги торгов

Анализ торговой сессии 29 июля 2026 года на основе точных данных. В обзоре представлены показатели индексов, динамика секторов, активность опционов и ключевые рыночные индикаторы.

Обзор рынка за среду, 29 июля 2026 года, отражает итоги всей торговой сессии на основе сохраненных запросов: изменение цены закрытия SPY к предыдущему закрытию составило -1.52%, доля растущих акций в ликвидном сегменте рынка достигла 27.2%, а объем торгов на рынке опционов составил 66.84 миллионов контрактов. Каждое окно ниже привязано к конкретным датам с обеих сторон, поэтому повторный запуск SQL-запроса для любой панели вернет эти же показатели.

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

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

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

DIA изменился на -2.19%, IWM на -1.63%, QQQ на -2.07%, а SPY на -1.52% до закрытия на уровне $729.51. Каждая строка разделяет движение на два этапа: SPY открылся с гэпом -0.11% относительно закрытия вторника и изменился на -1.41% от открытия до закрытия. Ночной этап и внутридневной этап не обязаны совпадать, и их соотношение является первым индикатором сессии.

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

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

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

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

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

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

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

Среди 6066 инструментов, объем торгов по которым в основную сессию превысил один миллион долларов, 1652 закрылись выше уровня закрытия вторника, а 4342 — ниже, что дает долю растущих акций на уровне 27.2%. Фильтр исключил 5363 менее ликвидных бумаг, которые были учтены здесь, а не просто отброшены.

Полка мегакапитализации

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

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

Акции AAPL изменились на -0.63%, META на -1.12%, MSFT на -0.27%, а NVDA на -3.51% при объеме торгов в основную сессию в 22.26 миллиардов долларов, при этом показатель TSLA составил -2.97%. Столбец в долларах показывает, какую долю оборота обеспечивают эти восемь бумаг самостоятельно; панель широты рынка выше служит индикатором того, насколько далеко остальной рынок продвинулся вместе с ними.

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

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

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

Лидер роста, DFNS, изменился на 119.8% при объеме торгов в 544.9 миллионов долларов. Акция с самым резким снижением, YYAI, зафиксировала результат -68.1% при объеме в 8.5 миллионов. На этой странице отражены объемы и результаты торгов; она не содержит аналитических комментариев к ним.

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

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

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

Energy возглавил список с результатом 1.89%, а Industrials оказался в самом низу с -3.21%, отстав на 5.1 процентных пункта. Этот спред отражает дневную отраслевую дисперсию: ситуация, когда все одиннадцать инструментов укладываются в один процентный пункт, существенно отличается от картины, при которой они распределены в широком диапазоне.

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

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

MU возглавил список по долларовому обороту в основную торговую сессию с показателем 44.99 миллиарда, за ним следует SPY с 42.29 миллиарда. Рейтинг по количеству акций отвечает на другой вопрос: SNXX занял первое место с 173.4 миллиона акций при подразумеваемой средней цене 7.32 доллара. Долларовый объем показывает, на какие инструменты направлено внимание рынка, объем в акциях отражает интенсивность оборота, а индивидуальный показатель для каждого инструмента — это относительный объем.

Лента опционов

ЗапросПоток опционов: контракты, доля колл-опционов, доля внутридневных сделок к вторнику, наиболее активный контракт 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) = '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

На ленте опционов зафиксировано 11.03 миллиона сделок с 66.84 миллионами контрактов по сравнению с 59.28 миллионами во вторник. На долю call-опционов пришлось 53.6% от общего объема контрактов. Контракты с истечением в ту же сессию, так называемые опционы с нулевым сроком до экспирации, составили 33.1% против 29% во вторник, что соответствует ритму, заданному графиком экспираций. Самым активным контрактом по SPY стал 735 P с объемом 0.36 миллиона контрактов; его цена исполнения находилась на расстоянии 5.49 долларов от цены закрытия SPY на уровне 729.51 долларов, рассчитанном как разница между ценой исполнения и ценой закрытия.

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

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

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

Лента котировок акций зафиксировала 722.65 миллиона обновлений NBBO против 536.07 миллионов во вторник, изменение день к дню составило 34.8%. По SPY было зарегистрировано 7.32 миллиона обновлений, по QQQ — 8.72 миллиона, по NVDA — 4.41 миллиона.

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

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

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

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

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

Лента NBBO по опционам составила 13.55 миллиарда обновлений, что в 18.8 раз больше, чем по акциям, при этом только по базовому активу SPY в основную сессию прошло 600 миллионов обновлений.

Ставки

ЗапросКривая доходности казначейских облигаций, с 24 по 29 июля
Точный 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-24' AND date <= '2026-07-29'
ORDER BY date
Run this yourself

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

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

ЗапросЭкс-дивиденды, сплиты, листинги, новости и отчетность SEC за 29 июля
Точный 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-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 дивидендных записей перешли в статус ex-dividend 29 июля, 2 обратных и 1 прямых сплитов было исполнено, а 1 новых листингов появились в ленте сделок. Новостная лента содержала 190 статей от 2 издателей, при этом NVDA стал самым освещаемым тикером в окне этой ленты с 13 статьями. Ежедневный индекс EDGAR содержит 5742 документов за эту дату от 3064 отдельных подателей: 712 отчетов инсайдеров по Form 4, 440 текущих отчетов 8-K, 884 дополнений к ценообразованию 424B2 и 174 квартальных отчетов 10-Q. Этот индекс формируется по собственному графику, и данная панель отражает те данные, которые доступны на момент генерации.

В повестке

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

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

Таблица праздничных дней показывает 0 закрытий торгов в четверг, тридцатого июля, и пятницу, тридцать первого июля. 611 дивидендных реестров закрываются в эти две сессии, 0 из них приходятся на десять проверенных известных компаний, также запланировано 12 дробление акций. В объеме торгов опционами за среду 19.7% контрактов уже имели срок истечения в пятницу, тридцать первого июля. Самые свежие данные по объему коротких позиций — 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-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

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

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

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

Котировки SPY изменились на -1.52% по сравнению с предыдущим закрытием, достигнув $729.51. QQQ закрылся на отметке -2.07%, DIA — на -2.19%, а IWM — на -1.63%. Среди наиболее ликвидных бумаг акции 1652 выросли, а 4342 снизились.

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

Сектор Energy с результатом 1.89%, если оценивать по одиннадцати отраслевым фондам SPDR. Самым слабым из одиннадцати стал Industrials, который показал -3.21%.

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

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

Какие акции стали лидерами по объему торгов в денежном выражении 29 июля 2026 года?

Акции MU с объемом торгов в основную сессию в 44.99 миллиарда долларов, опередив SPY с показателем 42.29 миллиарда долларов.

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

Этот выпуск возобновляет ежедневную серию; предыдущий ежедневный выпуск датирован 10 июля 2026 года, а еженедельный обзор охватывает период, предшествующий текущему. Именные панели по тикерам расположены в алфавитном порядке, чтобы ссылки в тексте указывали на фиксированные строки; таблицы лидеров и наиболее активных бумаг отсортированы по значению, и каждое позиционное утверждение в них подкреплено проверкой на достоверность. Корзина бумаг с мега-капитализацией и корзина из одиннадцати отраслевых фондов являются фиксированными наборами, а не классификациями поставщиков данных. Таблицы наиболее активных бумаг применяют порог оборота в пять миллионов долларов в основную торговую сессию, исключают любые инструменты, по которым между двумя сравниваемыми закрытиями торгов произошел сплит, и исключают один повторно использованный символ в соответствии с правилом устранения неоднозначности, чтобы любая ссылка всегда указывала на проверяемый актив. Панели котировок учитывают односторонние и пересекающиеся котировки по каждому наименованию, а не отбрасывают их. Файлы Казначейства и ежедневный индекс 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, если вы хотите перенаправить окно на другую сессию.