Strasmore Research
Recaps de mercado Matt ConnorPor Matt Connor · Atualizado 2026-08-02

Fechamento do mercado em 27 de julho de 2026

Resumo de 27 de julho de 2026: placar, breadth, spread setorial, fluxo de opções, cotações, juros e calendário, com números baseados em consultas armazenadas.

Este resumo de mercado de segunda-feira, 27 de julho de 2026, cobre toda a sessão com base em consultas armazenadas: a variação do SPY em relação ao fechamento de sexta-feira foi de 0.02%, a participação das ações em alta no mercado líquido ficou em 65.4%, e o mercado de opções registrou 64.69 milhões de contratos. Cada janela abaixo está vinculada a datas explícitas de início e fim, portanto a execução novamente do SQL de qualquer painel retorna os mesmos números.

O placar

Cada variação compara a barra de um minuto do último minuto da sessão regular de 27 de julho com a de sexta-feira, 24 de julho, em sessões consecutivas de negociação separadas por um fim de semana. As linhas estão em ordem alfabética, portanto cada ETF mantém uma posição fixa.

QuerySPY / QQQ / DIA / IWM: 27 de julho vs. fechamento de 24 de julho, horário regular
O SQL exato por trás de cada número
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-24 13:30:00' AND window_start < '2026-07-24 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-27 13:30:00' AND window_start < '2026-07-27 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 variou 0.49%, IWM 0.59%, QQQ -0.32% e SPY 0.02%, fechando a $739.02. Cada linha divide a variação em duas etapas: SPY abriu 0.82% em relação ao fechamento de sexta-feira, um gap que incorpora todo o fim de semana, e variou -0.79% da abertura ao fechamento. Na segunda-feira, a etapa overnight é, na prática, uma etapa de dois dias. A divisão entre ela e a etapa intradiária é a primeira impressão digital da sessão.

O dia foi atípico?

O número de uma sessão diz pouco sem a distribuição que o sustenta. Por isso, o dia é classificado dentro do próprio mês móvel, usando a mesma lógica.

QueryMovimento diário do SPY no contexto histórico (abertura ao fechamento, 26 de junho a 27 de julho)
O SQL exato por trás de cada número
SELECT
    round(anyIf(oc_pct, d = toDate('2026-07-27')), 2) AS spy_open_to_close_pct,
    arrayCount(x -> x > abs(anyIf(oc_pct, d = toDate('2026-07-27'))), groupArrayIf(abs(oc_pct), d != toDate('2026-07-27'))) + 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-26 13:30:00')
      AND window_start < toDateTime('2026-07-28 00:00:00')
      AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
    GROUP BY d
)
Run this yourself

A variação da abertura ao fechamento do SPY, de -0.79%, ficou em 1º lugar entre 21 sessões móveis, por tamanho absoluto, em uma janela que remonta a 2026-06-26. A classificação conta quantas outras sessões da janela tiveram uma variação maior e soma um. Assim, o primeiro lugar corresponderia à maior variação do mês móvel.

Amplitude de mercado

O nível de um índice é um único número. A amplitude mostra quantas ações acompanharam esse movimento durante o gap do fim de semana.

QueryBreadth do tape líquido: fechamento de 27 de julho vs. fechamento de 24 de julho, filtro de US$ 1 mi negociado
O SQL exato por trás de cada número
SELECT
    countIf(c27 > c24 AND liquid) AS advancers,
    countIf(c27 < c24 AND liquid) AS decliners,
    countIf(c27 = c24 AND liquid) AS unchanged,
    countIf(liquid) AS liquid_tickers,
    countIf(NOT liquid) AS dropped_by_liquidity_filter,
    round(100.0 * countIf(c27 > c24 AND liquid) / countIf(liquid), 1) AS advancer_pct
FROM (
    SELECT ticker, c24, c27, dv27 >= 1000000 AS liquid
    FROM (
        SELECT ticker,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-24 13:30:00' AND window_start < '2026-07-24 20:00:00') AS c24,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-27 13:30:00' AND window_start < '2026-07-27 20:00:00') AS c27,
               sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-27 13:30:00') AS dv27
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE window_start >= '2026-07-24 13:30:00' AND window_start < '2026-07-27 20:00:00'
        GROUP BY ticker
        HAVING c24 > 0 AND c27 > 0
    )
)
Run this yourself

