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

Resumo do mercado 9 de julho de 2026

Equipamentos de chips abriram em gap de alta e recuaram, enquanto mega-caps reverteram queda. O tape fechou no verde e a NVDA encerrou no vermelho.

A quinta-feira, 9 de julho de 2026, concentrou sua volatilidade em apenas um minuto — e esse minuto ocorreu antes da abertura do mercado. Ações de equipamentos de semicondutores já operavam muito acima do fechamento de quarta-feira no premarket, enquanto a META estava -3.16% abaixo dele; o print das 9:30 confirmou ambos os movimentos. O dia então reverteu parte de sua abertura: os gaps nos semicondutores diminuíram, a META recuperou todo o movimento e o tape fechou 71.5% no verde — a sessão de maior amplitude da semana. A NVDA, que estava no verde desde a queda de terça-feira, fechou no vermelho. Todos os números abaixo são extraídos de uma consulta armazenada.

O cenário de abertura

Os gaps não foram formados às 9:30. Entre as 4:00 e as 9:29 ET, o tape do premarket já havia precificado esses ativos, e a primeira negociação da abertura ocorreu nesse nível.

QueryTrajetória premarket, 4:00-9:29 am ET: último print do premarket vs fechamento de quarta, e a abertura seguinte
O SQL exato por trás de cada número
SELECT
    ticker,
    round(prior_close, 2) AS prior_close,
    formatDateTime(first_pm_bar, '%H:%i') AS first_premkt_bar_et,
    round(premkt_last, 2) AS premkt_last,
    round((premkt_last / prior_close - 1) * 100, 2) AS premkt_pct,
    round(premkt_shares / 1e3, 1) AS premkt_shares_k,
    round((day_open / prior_close - 1) * 100, 2) AS gap_pct,
    round((day_open / premkt_last - 1) * 100, 2) AS open_vs_premkt_pct
FROM (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 20:00:00')) AS prior_close,
        minIf(toTimeZone(window_start, 'America/New_York'), window_start >= '2026-07-09 08:00:00' AND window_start < '2026-07-09 13:30:00') AS first_pm_bar,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-09 08:00:00' AND window_start < '2026-07-09 13:30:00')) AS premkt_last,
        sumIf(toFloat64(volume), window_start >= '2026-07-09 08:00:00' AND window_start < '2026-07-09 13:30:00') AS premkt_shares,
        toFloat64(argMinIf(open, window_start, window_start >= '2026-07-09 13:30:00' AND window_start < '2026-07-09 20:00:00')) AS day_open
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('SPY', 'QQQ', 'KLAC', 'LRCX', 'META', 'NVDA')
      AND ((window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 20:00:00')
        OR (window_start >= '2026-07-09 08:00:00' AND window_start < '2026-07-09 20:00:00'))
    GROUP BY ticker
)
ORDER BY ticker

A última cotação de KLAC no premarket estava +8.49% acima do fechamento de quarta-feira e abriu +8.14%; LRCX subiu +9.64% para uma abertura de +9.67%; META registrou -3.16% e abriu -3.16%. Leia open_vs_premkt_pct: todos os seis abriram dentro de um por cento do seu último preço no premarket. A NVDA é a exceção — 0.16% durante a noite em 3741.7k de shares, o maior volume de premarket entre os seis e o menor movimento (premarket e after-hours trading).

Houve um catalisador? Nossos dados não apontam nenhum

Um resumo deve indicar o que movimentou uma ação. Aqui, nossas tabelas não indicam nada: o feed de notícias e o índice de registros da SEC estão vazios para os quatro tickers que apresentaram os maiores gaps.

QueryCatalisadores registrados: notícias e SEC filings por ticker, de quarta ao fechamento de quinta
O SQL exato por trás de cada número
SELECT
    ticker,
    toUInt32(sum(overnight_articles)) AS overnight_articles,
    toUInt32(sum(session_articles)) AS session_articles,
    toUInt32(sum(sec_filings)) AS sec_filings,
    toUInt32(sum(filings_8k)) AS filings_8k
FROM (
    SELECT
        arrayJoin(['AMD', 'KLAC', 'LRCX', 'META', 'MSFT', 'MU', 'NVDA', 'TER', 'WDC']) AS ticker,
        toUInt64(0) AS overnight_articles, toUInt64(0) AS session_articles,
        toUInt64(0) AS sec_filings, toUInt64(0) AS filings_8k
    UNION ALL
    SELECT
        arrayJoin(tickers) AS ticker,
        countIf(published_utc < '2026-07-09 13:30:00') AS overnight_articles,
        countIf(published_utc >= '2026-07-09 13:30:00') AS session_articles,
        toUInt64(0) AS sec_filings, toUInt64(0) AS filings_8k
    FROM global_markets.stocks_news
    WHERE published_utc >= '2026-07-08 20:00:00' AND published_utc < '2026-07-09 20:00:00'
    GROUP BY ticker
    UNION ALL
    SELECT
        ticker, toUInt64(0), toUInt64(0),
        count() AS sec_filings,
        countIf(form_type = '8-K') AS filings_8k
    FROM global_markets.stocks_sec_edgar_index
    WHERE filing_date >= '2026-07-08' AND filing_date <= '2026-07-09'
    GROUP BY ticker
)
WHERE ticker IN ('AMD', 'KLAC', 'LRCX', 'META', 'MSFT', 'MU', 'NVDA', 'TER', 'WDC')
GROUP BY ticker
ORDER BY ticker

0 artigos durante a noite, 0 durante o pregão, 0 registros da SEC para KLAC — a mesma linha vazia para LRCX, TER e WDC. NVDA, que nunca apresentou gap, teve a maior cobertura entre os nove (7 durante a noite, 9 durante o pregão) e fechou em queda. Trata-se da atenção de um único feed, não da mídia global, e a ausência de uma linha não é prova de que um evento não ocorreu — mas nada em nossos dados aponta uma causa, e "causa desconhecida" é uma resposta completa.

O placar

Cada variação compara o último candle de um minuto da sessão regular de 9 de julho com o de quarta-feira; as linhas estão em ordem alfabética, mantendo a posição fixa de cada ETF.

QuerySPY / QQQ / DIA / IWM — 9 de julho vs fechamento de 8 de julho, regular hours
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-08 13:30:00' AND window_start < '2026-07-08 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-09 13:30:00' AND window_start < '2026-07-09 20:00:00'
    GROUP BY ticker
)
SELECT
    s.ticker AS ticker,
    round(toFloat64(p.prior_close), 2) AS prior_close,
    round(toFloat64(s.day_open), 2) AS day_open,
    round(toFloat64(s.day_close), 2) AS day_close,
    round((toFloat64(s.day_open) / toFloat64(p.prior_close) - 1) * 100, 2) AS gap_pct,
    round((toFloat64(s.day_close) / toFloat64(s.day_open) - 1) * 100, 2) AS intraday_pct,
    round((toFloat64(s.day_close) / toFloat64(p.prior_close) - 1) * 100, 2) AS pct_change,
    round(toFloat64(s.day_high), 2) AS day_high,
    round(toFloat64(s.day_low), 2) AS day_low,
    s.shares_traded_m
