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

Resumo do mercado 6 de julho de 2026

Reabertura após o feriado com gap de alta liderado por crescimento e amplitude positiva. O QQQ teve o spread de cotação mais estreito do mês.

Segunda-feira, 6 de julho de 2026 — a primeira sessão após o feriado de Independence Day — abriu com um gap de alta liderado pelo crescimento e manteve o movimento. O QQQ fechou em 1.39% contra o 0.42% do DIA, refletindo a rotação de quinta-feira, e a amplitude foi positiva: 3861 ativos líquidos subiram contra 2242. A maior parte do movimento veio do gap de reabertura, precificado no nível mais estreito de cotação do índice no último mês. Todos os números abaixo são extraídos de uma consulta armazenada.

O placar

As mudanças comparam o último minuto da sessão regular de 6 de julho com o de quinta-feira, 2 de julho — um feriado de mercado atrás.

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

O 1.39% do QQQ liderou os quatro ETFs de índice e o 0.42% do DIA ficou para trás — o inverso exato de quinta-feira, quando o DIA subiu e o QQQ caiu. O SPY fechou 0.87% e o IWM 0.45%. O gap versus o movimento gradual define o formato real do dia: o QQQ abriu 1.01% acima do fechamento de quinta-feira e adicionou apenas 0.38% a mais do abertura ao fechamento; o gap de 0.53% do SPY representou a maior parte de seu 0.87% diário. O IWM (0.07%) e o DIA (0.17%) mal apresentaram gap e, em vez disso, subiram gradualmente durante a sessão.

O dia foi atípico?

QueryMovimento do SPY (abertura ao fechamento) ranqueado contra o ú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-06')), 2) AS day_move_pct,
       arrayCount(x -> x > abs(anyIf(oc_pct, d = toDate('2026-07-06'))), groupArrayIf(abs(oc_pct), d != toDate('2026-07-06'))) + 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-06 00:00:00')
      AND window_start < toDateTime('2026-07-07 00:00:00')
      AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
    GROUP BY d
)

No nível do índice, não: o movimento do SPY da abertura ao fechamento de 0.34% ocupa a posição 13 de 19 sessões anteriores em tamanho absoluto — no meio da lista. O fluxo intraday foi comum; o gap foi o diferencial do dia.

Amplitude: sinal verde, crescimento retoma o protagonismo