Entre 5935 ações que superaram o corte de um milhão de dólares em volume negociado no horário regular, 3880 fecharam acima do fechamento de sexta-feira e 1972 fecharam abaixo, resultando em uma participação de altas de 65.4%. O filtro separou 5336 ações menos líquidas, contabilizadas aqui em vez de simplesmente descartadas.

A prateleira das mega caps

Os mesmos oito nomes de mega caps aparecem aqui em todas as sessões, em ordem alfabética para que cada um mantenha sua linha. A ideia é usar uma cesta fixa: o leitor aprende as linhas, e nenhuma escolha editorial seleciona vencedores depois do fato.

QueryOito mega caps: variação vs. 24 de julho e dólares negociados no horário regular, 27 de julho
O SQL exato por trás de cada número
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-27 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-27 00:00:00')) AS day_close,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-27 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-24 13:30:00' AND window_start < '2026-07-24 20:00:00')
        OR (window_start >= '2026-07-27 13:30:00' AND window_start < '2026-07-27 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 variou 1.16%, META -0.21%, MSFT 1.94% e NVDA -5.04%, com 25.42 bilhões de dólares em volume negociado no horário regular, enquanto TSLA ficou em -1.2%. A coluna em dólares mostra quanto do fluxo esses oito nomes concentram sozinhos; o painel de amplitude acima verifica até que ponto o restante do mercado acompanhou esse movimento.

As maiores oscilações do dia

Ambas as listas exigem cinco milhões de dólares em volume negociado no horário regular, excluem qualquer ativo cujo desdobramento tenha sido executado entre os dois fechamentos considerados e excluem um símbolo reutilizado pela regra interna de ambiguidade descrita nas notas.

QueryMaiores altas e baixas: fechamento de 27 de julho vs. fechamento de 24 de julho, US$ 5 mi ou mais negociados, excluídos os desdobramentos
O SQL exato por trás de cada número
SELECT ticker, board, day_pct, day_dollar_m
FROM (
    SELECT 'gainers' AS board, ticker, round((c27 / c24 - 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-24 13:30:00' AND window_start < '2026-07-24 20:00:00') AS c24,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-27 13:30:00' AND window_start < '2026-07-27 20:00:00') AS c27,
               sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-27 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-24' AND execution_date <= '2026-07-27')
          AND window_start >= '2026-07-24 13:30:00' AND window_start < '2026-07-27 20:00:00'
        GROUP BY ticker
        HAVING c24 > 0 AND c27 > 0 AND dv >= 5000000
    )
    ORDER BY day_pct DESC
    LIMIT 8
    UNION ALL
    SELECT 'decliners' AS board, ticker, round((c27 / c24 - 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-24 13:30:00' AND window_start < '2026-07-24 20:00:00') AS c24,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-27 13:30:00' AND window_start < '2026-07-27 20:00:00') AS c27,
               sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-27 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-24' AND execution_date <= '2026-07-27')
          AND window_start >= '2026-07-24 13:30:00' AND window_start < '2026-07-27 20:00:00'
        GROUP BY ticker
        HAVING c24 > 0 AND c27 > 0 AND dv >= 5000000
    )
    ORDER BY day_pct ASC
    LIMIT 8
)
ORDER BY board DESC, abs(day_pct) DESC
Run this yourself

O ativo com maior alta na lista, DFNS, avançou 214.9%, com 486.4 milhões de dólares negociados. O ativo com maior queda, MPLT, registrou -72.9%, com 83.3 milhões negociados. Esta página registra os volumes e os comprovantes; não atribui nenhuma explicação a eles.

Dispersão entre setores

Os onze fundos SPDR de setores selecionados, pelo fechamento de 27 de julho sobre o de 24 de julho, classificados do melhor ao pior. A cesta é definida e fixa, e não uma classificação de fornecedor.

QueryETFs setoriais, fechamento de 27 de julho vs. fechamento de 24 de julho, em ordem de ranking
O SQL exato por trás de cada número
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((c27 / c24 - 1) * 100, 2) AS day_pct
    FROM (
        SELECT ticker,
               argMaxIf(toFloat64(close), window_start, window_start < '2026-07-27 00:00:00') AS c24,
               argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-27 00:00:00') AS c27
        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-24 13:30:00' AND window_start < '2026-07-24 20:00:00')
            OR (window_start >= '2026-07-27 13:30:00' AND window_start < '2026-07-27 20:00:00'))
        GROUP BY ticker
        HAVING c24 > 0 AND c27 > 0
    )
)
ORDER BY day_pct DESC
Run this yourself

