Resumo do mercado em 29 de julho de 2026
O dia em números: placar dos índices, breadth, spread setorial, fluxo de opções, cotações, juros e calendário, com dados baseados em consultas armazenadas.
Este resumo de mercado da quarta-feira, 29 de julho de 2026, lê toda a sessão a partir de consultas armazenadas: a variação do SPY no fechamento em relação ao fechamento anterior foi de -1.52%, a participação das ações em alta no mercado líquido foi de 27.2%, e o mercado de opções registrou 66.84 milhões de contratos. Cada janela abaixo está vinculada a datas explícitas nos dois extremos. Assim, executar novamente o SQL de qualquer painel retorna os mesmos números.
O placar
Cada variação compara a barra de minuto do último minuto da sessão regular de 29 de julho com a de terça-feira, 28 de julho, em sessões de negociação consecutivas. As linhas estão em ordem alfabética, para que cada ETF mantenha 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-28 13:30:00' AND window_start < '2026-07-28 20:00:00'
GROUP BY ticker
),
sess AS (
SELECT ticker,
argMin(open, window_start) AS day_open,
argMax(close, window_start) AS day_close,
max(high) AS day_high,
min(low) AS day_low,
round(toFloat64(sum(volume)) / 1e6, 1) AS shares_traded_m
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'QQQ', 'DIA', 'IWM')
AND window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00'
GROUP BY ticker
)
SELECT
s.ticker AS ticker,
round(toFloat64(p.prior_close), 2) AS prior_close,
round(toFloat64(s.day_open), 2) AS day_open,
round(toFloat64(s.day_close), 2) AS day_close,
round((toFloat64(s.day_open) / toFloat64(p.prior_close) - 1) * 100, 2) AS gap_pct,
round((toFloat64(s.day_close) / toFloat64(s.day_open) - 1) * 100, 2) AS intraday_pct,
round((toFloat64(s.day_close) / toFloat64(p.prior_close) - 1) * 100, 2) AS pct_change,
round(toFloat64(s.day_high), 2) AS day_high,
round(toFloat64(s.day_low), 2) AS day_low,
s.shares_traded_m
FROM sess s LEFT JOIN prior p ON s.ticker = p.ticker
ORDER BY tickerDIA variou -2.19%, IWM -1.63%, QQQ -2.07% e SPY -1.52%, fechando a $729.51. Cada linha divide a variação em duas etapas: SPY abriu -0.11% em relação ao fechamento de terça-feira e variou -1.41% da abertura ao fechamento. A etapa overnight e a etapa 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 sessão diz pouco sem a distribuição por trás dele. 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-29')), 2) AS spy_open_to_close_pct,
arrayCount(x -> x > abs(anyIf(oc_pct, d = toDate('2026-07-29'))), groupArrayIf(abs(oc_pct), d != toDate('2026-07-29'))) + 1 AS spy_abs_move_rank,
count() AS spy_sessions_compared,
toString(min(d)) AS first_session
FROM (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
(argMax(toFloat64(close), window_start) / argMin(toFloat64(open), window_start) - 1) * 100 AS oc_pct
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= toDateTime('2026-06-29 13:30:00')
AND window_start < toDateTime('2026-07-30 00:00:00')
AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
GROUP BY d
)A variação de abertura ao fechamento do SPY, de -1.41%, ficou em 1 entre 22 sessões móveis, por magnitude absoluta, em uma janela que remonta a 2026-06-29. 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(c29 > c28 AND liquid) AS advancers,
countIf(c29 < c28 AND liquid) AS decliners,
countIf(c29 = c28 AND liquid) AS unchanged,
countIf(liquid) AS liquid_tickers,
countIf(NOT liquid) AS dropped_by_liquidity_filter,
round(100.0 * countIf(c29 > c28 AND liquid) / countIf(liquid), 1) AS advancer_pct
FROM (
SELECT ticker, c28, c29, dv29 >= 1000000 AS liquid
FROM (
SELECT ticker,
argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-28 13:30:00' AND window_start < '2026-07-28 20:00:00') AS c28,
argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00') AS c29,
sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-29 13:30:00') AS dv29
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= '2026-07-28 13:30:00' AND window_start < '2026-07-29 20:00:00'
GROUP BY ticker
HAVING c28 > 0 AND c29 > 0
)
)Entre 6066 ações que superaram o limite de um milhão de dólares em volume financeiro no horário regular, 1652 fecharam acima do fechamento de terça-feira e 4342 fecharam abaixo, o que representa uma participação de altas de 27.2%. O filtro deixou de fora 5363 ações com menor liquidez, contabilizadas aqui em vez de serem descartadas silenciosamente.
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. O objetivo é ter 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-29 00:00:00')) AS prior_close,
toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-29 00:00:00')) AS day_close,
round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-29 00:00:00') / 1e9, 2) AS day_dollar_bn
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('AAPL', 'AMZN', 'AVGO', 'GOOGL', 'META', 'MSFT', 'NVDA', 'TSLA')
AND ((window_start >= '2026-07-28 13:30:00' AND window_start < '2026-07-28 20:00:00')
OR (window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00'))
GROUP BY ticker
)
SELECT
ticker,
round(prior_close, 2) AS prior_close,
round(day_close, 2) AS day_close,
round((day_close / prior_close - 1) * 100, 2) AS pct_chg,
day_dollar_bn
FROM per_name
ORDER BY tickerA AAPL variou -0.63%, a META -1.12%, a MSFT -0.27% e a NVDA -3.51%, com 22.26 bilhões de dólares em volume negociado no horário regular. A TSLA ficou em -2.97%. A coluna em dólares mostra quanto do fluxo esses oito nomes concentram 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 movimentaram 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 efetivado entre os dois fechamentos considerados e excluem um ticker reutilizado sob a regra interna de ambiguidade descrita 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((c29 / c28 - 1) * 100, 1) AS day_pct, round(dv / 1e6, 1) AS day_dollar_m
FROM (
SELECT ticker,
argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-28 13:30:00' AND window_start < '2026-07-28 20:00:00') AS c28,
argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00') AS c29,
sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-29 13:30:00') AS dv
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker NOT IN ('SPCX')
AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits WHERE execution_date > '2026-07-28' AND execution_date <= '2026-07-29')
AND window_start >= '2026-07-28 13:30:00' AND window_start < '2026-07-29 20:00:00'
GROUP BY ticker
HAVING c28 > 0 AND c29 > 0 AND dv >= 5000000
)
ORDER BY day_pct DESC
LIMIT 8
UNION ALL
SELECT 'decliners' AS board, ticker, round((c29 / c28 - 1) * 100, 1) AS day_pct, round(dv / 1e6, 1) AS day_dollar_m
FROM (
SELECT ticker,
argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-28 13:30:00' AND window_start < '2026-07-28 20:00:00') AS c28,
argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00') AS c29,
sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-29 13:30:00') AS dv
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker NOT IN ('SPCX')
AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits WHERE execution_date > '2026-07-28' AND execution_date <= '2026-07-29')
AND window_start >= '2026-07-28 13:30:00' AND window_start < '2026-07-29 20:00:00'
GROUP BY ticker
HAVING c28 > 0 AND c29 > 0 AND dv >= 5000000
)
ORDER BY day_pct ASC
LIMIT 8
)
ORDER BY board DESC, abs(day_pct) DESCA maior alta do painel foi de DFNS, que avançou 119.8% com 544.9 milhões de dólares negociados. A maior queda foi de YYAI, que registrou -68.1% com 8.5 milhões de dólares. Esta página registra os tamanhos e os comprovantes das operações. Não atribui nenhuma explicação a esses movimentos.
Dispersão entre setores
Os onze fundos SPDR de setores selecionados, pelo fechamento de 29 de julho em relação ao de 28 de julho, classificados do melhor ao pior. A cesta é definida e fixa, 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((c29 / c28 - 1) * 100, 2) AS day_pct
FROM (
SELECT ticker,
argMaxIf(toFloat64(close), window_start, window_start < '2026-07-29 00:00:00') AS c28,
argMaxIf(toFloat64(close), window_start, window_start >= '2026-07-29 00:00:00') AS c29
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('XLB', 'XLC', 'XLE', 'XLF', 'XLI', 'XLK', 'XLP', 'XLRE', 'XLU', 'XLV', 'XLY')
AND ((window_start >= '2026-07-28 13:30:00' AND window_start < '2026-07-28 20:00:00')
OR (window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00'))
GROUP BY ticker
HAVING c28 > 0 AND c29 > 0
)
)
ORDER BY day_pct DESCEnergy liderou a lista, com 1.89%, enquanto Industrials ficou na última posição, 5.1 pontos percentuais atrás, em -3.21%. Esse spread representa a dispersão setorial do dia: um pregão em que os onze ativos ficam dentro de um ponto percentual é muito diferente de outro 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-29 13:30:00' AND window_start < '2026-07-29 20:00:00'
AND ticker NOT IN ('SPCX')
GROUP BY ticker
ORDER BY dollar_volume_bn DESC
LIMIT 6
UNION ALL
SELECT
'by shares traded' AS leaderboard,
ticker,
round(sum(toFloat64(close) * toFloat64(volume)) / 1e9, 2) AS dollar_volume_bn,
round(sum(toFloat64(volume)) / 1e6, 1) AS shares_m
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00'
AND ticker NOT IN ('SPCX')
GROUP BY ticker
ORDER BY shares_m DESC
LIMIT 4
)
ORDER BY leaderboard, if(leaderboard = 'by shares traded', shares_m, dollar_volume_bn) DESCMU liderou o ranking em dólares, com 44.99 bilhões de giro no horário regular, seguido por SPY, com 42.29 bilhões. O ranking por ações responde a uma pergunta diferente: SNXX ficou no topo, com 173.4 milhões de ações e um preço médio implícito de US$7.32. 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 é o 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) = '260729', 1, 0) AS is_0dte
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-29 00:00:00' AND sip_timestamp < '2026-07-30 00:00:00'
AND underlying_symbol = 'SPY'
GROUP BY ticker
ORDER BY vol_m DESC, strike ASC
LIMIT 1
)
) AS top_spy,
(
SELECT round(toFloat64(argMax(close, window_start)), 2)
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00'
) AS spy_regular_close,
(
SELECT round(toFloat64(sum(size)) / 1e6, 2)
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-28 00:00:00' AND sip_timestamp < '2026-07-29 00:00:00'
) AS jul28_contracts_m,
(
SELECT round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260728') / sum(size), 1)
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-28 00:00:00' AND sip_timestamp < '2026-07-29 00:00:00'
) AS jul28_pct_0dte
SELECT
round(count() / 1e6, 2) AS option_prints_m,
round(toFloat64(sum(size)) / 1e6, 2) AS contracts_m,
jul28_contracts_m,
round(100.0 * sumIf(size, option_type = 'C') / sum(size), 1) AS call_pct_of_volume,
round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260729') / sum(size), 1) AS pct_0dte,
jul28_pct_0dte,
spy_regular_close,
top_spy.1 AS top_spy_strike,
top_spy.2 AS top_spy_type,
top_spy.3 AS top_spy_contracts_m,
top_spy.4 AS top_spy_is_0dte,
round(top_spy.1 - spy_regular_close, 2) AS top_spy_strike_minus_close
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-29 00:00:00' AND sip_timestamp < '2026-07-30 00:00:00'O fluxo de opções registrou 11.03 milhões de negócios, referentes a 66.84 milhões de contratos, ante 59.28 milhões na terça-feira. As calls responderam por 53.6% do volume de contratos. Os contratos com vencimento na mesma sessão, o grupo de opções com vencimento no mesmo dia, responderam por 33.1%, ante 29% na terça-feira. Esse ritmo é definido pelo momento do vencimento. O contrato mais negociado de SPY foi o 735 P, com 0.36 milhões de contratos. Seu strike estava 5.49 dólares distante do fechamento regular de SPY, a US$729.51. A distância é calculada 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-29')) / 1e6, 2) AS jul29_updates_m,
round(countIf(toDate(sip_timestamp) = toDate('2026-07-28')) / 1e6, 2) AS jul28_updates_m,
round((countIf(toDate(sip_timestamp) = toDate('2026-07-29')) / countIf(toDate(sip_timestamp) = toDate('2026-07-28')) - 1) * 100, 1) AS day_over_day_pct,
round(countIf(toDate(sip_timestamp) = toDate('2026-07-29') AND ticker = 'SPY') / 1e6, 2) AS jul29_spy_updates_m,
round(countIf(toDate(sip_timestamp) = toDate('2026-07-29') AND ticker = 'QQQ') / 1e6, 2) AS jul29_qqq_updates_m,
round(countIf(toDate(sip_timestamp) = toDate('2026-07-29') AND ticker = 'NVDA') / 1e6, 2) AS jul29_nvda_updates_m
FROM global_markets.cache_stocks_quotes
WHERE sip_timestamp >= '2026-07-28 00:00:00' AND sip_timestamp < '2026-07-30 00:00:00'A fita de cotações das ações registrou 722.65 milhões de atualizações de NBBO, contra 536.07 milhões na terça-feira, uma variação diária de 34.8%. A SPY registrou 7.32 milhões de atualizações, a QQQ 8.72 milhões e a NVDA 4.41 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-29 13:30:00' AND sip_timestamp < '2026-07-29 20:00:00'
GROUP BY ticker
HAVING countIf(bid_price > 0 AND ask_price > 0 AND ask_price >= bid_price) > 0
ORDER BY tickerO spread mediano das cotações da SPY no horário regular mediu 0.27 pontos-base do ponto médio; o da QQQ, 0.75; e o da NVDA, 1.55. 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 artefato comum de um feed consolidado, formado a partir de muitas plataformas de negociação com resolução de nanossegundos.
O SQL exato por trás de cada número
SELECT round(anyIf(spread_bps, d = toDate('2026-07-29')), 2) AS jul29_median_spread_bps,
arrayCount(x -> x < anyIf(spread_bps, d = toDate('2026-07-29')), groupArrayIf(spread_bps, d != toDate('2026-07-29'))) + 1 AS rank_tightest,
count() AS sessions_compared,
toString(min(d)) AS first_session
FROM (
SELECT toDate(sip_timestamp) AS d,
quantileExactIf(0.5)(10000 * (toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2), bid_price > 0 AND ask_price > 0 AND ask_price >= bid_price) AS spread_bps
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'SPY'
AND sip_timestamp >= '2026-07-01 13:30:00' AND sip_timestamp < '2026-07-29 20:00:00'
AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
GROUP BY d
HAVING countIf(bid_price > 0 AND ask_price > 0 AND ask_price >= bid_price) > 0
)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 20 de 20, contado a partir do menor, em uma janela iniciada em 2026-07-01. Em uma fita tranquila, esse é o ponto do painel: um dia comum de liquidez é uma constatação, publicada e delimitada.
O SQL exato por trás de cada número
WITH
(SELECT count() FROM global_markets.cache_options_quotes WHERE sip_timestamp >= '2026-07-29 00:00:00' AND sip_timestamp < '2026-07-30 00:00:00') AS jul29_options_rows,
(SELECT count() FROM global_markets.cache_stocks_quotes WHERE sip_timestamp >= '2026-07-29 00:00:00' AND sip_timestamp < '2026-07-30 00:00:00') AS jul29_stock_quote_rows
SELECT
round(jul29_options_rows / 1e9, 2) AS jul29_options_bn,
round(jul29_options_rows / jul29_stock_quote_rows, 1) AS options_to_stock_ratio,
round((SELECT count() FROM global_markets.cache_options_quotes WHERE ticker >= 'O:SPY26' AND ticker < 'O:SPY27' AND sip_timestamp >= '2026-07-29 13:30:00' AND sip_timestamp < '2026-07-29 20:00:00') / 1e6, 0) AS jul29_spy_options_mA fita de NBBO das opções registrou 13.55 bilhões de atualizações, 18.8 vezes o volume da fita de cotações das ações, sendo que apenas a raiz da SPY respondeu por 600 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-24' AND date <= '2026-07-29'
ORDER BY dateO arquivo do Treasury fica cerca de uma sessão atrás do mercado, portanto este painel mostra as negociações registradas: linhas datadas 4 na janela. A mais recente, datada de 2026-07-29, indicou a taxa de dois anos em 4.22%, a de dez anos em 4.67% e a de trinta anos em 5.2%, com um spread entre dois e dez anos de 45 pontos-base.
O calendário por trás do dia
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-29 04:00:00' AND published_utc < '2026-07-30 04:00:00'
)
WHERE t != 'SPCX'
GROUP BY t
)
) AS top_news,
(
SELECT (count(), uniqExact(cik), countIf(form_type = '4'), countIf(form_type = '8-K'), countIf(form_type = '424B2'), countIf(form_type = '10-Q'))
FROM global_markets.stocks_sec_edgar_index
WHERE filing_date = '2026-07-29'
) AS fil
SELECT
(SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-29') AS ex_dividend_records,
(SELECT countIf(toFloat64(split_from) > toFloat64(split_to)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-29') AS reverse_splits,
(SELECT countIf(toFloat64(split_to) > toFloat64(split_from)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-29') AS forward_splits,
(SELECT count() FROM global_markets.stocks_ipos WHERE listing_date = '2026-07-29') AS listings,
(SELECT count() FROM global_markets.stocks_news WHERE published_utc >= '2026-07-29 04:00:00' AND published_utc < '2026-07-30 04:00:00') AS news_articles,
(SELECT uniqExact(JSONExtractString(publisher, 'name')) FROM global_markets.stocks_news WHERE published_utc >= '2026-07-29 04:00:00' AND published_utc < '2026-07-30 04:00:00') AS news_publishers,
top_news.1 AS top_news_ticker,
top_news.2 AS top_news_n,
fil.1 AS fil_total,
fil.2 AS fil_filers,
fil.3 AS fil_form4,
fil.4 AS fil_8k,
fil.5 AS fil_424b2,
fil.6 AS fil_10q85 registros de dividendos foram ex-dividend em 29 de julho; 2 reverse splits e 1 forward splits foram executados, e 1 novas listagens chegaram ao tape. O feed de notícias trouxe 190 artigos de 2 publishers, com NVDA o ticker mais coberto nessa janela deste feed em 13 artigos. O índice diário da EDGAR reúne 5742 filings da data, enviados por 3064 filers distintos: 712 relatórios de insiders no Formulário 4, 440 relatórios correntes 8-K, 884 suplementos de preços 424B2 e 174 relatórios trimestrais 10-Q. Esse índice segue seu próprio cronograma, e este painel informa o que estiver disponível no momento da geração.
Em pauta
Para o restante da semana, consulte as mesmas tabelas, deliberadamente olhando além do período.
O SQL exato por trás de cada número
SELECT
(SELECT count() FROM global_markets.stocks_market_holidays WHERE date >= '2026-07-30' AND date <= '2026-07-31' AND status != 'open') AS closures_rest_of_week,
(SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date >= '2026-07-30' AND ex_dividend_date <= '2026-07-31') AS exdiv_records_rest_of_week,
(SELECT countIf(ticker IN ('AAPL', 'MSFT', 'JPM', 'KO', 'JNJ', 'XOM', 'CVX', 'PG', 'WMT', 'HD')) FROM global_markets.stocks_dividends WHERE ex_dividend_date >= '2026-07-30' AND ex_dividend_date <= '2026-07-31') AS household_exdivs,
(SELECT count() FROM global_markets.stocks_splits WHERE execution_date >= '2026-07-30' AND execution_date <= '2026-07-31') AS splits_rest_of_week,
round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260731') / sum(size), 1) AS jul31_expiry_pct_of_wed_volume,
(SELECT toString(max(settlement_date)) FROM global_markets.stocks_short_interest WHERE settlement_date <= '2026-07-29') AS latest_short_interest_settlement
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-29 00:00:00' AND sip_timestamp < '2026-07-30 00:00:00'A tabela de feriados mostra 0 fechamentos na quinta-feira, 30 de julho, e na sexta-feira, 31 de julho. 611 registros de dividendos ficam ex-dividend nessas duas sessões, 0 deles entre dez empresas conhecidas do setor de consumo analisadas, e 12 desdobramentos estão programados para ocorrer. Do volume de opções de quarta-feira, 19.7% já estava concentrado 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 explicativo.
A 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-29 13:30:00' AND window_start < '2026-07-29 20:00:00') AS regular_session_bars,
uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-29 13:30:00' AND window_start < '2026-07-29 20:00:00') AS day_sessions,
(SELECT count() FROM global_markets.stocks_market_holidays WHERE date = '2026-07-29') AS jul29_holiday_rows,
(SELECT toString(min(date)) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-29' AND date <= '2026-12-31' AND status = 'closed') AS next_closure_date,
(SELECT argMin(name, date) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-29' AND date <= '2026-12-31' AND status = 'closed') AS next_closure_name
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-29 00:00:00' AND window_start < '2026-07-30 00:00:00'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 linhas de feriados 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 quarta-feira, 29 de julho de 2026?
O SPY variou -1.52% no fechamento contra o fechamento anterior, para US$729.51, enquanto o QQQ ficou em -2.07%, o DIA em -2.19% e o IWM em -1.63%. Entre os ativos líquidos, 1652 subiu e 4342 caiu.
Qual setor liderou o pregão em 29 de julho de 2026?
Energy, com 1.89%, considerando os onze fundos SPDR de setores selecionados. O pior desempenho entre os onze foi de Industrials, que registrou -3.21%.
Qual foi o nível de atividade do mercado de opções em 29 de julho de 2026?
Foram negociados 66.84 milhões de contratos, ante 59.28 milhões no pregão anterior. Os contratos com vencimento no mesmo dia representaram 33.1% do volume, e as calls, 53.6%.
Qual ação movimentou mais dólares em 29 de julho de 2026?
MU, com 44.99 bilhões em volume financeiro no horário regular, à frente de SPY, com 42.29 bilhões.
Notas sobre os dados
Esta edição retoma a série diária; a edição diária anterior é 10 de julho de 2026, e o resumo semanal cobre a semana anterior a esta. Os painéis nomeados por ticker são ordenados alfabeticamente, para que as referências no texto apontem para linhas fixas; os rankings e painéis de maiores altas e baixas são ordenados por valor, e toda afirmação de posição neles é codificada como um limite de verificação. A cesta de megacaps e a cesta setorial de onze fundos são conjuntos definidos e fixos, não classificações de provedores. Os painéis de maiores altas e baixas 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 que medem e excluem um símbolo reutilizado pelo filtro interno de ambiguidade, para que toda menção recaia 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 divulgados em seus próprios cronogramas; por isso, esses painéis informam o que receberam, sem presumir que os dados tenham chegado. Nenhum índice de volatilidade implícita aparece aqui: essas séries não são licenciadas para este 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: consolidated tape.
delayed_stocks_minute_aggspara preços e volumes,options_tradespara o options tape,cache_stocks_quotesecache_options_quotespara os painéis de NBBO. - Fechamento: o último candle de um 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 os 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 28 de julho. Nunca reaproveitadas de uma publicação anterior.
- Casas decimais: as colunas de preço, quantidade 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 por chave de tupla em toda a análise; toda afirmação de ordem ou sinal no texto é codificada como um limite de consistência.
- Data de referência do warehouse: 1º de agosto de 2026, três dias após o pregão, além do atraso normal de ingestão do tape, de um a dois dias; os comprovantes delimitados acima mantêm a publicação disponível caso algum dataset não seja encontrado durante a 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.