QueryAtivos em alta vs em baixa entre tickers com pelo menos $1M negociados em 6 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-06 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-06 00:00:00')) AS day_close,
        sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-06 00:00:00') AS day_dollar_volume
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE (window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00')
       OR (window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00')
    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,
    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,
    round(100.0 * countIf(day_close > prior_close AND day_dollar_volume >= 1000000)
        / countIf(day_dollar_volume >= 1000000), 1) AS advancer_pct
FROM per_ticker
WHERE prior_close > 0 AND day_close > 0

3861 altas, 2242 baixas, 86 estáveis — 62.4% do volume negociado subiu. A amplitude por peso de índice e por contagem igual concordaram, ambas no verde, enquanto quinta-feira as dividiu. O filtro exclui 5361 de 11550 tickers de duas sessões com volume inferior a US$ 1M.

Setor por setor: qual foi a amplitude da disparidade?

Quatro megacaps não definem um mercado. O painel precifica o dia através dos onze grandes ETFs de setor — um fundo para cada fatia do S&P 500, a mesma cesta em todas as sessões. Observe o spread entre o melhor e o pior setor: a dispersão do dia.

QueryOs onze ETFs de setores: 6 de julho vs fechamento de 2 de julho, divididos em gap e intraday
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-06 00:00:00')) AS prior_close,
        toFloat64(argMinIf(open, window_start, window_start >= '2026-07-06 00:00:00')) AS day_open,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-06 00:00:00')) AS day_close,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-06 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-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00')
        OR (window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00'))
    GROUP BY ticker
)
SELECT
    ticker,
    round((day_close / prior_close - 1) * 100, 2) AS pct_chg,
    round((day_open / prior_close - 1) * 100, 2) AS gap_pct,
    round((day_close / day_open - 1) * 100, 2) AS intraday_pct,
    day_dollar_bn,
    round(max((day_close / prior_close - 1) * 100) OVER () - (day_close / prior_close - 1) * 100, 2) AS points_behind_leader
FROM per_name
ORDER BY pct_chg DESC, ticker ASC

Tecnologia (XLK) liderou o dia com 1.71%, sendo quase toda a diferença: 1.19% na abertura e 0.52% nas seis horas e meia seguintes. Setor financeiro (0.99%) e industrial (0.9%) vieram em seguida. Depois, o cenário muda: cinco linhas verdes dão lugar a seis vermelhas, no lado defensivo — utilities, saúde e bens de consumo — com queda de até -1.08%. Do topo à base, 2.79 pontos percentuais separaram o melhor do pior em um dia em que o índice S&P moveu 0.87% — várias vezes o movimento do índice, e um argumento contra interpretar um dia de alta como algo uniforme. Real estate e utilities seguiram a tendência oposta à tecnologia: aberturas quase estáveis (0.09%, -0.11%) e depois uma queda durante toda a sessão (-1.01% e -0.92% da abertura ao fechamento).

O destaque do dia: a rotação de memória, parcialmente revertida

O complexo de memória e armazenamento que caiu em quarta-feira e quinta-feira teve uma recuperação na segunda-feira — mas apenas parcial.

QueryAções de memória e armazenamento: variação vs fechamento de quinta-feira, timing de range e volume em dólar
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-06 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-06 00:00:00')) AS day_close,
        maxIf(toFloat64(high), window_start >= '2026-07-06 00:00:00') AS day_high,
        minIf(toFloat64(low), window_start >= '2026-07-06 00:00:00') AS day_low,
        argMinIf(window_start, toFloat64(low), window_start >= '2026-07-06 00:00:00') AS low_bar,
        argMaxIf(window_start, toFloat64(high), window_start >= '2026-07-06 00:00:00') AS high_bar,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-06 00:00:00') / 1e9, 2) AS day_dollar_bn
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('MU', 'SNDK', 'STX', 'WDC')
      AND ((window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00')
        OR (window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 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, 2) AS day_high,
    formatDateTime(toTimeZone(high_bar, 'America/New_York'), '%H:%i') AS day_high_et,
    round(day_low, 2) AS day_low,
    formatDateTime(toTimeZone(low_bar, 'America/New_York'), '%H:%i') AS day_low_et,
    round((day_high / day_low - 1) * 100, 2) AS range_pct,
    day_dollar_bn
FROM per_name
ORDER BY ticker

As duas fabricantes de drives lideraram o repique: Western Digital 7.14% e Seagate 6%, ambas atingindo o topo no meio da manhã (10:44 e 10:39 ET). As duas maiores ficaram de fora: MU subiu 0.88%, registrando sua mínima na barra de fechamento (15:59); SanDisk encerrou com -0.03% em um spread de 7.27%. A MU ainda movimentou $30.9 bilhões em ações, mais do que as outras três juntas (a análise detalhada da MU aborda seu trimestre).

A outra metade da rotação ocorreu dentro das megacaps:

QueryRotação de megacaps: variação vs fechamento de quinta-feira, timing de range e volume em dólar
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-06 00:00:00')) AS prior_close,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-06 00:00:00')) AS day_close,
        maxIf(toFloat64(high), window_start >= '2026-07-06 00:00:00') AS day_high,
        minIf(toFloat64(low), window_start >= '2026-07-06 00:00:00') AS day_low,
        argMinIf(window_start, toFloat64(low), window_start >= '2026-07-06 00:00:00') AS low_bar,
        argMaxIf(window_start, toFloat64(high), window_start >= '2026-07-06 00:00:00') AS high_bar,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-06 00:00:00') / 1e9, 2) AS day_dollar_bn
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('AAPL', 'MSFT', 'NVDA', 'TSLA')
      AND ((window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00')
        OR (window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 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, 2) AS day_high,
    formatDateTime(toTimeZone(high_bar, 'America/New_York'), '%H:%i') AS day_high_et,
    round(day_low, 2) AS day_low,
    formatDateTime(toTimeZone(low_bar, 'America/New_York'), '%H:%i') AS day_low_et,
    round((day_high / day_low - 1) * 100, 2) AS range_pct,
    day_dollar_bn
FROM per_name
ORDER BY ticker

TSLA teve uma alta constante até 6.86% — mínima em 09:37 ET, máxima na barra de fechamento (15:59) — o inverso de sua queda na quinta-feira. AAPL subiu 1.49% e NVDA 0.57%; MSFT foi a única megacap no vermelho, com -0.7%, tendo sua máxima registrada na abertura de 09:30.

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 aguardando verificação)
O SQL exato por trás de cada número
SELECT leaderboard, ticker, dollar_volume_bn, 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(volume)) / 1e6, 1) AS shares_m
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 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-06 13:30:00' AND window_start < '2026-07-06 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