Staples liderou a lista, com 1.5%, enquanto Energy ficou na última posição, em -2.06%, 3.56 pontos percentuais atrás. Esse spread representa a dispersão entre setores do dia: um pregão em que os onze ficam dentro de um ponto percentual é muito diferente de outro em que se distribuem por vários pontos.

Onde os dólares foram negociados

QueryTop 6 por dólares negociados, top 4 por ações negociadas: horário regular de 27 de julho
O SQL exato por trás de cada número
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-27 13:30:00' AND window_start < '2026-07-27 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-27 13:30:00' AND window_start < '2026-07-27 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 liderou o ranking em dólares, com 35.71 bilhões negociados no horário regular. SPY veio em seguida, com 27.03 bilhões. O ranking por ações responde a uma pergunta diferente: KIDZ ficou no topo, com 198.3 milhões de ações e um preço médio implícito de US$0.66. O volume em dólares mostra onde está a atenção do mercado; o volume de ações mostra a rotatividade. A versão dessa medida por ativo é o volume relativo.

O fluxo de opções

QueryFluxo de opções: contratos, participação de calls, participação no mesmo dia vs. sexta-feira, contrato mais movimentado do SPY
O SQL exato por trás de cada número
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) = '260727', 1, 0) AS is_0dte
            FROM global_markets.options_trades
            WHERE sip_timestamp >= '2026-07-27 00:00:00' AND sip_timestamp < '2026-07-28 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-27 13:30:00' AND window_start < '2026-07-27 20:00:00'
    ) AS spy_regular_close,
    (
        SELECT round(toFloat64(sum(size)) / 1e6, 2)
        FROM global_markets.options_trades
        WHERE sip_timestamp >= '2026-07-24 00:00:00' AND sip_timestamp < '2026-07-25 00:00:00'
    ) AS jul24_contracts_m,
    (
        SELECT round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260724') / sum(size), 1)
        FROM global_markets.options_trades
        WHERE sip_timestamp >= '2026-07-24 00:00:00' AND sip_timestamp < '2026-07-25 00:00:00'
    ) AS jul24_pct_0dte
SELECT
    round(count() / 1e6, 2) AS option_prints_m,
    round(toFloat64(sum(size)) / 1e6, 2) AS contracts_m,
    jul24_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) = '260727') / sum(size), 1) AS pct_0dte,
    jul24_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-27 00:00:00' AND sip_timestamp < '2026-07-28 00:00:00'
Run this yourself

O fluxo de opções registrou 11.07 milhões de negociações, envolvendo 64.69 milhões de contratos, ante 71.14 milhões na sexta-feira. As calls responderam por 55.1% do volume de contratos. Os contratos que vencem na mesma sessão, o grupo de vencimento no mesmo dia, somaram 39.3%, contra 49% na sexta-feira, em um ritmo definido pelo momento do vencimento. O contrato mais negociado de SPY foi o de 740 C, com 0.59 milhões de contratos. Seu strike estava a 0.98 dólares do fechamento regular de SPY em US$739.02, medido como strike menos fechamento.

A fita de cotações

Os dados de cotações são o conjunto de dados mais escasso desta mesa, e são medidos em todas as sessões. Os dias comuns também entram no registro.

QueryContagem de atualizações do NBBO de ações: 27 de julho vs. 24 de julho, com atualizações de tickers nomeados (milhões)
O SQL exato por trás de cada número
SELECT
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-27')) / 1e6, 2) AS jul27_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-24')) / 1e6, 2) AS jul24_updates_m,
    round((countIf(toDate(sip_timestamp) = toDate('2026-07-27')) / countIf(toDate(sip_timestamp) = toDate('2026-07-24')) - 1) * 100, 1) AS session_over_session_pct,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-27') AND ticker = 'SPY') / 1e6, 2) AS jul27_spy_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-27') AND ticker = 'QQQ') / 1e6, 2) AS jul27_qqq_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-27') AND ticker = 'NVDA') / 1e6, 2) AS jul27_nvda_updates_m
