Resumo do mercado: 30 de julho de 2026
Sessão de 30 de julho de 2026 em números: índices, breadth, spread setorial, fluxo de opções, cotações, juros e calendário, com dados das consultas.
Este resumo de mercado de quinta-feira, 30 de julho de 2026, lê toda a sessão a partir de consultas armazenadas: a variação de fechamento a fechamento do SPY foi de 1.68%, a participação das ações em alta no fluxo líquido foi de 63.5%, e o fluxo de opções registrou 67.06 milhões de contratos. Todas as janelas abaixo estão vinculadas a datas explícitas nas duas extremidades. Assim, 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 do pregão regular de 30 de julho com a de quarta-feira, 29 de julho, em sessões consecutivas. As linhas estão em ordem alfabética, portanto cada ETF mantém uma posição fixa.
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-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 tickerO DIA variou 1.19%, o IWM 1.37%, o QQQ 3.34% e o SPY 1.68%, fechando a $741.73. Cada linha divide a variação em duas partes: o SPY abriu 0.9% em relação ao fechamento de quarta-feira e variou 0.77% entre a abertura e o fechamento. A variação no overnight e a variação intradiária não precisam coincidir, e essa divisão é a primeira impressão digital da sessão.
O dia foi incomum?
O número de uma única 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.
O SQL exato por trás de cada número
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
)A variação da abertura ao fechamento do SPY, de 0.77%, ficou em 3 entre 22 sessões móveis, por tamanho absoluto, em uma janela que remonta a 2026-06-30. A classificação conta quantas outras sessões na 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.
O SQL exato por trás de cada número
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
)
)Entre 5960 ações que superaram o limite de um milhão de dólares em volume financeiro no horário regular, 3782 fecharam acima do fechamento de quarta-feira e 2122 fecharam abaixo, o que representa uma participação de altas de 63.5%. O filtro deixou de fora 5492 ações com menor liquidez, contabilizadas aqui em vez de serem simplesmente descartadas.
A prateleira de 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.
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-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 tickerAAPL oscilou -1.24%, META -8.17%, MSFT 15.06% e NVDA 2.67%, em um giro de 19.63 bilhões de dólares no horário regular, com a TSLA em 3.53%. A coluna em dólares mostra quanto do fluxo esses oito nomes movimentam por conta própria; o painel de amplitude acima verifica até que ponto o restante do mercado acompanhou esse movimento.
As ações que mais se moveram no dia
Ambos os painéis 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 que medem e excluem um ticker reutilizado conforme o filtro de ambiguidade definido nas notas.
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((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) DESCA maior alta do painel, CYCU, avançou 489.5%, com 474.4 milhões de dólares negociados. A maior queda, IREZ, recuou -61.2%, com 90.8 milhões negociados. Esta página registra os tamanhos e os comprovantes. Não atribui nenhuma explicação a esses movimentos.
Dispersão entre setores
Os onze fundos SPDR de setores selecionados, com o fechamento de 30 de julho em relação ao de 29 de julho, classificados do melhor ao pior. A cesta é definida e fixa, e não uma classificação de fornecedor.
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((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 DESCTechnology liderou a lista, com 5.52%, enquanto Communications ficou na última posição, em -2.69%, 8.21 pontos percentuais atrás. Esse spread é a dispersão setorial do dia: uma sessão em que os onze ativos ficam dentro de um ponto percentual tem dinâmica muito diferente de outra em que a diferença se estende por vários pontos.
Onde os dólares foram negociados
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-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) DESCMU liderou o ranking em dólares, com 43.29 bilhões negociados no horário regular, seguido por MSFT, com 42.56 bilhões. O ranking por ações responde a uma pergunta diferente: CYCU ficou na liderança, com 544 milhões de ações e um preço médio implícito de $0.86. 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 métrica por ativo é volume relativo.
O fluxo de opções
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) = '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'O fluxo de opções registrou 10.93 milhões de negócios, envolvendo 67.06 milhões de contratos, ante 66.84 milhões na quarta-feira. As calls representaram 54.6% do volume de contratos. Os contratos que vencem na mesma sessão, o grupo de vencimento em zero dias, representaram 25.3%, ante 33.1% na quarta-feira, em um ritmo determinado pelo momento do vencimento. O contrato de SPY mais negociado foi o 740 C, com 0.56 milhões de contratos. Seu strike estava a -1.73 dólares do fechamento regular de SPY, a $741.73, calculado 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.
O SQL exato por trás de cada número
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'A fita de cotações de ações registrou 560.75 milhões de atualizações de NBBO, contra 722.65 milhões na quarta-feira, uma variação diária de -22.4%. O SPY registrou 5.55 milhões de atualizações, o QQQ 6.75 milhões e o NVDA 2.39 milhões.
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-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 tickerO spread mediano cotado do SPY no horário regular correspondeu a 0.27 pontos-base do preço médio. O do QQQ ficou em 0.59 e o do NVDA, em 1.03. As duas últimas colunas mostram a divulgação: cotações unilaterais e cruzadas são contabilizadas por ativo e excluídas do cálculo da mediana, em vez de serem descartadas silenciosamente. Uma cotação cruzada, com o bid acima do ask, é um artefato comum de um feed consolidado, formado a partir de muitas plataformas em resolução de nanossegundos.
O SQL exato por trás de cada número
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
)Comparado com todas as sessões de julho usando a mesma metodologia, o spread mediano do SPY no dia, de 0.27 pontos-base, ficou em 19 de 21, contando a partir do menor spread, em uma janela iniciada em 2026-07-01. Em uma fita tranquila, essa frase resume o objetivo do painel: um dia comum de liquidez é um achado, publicado e delimitado.
O SQL exato por trás de cada número
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_mA fita de NBBO de opções registrou 10.32 bilhões de atualizações, 18.4 vezes o volume da fita de cotações de ações. Apenas o root do SPY respondeu por 441 milhões de atualizações no horário regular.
Taxas
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-27' AND date <= '2026-07-30'
ORDER BY dateO arquivo do Treasury fica cerca de um pregão atrás do mercado. Por isso, este painel mostra os negócios executados que ele contém: linhas datadas 4 no período. A mais recente, datada de 2026-07-30, registrou a taxa da Treasury de dois anos em 4.23%, a de dez anos em 4.68% e a de trinta anos em 5.21%, um spread entre dois e dez anos de 45 pontos-base.
O calendário por trás do pregão
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-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_10q200 registros de dividendos ficaram ex-dividend em 30 de julho, 3 desdobramentos reversos e 3 desdobramentos ocorreram, e 3 novas listagens chegaram ao tape. O feed de notícias trouxe 173 artigos de 2 veículos, com NVDA sendo o ticker mais coberto na janela deste feed, com 11 artigos. O índice diário da EDGAR reúne 5544 filings da data, de 2743 declarantes distintos: 745 relatórios de insiders no Formulário 4, 460 relatórios correntes 8-K, 1426 suplementos de preço 424B2 e 252 relatórios trimestrais 10-Q. Esse índice é atualizado segundo seu próprio cronograma, e este painel informa o que estiver disponível no momento da geração.
Na pauta
Nas próximas duas sessões, leia as mesmas tabelas, deliberadamente olhando além do período. Sexta-feira, 31 de julho, é a última data de negociação do mês no calendário.
O SQL exato por trás de cada número
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'A tabela de feriados mostra 0 fechamentos na sexta-feira, 31 de julho, e na segunda-feira, 3 de agosto. Registros de dividendos no valor de 544 ficam ex-dividend nessas duas sessões; 0 deles pertencem às dez empresas conhecidas do setor doméstico analisadas, e 14 desdobramentos estão programados para ocorrer. Do volume de opções de quinta-feira, 26.7% já estava concentrado em contratos com vencimento na sexta-feira, 31 de julho. A liquidação mais recente de posições vendidas a descoberto disponível nos arquivos é 2026-07-15, um arquivo publicado com atraso suficiente para ter seu próprio explicador.
Sessão verificada
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-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'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 na janela e 0 registros de feriado para a data. O próximo fechamento programado é Labor Day, em 2026-09-07.
Perguntas frequentes
Como foi o desempenho do mercado acionário na quinta-feira, 30 de julho de 2026?
O SPY variou 1.68% no fechamento contra fechamento, para US$741.73, enquanto o QQQ ficou em 3.34%, o DIA em 1.19% e o IWM em 1.37%. Entre os ativos líquidos, 3782 subiu e 2122 caiu.
Qual setor liderou o ranking em 30 de julho de 2026?
Technology, em 5.52%, considerando os onze fundos SPDR de setores selecionados. O pior desempenho entre os onze foi de Communications, que registrou -2.69%.
Qual foi o movimento do mercado de opções em 30 de julho de 2026?
Foram negociados 67.06 milhões de contratos, ante 66.84 milhões no pregão anterior. Os contratos com vencimento no mesmo dia representaram 25.3% do volume, e as calls, 54.6%.
Qual ação movimentou mais dólares em 30 de julho de 2026?
MU, com volume financeiro de 43.29 bilhões no horário regular, à frente de MSFT, com 42.56 bilhões.
Notas sobre os dados
A edição diária anterior é 29 de julho de 2026, e o resumo semanal cobre a semana anterior a esta. Os painéis identificados por ticker são ordenados alfabeticamente, para que as referências no texto apontem sempre para as mesmas linhas. Os rankings e painéis de maiores movimentos são ordenados por valor, e toda afirmação posicional que eles contêm é codificada como um limite de verificação. A cesta de mega caps e a cesta setorial de onze fundos são conjuntos definidos e fixos, não classificações de fornecedores. Os painéis de maiores movimentos 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 medidos e excluem um símbolo reutilizado sob a regra interna de ambiguidade. Assim, cada destaque sempre recai sobre um nome verificável. Os painéis de cotações contabilizam cotações unilaterais e cruzadas por nome, em vez de descartá-las silenciosamente. O arquivo do Treasury e o índice diário da EDGAR são publicados em cronogramas próprios. Por isso, esses painéis reportam o que têm disponível, sem presumir que os dados já chegaram. Nenhum índice de volatilidade implícita aparece aqui. Essas séries não são licenciadas para este data warehouse. Portanto, a volatilidade é inferida diretamente do tape, por meio das amplitudes, da participação das opções negociadas no mesmo dia e do comportamento das cotações.
Metodologia
- Fonte dos dados de mercado: fita consolidada.
delayed_stocks_minute_aggspara preços e volumes,options_tradespara a fita de opções,cache_stocks_quotesecache_options_quotespara os painéis de NBBO. - Fechamento: a barra de um minuto do último minuto do pregão regular, nunca um print presumido às 16h e nunca um print do horário estendido.
- Tratamento do fuso horário: todos os timestamps armazenados estão em UTC; as cláusulas WHERE usam literais UTC brutos, e
toTimeZoneaparece apenas nas listas SELECT para rótulos em ET. - Verificação do pregão: feita a partir da tabela de feriados e das barras observadas, nunca presumida com base no calendário.
- Comparações com o pregão anterior: calculadas na própria query a partir de 29 de julho, nunca reaproveitadas 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 produto.
- Agregações determinísticas: quantis exatos e critérios de desempate baseados em tuplas em toda parte; toda afirmação de ordenação ou sinal no texto é codificada como um limite de validação.
- Data de referência do data warehouse: 1º de agosto de 2026, dois dias após o pregão, no limite do atraso usual de ingestão de um a dois dias da fita; os recibos delimitados acima mantêm a publicação disponível caso algum conjunto de dados não seja encontrado no momento da geração.
Links relacionados: o resumo diário anterior, o resumo semanal, quando as opções vencem, o que é um spread bid-ask e o spread de dois a dez anos.
Todas as queries acima são executadas sem alterações no terminal Strasmore, caso você queira redirecionar uma janela para outro pregão.