SPY liderou o volume do dólar com $31.49 bilhões, seguido por MU ($30.9 bilhões) — encerrando a sequência de quatro sessões no topo da MU (Segunda-feira a Quinta-feira mostram os dados). No painel de ações, o SOXS — o ETF de semicondutores com alavancagem inversa de 3x — negociou 467.1 milhões de ações, liderando o volume novamente, mesmo com a alta das ações que ele rastreia.

QueryAções negociadas por intervalo de 30 minutos, pregão regular (bilhões)
O SQL exato por trás de cada número
SELECT
    formatDateTime(toStartOfInterval(toTimeZone(window_start, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i') AS et_time,
    round(sum(toFloat64(volume)) / 1e9, 2) AS shares_bn,
    round(100 * sum(toFloat64(volume)) / max(sum(toFloat64(volume))) OVER (), 1) AS pct_of_biggest_bucket
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00'
GROUP BY et_time
ORDER BY et_time

1.96 bilhões de ações na primeira meia hora, um ponto baixo de 0.68 bilhões às 14:30, e 2.1 bilhões no fechamento das 15:30 — o padrão comum de intraday, com maior volume na abertura e no fechamento.

O fluxo de opções

QueryLinha única para o dia de opções: volume, call share e o vencimento de segunda-feira
O SQL exato por trás de cada número
WITH
    (
        SELECT (any(underlying_symbol), any(toFloat64(strike_price)), any(option_type),
                any(toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6)))),
                sum(size), count(), round(avg(toFloat64(price)), 3))
        FROM global_markets.options_trades
        WHERE sip_timestamp >= '2026-07-06 00:00:00' AND sip_timestamp < '2026-07-07 00:00:00'
        GROUP BY ticker
        ORDER BY sum(size) DESC
        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-06 13:30:00' AND window_start < '2026-07-06 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(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260706') / sum(size), 1) AS same_day_expiry_pct,
    round(toFloat64(sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260706')) / 1e6, 2) AS same_day_contracts_m,
    round(toFloat64(sumIf(size, underlying_symbol = 'SPY')) / 1e6, 2) AS spy_contracts_m,
    round(toFloat64(sumIf(size, underlying_symbol = 'QQQ')) / 1e6, 2) AS qqq_contracts_m,
    round(toFloat64(sumIf(size, underlying_symbol = 'TSLA')) / 1e6, 2) AS tsla_contracts_m,
    top_contract.1 AS top_contract_underlying,
    top_contract.2 AS top_contract_strike,
    top_contract.3 AS top_contract_type,
    if(top_contract.3 = 'C', 1, 0) AS top_contract_is_call,
    top_contract.4 AS top_contract_expiry,
    round(toFloat64(top_contract.5) / 1e6, 2) AS top_contract_volume_m,
    round(top_contract.7, 3) AS top_contract_avg_price,
    round(spy_regular_close - top_contract.2, 2) AS spy_close_minus_strike
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-06 00:00:00' AND sip_timestamp < '2026-07-07 00:00:00'

Foram negociados 60.98 milhões de contratos de opções em 10.53 milhões de registros, sendo 58.4% em calls. Os vencimentos no mesmo dia representaram 38.7% do volume (23.57 milhões de contratos) — um volume rotineiro de 0DTE para uma segunda-feira, abaixo do valor acumulado de quinta-feira na véspera do feriado. O contrato mais negociado foi a call de SPY $751 com vencimento no mesmo dia, com 1.08 milhões de contratos a um preço médio de $0.564, com o SPY fechando $0.3 acima do strike — in the money. Uma call no topo do ranking, enquanto quinta-feira terminou com uma put.

O tape de cotações: o gap de alta ocorreu com spreads amplos?

Abaixo de cada preço está o fluxo de cotações — o National Best Bid and Offer (NBBO), reajustado continuamente para cada ativo listado. Um gap de abertura é um momento em que as cotações podem se tornar hostis, por isso medimos esse fenômeno em todas as sessões.

QueryFluxo NBBO de ações: 6 de julho vs sessão de 2 de julho, e onde as cotações de segunda-feira se concentraram
O SQL exato por trás de cada número
SELECT
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-06')) / 1e6, 2) AS jul6_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-02')) / 1e6, 2) AS jul2_updates_m,
    round((countIf(toDate(sip_timestamp) = toDate('2026-07-06')) / countIf(toDate(sip_timestamp) = toDate('2026-07-02')) - 1) * 100, 1) AS day_over_day_pct,
    round(countIf(sip_timestamp >= '2026-07-06 13:30:00' AND sip_timestamp < '2026-07-06 14:00:00') / 1e6, 2) AS jul6_open_half_hour_m,
    round(countIf(sip_timestamp >= '2026-07-06 17:30:00' AND sip_timestamp < '2026-07-06 18:00:00') / 1e6, 2) AS jul6_midday_half_hour_m,
    round(countIf(sip_timestamp >= '2026-07-06 19:30:00' AND sip_timestamp < '2026-07-06 20:00:00') / 1e6, 2) AS jul6_close_half_hour_m
FROM global_markets.cache_stocks_quotes
WHERE (sip_timestamp >= '2026-07-02 00:00:00' AND sip_timestamp < '2026-07-03 00:00:00')
   OR (sip_timestamp >= '2026-07-06 00:00:00' AND sip_timestamp < '2026-07-07 00:00:00')

O tape registrou 391.96 milhões de atualizações de NBBO na segunda-feira contra 597.22 milhões na quinta-feira — -34.4%, um terço a menos de mensagens do que na sessão pré-feriado — e o volume aumentou na abertura: 58.66 milhões na primeira meia hora contra 20.74 milhões às 13h30 e 33.7 milhões no fechamento. Menos cotações que na quinta-feira, mas não spreads maiores:

QueryO touch na abertura do gap: spread e taxa de cotação mediana, 9:30–9:42 ET vs controle de meio-dia (12 minutos cada)
O SQL exato por trás de cada número
SELECT
    ticker,
    round(quantileExactIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, bid_price > 0 AND ask_price >= bid_price AND sip_timestamp >= '2026-07-06 13:30:00' AND sip_timestamp < '2026-07-06 13:42:00'), 2) AS open_spread_bps,
    round(quantileExactIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, bid_price > 0 AND ask_price >= bid_price AND sip_timestamp >= '2026-07-06 17:30:00' AND sip_timestamp < '2026-07-06 17:42:00'), 2) AS midday_spread_bps,
    round(quantileExactIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, bid_price > 0 AND ask_price >= bid_price AND sip_timestamp >= '2026-07-06 13:30:00' AND sip_timestamp < '2026-07-06 13:42:00')
        - quantileExactIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, bid_price > 0 AND ask_price >= bid_price AND sip_timestamp >= '2026-07-06 17:30:00' AND sip_timestamp < '2026-07-06 17:42:00'), 2) AS spread_delta_bps,
    round(countIf(sip_timestamp >= '2026-07-06 13:30:00' AND sip_timestamp < '2026-07-06 13:42:00') / 1e3, 1) AS open_updates_k,
    round(countIf(sip_timestamp >= '2026-07-06 17:30:00' AND sip_timestamp < '2026-07-06 17:42:00') / 1e3, 1) AS midday_updates_k,
    round(countIf(sip_timestamp >= '2026-07-06 13:30:00' AND sip_timestamp < '2026-07-06 13:42:00') / countIf(sip_timestamp >= '2026-07-06 17:30:00' AND sip_timestamp < '2026-07-06 17:42:00'), 1) AS quote_rate_ratio,
    round(count() / 1e6, 2) AS session_updates_m,
    countIf(bid_price <= 0 OR ask_price <= 0 OR bid_price > ask_price) AS dropped_invalid_quotes
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('DIA', 'IWM', 'MSFT', 'MU', 'QQQ', 'SNDK', 'SPY', 'STX', 'TSLA', 'WDC')
  AND sip_timestamp >= '2026-07-06 13:30:00' AND sip_timestamp < '2026-07-06 20:00:00'