FROM global_markets.cache_stocks_quotes
WHERE sip_timestamp >= '2026-07-24 00:00:00' AND sip_timestamp < '2026-07-28 00:00:00'
Run this yourself

A fita de cotações das ações registrou 553.53 milhões de atualizações de NBBO, contra 500.88 milhões na sexta-feira, uma variação entre sessões de 10.5%. A SPY registrou 4.84 milhões de atualizações, a QQQ 6.78 milhões e a NVDA 2.93 milhões.

QuerySete nomes: spread mediano cotado no RTH em pontos-base, com contagens de qualidade das cotações, 27 de julho
O SQL exato por trás de cada número
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-27 13:30:00' AND sip_timestamp < '2026-07-27 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

O spread mediano das cotações da SPY no horário regular correspondeu a 0.27 pontos-base do preço médio. O da QQQ foi de 0.59 e o da NVDA, de 1.02. As duas últimas colunas mostram a divulgação: cotações unilaterais e cruzadas são contabilizadas por ativo e separadas da mediana, em vez de serem descartadas silenciosamente. Uma cotação cruzada, com o bid acima do ask, é um efeito comum de um feed consolidado formado a partir de diversas plataformas, com resolução de nanossegundos.

QuerySpread mediano do SPY ranqueado contra todas as sessões de julho até o dia 27, do mais estreito ao mais amplo
O SQL exato por trás de cada número
SELECT round(anyIf(spread_bps, d = toDate('2026-07-27')), 2) AS jul27_median_spread_bps,
       arrayCount(x -> x < anyIf(spread_bps, d = toDate('2026-07-27')), groupArrayIf(spread_bps, d != toDate('2026-07-27'))) + 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-27 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

Comparado com todas as sessões de julho usando a mesma metodologia, o spread mediano da SPY no dia, de 0.27 pontos-base, ficou em 18 de 18, contado a partir do menor spread, em uma janela que começa em 2026-07-01. Em uma fita tranquila, essa frase é o objetivo do painel: um dia comum para a liquidez é uma constatação, publicada e delimitada.

QueryTape de NBBO de opções: total de atualizações vs. tape de ações, mais o recorte do root do SPY, 27 de julho
O SQL exato por trás de cada número
WITH
    (SELECT count() FROM global_markets.cache_options_quotes WHERE sip_timestamp >= '2026-07-27 00:00:00' AND sip_timestamp < '2026-07-28 00:00:00') AS jul27_options_rows,
    (SELECT count() FROM global_markets.cache_stocks_quotes WHERE sip_timestamp >= '2026-07-27 00:00:00' AND sip_timestamp < '2026-07-28 00:00:00') AS jul27_stock_quote_rows
SELECT
    round(jul27_options_rows / 1e9, 2) AS jul27_options_bn,
    round(jul27_options_rows / jul27_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-27 13:30:00' AND sip_timestamp < '2026-07-27 20:00:00') / 1e6, 0) AS jul27_spy_options_m
Run this yourself

A fita de NBBO das opções registrou 10.38 bilhões de atualizações, 18.8 vezes o volume da fita de cotações das ações. Apenas o ticker-raiz da SPY registrou 440 milhões de atualizações no horário regular.

Taxas

QueryRegistros da curva do Treasury, de 22 a 27 de julho
O SQL exato por trás de cada número
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-22' AND date <= '2026-07-27'
ORDER BY date
Run this yourself

O arquivo do Treasury fica cerca de uma sessão atrás do mercado. Por isso, este painel mostra os negócios executados que ele mantém: linhas datadas de 4 no período de 22 a 27 de julho. O dado mais recente, datado de 2026-07-27, colocou o título de dois anos em 4.31%, o de dez anos em 4.65% e o de trinta anos em 5.12%, com um spread de dois a dez anos de 34 pontos-base.

O calendário por trás do dia

QueryEx-dividendos, desdobramentos, listagens, notícias e composição dos filings da SEC de 27 de julho
O SQL exato por trás de cada número
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-27 04:00:00' AND published_utc < '2026-07-28 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-27'
    ) AS fil