FROM sess s LEFT JOIN prior p ON s.ticker = p.ticker
ORDER BY ticker

Todos os quatro fecharam em alta. O QQQ liderou com +1.67% — um gap de +0.99% somado a uma alta de +0.68%; o IWM, de small-caps, subiu +1.29%, o SPY +0.85% para $751.64, e o DIA ficou para trás com +0.29%. O crescimento liderou, o Dow ficou por último.

O dia foi atípico?

No nível dos índices, não: o fechamento do QQQ de +1.67% foi o 10 maior entre 21 sessões consecutivas, enquanto o movimento do SPY do abertura ao fechamento foi de 8 de 22. A volatilidade concentrou-se entre os grupos do dia.

QueryMovimento diário SPY / QQQ em contexto trailing (~22 sessões)
O SQL exato por trás de cada número
SELECT
    round(anyIf(cc_pct, ticker = 'QQQ' AND d = toDate('2026-07-09')), 2) AS qqq_close_over_close_pct,
    arrayCount(x -> x > abs(anyIf(cc_pct, ticker = 'QQQ' AND d = toDate('2026-07-09'))), groupArrayIf(abs(cc_pct), ticker = 'QQQ' AND d != toDate('2026-07-09'))) + 1 AS qqq_abs_move_rank,
    countIf(ticker = 'QQQ' AND isFinite(cc_pct)) AS qqq_sessions_compared,
    round(anyIf(oc_pct, ticker = 'SPY' AND d = toDate('2026-07-09')), 2) AS spy_open_to_close_pct,
    arrayCount(x -> x > abs(anyIf(oc_pct, ticker = 'SPY' AND d = toDate('2026-07-09'))), groupArrayIf(abs(oc_pct), ticker = 'SPY' AND d != toDate('2026-07-09'))) + 1 AS spy_abs_move_rank,
    countIf(ticker = 'SPY') AS spy_sessions_compared,
    toString(min(d)) AS first_session
FROM (
    SELECT ticker, d,
           if(isFinite(close_px / lagInFrame(close_px) OVER (PARTITION BY ticker ORDER BY d) - 1),
              (close_px / lagInFrame(close_px) OVER (PARTITION BY ticker ORDER BY d) - 1) * 100, NULL) AS cc_pct,
           oc_pct
    FROM (
        SELECT ticker, toDate(toTimeZone(window_start, 'America/New_York')) AS d,
               argMax(toFloat64(close), window_start) AS close_px,
               (argMax(toFloat64(close), window_start) / argMin(toFloat64(open), window_start) - 1) * 100 AS oc_pct
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker IN ('SPY', 'QQQ')
          AND window_start >= toDateTime('2026-06-08 13:30:00')
          AND window_start < toDateTime('2026-07-10 00:00:00')
          AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
        GROUP BY ticker, d
    )
)

Amplitude: a sessão de maior amplitude da semana

QueryBreadth do liquid-tape: proporção de advancers em 9 de julho vs 8 de julho, filtro de $1M negociados
O SQL exato por trás de cada número
SELECT
    countIf(close_9 > close_8 AND close_8 > 0 AND dv_9 >= 1000000) AS advancers,
    countIf(close_9 < close_8 AND close_8 > 0 AND dv_9 >= 1000000) AS decliners,
    countIf(close_9 = close_8 AND close_8 > 0 AND dv_9 >= 1000000) AS unchanged,
    countIf(close_8 > 0 AND close_9 > 0 AND dv_9 >= 1000000) AS liquid_tickers,
    countIf(close_8 > 0 AND close_9 > 0) AS traded_both_sessions,
    countIf(close_8 > 0 AND close_9 > 0) - countIf(close_8 > 0 AND close_9 > 0 AND dv_9 >= 1000000) AS dropped_by_liquidity_filter,
    round(100.0 * countIf(close_9 > close_8 AND close_8 > 0 AND dv_9 >= 1000000) / countIf(close_8 > 0 AND close_9 > 0 AND dv_9 >= 1000000), 1) AS advancer_pct,
    round(100.0 * countIf(close_8 > close_7 AND close_7 > 0 AND dv_8 >= 1000000) / countIf(close_8 > 0 AND close_7 > 0 AND dv_8 >= 1000000), 1) AS jul8_advancer_pct
