Strasmore Research
Recaps de mercado Matt ConnorPor Matt Connor · Atualizado 2026-07-23

Resumo do mercado 1 de julho de 2026

O segundo semestre iniciou com índices calmos e volatilidade interna. O complexo de memória caiu, a META saltou e a maioria dos setores do S&P fechou no verde.

Quarta-feira, 1 de julho de 2026 — a primeira sessão do segundo semestre — colocou um dos dias mais calmos para os índices sobre sua negociação mais volátil. O SPY fechou -0.08% e o QQQ -1.44%, mas o complexo de memória que sustentou o segundo trimestre perdeu um décimo de seu valor, a META saltou 8.88%, e 7 dos fundos do setor S&P da 11 ainda fecharam no positivo. Sessão anterior: 30 de junho.

O placar

As mudanças comparam o último candle da sessão regular de 1º de julho com o de terça-feira, 30 de junho.

QuerySPY / QQQ / DIA / IWM — 1 de julho vs fechamento de 30 de junho, pregão 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-06-30 13:30:00' AND window_start < '2026-06-30 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-01 13:30:00' AND window_start < '2026-07-01 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_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 AS shares_traded_m
FROM sess s
JOIN prior p ON s.ticker = p.ticker
ORDER BY s.ticker

O destaque é o split: DIA em 0.02% e SPY em -0.08% ficaram estáveis frente aos -1.44% de QQQ e -0.37% de IWM — uma liquidação de ações de crescimento que o mercado amplo mal registrou.

Um dos dias de menor volatilidade dos índices no último mês

QueryMovimento open-to-close do SPY em relação ao último mês de sessões (rank 1 = maior variação absoluta)
O SQL exato por trás de cada número
SELECT round(anyIf(oc_pct, d = toDate('2026-07-01')), 2) AS day_move_pct,
       arrayCount(x -> x > abs(anyIf(oc_pct, d = toDate('2026-07-01'))), groupArrayIf(abs(oc_pct), d != toDate('2026-07-01'))) + 1 AS abs_move_rank,
       count() AS 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-01 00:00:00')
      AND window_start < toDateTime('2026-07-02 00:00:00')
      AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
    GROUP BY d
)

A variação do SPY entre a abertura e o fechamento — uma perspectiva diferente do fechamento sobre o fechamento — foi de 0.09%: ocupando a posição 20 de 22 sessões consecutivas em termos de variação absoluta, com apenas duas sessões apresentando oscilação menor. O complexo de volatilidade seguiu a mesma tendência. Como este relatório não contém o índice VIX à vista, a análise utiliza fundos de futuros do VIX — a leitura negociável mais próxima do preço de proteção:

QueryComplexo de volatilidade em 1 de julho: ETFs de VIX-futures vs fechamento de terça, com SPY como âncora
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-01 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-01 00:00:00')) AS day_close,
        maxIf(toFloat64(high), window_start >= '2026-07-01 00:00:00') AS day_high,
        minIf(toFloat64(low), window_start >= '2026-07-01 00:00:00') AS day_low
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('SPY', 'SVXY', 'UVXY', 'VIXY', 'VXX')
      AND ((window_start >= '2026-06-30 13:30:00' AND window_start < '2026-06-30 20:00:00')
        OR (window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 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,
    round((day_high / day_low - 1) * 100, 2) AS range_pct
FROM per_name
ORDER BY ticker

O VXX, o maior fundo de futuros de VIX para o primeiro mês, subiu 0.72%; o VIXY subiu 0.8%; o alavancado UVXY subiu 1.13% em um intervalo de 3.68%; e o inverso SVXY subiu -0.42%. Os resultados foram similares ao desempenho das ações individuais, desconsiderando erros de arredondamento.

Amplitude: mais quedas do que altas — e mais novas máximas do que novas mínimas

QueryAlta, baixa e novas máximas/mínimas trimestrais entre tickers com pelo menos $1M negociados em 1 de julho
O SQL exato por trás de cada número
WITH per_ticker AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-01 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-01 00:00:00')) AS day_close,
        maxIf(toFloat64(high), window_start < '2026-07-01 00:00:00') AS quarter_high,
        minIf(toFloat64(low), window_start < '2026-07-01 00:00:00') AS quarter_low,
        maxIf(toFloat64(high), window_start >= '2026-07-01 00:00:00') AS day_high,
        minIf(toFloat64(low), window_start >= '2026-07-01 00:00:00') AS day_low,
        sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-01 00:00:00') AS day_dollar_volume,
        countIf(window_start < '2026-07-01 00:00:00') AS quarter_bars
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ((window_start >= '2026-04-01 13:30:00' AND window_start < '2026-06-30 20:00:00')
        OR (window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 20:00:00'))
      AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
    GROUP BY ticker
)
SELECT
    countIf(day_close > prior_close AND day_dollar_volume >= 1000000) AS advancers,
    countIf(day_close < prior_close AND day_dollar_volume >= 1000000) AS decliners,
    countIf(day_close = prior_close AND day_dollar_volume >= 1000000) AS unchanged,
    round(100.0 * countIf(day_close > prior_close AND day_dollar_volume >= 1000000)
        / countIf(day_dollar_volume >= 1000000), 1) AS advancer_pct,
    countIf(day_dollar_volume >= 1000000 AND quarter_bars >= 1000 AND day_high > quarter_high) AS new_quarter_highs,
    countIf(day_dollar_volume >= 1000000 AND quarter_bars >= 1000 AND day_low < quarter_low) AS new_quarter_lows,
    round(countIf(day_dollar_volume >= 1000000 AND quarter_bars >= 1000 AND day_high > quarter_high)
        / countIf(day_dollar_volume >= 1000000 AND quarter_bars >= 1000 AND day_low < quarter_low), 1) AS highs_per_low,
    countIf(day_dollar_volume >= 1000000 AND quarter_bars >= 1000) AS names_with_a_full_quarter,
    countIf(day_dollar_volume >= 1000000) AS liquid_tickers,
    count() AS tickers_traded_both_sessions,
    count() - countIf(day_dollar_volume >= 1000000) AS dropped_by_liquidity_filter,
    countIf(day_dollar_volume >= 1000000 AND quarter_bars < 1000) AS dropped_short_quarter_history
FROM per_ticker
WHERE prior_close > 0 AND day_close > 0

2928 altas, 3465 baixas, 82 estáveis — 45.2% do volume negociado subiu. Mas a amplitude não reflete a severidade: em relação ao intervalo de negociação do segundo trimestre, 836 das 6217 ações com um trimestre completo de negociação atingiram uma nova máxima trimestral neste dia de queda, contra 246 que atingiram uma nova mínima — 3.4 novas máximas para cada nova mínima. A maioria recuou; poucos romperam seus intervalos. Quedas: 5435 de 11910 tickers com volume dual-session abaixo do filtro de US$ um milhão, 258 nomes líquidos sem um trimestre completo de barras.

O painel do setor: o prejuízo concentrou-se em apenas um setor

Os onze fundos setoriais do SPDR são a forma mais barata de obter uma visão transversal de todo o mercado — a mesma cesta em todas as sessões.

QueryOs onze ETFs de setores do S&P em 1 de julho, do melhor ao pior vs fechamento de terça
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-01 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-01 00:00:00')) AS day_close,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-01 00:00:00') / 1e9, 2) AS day_dollar_bn
    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-06-30 13:30:00' AND window_start < '2026-06-30 20:00:00')
        OR (window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 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,
    round((day_close / prior_close - 1) * 100 - min((day_close / prior_close - 1) * 100) OVER (), 2) AS pct_above_worst_sector,
    sum(if(day_close > prior_close, 1, 0)) OVER (ORDER BY (day_close / prior_close) DESC ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS green_so_far,
    day_dollar_bn
FROM per_name
ORDER BY pct_chg DESC

Serviços de comunicação (XLC) — o fundo setorial que detém META — liderou com 2.41%, seguido pelo setor financeiro (XLF) com 2.2%. Tecnologia (XLK) ficou isolado na base, -2.56% e 4.97 pontos percentuais abaixo do líder. No total, 7 de 11 fundos fecharam no positivo — consumo discricionário 0.68%, saúde 0.57% — contra o fechamento negativo de utilidades (-1.28%), industriais (-0.98%) e energia (-0.6%). Isso significa que "o índice mal se moveu" devido ao desempenho desses setores.

O destaque do dia: memória quebrou, META seguiu o caminho oposto

Oito nomes concentraram a dispersão: as quatro ações de memória e armazenamento que lideraram o segundo trimestre, e quatro nomes de chips e plataformas ao redor delas. Co-movimento, magnitude e timing são reportados; os dados não explicam o motivo.

QueryO complexo de memória e as megacaps: variação vs fechamento de terça, timing de range e volume financeiro
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-01 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-01 00:00:00')) AS day_close,
        maxIf(toFloat64(high), window_start >= '2026-07-01 00:00:00') AS day_high,
        minIf(toFloat64(low), window_start >= '2026-07-01 00:00:00') AS day_low,
        argMinIf(window_start, (toFloat64(low), toInt64(toUnixTimestamp(window_start))), window_start >= '2026-07-01 00:00:00') AS low_bar,
        argMaxIf(window_start, (toFloat64(high), -toInt64(toUnixTimestamp(window_start))), window_start >= '2026-07-01 00:00:00') AS high_bar,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-01 00:00:00') / 1e9, 2) AS day_dollar_bn
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('AMD', 'META', 'MRVL', 'MU', 'NVDA', 'SNDK', 'STX', 'WDC')
      AND ((window_start >= '2026-06-30 13:30:00' AND window_start < '2026-06-30 20:00:00')
        OR (window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 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,
    formatDateTime(toTimeZone(high_bar, 'America/New_York'), '%H:%i') AS day_high_et,
    formatDateTime(toTimeZone(low_bar, 'America/New_York'), '%H:%i') AS day_low_et,
    toHour(toTimeZone(low_bar, 'America/New_York')) * 60 + toMinute(toTimeZone(low_bar, 'America/New_York')) AS low_minute_et,
    round((day_high / day_low - 1) * 100, 2) AS range_pct,
    day_dollar_bn
FROM per_name
ORDER BY ticker

SanDisk (-10.45%) e Micron (-10.23%) perderam mais de um décimo de seu valor; Marvell -8.68%, AMD -6.87%, Western Digital -6.3% e Seagate -5.11%. A MU teve um volume de $42.94 bilhões, mais do que o SPY negociado durante todo o dia, e MU, AMD e Marvell registraram mínimas da sessão nos minutos finais do pregão (15:59, 15:57, 15:58 ET) — vendidas durante o leilão de fechamento, e não por um vácuo de liquidez matinal que se recuperou (a análise detalhada da MU foca no trimestre passado).

A META é o espelho inverso: 8.88% sobre $22.72 bilhões negociados, sua mínima em 09:30 ET — a barra de abertura — e nunca mais retornou. A NVDA não saiu do lugar em -1.09% (o mês de junho da NVDA).

O que foi dito

Esta página não atribui causas. Mas nosso feed de notícias licenciado é uma tabela como qualquer outra — o que ele trouxe naquele dia:

QueryAs últimas doze notícias do dia com MU, SNDK, STX, WDC ou META (feed licenciado)
O SQL exato por trás de cada número
SELECT published_et, publisher, names_tagged, headline
FROM (
    SELECT
        published_utc,
        formatDateTime(toTimeZone(published_utc, 'America/New_York'), '%H:%i') AS published_et,
        JSONExtractString(publisher, 'name') AS publisher,
        arrayStringConcat(arrayFilter(x -> x IN ('MU', 'SNDK', 'STX', 'WDC', 'META'), tickers), ' ') AS names_tagged,
        substring(title, 1, 72) AS headline
    FROM global_markets.stocks_news
    WHERE published_utc >= '2026-07-01 04:00:00' AND published_utc < '2026-07-02 04:00:00'
      AND hasAny(tickers, ['MU', 'SNDK', 'STX', 'WDC', 'META'])
      AND NOT has(tickers, 'SPCX')
      AND position(title, 'SPCX') = 0
    ORDER BY published_utc DESC
    LIMIT 12
)
ORDER BY published_utc ASC

O artigo de meio de tarde da Motley Fool sobre a Micron (14:11 ET) saiu com o título "Why Micron Stock Is Plummeting Today". Seu resumo noturno (17:12 ET) e a atualização quatro minutos depois (17:16 ET) colocaram a alta da META ao lado de um suposto plano para vender excesso de capacidade de computação de IA como um negócio de cloud. Esse é o enquadramento do veículo, não um fato do tape, e 12 artigos de dois publishers é o foco de um único feed, não do mercado.

Onde o dinheiro foi negociado

QueryLíderes de volume de duas formas: top 6 por volume financeiro, top 4 por volume de ações (um símbolo duplicado excluído)
O SQL exato por trás de cada número
SELECT ticker, leaderboard, dollar_volume_bn, if(dollar_volume_bn < 1, dollar_volume_m, NULL) AS dollar_value_m, shares_m,
    round(100 * if(leaderboard = 'by dollars traded', dollar_volume_bn, shares_m)
        / max(if(leaderboard = 'by dollars traded', dollar_volume_bn, shares_m)) OVER (PARTITION BY leaderboard), 1) AS pct_of_board_leader
FROM (
    SELECT
        'by dollars traded' AS leaderboard,
        ticker,
        round(sum(toFloat64(close) * toFloat64(volume)) / 1e9, 2) AS dollar_volume_bn,
        round(sum(toFloat64(close) * toFloat64(volume)) / 1e6, 0) AS dollar_volume_m,
        round(sum(toFloat64(volume)) / 1e6, 1) AS shares_m
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 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(close) * toFloat64(volume)) / 1e6, 0) AS dollar_volume_m,
        round(sum(toFloat64(volume)) / 1e6, 1) AS shares_m
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 20:00:00'
      AND ticker NOT IN ('SPCX')
    GROUP BY ticker
    ORDER BY shares_m DESC
    LIMIT 4
)
ORDER BY leaderboard ASC, if(leaderboard = 'by dollars traded', dollar_volume_bn, shares_m) DESC

A MU liderou o volume com $42.94 bilhões — o SPY ficou em segundo com $27.76 bilhões e a META em quarto com $22.72 bilhões — uma ação em queda negociando um bilhão e meio a mais que o ETF de índice. Os extremos do movimento foram os ativos com maior volume. O painel de ações apresenta o cenário atípico de sempre: o SOXS, ETF inverso de 3x em semicondutores, liderou com 553.1 milhões de ações — o maior volume do dia em que os chips caíram — enquanto uma ação de baixo valor unitário encerra a lista com 189.8 milhões de ações no valor de $319 milhões (volume relativo indica exatamente isso). Base: horário regular de 1º de julho, excluindo uma listagem de símbolo reutilizado (comprovantes).

O fluxo de opções

QueryResumo do dia de opções: volume, vencimento no mesmo dia, skew put/call e o contrato mais negociado
O SQL exato por trás de cada número
WITH
    (
        SELECT (any(underlying_symbol), any(toFloat64(strike_price)), any(option_type),
                sum(size), round(avg(toFloat64(price)), 3),
                any(if(substring(ticker, length(ticker) - 14, 6) = '260701', 1, 0)))
        FROM global_markets.options_trades
        WHERE sip_timestamp >= '2026-07-01 00:00:00' AND sip_timestamp < '2026-07-02 00:00:00'
        GROUP BY ticker
        ORDER BY sum(size) DESC, ticker ASC
        LIMIT 1
    ) AS top_contract,
    (
        SELECT round(toFloat64(argMax(close, window_start)), 2)
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY' AND window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 20:00:00'
    ) AS spy_regular_close
SELECT
    round(count() / 1e6, 2) AS option_prints_m,
    round(toFloat64(sum(size)) / 1e6, 2) AS contracts_m,
    round(100.0 * sumIf(size, option_type = 'C') / sum(size), 1) AS call_pct_of_volume,
    round(sumIf(toFloat64(size), option_type = 'P') / sumIf(toFloat64(size), option_type = 'C'), 2) AS put_call_ratio,
    round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260701') / sum(size), 1) AS same_day_expiry_pct,
    round(toFloat64(sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260702')) / 1e6, 2) AS thu_jul2_expiry_contracts_m,
    countIf(substring(ticker, length(ticker) - 14, 6) = '260703') AS fri_jul3_expiry_prints,
    round(toFloat64(sumIf(size, underlying_symbol = 'SPY' AND option_type = 'P')) / 1e6, 2) AS spy_put_contracts_m,
    round(100.0 * sumIf(size, underlying_symbol = 'SPY' AND option_type = 'P' AND toFloat64(strike_price) < spy_regular_close * 0.98)
        / sumIf(size, underlying_symbol = 'SPY' AND option_type = 'P'), 1) AS spy_puts_2pct_below_pct,
    round(100.0 * sumIf(size, underlying_symbol = 'SPY' AND option_type = 'C' AND toFloat64(strike_price) > spy_regular_close * 1.02)
        / sumIf(size, underlying_symbol = 'SPY' AND option_type = 'C'), 1) AS spy_calls_2pct_above_pct,
    round(sumIf(toFloat64(size), underlying_symbol = 'MU' AND option_type = 'P')
        / sumIf(toFloat64(size), underlying_symbol = 'MU' AND option_type = 'C'), 2) AS mu_put_call_ratio,
    round(sumIf(toFloat64(size), underlying_symbol = 'META' AND option_type = 'P')
        / sumIf(toFloat64(size), underlying_symbol = 'META' AND option_type = 'C'), 2) AS meta_put_call_ratio,
    top_contract.1 AS top_contract_underlying,
    top_contract.2 AS top_contract_strike,
    top_contract.3 AS top_contract_type,
    top_contract.4 AS top_contract_volume,
    reverse(arrayStringConcat(extractAll(reverse(toString(assumeNotNull(top_contract.4))), '\\d{1,3}'), ',')) AS top_contract_volume_fmt,
    round(top_contract.5, 3) AS top_contract_avg_price,
    top_contract.6 AS top_contract_is_same_day,
    round(top_contract.2 - spy_regular_close, 2) AS top_strike_minus_spy_close,
    spy_regular_close AS spy_close
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-01 00:00:00' AND sip_timestamp < '2026-07-02 00:00:00'

Foram negociados 68.46 milhões de contratos de opções em 11.22 milhões de registros — calls representaram 58.6% do volume, com vencimentos no mesmo dia em 33.5%. Não houve proteção (hedging) do índice: a relação de puts por call no mercado foi de 0.71, e dos 5.76 milhões de puts do SPY, apenas 11.6% tinham strike mais de dois por cento abaixo do fechamento de 745.69 — os strikes de downside extremo que pagam em um crash. O skew concentrou-se em ações individuais: as puts da Micron superaram as calls (1.11 por call), enquanto as calls da META superaram as puts em mais de dois para um (0.39). O contrato mais negociado foi a call do SPY de $748 com vencimento no mesmo dia — 878,947 contratos a uma média de $0.707 — vencendo 2.31 dólares fora do dinheiro, como ocorreu na terça-feira. Nenhum contrato com vencimento em 3 de julho foi registrado durante o dia (0 registros — essa sexta-feira está fechada); a weekly de quinta-feira registrou 14.43 milhões.

Taxas: tendência de alta nos prazos longos e queda no curto prazo

Os rendimentos referem-se ao fechamento diário contra 30 de junho.

QueryCurva de juros (Treasury), fechamento de 1 de julho vs 30 de junho (apenas vencimentos populados)
O SQL exato por trás de cada número
SELECT
    t.1 AS curve_point,
    round(t.2, 2) AS jul1_yield_pct,
    round((t.2 - t.3) * 100) AS one_day_change_bp
FROM (
    SELECT arrayJoin([
        ('1 month',  toFloat64(d.yield_1_month),  toFloat64(p.yield_1_month)),
        ('3 month',  toFloat64(d.yield_3_month),  toFloat64(p.yield_3_month)),
        ('1 year',   toFloat64(d.yield_1_year),   toFloat64(p.yield_1_year)),
        ('2 year',   toFloat64(d.yield_2_year),   toFloat64(p.yield_2_year)),
        ('5 year',   toFloat64(d.yield_5_year),   toFloat64(p.yield_5_year)),
        ('10 year',  toFloat64(d.yield_10_year),  toFloat64(p.yield_10_year)),
        ('30 year',  toFloat64(d.yield_30_year),  toFloat64(p.yield_30_year)),
        ('2s10s spread', toFloat64(d.yield_10_year - d.yield_2_year), toFloat64(p.yield_10_year - p.yield_2_year))
    ]) AS t
    FROM (SELECT * FROM global_markets.treasury_yields WHERE date = '2026-07-01') AS d,
         (SELECT * FROM global_markets.treasury_yields WHERE date = '2026-06-30') AS p
)

O título de 10 anos subiu 4 bp para 4.48% e o de 30 anos subiu 6 bp, enquanto o título de 1 mês recuou -3 bp — prazos intermediários e longos em alta, curto prazo em baixa. O spread 2s10s fechou em 0.31 pontos percentuais: sem convergência com a dispersão das ações.

The calendar behind the day

QueryCalendário corporativo e fluxo de informações de 1 de julho, em uma linha
O SQL exato por trás de cada número
WITH
    (
        SELECT (count(), uniqExact(publisher))
        FROM global_markets.stocks_news
        WHERE toDate(toTimeZone(published_utc, 'America/New_York')) = '2026-07-01'
    ) AS news,
    (
        SELECT (argMax(t, n), max(n))
        FROM (
            SELECT t, count() AS n
            FROM (
                SELECT arrayJoin(tickers) AS t
                FROM global_markets.stocks_news
                WHERE toDate(toTimeZone(published_utc, 'America/New_York')) = '2026-07-01'
            )
            WHERE t != 'SPCX'
            GROUP BY t
        )
    ) AS top_news
SELECT
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-01') AS ex_dividend_records,
    (SELECT countIf(frequency = 12) FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-01') AS monthly_payers,
    (SELECT countIf(frequency = 4) FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-01') AS quarterly_payers,
    (SELECT round(100.0 * countIf(frequency = 12) / count(), 1) FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-01') AS monthly_payer_pct,
    (SELECT count() FROM global_markets.stocks_splits WHERE execution_date = '2026-07-01') AS splits_executed,
    (SELECT count() FROM global_markets.stocks_ipos WHERE listing_date = '2026-07-01') AS ipos_listed,
    (SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-01') AS sec_filings,
    (SELECT uniqExactIf(accession_number, form_type = '4') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-01') AS insider_form4_filings,
    (SELECT uniqExactIf(accession_number, form_type = '8-K') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-01') AS filings_8k,
    (SELECT arrayStringConcat(groupArray(concat(ticker, ' — ', issuer_name)), '; ') FROM (
        SELECT ticker, issuer_name FROM global_markets.stocks_ipos WHERE listing_date = '2026-07-01' ORDER BY ticker
    )) AS ipo_names,
    news.1 AS news_articles,
    news.2 AS news_publishers,
    top_news.1 AS most_covered_ticker,
    top_news.2 AS most_covered_articles

The quarter turn crested here: 745 dividend records went ex-dividend — the wave the June recap watched building — alongside 9 splits and 3 listings (BSP — Bending Spoons S.p.A.; ITG — ITG Inc.; LIME — Neutron Holdings Inc.). The filing feed revived: 4282 filings, 1072 of them Form 4s and 248 8-Ks, after June 30's near-empty index day (the month-end gap note). Our feed carried 201 articles, most-covered MSFT at 16.

But a count says nothing about who was paying. Ranked by the money that traded in them, the board is not corporate at all:

QueryMaiores nomes ex-dividend em 1 de julho, rankeados por volume financeiro do dia
O SQL exato por trás de cada número
WITH divs AS (
    SELECT ticker, max(toFloat64(cash_amount)) AS cash, max(frequency) AS freq
    FROM global_markets.stocks_dividends
    WHERE ex_dividend_date = '2026-07-01' AND distribution_type = 'recurring'
    GROUP BY ticker
),
tape AS (
    SELECT ticker,
           sum(toFloat64(close) * toFloat64(volume)) AS dollar_volume,
           toFloat64(argMax(close, (window_start, close))) AS day_close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 20:00:00'
      AND ticker NOT IN ('SPCX')
    GROUP BY ticker
)
SELECT
    d.ticker AS ticker,
    round(d.cash, 4) AS cash_per_share,
    d.freq AS payments_per_year,
    round(t.day_close, 2) AS day_close,
    round(100 * d.cash / t.day_close, 2) AS pct_of_price,
    round(100 * d.cash * d.freq / t.day_close, 2) AS annualized_yield_pct,
    round(t.dollar_volume / 1e9, 2) AS day_dollar_bn
FROM divs d JOIN tape t ON d.ticker = t.ticker
WHERE t.dollar_volume > 0 AND d.cash > 0
ORDER BY t.dollar_volume DESC
LIMIT 8

Every one of the eight busiest ex-dividend tickers is a fund paying 12 times a year: SGOV, a Treasury-bill fund, went ex on $0.2958 a share (0.29% of price, 3.54% annualized) on $3.5 billion traded; HYG, a high-yield bond fund, on $0.3688. That is a first-of-month wave: 572 of the day's 745 records (76.8%) are monthly payers — funds distributing interest — against 123 quarterly payers. The ex-date drop is mechanical, not a loss.

O primeiro dia de um trimestre é algum dia comum?

A lógica parece óbvia: novo trimestre, novo capital, novas alocações. O banco de dados discorda.

QueryTodas as sessões de abertura de trimestre desde 2004: movimento open-to-close do SPY, com 1 de julho rankeado no período
O SQL exato por trás de cada número
SELECT
    count() AS quarter_opens_measured,
    round(quantileExact(0.5)(oc_pct), 2) AS median_quarter_open_pct,
    countIf(oc_pct > 0) AS quarter_opens_green,
    countIf(oc_pct <= 0) AS quarter_opens_red,
    round(anyIf(oc_pct, first_day = toDate('2026-07-01')), 2) AS jul1_oc_pct,
    arrayCount(x -> x < anyIf(oc_pct, first_day = toDate('2026-07-01')), groupArrayIf(oc_pct, first_day != toDate('2026-07-01'))) + 1 AS jul1_rank_worst_to_best,
    round(min(oc_pct), 2) AS worst_quarter_open_pct,
    round(max(oc_pct), 2) AS best_quarter_open_pct,
    concat(monthName(min(first_day)), ' ', toString(toYear(min(first_day)))) AS first_measured
FROM (
    SELECT f.first_day AS first_day, d.oc_pct AS oc_pct
    FROM (
        SELECT toStartOfQuarter(d) AS q, min(d) AS first_day
        FROM (
            SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d
            FROM global_markets.delayed_stocks_minute_aggs
            WHERE ticker = 'SPY'
              AND window_start >= toDateTime('2004-01-01 00:00:00')
              AND window_start < toDateTime('2026-07-02 00:00:00')
              AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
            GROUP BY d
        )
        GROUP BY q
    ) f
    INNER JOIN (
        SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
               (argMax(toFloat64(close), (window_start, close)) / argMin(toFloat64(open), (window_start, open)) - 1) * 100 AS oc_pct
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY'
          AND window_start >= toDateTime('2004-01-01 00:00:00')
          AND window_start < toDateTime('2026-07-02 00:00:00')
          AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
        GROUP BY d
    ) d ON d.d = f.first_day
)

Nas 91 sessões de abertura de trimestre desde January 2004, a mediana de variação do SPY do abertura ao fechamento no primeiro dia do trimestre é 0.01% — 46 de alta contra 45 de baixa, variando de -2.28% a 3.18%: um lançamento de moeda com um erro de arredondamento. O dia primeiro de julho registrou 0.09%, posição 50 de 91 do pior ao melhor — exatamente no centro. Base: variação do SPY em horário regular, do abertura ao fechamento, em todas as primeiras sessões de trimestre do banco de dados.

O que o dia deixa para o leitor

O índice moveu 0.09%; o painel de oito nomes varia de -10.45% a 8.88%; o custo de proteção mal foi reajustado. Essa é a aritmética comum de um mercado concentrado — as perdas de um setor são compensadas por ganhos em 7 de 11 outros, resultando no saldo do índice. Uma análise em nível de índice não mostra nada aqui; uma análise em nível de posição mostra a perda de um décimo de uma posição em um único dia.

A sessão, verificada

QueryCheck de sessão: amplitude observada em minute-bars do SPY
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,
    count() AS spy_minute_bars,
    countIf(window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 20:00:00') AS regular_session_bars,
    uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-01 13:30:00' AND window_start < '2026-07-01 20:00:00') AS day_sessions,
    (SELECT count() FROM global_markets.stocks_market_holidays WHERE date = '2026-07-01') AS jul1_holiday_rows
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-01 00:00:00' AND window_start < '2026-07-02 00:00:00'

As barras do SPY variam de 04:00 a 19:59 no horário de Nova York, com 390 barras de janela regular e 0 linhas de feriado na data — uma sessão completa, verificada pelo tape.

FAQ

O mercado de ações subiu ou desceu em 1º de julho de 2026?

Depende da análise. O SPY fechou em -0.08%, o DIA em 0.02% e o QQQ em -1.44%; ativos líquidos de 3465 caíram contra a alta de 2928 — contudo, 7 dos fundos do setor 11 fecharam no positivo, com a tecnologia sendo a exceção.

Por que Micron, SanDisk, Western Digital e Seagate caíram em 1º de julho de 2026?

Estes dados mostram movimento conjunto, não a causa: as quatro caíram entre -5.11% e -10.45%. A matéria do mesmo dia do Motley Fool sobre a Micron (no painel de notícias desta página, 14:11 ET) saiu com o título "Why Micron Stock Is Plummeting Today". Esse é o enfoque do veículo, não um achado do tape.

Por que a META subiu em 1º de julho de 2026?

A META fechou 8.88% acima, com sua mínima na barra de abertura. A cobertura do Motley Fool atribuiu o movimento a relatos de que a empresa planejava vender excesso de capacidade de computação de IA como um negócio de cloud: essa é a atribuição do veículo, não a nossa.

O primeiro dia de negociação de um trimestre costuma ser um dia forte?

Não de forma mensurável. Entre as 91 aberturas de trimestre desde January 2004, a mediana de movimento do SPY da abertura ao fechamento foi de 0.01%: 46 no verde e 45 no vermelho — o equivalente a um cara ou coroa; o dia 1º de julho ficou na média.

O mercado de opções estava fazendo hedge da venda em 1º de julho de 2026?

Não no nível do índice: houve 0.71 puts para cada call em todo o mercado, e apenas 11.6% do volume de puts do SPY atingiu mais de dois por cento abaixo do fechamento.

Notas de dados

  • O volume em dólar é uma estimativa por minuto — preço de fechamento × volume somados por barra de um minuto, durante o horário regular. Os extremos exibidos foram conferidos com barras adjacentes; em caso de empate, considera-se o mais precoce.
  • Não existe um índice VIX spot aqui. O painel de volatilidade apresenta fundos de VIX-futures listados, que detêm e rolam contratos futuros — relacionados ao índice, mas nunca idênticos.
  • Novas máximas/mínimas trimestrais comparam os extremos do horário regular de 1º de julho com o intervalo de cada ativo entre 1º de abril e 30 de junho, para ativos líquidos com um trimestre completo de barras; as quedas estão no painel.
  • O painel de setores é uma cesta selecionada (onze ETFs da SPDR, não um campo de fornecedor); o painel de notícias é um feed licenciado (12 artigos, dois editores); uma listagem de símbolo reutilizado foi excluída dos rankings (seus comprovantes).

Metodologia

  • Uma sessão de negociação (sessão 1, verificada por meio de barras observadas e da tabela de feriados — nunca presumida). Os timestamps são armazenados em UTC e convertidos para o horário de Nova York nas consultas; o "close" é o último minuto da sessão regular, com a mudança de dia baseada em 30 de junho.
  • Decimais são convertidos para floats de 64 bits antes da aritmética de razões; os vencimentos de opções são reprocessados a partir do ticker da OCC. Os painéis são executados uma única vez, no momento da elaboração, através do caminho de leitura restrito. Estado do warehouse em 13 de julho de 2026; esta edição adiciona os painéis de setor, volatilidade, notícias, dividendos e histórico trimestral.

Cada painel é o resultado de uma consulta armazenada — gráfico, tabela e SQL são um único objeto. Cole qualquer um deles no terminal Strasmore. Próximo: 2 de julho; a semana: a semana do feriado.