SELECT
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-27') AS ex_dividend_records,
    (SELECT countIf(toFloat64(split_from) > toFloat64(split_to)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-27') AS reverse_splits,
    (SELECT countIf(toFloat64(split_to) > toFloat64(split_from)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-27') AS forward_splits,
    (SELECT count() FROM global_markets.stocks_ipos WHERE listing_date = '2026-07-27') AS listings,
    (SELECT count() FROM global_markets.stocks_news WHERE published_utc >= '2026-07-27 04:00:00' AND published_utc < '2026-07-28 04:00:00') AS news_articles,
    (SELECT uniqExact(JSONExtractString(publisher, 'name')) FROM global_markets.stocks_news WHERE published_utc >= '2026-07-27 04:00:00' AND published_utc < '2026-07-28 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

91 registros de dividendos ficaram ex-dividend em 27 de julho, foram executados 7 reverse splits e 1 forward splits, e 0 novas listagens chegaram ao tape. O feed de notícias trouxe 166 artigos de 2 publishers, com MSFT como o ticker mais coberto nessa janela de um único feed, em 12 artigos. O índice diário da EDGAR reúne 3997 filings da data, de 2163 filers distintos: 587 relatórios de insiders Form 4, 226 relatórios correntes 8-K, 555 suplementos de precificação 424B2 e 23 relatórios trimestrais 10-Q. Esse índice é atualizado segundo seu próprio cronograma, e este painel informa o que ele contém no momento da geração.

Próximos eventos

No restante da semana, de terça-feira, 28 de julho, a sexta-feira, 31 de julho, os dados vêm das mesmas tabelas, com uma análise deliberadamente além do período.

QueryDe 28 a 31 de julho no calendário: fechamentos, ex-dividendos, desdobramentos, vencimento de sexta-feira e defasagem do short interest
O SQL exato por trás de cada número
SELECT
    (SELECT count() FROM global_markets.stocks_market_holidays WHERE date >= '2026-07-28' 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-28' 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-28' AND ex_dividend_date <= '2026-07-31') AS household_exdivs,
    (SELECT count() FROM global_markets.stocks_splits WHERE execution_date >= '2026-07-28' 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_mon_volume,
    (SELECT toString(max(settlement_date)) FROM global_markets.stocks_short_interest WHERE settlement_date <= '2026-07-27') AS latest_short_interest_settlement
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-27 00:00:00' AND sip_timestamp < '2026-07-28 00:00:00'
Run this yourself

A tabela de feriados mostra 0 fechamentos nas quatro sessões restantes da semana. Registros de dividendos de 843 ações ficam ex-dividend nessas sessões; 0 deles estão entre dez nomes conhecidos do setor de consumo analisados. 18 desdobramentos estão programados para execução. Do volume de opções de segunda-feira, 17.1% já estava em contratos com vencimento na sexta-feira, 31 de julho. O dado mais recente de posições vendidas disponível é 2026-07-15, publicado com um atraso suficiente para ter seu próprio explicador.

A sessão, verificada

QueryVerificação da sessão: primeira/última barra do SPY em ET, contagem de barras regulares, registros de feriados, próximo fechamento
O SQL exato por trás de cada número
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-27 13:30:00' AND window_start < '2026-07-27 20:00:00') AS regular_session_bars,
    uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-27 13:30:00' AND window_start < '2026-07-27 20:00:00') AS day_sessions,
    (SELECT count() FROM global_markets.stocks_market_holidays WHERE date = '2026-07-27') AS jul27_holiday_rows,
    (SELECT toString(min(date)) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-27' 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-27' 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-27 00:00:00' AND window_start < '2026-07-28 00:00:00'
Run this yourself

Uma sessão regular completa: primeiro candle do SPY às 04:00 ET, último às 19:59 ET, 390 candles no horário regular, 1 sessão no intervalo e 0 registros de feriado para a data. O próximo fechamento programado é Labor Day em 2026-09-07.

Perguntas frequentes

Como o mercado acionário se comportou na segunda-feira, 27 de julho de 2026?

O SPY variou 0.02% em relação ao fechamento de sexta-feira, para US$739.02, enquanto o QQQ ficou em -0.32%, o DIA em 0.49% e o IWM em 0.59%. Entre os ativos líquidos, 3880 subiu e 1972 caiu.

Qual setor liderou o mercado em 27 de julho de 2026?

Staples, em 1.5%, na medição dos onze fundos SPDR de setores selecionados. O mais fraco dos onze, Energy, registrou -2.06%.

Qual foi a movimentação do mercado de opções em 27 de julho de 2026?

Foram negociados 64.69 milhões de contratos, ante 71.14 milhões na sessão anterior. Os contratos com vencimento no mesmo dia responderam por 39.3% do volume, e as calls por 55.1%.

Qual ação movimentou mais dólares em 27 de julho de 2026?

MU, com 35.71 bilhões em volume financeiro no horário regular, à frente de SPY, com 27.03 bilhões.

Notas sobre os dados

Esta edição preenche uma sessão de segunda-feira na série diária retomada, publicada em 1º de agosto. A edição diária anterior, pela data da sessão, é 10 de julho de 2026, a edição de 29 de julho cobre a quarta-feira desta mesma semana, e o resumo semanal contempla a semana encerrada na sexta-feira, 24 de julho, a sessão em que se baseia toda comparação nesta página. Os painéis identificados por ticker são ordenados alfabeticamente para que as referências no texto apontem para linhas fixas; os rankings e painéis de maiores movimentações são ordenados por valor, e toda afirmação sobre posição neles é codificada como um limite de consistência. A cesta de megacaps e a cesta setorial de onze fundos são conjuntos definidos e fixos, não classificações de fornecedores. Os painéis de movimentações aplicam um limite de giro de cinco milhões de dólares no horário regular, excluem qualquer ativo cujo desdobramento tenha sido executado entre os dois fechamentos analisados e excluem um símbolo reutilizado pela regra interna de ambiguidade, para que toda menção recaia sobre um nome verificável. Todas as variações entre fechamentos aqui abrangem o fim de semana, de sexta-feira, 24 de julho, a segunda-feira, 27 de julho, e a coluna de gap do placar cobre todo esse intervalo. Os painéis de cotações contabilizam cotações unilaterais e cruzadas por nome, em vez de descartá-las silenciosamente. O arquivo do Tesouro e o índice diário da EDGAR são disponibilizados em cronogramas próprios, portanto esses painéis reportam o que contêm, sem presumir que os dados já tenham chegado. Nenhum índice de volatilidade implícita aparece aqui: essas séries não são licenciadas para este data warehouse, portanto a volatilidade é extraída do tape por meio das amplitudes, da participação das opções no mesmo dia e do comportamento das cotações.

Metodologia

  • Fonte dos dados de mercado: fita consolidada. delayed_stocks_minute_aggs para preços e volumes, options_trades para a fita de opções, cache_stocks_quotes e cache_options_quotes para os painéis de NBBO.
  • Fechamento: o último candle de um minuto do pregão regular, nunca um print presumido das 16h e nunca um print do after-market.
  • Tratamento do fuso horário: todos os timestamps armazenados estão em UTC; as cláusulas WHERE usam literais UTC brutos, e toTimeZone aparece apenas nas listas SELECT para rótulos em ET.
  • Verificação do pregão: feita a partir da tabela de feriados e dos candles observados, nunca presumida com base no calendário.
  • Comparações com o pregão anterior: calculadas na própria query a partir de sexta-feira, 24 de julho, o pregão anterior no período entre os dois pregões, nunca copiadas de uma publicação anterior.
  • Casas decimais: as colunas de preço, tamanho e volume são convertidas para Float64 antes de qualquer divisão ou multiplicação.
  • Agregações determinísticas: quantis exatos e critérios de desempate por chaves de tupla em todo o processo; toda afirmação de ordem ou sinal no texto é codificada como um limite de verificação.
  • Data de referência do warehouse: 1º de agosto de 2026, cinco dias após o pregão, além do atraso usual de ingestão de um a dois dias da fita; os comprovantes delimitados acima mantêm a publicação no ar caso algum dataset seja identificado como ausente na geração.

Links cruzados: o resumo diário anterior, a edição de 29 de julho, o resumo semanal, quando as opções vencem, o que é um bid-ask spread, e o spread de dois a dez anos.

Todas as queries acima rodam sem alterações no terminal Strasmore, caso você queira redirecionar uma janela para outro pregão.