FROM (
    SELECT ticker,
           toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 20:00:00')) AS close_7,
           toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 20:00:00')) AS close_8,
           toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-09 13:30:00' AND window_start < '2026-07-09 20:00:00')) AS close_9,
           sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-09 13:30:00' AND window_start < '2026-07-09 20:00:00') AS dv_9,
           sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 20:00:00') AS dv_8
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-09 20:00:00'
    GROUP BY ticker
)

4263 altas contra 1631 baixas — uma proporção de altas de 71.5% após 29.6% na quarta-feira, mesmo cálculo, mesmo filtro de $1M negociados (5385 de 11351 tickers ficam abaixo dele). Comparando com o restante da semana:

QueryA semana até agora: movimentos dos índices e proporção de advancers por sessão
O SQL exato por trás de cada número
WITH per_day AS (
    SELECT ticker,
           toDate(toTimeZone(window_start, 'America/New_York')) AS d,
           argMax(toFloat64(close), window_start) AS c,
           sum(toFloat64(close) * toFloat64(volume)) AS dv
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= '2026-07-02 13:30:00' AND window_start < '2026-07-09 20:00:00'
      AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
    GROUP BY ticker, d
),
lagged AS (
    SELECT ticker, d, c, dv,
           lagInFrame(c) OVER (PARTITION BY ticker ORDER BY d) AS prev_c
    FROM per_day
)
SELECT
    toString(d) AS date,
    round(anyIf((c / prev_c - 1) * 100, ticker = 'SPY'), 2) AS spy_pct,
    round(anyIf((c / prev_c - 1) * 100, ticker = 'QQQ'), 2) AS qqq_pct,
    round(100.0 * countIf(c > prev_c AND prev_c > 0 AND dv >= 1000000) / countIf(c > 0 AND prev_c > 0 AND dv >= 1000000), 1) AS advancer_pct,
    countIf(c > 0 AND prev_c > 0 AND dv >= 1000000) AS liquid_names
FROM lagged
WHERE d >= toDate('2026-07-06')
GROUP BY d
ORDER BY d

A segunda-feira começou com 62.4% altas, terça e quarta caíram para 33.9% e 29.6%, e o valor de 71.4% da quinta-feira é o maior das quatro sessões completas da semana (sexta-feira, 10 de julho, é posterior a este resumo). O QQQ também seguiu essa tendência: -1.82% na terça, 0.25% na quarta, +1.67% na quinta-feira.

Além dos chips: como o restante do mercado operou

A amplitude indica que a maioria das ações subiu; no entanto, não indica que o rali foi uniforme. Abaixo: uma cesta com pesos iguais contendo três ativos líquidos por setor, a mesma cesta declarada diariamente.

QueryOito cestas de setores, três nomes cada: fechamento de 9 de julho vs 8 de julho, equal-weighted
O SQL exato por trás de cada número
SELECT
    sector,
    count() AS names,
    round(avg(pct_chg), 2) AS avg_pct_chg,
    round(min(pct_chg), 2) AS worst_name_pct,
    round(max(pct_chg), 2) AS best_name_pct,
    round(avg(pct_chg) - max(avg(pct_chg)) OVER (), 2) AS gap_to_best_sector_pct
