Strasmore Research
Огляди ринку Matt ConnorВід Matt Connor · Оновлено 2026-08-03

Огляд ринку 30 липня 2026: підсумки дня

Підсумки сесії 30 липня 2026 року: індекси, ширина ринку, сектори, опціони, котирування, ставки й календар, щоб швидко оцінити рух ринку.

Цей огляд ринку за четвер, 30 липня 2026 року, відображає всю сесію за даними збережених запитів: зміна SPY відносно попереднього закриття становила 1.68%, частка акцій, що зросли, у ліквідному сегменті — 63.5%, а на опціонному ринку було укладено 67.06 мільйона контрактів. Кожне наведене нижче вікно має чітко задані початкову й кінцеву дати, тому повторний запуск SQL для будь-якої панелі повертає ті самі показники.

Таблиця результатів

Кожна зміна порівнює останню хвилинну свічку регулярної сесії 30 липня з відповідною свічкою середи, 29 липня, тобто двох послідовних торгових сесій. Рядки розташовані в алфавітному порядку, тому кожен ETF зберігає фіксовану позицію.

ЗапитSPY / QQQ / DIA / IWM: 30 липня проти закриття 29 липня, звичайна сесія
Точний 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-29 13:30:00' AND window_start < '2026-07-29 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-30 13:30:00' AND window_start < '2026-07-30 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.19%, IWM — на 1.37%, QQQ — на 3.34%, а SPY — на 1.68%, закрившись на рівні $741.73. У кожному рядку рух розділено на два етапи: SPY відкрився на 0.9% відносно закриття середи, а від відкриття до закриття змінився на 0.77%. Нічний рух і внутрішньоденний рух не обов’язково мають збігатися, а їхнє співвідношення є першим відбитком сесії.

Чи був цей день незвичайним?

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

ЗапитДенний рух SPY у ретроспективному контексті (від відкриття до закриття, 30 червня — 30 липня)
Точний SQL-код для кожного числа
SELECT
    round(anyIf(oc_pct, d = toDate('2026-07-30')), 2) AS spy_open_to_close_pct,
    arrayCount(x -> x > abs(anyIf(oc_pct, d = toDate('2026-07-30'))), groupArrayIf(abs(oc_pct), d != toDate('2026-07-30'))) + 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-30 13:30:00')
      AND window_start < toDateTime('2026-07-31 00:00:00')
      AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
    GROUP BY d
)
Run this yourself

Рух SPY від відкриття до закриття на 0.77% посів 3 місце серед 22 попередніх сесій за абсолютною величиною в межах періоду, що починається 2026-06-30. Рейтинг показує, скільки інших сесій у цьому періоді мали більший рух, плюс один. Перше місце означало б найбільший рух за попередній місяць.

Ширина ринку

Рівень індексу — це одне число. Ширина ринку показує, скільки акцій рухалися разом із ним.

ЗапитШирина ринку за ліквідними акціями: закриття 30 липня проти закриття 29 липня, фільтр $1M обороту
Точний SQL-код для кожного числа
SELECT
    countIf(c30 > c29 AND liquid) AS advancers,
    countIf(c30 < c29 AND liquid) AS decliners,
    countIf(c30 = c29 AND liquid) AS unchanged,
    countIf(liquid) AS liquid_tickers,
    countIf(NOT liquid) AS dropped_by_liquidity_filter,
    round(100.0 * countIf(c30 > c29 AND liquid) / countIf(liquid), 1) AS advancer_pct
FROM (
    SELECT ticker, c29, c30, dv30 >= 1000000 AS liquid
    FROM (
        SELECT ticker,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00') AS c29,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-30 13:30:00' AND window_start < '2026-07-30 20:00:00') AS c30,
               sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-30 13:30:00') AS dv30
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-30 20:00:00'
        GROUP BY ticker
        HAVING c29 > 0 AND c30 > 0
    )
)
Run this yourself

Серед 5960 акцій, денний оборот яких у звичайні години торгів перевищив поріг в один мільйон доларів, 3782 закрилися вище за рівень закриття в середу, а 2122 — нижче. Частка акцій, що зросли, становила 63.5%. Фільтр відсіяв 5492 менш ліквідних акцій, але їх враховано тут, а не просто вилучено з підрахунку.

Панель mega-cap акцій

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

