Este é o resumo da última semana no mercado dos EUA. Cada número abaixo é extraído de uma consulta armazenada diretamente do tape; esta página é atualizada semanalmente para exibir sempre a última semana completa de negociação.
O placar dos índices
O SQL exato por trás de cada número
WITH sess AS (
SELECT ticker, toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMin(toFloat64(open), toTimeZone(window_start, 'America/New_York')) AS o,
argMax(toFloat64(close), toTimeZone(window_start, 'America/New_York')) AS c
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'QQQ', 'DIA', 'IWM')
AND window_start >= now() - INTERVAL 12 DAY AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY ticker, d
),
wk AS (SELECT ticker, argMin(o, d) AS wo, argMax(c, d) AS wc, min(d) AS d0, max(d) AS d1
FROM sess WHERE d >= (SELECT max(d) FROM sess) - 6 GROUP BY ticker)
SELECT multiIf(ticker = 'SPY', 'S&P 500 (SPY)', ticker = 'QQQ', 'Nasdaq 100 (QQQ)', ticker = 'DIA', 'Dow (DIA)', 'Russell 2000 (IWM)') AS index_etf,
round((wc / wo - 1) * 100, 2) AS week_return_pct,
(SELECT formatDateTime(min(d0), '%b %e') FROM wk) AS week_start,
(SELECT formatDateTime(max(d1), '%b %e') FROM wk) AS week_end
FROM wk
ORDER BY multiIf(ticker = 'SPY', 0, ticker = 'QQQ', 1, ticker = 'DIA', 2, 3)Na semana de Jul 15 a Jul 21, o S&P 500 (SPY) retornou -0.79%, o Nasdaq 100 (QQQ) -2.06%, o Dow (DIA) -0.83% e o Russell 2000 de small-caps (IWM) 0.43%. A diferença entre os quatro resume a semana: quando o Nasdaq e o Russell divergem, o mercado está escolhendo entre o crescimento de megacaps ou todo o restante.
Por baixo da superfície: amplitude
O nível de um índice esconde quantos ativos realmente participaram. Este indicador contabiliza cada sessão: entre nomes com volume de pelo menos US$ 500 milhões, quantos fecharam em alta em relação à sessão anterior e quantos fecharam em baixa.
O SQL exato por trás de cada número
WITH day AS (
SELECT ticker, toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMax(toFloat64(close), toTimeZone(window_start, 'America/New_York')) AS c,
sum(toFloat64(close) * toFloat64(volume)) AS dv
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= now() - INTERVAL 14 DAY AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY ticker, d
),
chg AS (SELECT ticker, d, c, dv, lagInFrame(c) OVER (PARTITION BY ticker ORDER BY d) AS prev_c FROM day),
per_day AS (
SELECT d,
countIf(c > prev_c AND dv >= 500000000 AND prev_c > 3) AS advancers,
countIf(c < prev_c AND dv >= 500000000 AND prev_c > 3) AS decliners,
countIf(dv >= 500000000 AND prev_c > 3) AS total
FROM chg WHERE d >= (SELECT max(d) FROM day) - 12 AND prev_c > 0
GROUP BY d HAVING total >= 100
),
recent AS (SELECT d, advancers, decliners FROM per_day ORDER BY d DESC LIMIT 5)
SELECT d AS date, advancers, decliners FROM recent ORDER BY d ASCAs duas linhas representam a própria participação. Quando os ativos em alta superam amplamente os em baixa durante a semana, um índice em ascensão tem todo o mercado o sustentando; quando eles convergem ou se cruzam, um índice positivo é impulsionado por um punhado de grandes nomes, enquanto a maioria das ações ficou de fora. Na última sessão, 151 nomes avançaram contra 77 que caíram.
Setores, do melhor ao pior
O SQL exato por trás de cada número
WITH sess AS (
SELECT ticker, toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMin(toFloat64(open), toTimeZone(window_start, 'America/New_York')) AS o,
argMax(toFloat64(close), toTimeZone(window_start, 'America/New_York')) AS c
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('XLB', 'XLC', 'XLE', 'XLF', 'XLI', 'XLK', 'XLP', 'XLRE', 'XLU', 'XLV', 'XLY')
AND window_start >= now() - INTERVAL 12 DAY AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY ticker, d
),
wk AS (SELECT ticker, argMin(o, d) AS wo, argMax(c, d) AS wc FROM sess WHERE d >= (SELECT max(d) FROM sess) - 6 GROUP BY ticker)
SELECT multiIf(ticker = 'XLK', 'Technology', ticker = 'XLC', 'Communications', ticker = 'XLE', 'Energy',
ticker = 'XLF', 'Financials', ticker = 'XLI', 'Industrials', ticker = 'XLB', 'Materials',
ticker = 'XLP', 'Staples', ticker = 'XLRE', 'Real Estate', ticker = 'XLU', 'Utilities',
ticker = 'XLV', 'Health Care', 'Consumer Disc.') AS sector,
round((wc / wo - 1) * 100, 2) AS week_return_pct
FROM wk ORDER BY week_return_pct DESCO quadro de setores divide a semana entre líderes e retardatários. Energy liderou com 2.76%, e Technology ficou para trás com -2.38%. O spread entre o melhor e o pior setor indica o quanto a rotação impulsionou a semana em comparação a um movimento uniforme.
Maiores movimentações da semana
Os maiores ganhos semanais entre ações com alto volume de negociação (excluindo ETFs alavancados e inversos, com mais de US$ 1 bilhão em volume):
O SQL exato por trás de cada número
WITH sess AS (
SELECT ticker, toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMin(toFloat64(open), toTimeZone(window_start, 'America/New_York')) AS o,
argMax(toFloat64(close), toTimeZone(window_start, 'America/New_York')) AS c,
sum(toFloat64(close) * toFloat64(volume)) AS dv
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= now() - INTERVAL 12 DAY AND ticker NOT IN ('SOXL','SOXS','TQQQ','SQQQ','NVDL','NVDS','NVD','TSLL','TSLQ','TSLZ','SPXL','SPXS','UPRO','SPXU','LABU','LABD','FAS','FAZ','TNA','TZA','YINN','YANG','UDOW','SDOW','BOIL','KOLD','UCO','SCO','USD','SSO','SDS','QLD','QID','ERX','ERY','DRN','DRV','CURE','SOXY','MUU','SNXX','UVXY','SVXY','UVIX','SVIX','BULZ','WEBL','WEBS','DPST','DRIP','GUSH','AGQ','ZSL','BITX','ETHU','MSTX','MSTU','CONL','DUST','JNUG','JDST','NUGT') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY ticker, d
),
wk AS (SELECT ticker, argMin(o, d) AS wo, argMax(c, d) AS wc, sum(dv) AS wd, count() AS n
FROM sess WHERE d >= (SELECT max(d) FROM sess) - 6 GROUP BY ticker)
SELECT ticker, round((wc / wo - 1) * 100, 1) AS week_return_pct, round(wd / 1e9, 1) AS week_dollar_bn
FROM wk WHERE wd >= 1000000000 AND wo >= 10 AND n >= 4
ORDER BY (wc / wo - 1) DESC LIMIT 7SSPC liderou todos os nomes líquidos, subindo 21.9% na semana. As quedas mais acentuadas ocorreram no sentido oposto:
O SQL exato por trás de cada número
WITH sess AS (
SELECT ticker, toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMin(toFloat64(open), toTimeZone(window_start, 'America/New_York')) AS o,
argMax(toFloat64(close), toTimeZone(window_start, 'America/New_York')) AS c,
sum(toFloat64(close) * toFloat64(volume)) AS dv
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= now() - INTERVAL 12 DAY AND ticker NOT IN ('SOXL','SOXS','TQQQ','SQQQ','NVDL','NVDS','NVD','TSLL','TSLQ','TSLZ','SPXL','SPXS','UPRO','SPXU','LABU','LABD','FAS','FAZ','TNA','TZA','YINN','YANG','UDOW','SDOW','BOIL','KOLD','UCO','SCO','USD','SSO','SDS','QLD','QID','ERX','ERY','DRN','DRV','CURE','SOXY','MUU','SNXX','UVXY','SVXY','UVIX','SVIX','BULZ','WEBL','WEBS','DPST','DRIP','GUSH','AGQ','ZSL','BITX','ETHU','MSTX','MSTU','CONL','DUST','JNUG','JDST','NUGT') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY ticker, d
),
wk AS (SELECT ticker, argMin(o, d) AS wo, argMax(c, d) AS wc, sum(dv) AS wd, count() AS n
FROM sess WHERE d >= (SELECT max(d) FROM sess) - 6 GROUP BY ticker)
SELECT ticker, round((wc / wo - 1) * 100, 1) AS week_return_pct, round(wd / 1e9, 1) AS week_dollar_bn
FROM wk WHERE wd >= 1000000000 AND wo >= 10 AND n >= 4
ORDER BY (wc / wo - 1) ASC LIMIT 7PENG caiu mais entre as ações de alto volume, com -28.8%. O ranking completo e rotativo, atualizado continuamente, está na página de movimentações semanais.
Onde o volume se concentrou
O volume financeiro mostra onde a atenção do mercado realmente esteve, o que nem sempre coincide com os maiores movimentos percentuais.
O SQL exato por trás de cada número
WITH sess AS (
SELECT ticker, toDate(toTimeZone(window_start, 'America/New_York')) AS d,
sum(toFloat64(close) * toFloat64(volume)) AS dv
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= now() - INTERVAL 12 DAY AND ticker NOT IN ('SOXL','SOXS','TQQQ','SQQQ','NVDL','NVDS','NVD','TSLL','TSLQ','TSLZ','SPXL','SPXS','UPRO','SPXU','LABU','LABD','FAS','FAZ','TNA','TZA','YINN','YANG','UDOW','SDOW','BOIL','KOLD','UCO','SCO','USD','SSO','SDS','QLD','QID','ERX','ERY','DRN','DRV','CURE','SOXY','MUU','SNXX','UVXY','SVXY','UVIX','SVIX','BULZ','WEBL','WEBS','DPST','DRIP','GUSH','AGQ','ZSL','BITX','ETHU','MSTX','MSTU','CONL','DUST','JNUG','JDST','NUGT') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY ticker, d
),
wk AS (SELECT ticker, sum(dv) AS wd FROM sess WHERE d >= (SELECT max(d) FROM sess) - 6 GROUP BY ticker)
SELECT ticker, round(wd / 1e9, 1) AS week_dollar_bn FROM wk ORDER BY wd DESC LIMIT 8MU teve o maior volume financeiro de qualquer ação na semana, US$ 191.8 bilhões. Volume alto com pouco movimento de preço indica um nome líquido e disputado trocando de mãos; volume alto com grande movimento indica convicção. Os nomes no topo desta lista costumam ser as megacaps e as ações que geraram notícias na semana; comparar esta lista com a de movimentações acima permite separar as ações que oscilaram muito daquelas que apenas negociaram muito.
Como ler uma semana no mercado
Quatro números, lidos em conjunto, descrevem uma semana melhor do que qualquer nível individual de índice. O placar dos índices mostra o desempenho da média ponderada pelas maiores empresas. A amplitude indica quantos ativos realmente participaram: um índice forte com baixa amplitude é um movimento estreito e concentrado no topo que, historicamente, tende a não durar, enquanto uma amplitude ampla indica uma mudança duradoura em todo o mercado. O quadro de setores indica o tipo de semana: um spread amplo entre o melhor e o pior setor aponta para rotação e stock-picking; um spread estreito aponta para uma maré que moveu tudo simultaneamente. Os líderes de movimentação e de volume identificam as ações específicas que impulsionaram o mercado, separando os movimentos percentuais ruidosos dos gigantes que negociam muito de forma silenciosa. Este resumo apresenta os quatro dados lado a lado toda semana para que a semana seja lida como uma imagem, não apenas um título. Como cada dado é calculado via consulta armazenada, nenhum valor pode divergir do que o tape realmente registrou.
FAQ
O que aconteceu no mercado esta semana?
Na semana de Jul 15 a Jul 21, o S&P 500 retornou -0.79% e o Nasdaq 100 -2.06%. Energy foi o setor mais forte e Technology o mais fraco; na última sessão, 151 ações de alto volume avançaram contra 77 que caíram. Os painéis acima contêm todos os detalhes.
Com que frequência este resumo é atualizado?
Toda semana. A página é calculada a partir de consultas em tempo real sobre as últimas cinco sessões de negociação, refletindo sempre a última semana completa. Assinantes recebem o resumo por e-mail uma vez por semana.
De onde vêm os números?
Cada dado é extraído de uma consulta armazenada contra o tape do mercado (candles de minutos de ações). Abra o SQL sob qualquer painel para auditá-lo ou execute a mesma consulta você mesmo no terminal Strasmore.
Quer isso na sua caixa de entrada? É o resumo semanal que os assinantes recebem: um e-mail por semana, a semana do mercado em números, com todos os dados auditáveis. Para o dia a dia, as páginas de movimentações e short-interest são atualizadas continuamente.