FROM (
    SELECT
        ticker,
        multiIf(ticker IN ('AMD', 'AVGO', 'KLAC'), 'Semiconductors',
                ticker IN ('AAPL', 'MSFT', 'GOOGL'), 'Big tech',
                ticker IN ('JPM', 'BAC', 'GS'), 'Financials',
                ticker IN ('CAT', 'HON', 'GE'), 'Industrials',
                ticker IN ('XOM', 'CVX', 'COP'), 'Energy',
                ticker IN ('JNJ', 'UNH', 'PFE'), 'Healthcare',
                ticker IN ('KO', 'PG', 'WMT'), 'Staples',
                'Utilities') AS sector,
        (toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-09 13:30:00' AND window_start < '2026-07-09 20:00:00'))
         / toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 20:00:00')) - 1) * 100 AS pct_chg
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('AMD', 'AVGO', 'KLAC', 'AAPL', 'MSFT', 'GOOGL', 'JPM', 'BAC', 'GS', 'CAT', 'HON', 'GE',
                     'XOM', 'CVX', 'COP', 'JNJ', 'UNH', 'PFE', 'KO', 'PG', 'WMT', 'NEE', 'DUK', 'SO')
      AND window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-09 20:00:00'
    GROUP BY ticker
)
GROUP BY sector
ORDER BY avg_pct_chg DESC

Semiconductors liderou com +4.24%, enquanto Energy ficou para trás com -2.01% — um spread de -6.25 pontos (gap_to_best_sector_pct). O setor financeiro foi a cesta de não-chips mais forte, com +1.88%; Staples (-0.91%), Utilities (-0.96%) e Energy fecharam no vermelho. As grandes techs (AAPL, MSFT e GOOGL) tiveram uma média modesta de +0.17%. A maior reversão do dia (abertura vs. fechamento), a oscilação de +8.1% da META, está fora das oito cestas; dentro desta, a abertura de -2.25% da MSFT seguida por um fechamento de +0.33% foi o movimento de ida e volta mais acentuado.

A abertura dos semicondutores e a queda subsequente

gap_pct é a abertura em relação ao fechamento de quarta-feira; intraday_pct é o restante do dia. As linhas estão em ordem alfabética.

QueryQuatorze nomes de chips: gap na abertura vs restante do dia, 9 de julho
O SQL exato por trás de cada número
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-09 00:00:00')) AS prior_close,
        toFloat64(argMinIf(open, window_start, window_start >= '2026-07-09 00:00:00')) AS day_open,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-09 00:00:00')) AS day_close,
        maxIf(toFloat64(high), window_start >= '2026-07-09 00:00:00') AS day_high,
        minIf(toFloat64(low), window_start >= '2026-07-09 00:00:00') AS day_low,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-09 00:00:00') / 1e9, 2) AS day_dollar_bn
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('AMD', 'AVGO', 'INTC', 'KLAC', 'LRCX', 'MRVL', 'MU', 'NVDA', 'SNDK', 'SOXL', 'SOXS', 'STX', 'TER', 'WDC')
      AND ((window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 20:00:00')
        OR (window_start >= '2026-07-09 13:30:00' AND window_start < '2026-07-09 20:00:00'))
    GROUP BY ticker
)
SELECT
    ticker,
    round(prior_close, 2) AS prior_close,
    round(day_open, 2) AS day_open,
    round(day_close, 2) AS day_close,
    round((day_open / prior_close - 1) * 100, 2) AS gap_pct,
    round((day_close / day_open - 1) * 100, 2) AS intraday_pct,
    round((day_close / prior_close - 1) * 100, 2) AS pct_chg,
    day_dollar_bn
FROM per_name
ORDER BY ticker

KLAC abriu com +8.14% acima do fechamento de quarta-feira, mas perdeu -3.98%; LRCX abriu com +9.67% e recuou -3.26%; TER (+7.87%) e WDC (+7.89%) seguiram o mesmo padrão. MU teve um gap de +7.07%, caiu -2.56%, mas ainda fechou +4.33% com 33.56B — a ação de maior volume do pregão por dois dias consecutivos (resumo de quarta-feira contém o primeiro). AMD e SNDK foram as exceções: a AMD somou 1.75% após uma abertura de +3.87% para terminar em +5.68%, e a SNDK, que já estava +6.14% na abertura, somou mais 1.23% para fechar em +7.45%. E a NVDA: uma abertura de +0.16% — sem gap — para um fechamento de -0.68%.

QueryReceipts: contagem de green/red em 9 de julho para os quatorze nomes, e o giro de dois dias da NVDA
O SQL exato por trás de cada número
SELECT
    countIf(close_9 > close_8) AS jul9_green,
    countIf(close_9 < close_8) AS jul9_red,
    countIf(close_8 > close_7) AS jul8_green,
    round(anyIf((close_9 / close_8 - 1) * 100, ticker = 'NVDA'), 2) AS nvda_jul9_pct,
    round(anyIf((close_8 / close_7 - 1) * 100, ticker = 'NVDA'), 2) AS nvda_jul8_pct,
    count() AS names_counted
FROM (
    SELECT ticker,
           toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-07 20:00:00')) AS close_7,
           toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 20:00:00')) AS close_8,
           toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-09 13:30:00' AND window_start < '2026-07-09 20:00:00')) AS close_9
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('AMD', 'AVGO', 'INTC', 'KLAC', 'LRCX', 'MRVL', 'MU', 'NVDA', 'SNDK', 'SOXL', 'SOXS', 'STX', 'TER', 'WDC')
      AND window_start >= '2026-07-07 13:30:00' AND window_start < '2026-07-09 20:00:00'
    GROUP BY ticker
)

12 das quatorze ações fechou em alta; os fechamentos em baixa de 2 foram o inverso do movimento — estruturais em um dia de alta — além da NVDA em -0.68%, um dia após fechar +3.66%. A maior empresa de chips do setor ficou de fora da celebração do seu próprio segmento, apesar de concentrar a maior cobertura de notícias.

O outro lado: mega-caps abriram em queda e recuperaram

QueryOito mega-caps e defensivas: gap na abertura vs restante do dia, 9 de julho
O SQL exato por trás de cada número
WITH per_name AS (
    SELECT
        ticker,
        toFloat64(argMaxIf(close, window_start, window_start < '2026-07-09 00:00:00')) AS prior_close,
        toFloat64(argMinIf(open, window_start, window_start >= '2026-07-09 00:00:00')) AS day_open,
        toFloat64(argMaxIf(close, window_start, window_start >= '2026-07-09 00:00:00')) AS day_close,
        round(sumIf(toFloat64(close) * toFloat64(volume), window_start >= '2026-07-09 00:00:00') / 1e9, 2) AS day_dollar_bn
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('AAPL', 'AMZN', 'CVX', 'GOOGL', 'JNJ', 'META', 'MSFT', 'TSLA')
      AND ((window_start >= '2026-07-08 13:30:00' AND window_start < '2026-07-08 20:00:00')
        OR (window_start >= '2026-07-09 13:30:00' AND window_start < '2026-07-09 20:00:00'))
    GROUP BY ticker
)
SELECT
    ticker,
    round(prior_close, 2) AS prior_close,
    round(day_open, 2) AS day_open,
    round(day_close, 2) AS day_close,
    round((day_open / prior_close - 1) * 100, 2) AS gap_pct,
    round((day_close / day_open - 1) * 100, 2) AS intraday_pct,
    round((day_close / prior_close - 1) * 100, 2) AS pct_chg,
    day_dollar_bn
FROM per_name
ORDER BY ticker

Sete das oito abriram abaixo do fechamento de quarta-feira; o que veio a seguir as diferenciou. A META abriu com queda de -3.16% e subiu +8.1% para um fechamento de 4.69% — a reversão mais violenta entre abertura e fechamento da página. A MSFT abriu com queda de -2.25% e recuperou para +0.33%; a AMZN (+1.4%) e a AAPL (+0.93%) seguiram o mesmo padrão; a TSLA não apresentou gap e subiu para +3.21%. As ações que permaneceram em queda não eram de crescimento: GOOGL (-0.76%), CVX (-1.06%) e JNJ (-1.62%). Por que as ações apresentam gap durante a noite explica o mecanismo.

Onde o dinheiro foi negociado

QueryTop 6 por volume financeiro, top 4 por volume de ações — 9 de julho regular hours
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,
    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-09 13:30:00' AND window_start < '2026-07-09 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-09 13:30:00' AND window_start < '2026-07-09 20:00:00'
      AND ticker NOT IN ('SPCX')
    GROUP BY ticker
    ORDER BY shares_m DESC
    LIMIT 4
)
ORDER BY leaderboard, pct_of_board_leader DESC