ЗапитВісім мегакапіталізацій: зміна проти 29 липня та оборот у доларах, 30 липня
Точний SQL-код для кожного числа
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-30 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-30 00:00:00')) AS day_close,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-30 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-29 13:30:00' AND window_start < '2026-07-29 20:00:00')
        OR (window_start >= '2026-07-30 13:30:00' AND window_start < '2026-07-30 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 змінилася на -1.24%, META — на -8.17%, MSFT — на 15.06%, а NVDA — на 2.67% за обороту в регулярні години торгів у розмірі 19.63 мільярдів доларів; показник TSLA становив 3.53%. Колонка в доларах показує, яку частину торгового потоку ці вісім назв формують самостійно; панель ширини ринку вище дає змогу перевірити, наскільки решта ринку рухалася разом із ними.

Акції, що найбільше змінилися за день

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

ЗапитНайбільші зростання та падіння: закриття 30 липня проти 29 липня, оборот $5M+, без урахування сплітів
Точний SQL-код для кожного числа
SELECT ticker, board, day_pct, day_dollar_m
FROM (
    SELECT 'gainers' AS board, ticker, round((c30 / c29 - 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-29 13:30:00' AND window_start < '2026-07-29 20:00:00') AS c29,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-30 13:30:00' AND window_start < '2026-07-30 20:00:00') AS c30,
               sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-30 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-29' AND execution_date <= '2026-07-30')
          AND window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-30 20:00:00'
        GROUP BY ticker
        HAVING c29 > 0 AND c30 > 0 AND dv >= 5000000
    )
    ORDER BY day_pct DESC
    LIMIT 8
    UNION ALL
    SELECT 'decliners' AS board, ticker, round((c30 / c29 - 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-29 13:30:00' AND window_start < '2026-07-29 20:00:00') AS c29,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-30 13:30:00' AND window_start < '2026-07-30 20:00:00') AS c30,
               sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-30 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-29' AND execution_date <= '2026-07-30')
          AND window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-30 20:00:00'
        GROUP BY ticker
        HAVING c29 > 0 AND c30 > 0 AND dv >= 5000000
    )
    ORDER BY day_pct ASC
    LIMIT 8
)
ORDER BY board DESC, abs(day_pct) DESC
Run this yourself

Лідер зростання у списку, CYCU, піднявся на 489.5% за обороту 474.4 мільйонів доларів. Найбільше зниження зафіксувала IREZ-61.2% за обороту 90.8 мільйонів доларів. На цій сторінці наведено розміри рухів і дані про торги, але не пояснюються їхні причини.

Розбіжність між секторами

Одинадцять галузевих фондів SPDR Select Sector, співвідношення ціни закриття 30 липня до ціни закриття 29 липня, у рейтингу від найкращого до найгіршого. Склад кошика визначено заздалегідь і зафіксовано; це не класифікація постачальника даних.

ЗапитСекторальні ETF, закриття 30 липня проти закриття 29 липня, за рейтингом
Точний 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((c30 / c29 - 1) * 100, 2) AS day_pct
    FROM (
        SELECT ticker,
               argMaxIf(toFloat64(close), window_start, window_start < '2026-07-30 00:00:00') AS c29,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-30 00:00:00') AS c30
        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-29 13:30:00' AND window_start < '2026-07-29 20:00:00')
            OR (window_start >= '2026-07-30 13:30:00' AND window_start < '2026-07-30 20:00:00'))
        GROUP BY ticker
        HAVING c29 > 0 AND c30 > 0
    )
)
ORDER BY day_pct DESC
Run this yourself

Technology очолив список із результатом 5.52%, а Communications опинився внизу з результатом -2.69% — на 8.21 відсоткового пункту нижче. Цей розрив і є показником розбіжності між секторами за день: динаміка ринку, за якої всі одинадцять фондів перебувають у межах одного пункту, суттєво відрізняється від динаміки, за якої розрив сягає кількох пунктів.

Де торгувалися долари

ЗапитТоп-6 за оборотом у доларах, топ-4 за кількістю акцій: звичайна сесія 30 липня
Точний 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-30 13:30:00' AND window_start < '2026-07-30 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-30 13:30:00' AND window_start < '2026-07-30 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 очолив рейтинг за обсягом торгів у доларах: 43.29 млрд за час основної сесії. За ним був MSFT із 42.56 млрд. Рейтинг за кількістю акцій відповідає на інше запитання: CYCU посів перше місце з 544 млн акцій за розрахункової середньої ціни $0.86. Обсяг у доларах показує, куди спрямована увага ринку, а обсяг в акціях — інтенсивність обороту. Для окремого паперу цей показник називається відносний обсяг.

