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%. Нічний рух і внутрішньоденний рух не обов’язково мають збігатися, а їхнє співвідношення є першим відбитком торгової сесії.

Чи був цей день нетиповим?

Показник за одну сесію мало про що говорить без урахування distribution, тому цей день ранжовано серед попередніх сесій за останній місяць за тією самою логікою.

ЗапитДенна зміна 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 липня, фільтр $1M обсягу
Точний 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 менш ліквідних акцій; у цьому підрахунку вони враховані, а не просто непомітно вилучені.

Полиця mega-cap

Ті самі вісім mega-cap акцій з’являються тут на кожній сесії в алфавітному порядку, щоб кожна з них зберігала свій рядок. Фіксований кошик є принциповим: читач запам’ятовує рядки, а редакція не обирає переможців заднім числом.

ЗапитВісім мегакапіталізацій: зміна проти 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%. Колонка в доларах показує, яку частину загального потоку торгів ці вісім назв формують самостійно. Панель breadth вище показує, наскільки решта ринку рухалася разом із ними.

Акції з найбільшими рухами за день

Для обох списків потрібен оборот у звичайній торговій сесії на рівні п’ять мільйонів доларів. Із них виключаються папери, щодо яких split відбувся між двома вимірюваними закриттями, а також один повторно використаний тикер відповідно до внутрішнього правила усунення неоднозначності, описаного в примітках.

ЗапитНайбільші зростання та падіння: закриття 29 липня проти 28 липня, обсяг $5M+, без урахування сплітів
Точний 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 Select Sector, співвідношення цін закриття 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. Доларовий обсяг показує, куди спрямована увага ринку, а обсяг у акціях — інтенсивність торгів. Показник для окремого паперу називається відносний обсяг.

Опціонний tape

ЗапитОпціонний потік: контракти, частка call, частка угод того самого дня проти вівторка, найактивніший контракт 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

На опціонному tape пройшло 11.03 мільйона угод на 66.84 мільйона контрактів проти 59.28 мільйона у вівторок. На call-опціони припало 53.6% обсягу контрактів. Контракти, термін дії яких спливав у ту саму сесію, — сегмент опціонів із нульовим строком до експірації, — становили 33.1% проти 29% у вівторок. Такий ритм визначається часом експірації. Найактивнішим контрактом на SPY був 735 P із 0.36 мільйона контрактів. Його strike був на 5.49 доларів від звичайного закриття SPY на рівні $729.51; відстань розраховано як strike мінус ціна закриття.

Стрічка котирувань

Дані котирувань є найдефіцитнішим набором даних цього desk, і їх вимірюють кожної торгової сесії. Звичайні дні також потрапляють до статистики.

ЗапитКількість оновлень 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 мільйона.

ЗапитСім назв: медіанний спред котирувань у звичайну сесію, базисні пункти, з показниками якості котирувань, 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 у regular hours становив 0.27 базисного пункту відносно mid. Для QQQ цей показник дорівнював 0.75, а для NVDA — 1.55. Два останні стовпці містять інформацію про якість даних: односторонні та crossed quotes підраховують окремо для кожного інструмента й не включають до медіани, а не просто вилучають без пояснення. Crossed quote, за якого bid перевищує ask, є звичайним наслідком консолідованої стрічки, сформованої з даних багатьох торговельних майданчиків із наносекундною точністю.

ЗапитМедіанний спред 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 мільйона оновлень у regular hours.

Ставки

ЗапитЗафіксовані значення кривої Treasury, 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

Файл Treasury відстає від ринку приблизно на одну торгову сесію, тому ця панель показує зафіксовані в ньому угоди: 4 рядків із датами у вибраному періоді. В останньому рядку з датою 2026-07-29 дохідність дворічних Treasury становила 4.22%, десятирічних — 4.67%, а тридцятирічних — 5.2%. Це спред між дворічними та десятирічними Treasury у 45 базисних пунктів.

The calendar behind the day

ЗапитЕкс-дивіденди, спліти, лістинги, новини та склад 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 dividend records went ex-dividend on July 29, 2 reverse and 1 forward splits executed, and 1 new listings hit the tape. The news feed carried 190 articles from 2 publishers, with NVDA the most-covered ticker in this one feed's window at 13 articles. The EDGAR daily index holds 5742 filings for the date from 3064 distinct filers: 712 insider Form 4 reports, 440 8-K current reports, 884 424B2 pricing supplements and 174 10-Q quarterly reports. That index lands on its own schedule, and this panel reports whatever it holds at generation time.