GROUP BY ticker
ORDER BY ticker

O bid-ask spread é o custo de execução, em pontos de base sobre o preço médio — 1 bp equivale a um centavo em uma ação de $100. Nenhum ativo verificado apresentou cotação mais apertada nos primeiros doze minutos do gap do que no meio do dia, e o toque do SPY foi idêntico em ambos (0.27 bps, 0 bps de variação), mesmo com o reajuste ocorrendo 3x mais rápido na abertura. O aumento no spread afetou ações individuais, não fundos de índice: SanDisk teve o maior custo (+12.9 bps, 8.16 a 21.07), MU +3.63, TSLA +2.89, contra os 0.42 bps do QQQ em um toque de 0.83 bps. A resposta da Seagate para a pergunta "nem tudo é líquido?" é: 30.94 bps de spread na abertura, mais de cem vezes o toque do SPY.

QueryMédia ponderada do spread de cotação do SPY: 6 de julho ranqueado contra o último mês (rank 1 = menor spread)
O SQL exato por trás de cada número
SELECT
    round(anyIf(avg_spread_cents, d = toDate('2026-07-06')), 3) AS jul6_avg_spread_cents,
    arrayCount(x -> x < anyIf(avg_spread_cents, d = toDate('2026-07-06')), groupArrayIf(avg_spread_cents, d != toDate('2026-07-06'))) + 1 AS tightness_rank,
    count() AS sessions_compared,
    round(max(avg_spread_cents), 3) AS widest_session_cents,
    round(avgIf(avg_spread_cents, d != toDate('2026-07-06')), 3) AS other_sessions_avg_cents,
    replaceAll(formatDateTime(min(d), '%M %e, %Y'), '  ', ' ') AS first_session,
    sum(dropped_invalid) AS dropped_invalid_quotes