Опціонний 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) = '260730', 1, 0) AS is_0dte
            FROM global_markets.options_trades
            WHERE sip_timestamp >= '2026-07-30 00:00:00' AND sip_timestamp < '2026-07-31 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-30 13:30:00' AND window_start < '2026-07-30 20:00:00'
    ) AS spy_regular_close,
    (
        SELECT round(toFloat64(sum(size)) / 1e6, 2)
        FROM global_markets.options_trades
        WHERE sip_timestamp >= '2026-07-29 00:00:00' AND sip_timestamp < '2026-07-30 00:00:00'
    ) AS jul29_contracts_m,
    (
        SELECT round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260729') / sum(size), 1)
        FROM global_markets.options_trades
        WHERE sip_timestamp >= '2026-07-29 00:00:00' AND sip_timestamp < '2026-07-30 00:00:00'
    ) AS jul29_pct_0dte
SELECT
    round(count() / 1e6, 2) AS option_prints_m,
    round(toFloat64(sum(size)) / 1e6, 2) AS contracts_m,
    jul29_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) = '260730') / sum(size), 1) AS pct_0dte,
    jul29_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-30 00:00:00' AND sip_timestamp < '2026-07-31 00:00:00'
Run this yourself

В опціонному tape пройшло 10.93 мільйона угод на 67.06 мільйона контрактів проти 66.84 мільйона в середу. На call-опціони припало 54.6% обсягу контрактів. Контракти, що спливали в ту саму сесію, — сегмент опціонів із нульовим строком до експірації, — становили 25.3% проти 33.1% у середу. Цей ритм визначається часом експірації. Найактивнішим контрактом на SPY був 740 C із 0.56 мільйона контрактів. Його strike був на -1.73 доларів від стандартного закриття SPY на рівні $741.73; відстань розраховано як strike мінус ціна закриття.

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

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

ЗапитКількість оновлень NBBO для акцій: 30 липня проти 29 липня, з оновленнями названих тикерів (мільйони)
Точний SQL-код для кожного числа
SELECT
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-30')) / 1e6, 2) AS jul30_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-29')) / 1e6, 2) AS jul29_updates_m,
    round((countIf(toDate(sip_timestamp) = toDate('2026-07-30')) / countIf(toDate(sip_timestamp) = toDate('2026-07-29')) - 1) * 100, 1) AS day_over_day_pct,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-30') AND ticker = 'SPY') / 1e6, 2) AS jul30_spy_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-30') AND ticker = 'QQQ') / 1e6, 2) AS jul30_qqq_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-30') AND ticker = 'NVDA') / 1e6, 2) AS jul30_nvda_updates_m
FROM global_markets.cache_stocks_quotes
WHERE sip_timestamp >= '2026-07-29 00:00:00' AND sip_timestamp < '2026-07-31 00:00:00'
Run this yourself

Стрічка котирувань акцій містила 560.75 мільйона оновлень NBBO проти 722.65 мільйона в середу. Зміна день до дня становила -22.4%. На SPY припало 5.55 мільйона оновлень, на QQQ — 6.75 мільйона, на NVDA — 2.39 мільйона.

ЗапитСім назв: медіанний спред котирувань у звичайну сесію в базисних пунктах, із кількістю оновлень якості котирувань, 30 липня
Точний 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-30 13:30:00' AND sip_timestamp < '2026-07-30 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.59, а для NVDA — 1.03. Останні два стовпці містять розкриття методології: односторонні та перехресні котирування підраховують окремо для кожного паперу й виключають із розрахунку медіани, а не мовчки відкидають. Перехресне котирування, за якого bid перевищує ask, є звичайним артефактом консолідованої стрічки, сформованої з даних багатьох торговельних майданчиків із наносекундною точністю.