Далі за планом

Упродовж решти тижня читайте ті самі таблиці, свідомо виходячи за межі поточного періоду.

Запит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 закриттів у четвер, 30 липня, і п’ятницю, 31 липня. Записи про дивіденди за 611 акціями припадають на ex-dividend date протягом цих двох сесій; 0 із них належать до десяти перевірених компаній споживчого сектору, а 12 сплітів заплановано до виконання. Серед обсягу торгів опціонами в середу 19.7% уже припадало на контракти, термін дії яких спливає в п’ятницю, 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-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 ET, останній — о 19:59 ET, 390 барів у регулярні години, 1 сесія у вибраному часовому вікні та 0 святкових рядків за цю дату. Наступне заплановане закриття — Labor Day о 2026-09-07.

FAQ

Як фондовий ринок завершив торги в середу, 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%.

Наскільки активним був options market 29 липня 2026 року?

Було укладено 66.84 млн контрактів проти 59.28 млн на попередній сесії. Контракти з погашенням того самого дня становили 33.1% обсягу, а call-опціони — 53.6%.

Яка акція мала найбільший доларовий обсяг торгів 29 липня 2026 року?

MU44.99 млрд дол. обсягу торгів у звичайну торгову сесію, випередивши SPY із показником 42.29 млрд дол.

Примітки щодо даних

Цей випуск відновлює щоденну серію; попередній щоденний випуск — 10 липня 2026 року, а тижневий огляд охоплює тиждень, що йому передував. Панелі з назвами окремих тикерів упорядковані за алфавітом, щоб посилання в тексті вказували на фіксовані рядки; таблиці лідерів і списки найбільших рухів упорядковані за значенням, а кожне наведене в них твердження про позицію закодоване як контрольна межа. До кошика мегакапіталізацій і секторного кошика з одинадцяти фондів входять заздалегідь визначені та фіксовані набори, а не класифікації постачальників даних. Для списків найбільших рухів застосовується поріг обороту звичайної сесії в п’ять мільйонів доларів; із них виключаються папери, щодо яких спліт відбувся між двома контрольними закриттями, а також один повторно використаний символ, що підпадає під внутрішнє правило усунення неоднозначності. Завдяки цьому кожне згадування зрештою посилається на назву, яку можна перевірити. У панелях котирувань для кожного паперу враховуються односторонні та перехресні котирування, а не відкидаються без пояснення. Файл Treasury і щоденний індекс EDGAR надходять за власними графіками, тому відповідні панелі відображають наявні в них дані, не припускаючи, що файли вже надійшли. Індексів implied volatility тут немає: ці ряди не ліцензовані для цього сховища, тому волатильність оцінюється за стрічкою — через діапазони, частку опціонів у торгівлі протягом дня та поведінку котирувань.

Методологія

  • Джерело ринкових даних: консолідований стрічковий потік. delayed_stocks_minute_aggs — для цін і обсягів, options_trades — для стрічки опціонів, cache_stocks_quotes і cache_options_quotes — для панелей NBBO.
  • Ціна закриття: останній хвилинний бар регулярної сесії; ніколи не використовується умовний print о 16:00 або print розширеної сесії.
  • Робота з часовими поясами: усі збережені часові мітки наведено в UTC; у WHERE-умовах використовуються необроблені літерали UTC, а toTimeZone з’являється лише у списках SELECT для позначення ET.
  • Перевірка сесії: на основі таблиці свят і фактично зафіксованих барів, а не припущень за календарем.
  • Порівняння з попередньою сесією: обчислюються в межах запиту, починаючи з 28 липня, і не переносяться з попередньої публікації.
  • Десяткові значення: стовпці цін, розміру та обсягу перетворюються на Float64 до виконання будь-якого ділення або множення.
  • Детерміновані агрегати: усюди використовуються точні квантилі та правила розв’язання рівності за ключами-кортежами; кожне твердження про порядок або знак у тексті закодовано як перевірювану межу.
  • Дата зрізу даних у сховищі: 1 серпня 2026 року, через три дні після сесії, тобто після звичайної затримки завантаження стрічки в один-два дні; наведені обмежені підтвердження збережуть публікацію, якщо під час генерації буде виявлено відсутність набору даних.

Перехресні посилання: попередній щоденний огляд, тижневий огляд, коли спливає строк дії опціонів, що таке bid-ask spread, і spread між дворічними та десятирічними Treasury.

Усі наведені запити виконуються без змін у терміналі Strasmore, якщо потрібно перенести часовий інтервал на іншу сесію.