MU liderou o volume em dólar novamente com 33.56B, superando SPY (24.37B), NVDA (21.28B) e SNDK (20.59B) — o setor de memória ocupou duas das quatro principais posições. O mercado de ações apresenta um cenário diferente: SOXS liderou com 558.1M de ações, com preço implícito de $3.91 (volume relativo).

QueryAções por bucket de 30 minutos ET, regular hours, com % do maior bucket do dia
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-09 13:30:00' AND window_start < '2026-07-09 20:00:00'
GROUP BY et_time
ORDER BY et_time

Um padrão clássico em formato de U: o volume na abertura foi de 1.79B de ações (91.4% do total), o ponto mais baixo ocorreu no meio do dia com 0.64B, e a leilão de fechamento de meia hora foi o maior do dia, com 1.96B. Mesmo em um dia com forte atividade na abertura, o volume concentrou-se no fechamento.

O tape de opções

QueryOptions tape: prints, contratos, % de calls, share de 0DTE vs quarta, top contratos
O SQL exato por trás de cada número
WITH
    (
        SELECT (groupArray(und), groupArray(strike), groupArray(typ), groupArray(vol), groupArray(avg_px), groupArray(is_0dte))
        FROM (
            SELECT any(underlying_symbol) AS und, any(toFloat64(strike_price)) AS strike, any(option_type) AS typ,
                   sum(size) AS vol, round(avg(toFloat64(price)), 3) AS avg_px,
                   if(substring(ticker, length(ticker) - 14, 6) = '260709', 1, 0) AS is_0dte
            FROM global_markets.options_trades
            WHERE sip_timestamp >= '2026-07-09 00:00:00' AND sip_timestamp < '2026-07-10 00:00:00'
            GROUP BY ticker
            ORDER BY vol DESC
            LIMIT 3
        )
    ) AS top3,
    (
        SELECT round(toFloat64(argMax(close, window_start)), 2)
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY' AND window_start >= '2026-07-09 13:30:00' AND window_start < '2026-07-09 20:00:00'
    ) AS spy_regular_close,
    (
        SELECT round(toFloat64(sum(size)) / 1e6, 2)
        FROM global_markets.options_trades
        WHERE sip_timestamp >= '2026-07-08 00:00:00' AND sip_timestamp < '2026-07-09 00:00:00'
    ) AS jul8_contracts_m,
    (
        SELECT round(100.0 * sumIf(size, substring(ticker, length(ticker) - 14, 6) = '260708') / sum(size), 1)
        FROM global_markets.options_trades
        WHERE sip_timestamp >= '2026-07-08 00:00:00' AND sip_timestamp < '2026-07-09 00:00:00'
    ) AS jul8_pct_0dte
SELECT
    round(count() / 1e6, 2) AS option_prints_m,
    round(toFloat64(sum(size)) / 1e6, 2) AS contracts_m,
    jul8_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) = '260709') / sum(size), 1) AS pct_0dte,
    jul8_pct_0dte,
    spy_regular_close,
    top3.1[1] AS top1_und, top3.2[1] AS top1_strike, top3.3[1] AS top1_type,
    round(toFloat64(top3.4[1]) / 1e3, 1) AS top1_contracts_k, top3.5[1] AS top1_avg_px, top3.6[1] AS top1_is_0dte,
    top3.1[2] AS top2_und, top3.2[2] AS top2_strike, top3.3[2] AS top2_type, top3.6[2] AS top2_is_0dte,
    top3.1[3] AS top3_und, top3.2[3] AS top3_strike, top3.3[3] AS top3_type, top3.6[3] AS top3_is_0dte,
    round(toFloat64(top3.2[1]) - spy_regular_close, 2) AS top1_moneyness
FROM global_markets.options_trades
WHERE sip_timestamp >= '2026-07-09 00:00:00' AND sip_timestamp < '2026-07-10 00:00:00'

O tape registrou 9.99M prints e 58.85M contratos — abaixo dos 63.26M de quarta-feira — com calls representando 58% do volume, e a participação de 0DTE caindo para 28.7% em relação a 38.7%. Os três contratos mais negociados foram calls de SPY para o mesmo dia — o 751C (846.6K contratos, preço médio de $0.526), o 752C e o 750C — uma escada em torno do fechamento do SPY a $751.64 (opções 0DTE detalha o produto).

Hedge ou aposta? Um hedge compra strikes fora do dinheiro; uma aposta compra o lado desejado.