FROM (
    SELECT toDate(toTimeZone(sip_timestamp, 'America/New_York')) AS d,
           avgIf(toFloat64(ask_price - bid_price), bid_price > 0 AND ask_price >= bid_price) * 100 AS avg_spread_cents,
           countIf(NOT (bid_price > 0 AND ask_price >= bid_price)) AS dropped_invalid
    FROM global_markets.cache_stocks_quotes
    WHERE ticker = 'SPY'
      AND sip_timestamp >= toDateTime('2026-06-04 00:00:00')
      AND sip_timestamp < toDateTime('2026-07-07 00:00:00')
      AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
    GROUP BY d
)

Durante todo o pregão regular, 6 de julho foi a sessão com o menor spread do SPY no último mês: uma média de spread ponderada por atualizações de 1.815 centavos, ocupando a posição 1 de 21 sessões desde June 4, 2026, contra uma média mensal de 2.337 centavos e atingindo 2.865 em seu ponto mais largo. Mesmo com um volume de cotações reduzido pelo feriado, o índice ofereceu o menor custo de execução do mercado.

Taxas: curva estável durante o feriado prolongado

QueryCurva de juros (Treasuries): 6 de julho vs print de 2 de julho (apenas vencimentos populados)
O SQL exato por trás de cada número
SELECT
    t.1 AS curve_point,
    round(t.2, 2) AS jul6_yield_pct,
    round((t.2 - t.3) * 100) AS session_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-06') AS d,
         (SELECT * FROM global_markets.treasury_yields WHERE date = '2026-07-02') AS p
)

A curva teve pouca movimentação durante o feriado prolongado. O título de 10 anos ficou em 4.48% e o spread 2s10s em 0.35 pontos percentuais, ambos próximos de um ou dois pontos de base do fechamento de julho; o de 3 meses foi o único com movimento relevante, com 5 pontos de base.

O calendário por trás do dia

QueryCalendário corporativo e fluxo de informações de 6 de julho em uma linha (incluindo o wall de reverse-split)
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-06'
    ) 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-06'
            )
            WHERE t != 'SPCX'
            GROUP BY t
        )
    ) AS top_news