ЗапитМедіанний спред SPY у рейтингу всіх липневих сесій, від найвужчого
Точний SQL-код для кожного числа
SELECT round(anyIf(spread_bps, d = toDate('2026-07-30')), 2) AS jul30_median_spread_bps,
       arrayCount(x -> x < anyIf(spread_bps, d = toDate('2026-07-30')), groupArrayIf(spread_bps, d != toDate('2026-07-30'))) + 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-30 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 базисного пункту посів 19 місце з 21, якщо рахувати від найвужчого спреду, у періоді, що починається 2026-07-01. На спокійній стрічці саме це є висновком панелі: звичайний день для ліквідності — це результат, який оприлюднюють із чітко визначеними межами.

ЗапитОпціонна стрічка NBBO: загальна кількість оновлень проти стрічки акцій, а також зріз кореня SPY, 30 липня
Точний SQL-код для кожного числа
WITH
    (SELECT count() FROM global_markets.cache_options_quotes WHERE sip_timestamp >= '2026-07-30 00:00:00' AND sip_timestamp < '2026-07-31 00:00:00') AS jul30_options_rows,
    (SELECT count() FROM global_markets.cache_stocks_quotes WHERE sip_timestamp >= '2026-07-30 00:00:00' AND sip_timestamp < '2026-07-31 00:00:00') AS jul30_stock_quote_rows
SELECT
    round(jul30_options_rows / 1e9, 2) AS jul30_options_bn,
    round(jul30_options_rows / jul30_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-30 13:30:00' AND sip_timestamp < '2026-07-30 20:00:00') / 1e6, 0) AS jul30_spy_options_m
Run this yourself

Стрічка NBBO опціонів містила 10.32 мільярда оновлень — у 18.4 раза більше, ніж стрічка котирувань акцій. Лише на root SPY припало 441 мільйона оновлень у звичайні торгові години.

Ставки

ЗапитЗафіксовані значення кривої Treasury, 27–30 липня
Точний 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-27' AND date <= '2026-07-30'
ORDER BY date
Run this yourself

Дані Treasury відстають від ринку приблизно на одну торгову сесію, тому ця панель показує зафіксовані ним угоди: 4 рядків із датами у вибраному періоді. В останньому записі за 2026-07-30 дохідність дворічних облігацій становила 4.23%, десятирічних — 4.68%, а тридцятирічних — 5.21%; спред між дворічними та десятирічними облігаціями становив 45 базисних пунктів.

Календар, що стоїть за цією датою

ЗапитДати без дивідендів, спліти, лістинги, новини та структура подань до SEC за 30 липня
Точний 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-30 04:00:00' AND published_utc < '2026-07-31 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-30'
    ) AS fil