QueryOpções SPY same-day (0DTE): contratos por distância de strike do preço de fechamento
O SQL exato por trás de cada número
WITH (
    SELECT toFloat64(argMax(close, window_start))
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY' AND window_start >= '2026-07-09 13:30:00' AND window_start < '2026-07-09 20:00:00'
) AS spy_close
SELECT
    multiIf(dist < -2, 'Strike >2% below close',
            dist < -0.5, 'Strike 0.5-2% below',
            dist <= 0.5, 'Strike within 0.5%',
            dist <= 2, 'Strike 0.5-2% above',
            'Strike >2% above close') AS strike_bucket,
    round(toFloat64(sumIf(size, option_type = 'C')) / 1e3, 1) AS call_contracts_k,
    round(toFloat64(sumIf(size, option_type = 'P')) / 1e3, 1) AS put_contracts_k,
    round(100.0 * sumIf(size, option_type = 'C') / sum(size), 1) AS call_share_pct
FROM (
    SELECT option_type, size, (toFloat64(strike_price) / spy_close - 1) * 100 AS dist
    FROM global_markets.options_trades
    WHERE sip_timestamp >= '2026-07-09 00:00:00' AND sip_timestamp < '2026-07-10 00:00:00'
      AND underlying_symbol = 'SPY'
      AND substring(ticker, length(ticker) - 14, 6) = '260709'
)
GROUP BY strike_bucket
ORDER BY min(dist)

O tape de mesmo dia concentrou-se no dinheiro: 3768.9k calls e 2563.3k puts dentro de meio por cento do fechamento (59.5% calls). As wings dividiram-se por direção — abaixo do fechamento, 1356.5k puts contra 255.4k calls (1.2% de participação em calls mais abaixo); acima do fechamento, as calls detiveram 91.6% de um bucket muito menor de 29.1k. O volume das wings concentrou-se em strikes de baixa, onde se busca proteção: uma escada at-the-money, não uma de alta.

O tape de cotações

QueryContagem de updates NBBO: 9 de julho vs 8 de julho, com updates por ticker (milhões)
O SQL exato por trás de cada número
SELECT
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-09')) / 1e6, 2) AS jul9_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-08')) / 1e6, 2) AS jul8_updates_m,
    round((countIf(toDate(sip_timestamp) = toDate('2026-07-09')) / countIf(toDate(sip_timestamp) = toDate('2026-07-08')) - 1) * 100, 1) AS day_over_day_pct,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-09') AND ticker = 'SPY') / 1e6, 2) AS jul9_spy_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-09') AND ticker = 'QQQ') / 1e6, 2) AS jul9_qqq_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-09') AND ticker = 'NVDA') / 1e6, 2) AS jul9_nvda_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-09') AND ticker = 'TSLA') / 1e6, 2) AS jul9_tsla_updates_m,
    round(countIf(toDate(sip_timestamp) = toDate('2026-07-09') AND ticker = 'MU') / 1e6, 2) AS jul9_mu_updates_m
FROM global_markets.cache_stocks_quotes
WHERE sip_timestamp >= '2026-07-08 00:00:00' AND sip_timestamp < '2026-07-10 00:00:00'

O fato mais discreto do dia: 383.44M atualizações de NBBO no tape de ações, -27.7% em relação a quarta-feira. A volatilidade concentrou-se nos níveis de preço, não no volume de negociações. O QQQ liderou os tickers listados com 4.35M, superando os 2.71M do SPY e os 1.83M da NVDA.

QuerySPY / QQQ / NVDA / TSLA / MU / SNDK / AVGO: median quoted spread em RTH (basis points)
O SQL exato por trás de cada número
SELECT
    ticker,
    round(quantileExact(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000), 2) AS median_spread_bps
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'QQQ', 'NVDA', 'TSLA', 'MU', 'SNDK', 'AVGO')
  AND sip_timestamp >= '2026-07-09 13:30:00' AND sip_timestamp < '2026-07-09 20:00:00'
  AND bid_price > 0 AND ask_price > 0 AND ask_price > bid_price
GROUP BY ticker
ORDER BY median_spread_bps ASC

O spread médio de cotação do SPY foi de 0.27 bps, QQQ 0.42 e NVDA 0.99 — números comuns. A cauda mais larga: MU em 4.23 bps e SNDK em 8.79 bps (o bid-ask spread é o custo que este indicador mede).

QueryMédia do quoted spread do SPY em RTH no contexto trailing-month
O SQL exato por trás de cada número
SELECT
    round(anyIf(avg_spread_cents, d = toDate('2026-07-09')), 3) AS jul9_avg_spread_cents,
    arrayCount(x -> x < anyIf(avg_spread_cents, d = toDate('2026-07-09')), groupArrayIf(avg_spread_cents, d != toDate('2026-07-09'))) + 1 AS tightness_rank,
    count() AS sessions_compared,
    round(min(avg_spread_cents), 3) AS tightest_session_cents,
    round(max(avg_spread_cents), 3) AS widest_session_cents,
    toString(min(d)) AS first_session
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
    FROM global_markets.cache_stocks_quotes
    WHERE ticker = 'SPY'
      AND sip_timestamp >= toDateTime('2026-06-08 00:00:00')
      AND sip_timestamp < toDateTime('2026-07-10 00:00:00')
      AND (toHour(sip_timestamp) * 60 + toMinute(sip_timestamp)) BETWEEN 810 AND 1199
    GROUP BY d
)

O spread médio de cotação do SPY de 2.071 cents ficou na posição 10 de 22 sessões anteriores, dentro de uma faixa de 1.8092.865 cents: sem estresse nas cotações, mesmo na abertura.