SELECT
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-06') AS ex_dividend_records,
    (SELECT count() FROM global_markets.stocks_splits WHERE execution_date = '2026-07-06') AS splits_executed,
    (SELECT countIf(toFloat64(split_from) > toFloat64(split_to)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-06') AS reverse_splits,
    (SELECT countIf(toFloat64(split_to) > toFloat64(split_from)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-06') AS forward_splits,
    (SELECT count() FROM global_markets.stocks_ipos WHERE listing_date = '2026-07-06') AS ipos_listed,
    (SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-06') AS sec_filings,
    (SELECT uniqExactIf(accession_number, form_type = '4') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-06') AS insider_form4_filings,
    (SELECT uniqExactIf(accession_number, form_type = '8-K') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-06') AS filings_8k,
    news.1 AS news_articles,
    news.2 AS news_publishers,
    top_news.1 AS most_covered_ticker,
    top_news.2 AS most_covered_articles

118 registros de dividendos ficaram ex-dividend, 15 splits foram executados, 0 novas listagens chegaram e o índice da SEC registrou 3161 protocolos — 1219 Form 4s, 201 8-Ks — um volume menor do que na quinta-feira pré-feriado. O feed de notícias trouxe 236 artigos, com o ativo mais coberto sendo NVDA com 25.

O efeito das inversões de split nos rastreadores de movimentação

14 dos splits do 15 foram inversões — consolidações de ações, a maioria com preços abaixo de um dólar — contra 1 splits diretos. Um split inverso transforma várias ações antigas em uma única a um preço proporcionalmente maior, o que um rastreador não ajustado reporta como um "ganho" de três dígitos, sem que tenha havido ganho real. A lista completa:

QueryTodos os splits executados em 6 de julho, com fechamento não ajustado antes e depois
O SQL exato por trás de cada número
SELECT
    s.ticker AS ticker,
    toFloat64(s.split_from) AS old_shares,
    toFloat64(s.split_to) AS new_shares,
    round(toFloat64(s.split_from) / toFloat64(s.split_to), 0) AS old_shares_per_new,
    p.prev_close AS jul2_close,
    d.day_close AS jul6_close,
    round((d.day_close / p.prev_close - 1) * 100, 1) AS unadjusted_pct_chg
FROM (
    SELECT ticker, any(split_from) AS split_from, any(split_to) AS split_to
    FROM global_markets.stocks_splits
    WHERE execution_date = '2026-07-06'
    GROUP BY ticker
) s
INNER JOIN (
    SELECT ticker, round(toFloat64(argMax(close, window_start)), 2) AS prev_close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-02 20:00:00'
      AND ticker IN (SELECT ticker FROM global_markets.stocks_splits WHERE execution_date = '2026-07-06')
    GROUP BY ticker
    HAVING prev_close > 0
) p ON s.ticker = p.ticker
INNER JOIN (
    SELECT ticker, round(toFloat64(argMax(close, window_start)), 2) AS day_close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00'
      AND ticker IN (SELECT ticker FROM global_markets.stocks_splits WHERE execution_date = '2026-07-06')
    GROUP BY ticker
    HAVING day_close > 0
) d ON s.ticker = d.ticker
ORDER BY unadjusted_pct_chg DESC, ticker ASC

Cada uma das 12 linhas é uma consolidação registrando um "ganho" de três dígitos ou superior no histórico bruto — desde 31450% no topo (uma consolidação de 200 para um, fechamento não ajustado de $0.02 para $6.31) até 226.1% na menor proporção (3 para um). No meio da tabela está o exemplo mais claro: um split inverso de 10 para um levou o fechamento não ajustado da TXXS de $2.35 na quinta-feira para $24.34 na segunda-feira — dez ações antigas tornando-se uma, não uma alta de dez vezes. Um rastreador de variação de preço bruto coloca toda esta tabela acima de qualquer movimentação real; o nosso exclui os splits. O split direto da CRWD de quinta-feira simulou o oposto, uma queda.

A sessão, verificada — o primeiro retorno após o recesso

QueryCheck de sessão: span de barras de 1 minuto do SPY, fechamento de 3 de julho e o próximo no calendário
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-06 13:30:00' AND window_start < '2026-07-06 20:00:00') AS regular_session_bars,
    uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-06 13:30:00' AND window_start < '2026-07-06 20:00:00') AS day_sessions,
    (SELECT count() FROM global_markets.delayed_stocks_minute_aggs
     WHERE ticker = 'SPY' AND window_start >= '2026-07-03 00:00:00' AND window_start < '2026-07-04 00:00:00') AS jul3_spy_bars,
    (SELECT replaceAll(formatDateTime(min(date), '%M %e, %Y'), '  ', ' ') FROM global_markets.stocks_market_holidays WHERE date > '2026-07-06' AND status = 'closed') AS next_closure_date,
    (SELECT argMin(name, date) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-06' AND status = 'closed') AS next_closure_name
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-06 00:00:00' AND window_start < '2026-07-07 00:00:00'

O dia 6 de julho foi uma sessão completa, não um fechamento antecipado: as barras do SPY ocorreram de 04:00 a 19:59 no horário de Nova York, com exatamente 390 barras de janela regular. Na sexta-feira anterior, 3 de julho, foram registradas 0 barras do SPY — um fechamento completo devido ao feriado de Independência, 4 de julho, que caiu em um sábado. Próximo fechamento: Labor Day, September 7, 2026. A semana de quatro sessões antes do recesso está detalhada no resumo da semana.

FAQ

Como foi o desempenho do mercado de ações em 6 de julho de 2026?

Todos os quatro grandes ETFs de índice fecharam em alta — QQQ 1.39%, SPY 0.87%, IWM 0.45%, DIA 0.42% — com 62.4% das ações líquidas subindo, a maioria devido a um gap de abertura.

Qual setor liderou em 6 de julho de 2026?

Tecnologia (XLK) liderou os onze ETFs de setor com 1.71%, enquanto o setor defensivo registrou apenas -1.08% — um spread entre o melhor e o pior de 2.79 pontos percentuais, várias vezes superior ao movimento de 0.87% do índice S&P.

O mercado de ações abriu no Dia da Independência de 2026?

Não. O dia 4 de julho caiu em um sábado, e as bolsas observaram o feriado de Independência na sexta-feira, 3 de julho — um fechamento registrado pelas barras de um minuto do SPY 0 que foram geradas. O dia 6 de julho foi a primeira sessão de retorno.

Por que algumas ações mostraram ganhos de um dia massivos em 6 de julho?

Houve execuções de reverse splits 14. Consolidar muitas ações antigas em uma única a um preço proporcionalmente maior faz com que uma tela não ajustada reporte um "ganho" de centenas por cento, quando o valor da posição do detentor permanece inalterado — os nomes 12 acima são todos desse tipo.

Os spreads estavam amplos na abertura com gap?

Apenas em ações individuais. O spread mediano cotado do SPY nos primeiros doze minutos foi de 0.27 pontos de base, idêntico ao seu nível ao meio-dia; a SanDisk cotou 12.9 bps mais largo que ao meio-dia.

Notas de dados

  • O volume em dólar é uma estimativa por minuto — preço de fechamento × volume somados por barra de um minuto.
  • A cesta do setor é um método declarado, não um campo de fornecedor: os onze grandes ETFs de setores do S&P (XLB, XLC, XLE, XLF, XLI, XLK, XLP, XLRE, XLU, XLV, XLY), o mesmo conjunto em todas as sessões.
  • Os spreads cotados são as medianas de (ask − bid) ÷ mid sobre cotações bidirecionais válidas; cotações unidirecionais, zero ou cruzadas são descartadas e contadas no painel.
  • Uma listagem com símbolo reutilizado foi excluída dos rankings aguardando verificação da entidade (recibos).

Metodologia

  • O período compreende uma única sessão de negociação (sessão 1, verificada por meio de barras observadas). Os timestamps são armazenados em UTC e convertidos para o horário de Nova York nas consultas. "Close" refere-se à última barra de minuto da sessão regular; a mudança de dia compara 6 de julho com 2 de julho — a sessão anterior ao fechamento de 3 de julho, verificada por barras, nunca presumida.
  • Decimais são convertidos para floats de 64 bits antes da aritmética de razão. Os painéis são lidos uma única vez, no momento da elaboração, através do caminho de leitura restrito.

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 para personalizá-los. Sessão anterior: 2 de julho. Próxima: 7 de julho.