SELECT
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-30') AS ex_dividend_records,
    (SELECT countIf(toFloat64(split_from) > toFloat64(split_to)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-30') AS reverse_splits,
    (SELECT countIf(toFloat64(split_to) > toFloat64(split_from)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-30') AS forward_splits,
    (SELECT count() FROM global_markets.stocks_ipos WHERE listing_date = '2026-07-30') AS listings,
    (SELECT count() FROM global_markets.stocks_news WHERE published_utc >= '2026-07-30 04:00:00' AND published_utc < '2026-07-31 04:00:00') AS news_articles,
    (SELECT uniqExact(JSONExtractString(publisher, 'name')) FROM global_markets.stocks_news WHERE published_utc >= '2026-07-30 04:00:00' AND published_utc < '2026-07-31 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

200 записів про дивіденди перейшли у статус ex-dividend 30 липня, було виконано 3 зворотних і 3 прямих сплітів, а на ринок вийшли 3 нових лістингів. Стрічка новин містила 173 статей від 2 видавців, причому на найбільш висвітлюваний тикер у вікні цього фіду припало 11 статей із NVDA. Щоденний індекс EDGAR містить 5544 подань за цю дату від 2743 окремих заявників: 745 звітів інсайдерів Form 4, 460 поточних звітів 8-K, 1426 цінових доповнень 424B2 і 252 квартальних звітів 10-Q. Цей індекс формується за власним графіком, і панель відображає дані, наявні в ньому на момент генерації.

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

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

Запит31 липня та 3 серпня в календарі: закриття ринку, дати без дивідендів, спліти, п’ятнична експірація та лаг даних щодо коротких позицій
Точний SQL-код для кожного числа
SELECT
    (SELECT count() FROM global_markets.stocks_market_holidays WHERE date >= '2026-07-31' AND date <= '2026-08-03' AND status != 'open') AS closures_next_two_sessions,
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date >= '2026-07-31' AND ex_dividend_date <= '2026-08-03') AS exdiv_records_next_two_sessions,
    (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-31' AND ex_dividend_date <= '2026-08-03') AS household_exdivs,
    (SELECT count() FROM global_markets.stocks_splits WHERE execution_date >= '2026-07-31' AND execution_date <= '2026-08-03') AS splits_next_two_sessions,
    round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260731') / sum(size), 1) AS jul31_expiry_pct_of_thu_volume,
    (SELECT toString(max(settlement_date)) FROM global_markets.stocks_short_interest WHERE settlement_date <= '2026-07-30') AS latest_short_interest_settlement
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-30 00:00:00' AND sip_timestamp < '2026-07-31 00:00:00'
Run this yourself

Таблиця свят показує 0 закриттів у п’ятницю, 31 липня, і понеділок, 3 серпня. Дивідендні записи для 544 компаній переходять у статус ex-dividend протягом цих двох сесій; 0 із них припадає на десять перевірених відомих компаній, а 14 split-операцій заплановано до виконання. Із обсягу торгів опціонами в четвер 26.7% уже припадало на контракти з датою експірації в п’ятницю, 31 липня. Найновіші доступні дані про short interest мають дату розрахунку 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-30 13:30:00' AND window_start < '2026-07-30 20:00:00') AS regular_session_bars,
    uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-30 13:30:00' AND window_start < '2026-07-30 20:00:00') AS day_sessions,
    (SELECT count() FROM global_markets.stocks_market_holidays WHERE date = '2026-07-30') AS jul30_holiday_rows,
    (SELECT toString(min(date)) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-30' 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-30' 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-30 00:00:00' AND window_start < '2026-07-31 00:00:00'
Run this yourself

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

FAQ

Якими були результати фондового ринку в четвер, 30 липня 2026 року?

SPY змінився на 1.68% відносно попереднього закриття — до $741.73, тоді як QQQ становив 3.34%, DIA — 1.19%, а IWM — 1.37%. Серед високоліквідних акцій 3782 зросла, а 2122 знизилася.

Який сектор очолив таблицю 30 липня 2026 року?

Technology — на рівні 5.52% за результатами торгів одинадцятьма галузевими фондами SPDR. Найслабший із одинадцяти фондів, Communications, показав -2.69%.

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

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

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

MU — із доларовим обсягом торгів у звичайні години на рівні 43.29 мільярда, випередивши MSFT із показником 42.56 мільярда.

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

Попередній щоденний випуск — 29 липня 2026 року, а тижневий підсумок охоплює тиждень, що йому передував. Іменовані панелі для кожного тикера впорядковані за алфавітом, щоб посилання в тексті вказували на фіксовані рядки. Таблиці лідерів і списки найбільших рухів упорядковані за значеннями, а кожне наведене в них твердження про позицію закодоване як перевірочна межа.

До кошика mega-cap і секторного кошика з одинадцяти фондів входять заздалегідь визначені фіксовані набори, а не класифікації постачальника даних. Для списків найбільших рухів застосовується поріг обороту в $5 млн у межах звичайної торгової сесії. Із них виключаються назви, за якими split відбувся між двома вимірюваними закриттями, а також один повторно використаний символ, на який поширюється внутрішнє правило усунення неоднозначності. Завдяки цьому кожне винесене в текст ім’я можна перевірити.

У панелях котирувань для кожної назви враховуються односторонні та перехресні котирування, а не безшумно вилучаються. Файл 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.
  • Перевірка сесії: за таблицею свят і фактично спостережуваними барами, а не за календарем.
  • Порівняння з попередньою сесією: обчислюються в межах запиту на основі 29 липня, а не переносяться з попередньої публікації.
  • Десяткові значення: стовпці ціни, розміру та обсягу перед будь-яким діленням або множенням приводяться до Float64.
  • Детерміновані агрегати: у всіх розрахунках використовуються точні квантилі та правила розв’язання нічиїх за ключами-кортежами; кожне твердження про порядок або знак у тексті закодоване як перевірка граничної умови.
  • Дата актуальності даних у сховищі: 1 серпня 2026 року, через два дні після сесії, на межі звичайної затримки завантаження даних зі стрічки в один-два дні; наведені вище обмежені підтвердження утримують публікацію, якщо під час генерації буде виявлено відсутній набір даних.

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

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