QueryOptions NBBO tape: total de updates vs tape de ações, mais o slice do SPY
O SQL exato por trás de cada número
WITH
    (SELECT count() FROM global_markets.cache_options_quotes WHERE sip_timestamp >= '2026-07-09 00:00:00' AND sip_timestamp < '2026-07-10 00:00:00') AS jul9_options_rows,
    (SELECT count() FROM global_markets.cache_stocks_quotes WHERE sip_timestamp >= '2026-07-09 00:00:00' AND sip_timestamp < '2026-07-10 00:00:00') AS jul9_stock_quote_rows
SELECT
    round(jul9_options_rows / 1e9, 2) AS jul9_options_bn,
    round(jul9_options_rows / jul9_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-09 13:30:00' AND sip_timestamp < '2026-07-09 20:00:00') / 1e6, 0) AS jul9_spy_options_m

O tape de cotações de opções registrou 6.9 bilhões de atualizações de NBBO — 18 vezes o volume do tape de ações, com apenas o ativo principal do SPY somando 242M.

Taxas: o relatório de 9 de julho

QueryStatus do print de Treasuries: registros de 9 de julho e a curva de 8 de julho
O SQL exato por trás de cada número
SELECT
    (SELECT count() FROM global_markets.treasury_yields WHERE date = '2026-07-09') AS jul9_print_rows,
    toString(any(date)) AS latest_print_date,
    round(toFloat64(any(yield_2_year)), 2) AS latest_2y_pct,
    round(toFloat64(any(yield_10_year)), 2) AS latest_10y_pct,
    round(toFloat64(any(yield_30_year)), 2) AS latest_30y_pct,
    round(toFloat64(any(yield_10_year)) - toFloat64(any(yield_2_year)), 2) AS latest_2s10s_pct
FROM global_markets.treasury_yields
WHERE date = '2026-07-09'

O relatório do Tesouro de 9 de julho foi publicado após a redação, com o atraso habitual do arquivo de rendimento diário — agora na linha 1. A curva do dia (2026-07-09): 2 anos 4.16%, 10 anos 4.54%, 30 anos 5.05%, spread 2s10s 0.38 pontos — o título de 2 anos recuou em relação ao nível de 8 de julho, enquanto a ponta longa se manteve estável.

The calendar behind the day

QueryEx-divs, splits, SEC filings, atenção de notícias
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-09'
    ) AS news,
    (
        SELECT (argMax(t, (n, t)), max(n), max(n) - arraySort(x -> -x, groupArray(n))[2])
        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-09'
            )
            WHERE t != 'SPCX'
            GROUP BY t
        )
    ) AS top_news
SELECT
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-09') AS ex_dividend_records,
    (SELECT count() FROM global_markets.stocks_splits WHERE execution_date = '2026-07-09') AS splits_executed,
    (SELECT countIf(toFloat64(split_from) > toFloat64(split_to)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-09') AS reverse_splits,
    (SELECT countIf(toFloat64(split_to) > toFloat64(split_from)) FROM global_markets.stocks_splits WHERE execution_date = '2026-07-09') AS forward_splits,
    (SELECT countIf(form_type = '424B2') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-09') AS fil_424b2,
    (SELECT countIf(form_type = '4') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-09') AS fil_form4,
    (SELECT countIf(form_type = '8-K') FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-09') AS fil_8k,
    (SELECT count() FROM global_markets.stocks_sec_edgar_index WHERE filing_date = '2026-07-09') AS fil_total,
    news.1 AS news_articles, news.2 AS news_publishers,
    top_news.1 AS top_news_ticker, top_news.2 AS top_news_n, top_news.3 AS top_news_lead_over_next,
    if(top_news.1 = 'NVDA', 1, 0) AS top_news_is_nvda

A routine calendar under an unroutine open: 127 ex-dividend records, 5 reverse splits, 1 forward split, 2979 SEC filings (623 Form 4s, 605 424B2s, 149 8-Ks). The feed ran 184 articles across 3 publishers; most-covered ticker NVDA, 20 articles, 8 clear of the next name.

Em pauta

Dados de nossas tabelas — fatos sobre a próxima sessão, não previsões.

QueryPróximos: próxima sessão, lista de ex-dividendos, ladder de expiry do SPY e clock de short-interest
O SQL exato por trás de cada número
SELECT
    toString(min(d)) AS next_session_date,
    (SELECT count() FROM global_markets.stocks_market_holidays WHERE date = '2026-07-10') AS next_session_holiday_rows,
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-10') AS ex_div_records_next,
    (SELECT countIf(ticker IN ('AAPL', 'MSFT', 'JNJ', 'KO', 'PG', 'XOM', 'CVX', 'JPM', 'WMT', 'PEP', 'HON', 'CAT'))
     FROM global_markets.stocks_dividends WHERE ex_dividend_date = '2026-07-10') AS household_ex_div_next,
    (SELECT round(toFloat64(sum(size)) / 1e6, 2) FROM global_markets.options_trades
     WHERE sip_timestamp >= '2026-07-09 00:00:00' AND sip_timestamp < '2026-07-10 00:00:00'
       AND underlying_symbol = 'SPY' AND substring(ticker, length(ticker) - 14, 6) = '260710') AS spy_next_expiry_contracts_m,
    (SELECT round(toFloat64(sum(size)) / 1e6, 2) FROM global_markets.options_trades
     WHERE sip_timestamp >= '2026-07-09 00:00:00' AND sip_timestamp < '2026-07-10 00:00:00'
       AND underlying_symbol = 'SPY' AND substring(ticker, length(ticker) - 14, 6) = '260717') AS spy_monthly_expiry_contracts_m,
    (SELECT toString(max(settlement_date)) FROM global_markets.stocks_short_interest) AS latest_short_settlement,
    (SELECT count() FROM global_markets.stocks_short_interest WHERE settlement_date = '2026-07-15') AS jul15_short_rows
FROM (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY' AND window_start >= '2026-07-10 00:00:00' AND window_start < '2026-07-14 00:00:00'
)

A próxima sessão é 2026-07-10, com 0 linhas de feriado contra ela: uma sexta-feira normal. 153 empresas pagam dividendos naquela manhã, sendo 0 da nossa lista de empresas conhecidas. O vencimento do SPY nesta sexta-feira é o mais pesado já negociado — 1.66M contratos em 9 de julho contra 0.57M contra o mensal de julho. Relógio de short-interest: último fechamento registrado é 2026-06-30, com 0 linhas ainda pendentes para meados de julho — a FINRA publica cerca de oito dias úteis após o fechamento (por que o short interest tem duas semanas de atraso).

A sessão, verificada

QueryVerificação da sessão: primeira/última barra SPY ET, contagem de barras regular, receipts de feriados, próximo fechamento
O SQL exato por trás de cada número
SELECT
    formatDateTime(min(toTimeZone(window_start, 'America/New_York')), '%H:%i') AS first_spy_bar_et,
    formatDateTime(max(toTimeZone(window_start, 'America/New_York')), '%H:%i') AS last_spy_bar_et,
    count() AS spy_minute_bars,
    countIf(window_start >= '2026-07-09 13:30:00' AND window_start < '2026-07-09 20:00:00') AS regular_session_bars,
    uniqExactIf(toDate(toTimeZone(window_start, 'America/New_York')), window_start >= '2026-07-09 13:30:00' AND window_start < '2026-07-09 20:00:00') AS day_sessions,
    (SELECT count() FROM global_markets.stocks_market_holidays WHERE date = '2026-07-09') AS jul9_holiday_rows,
    (SELECT toString(min(date)) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-09' AND status = 'closed') AS next_closure_date,
    (SELECT concat(monthName(min(date)), ' ', toString(toDayOfMonth(min(date))), ', ', toString(toYear(min(date))))
     FROM global_markets.stocks_market_holidays WHERE date > '2026-07-09' AND status = 'closed') AS next_closure_label,
    (SELECT argMin(name, date) FROM global_markets.stocks_market_holidays WHERE date > '2026-07-09' AND status = 'closed') AS next_closure_name
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2026-07-09 00:00:00' AND window_start < '2026-07-10 00:00:00'

Uma sessão ordinária completa: primeira barra do SPY 04:00 ET, última 19:59 ET, 390 barras de minuto regulares, sem linha de feriado. Próximo fechamento: Labor Day, September 7, 2026.

FAQ

O que aconteceu no mercado de ações em 9 de julho de 2026?

Todos os ETFs de índices fecharam em alta — QQQ +1.67%, IWM +1.29%, SPY +0.85%, DIA +0.29%, com 71.5% de ações líquidas em alta. Ações de equipamentos de semicondutores abriram com gap de alta e perderam força; as mega-caps abriram com gap de baixa e se recuperaram.

Por que ações de equipamentos de semicondutores como KLAC e LRCX saltaram em 9 de julho de 2026?

Nossos dados não indicam um motivo: não houve artigos ou registros na SEC para KLAC, LRCX, TER ou WDC entre o fechamento de quarta-feira e o de quinta-feira. O movimento já estava precificado no premarket, antes das 9:30 am ET.

Por que a NVDA caiu enquanto o setor de semicondutores subiu?

A NVDA fechou -0.68% enquanto 12 de quatorze ações de semicondutores fecharam no verde. A ação não apresentou gap (0.16% na abertura) e foi o ticker mais coberto, com 20 de artigos — um recorde de coocorrência, mas a causa não consta nestes dados.

O dia 9 de julho de 2026 foi um dia incomum para o mercado?

Não em nível de índice: o movimento do QQQ ficou em 10 de 21 das sessões anteriores em magnitude, e o spread médio do SPY foi de 10 de 22. A dispersão interna foi de: -6.25 pontos entre a melhor e a pior cesta de setores.

Notas de dados

O horário regular é das 13:30 às 20:00 UTC (9:30 am–4:00 pm ET); o painel de premarket utiliza o intervalo de 08:00–13:30 UTC. As oito cestas setoriais são selecionadas e possuem pesos iguais — três ativos líquidos cada, com cada ticker listado no SQL do painel. Este é um método declarado, não uma classificação de fornecedor: três ativos representam o grupo, não um setor inteiro. O painel de catalisadores considera apenas nosso feed de notícias e o índice EDGAR.

Notas de dados completas

Os painéis por ticker estão em ordem alfabética, portanto, cada referência no texto aponta para uma linha fixa; os leaderboards são ordenados por valor, com cada posição delimitada. Os dados do treasury e o settlement de short-interest de meados de julho estão limitados a zero linhas — a chegada desses dados exigirá uma reescrita deste post.

Metodologia

  • Fontes: cada painel utiliza tabelas SQL próprias — agregados de minuto, caches de NBBO de ações e opções, negociações de opções, nosso feed de notícias, índice EDGAR, dividendos, interesse a descoberto, feriados e rendimentos de títulos do tesouro.
  • Convenções: literais UTC brutos em WHERE, rótulos ET apenas em SELECT; gap = abertura da primeira barra regular ÷ fechamento da regular anterior − 1; valores da sessão anterior e da semana anterior calculados na consulta, nunca transportados de um post anterior. Armazém de dados atualizado em 13 de julho de 2026.