Oto podsumowanie ubiegłego tygodnia na rynku w USA. Wszystkie dane pochodzą z bezpośrednich odczytów rynkowych. Strona jest aktualizowana co tydzień, aby zawsze prezentować dane z ostatniego pełnego tygodnia handlowego.
Wyniki indeksów
Dokładny kod SQL dla każdej liczby
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)W tygodniu od Jul 17 do Jul 23 indeks S&P 500 (SPY) osiągnął stopę zwrotu na poziomie -0.45%, Nasdaq 100 (QQQ) 0.28%, Dow (DIA) -0.67%, a spółki o małej kapitalizacji Russell 2000 (IWM) -0.09%. Różnica między tymi czterema indeksami stanowi kluczowy wniosek z minionego tygodnia: rozbieżność między Nasdaq a Russell wskazuje na wybór inwestorów między spółkami typu megacap growth a pozostałymi segmentami rynku.
Analiza głębokości rynku: szerokość trendu
Poziom indeksu nie informuje o liczbie spółek biorących udział w trendzie. Wskaźnik ten analizuje każdą sesję: spośród podmiotów, których obrót wyniósł co najmniej 500 milionów USD, określa, ile spółek zamknęło się powyżej poziomu z dnia poprzedniego, a ile poniżej.
Dokładny kod SQL dla każdej liczby
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 ASCObie linie reprezentują poziom partycypacji. Gdy liczba spółek rosnących znacznie przewyższa liczbę spółek spadających w skali tygodnia, wzrost indeksu jest wspierany przez cały rynek. Gdy linie te zbiegają się lub przecinają, wzrostowy indeks jest wynikiem działania zaledwie kilku dużych podmiotów, podczas gdy większość spółek pozostaje w trendzie spadkowym. W ostatniej sesji 101 spółek odnotowało wzrosty, podczas gdy 128 odnotowało spadki.
Sektory, od najlepszych do najgorszych
Dokładny kod SQL dla każdej liczby
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 DESCZestawienie sektorowe dzieli tydzień na liderów i maruderów. Technology odnotował wzrosty na poziomie 3.53%, natomiast Consumer Disc. odnotował spadki na poziomie -5.75%. Spread między sektorem o najwyższych i najniższych wynikach wskazuje, w jakim stopniu tydzień zdominowała rotacja kapitału, a w jakim jednolite ruchy rynkowe.
Największe zmiany kursów w tygodniu
Największe tygodniowe wzrosty wśród spółek o wysokim wolumenie obrotu (z wyłączeniem ETF typu leveraged i inverse, przy obrotach powyżej 1 billion USD):
Dokładny kod SQL dla każdej liczby
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 7CIFR odnotował największy wzrost wśród płynnych walorów, zyskuując 52.4% w skali tygodnia. Największe spadki odnotowały:
Dokładny kod SQL dla każdej liczby
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 7PATH odnotował największy spadek wśród spółek o wysokim wolumenie obrotu, tracąc -15.2%. Pełna, stale aktualizowana lista liderów znajduje się na stronie z tygodniowymi zmianami kursów.
Gdzie skoncentrował się wolumen
Wartość obrotu w USD wskazuje, gdzie faktycznie skupiła się uwaga rynku, co nie zawsze pokrywa się z największymi procentowymi zmianami kursu.
Dokładny kod SQL dla każdej liczby
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 odnotował najwyższy wolumen obrotu w USD spośród wszystkich akcji w tym tygodniu, wynoszący 140.2 mld USD. Duży wolumen przy niewielkiej zmianie ceny oznacza wysoką płynność i intensywny obrót na danej spółce; duży wolumen przy dużej zmianie ceny świadczy o przekonaniu inwestorów. Spółki znajdujące się na szczycie tej listy to zazwyczaj podmioty typu megacap oraz akcje reagujące na bieżące wydarzenia; zestawienie tych danych z powyższą listą największych zmian pozwala odróżnić akcje o dużej zmienności od tych, które charakteryzowały się jedynie wysokim obrotem.
Jak interpretować tydzień na rynku
Cztery wskaźniki analizowane łącznie lepiej opisują tydzień niż jakikolwiek pojedynczy poziom indeksu. Wynik indeksu wskazuje średnią wydajność USD, z uwzględnieniem największych spółek. Szerokość rynku (breadth) informuje, ile akcji faktycznie uczestniczyło w trendzie: wysoki indeks przy niskiej szerokości oznacza wąskie, skoncentrowane na największych podmiotach zjawisko, które według danych historycznych nie jest trwałe, natomiast szeroka szerokość oznacza trwałą zmianę obejmującą cały rynek. Zestawienie sektorowe określa charakter tygodnia; duży spread między najlepszymi a najgorszymi sektorami wskazuje na rotację kapitału i selektywne podejście do spółek, natomiast wąski spread oznacza trend obejmujący wszystkie aktywa jednocześnie. Zestawienie największych aprecjacji oraz liderów wolumenu wskazuje konkretne spółki napędzające rynek, oddzielając gwałtowne zmiany procentowe od stabilnych, intensywnie handlowanych gigantów. Niniejsze podsumowanie co tydzień zestawia wszystkie cztery wskaźniki obok siebie, aby przedstawić obraz rynku, a nie tylko nagłówek. Ponieważ każda wartość jest obliczana na podstawie zapytania do bazy danych, żadna z nich nie odbiega od rzeczywistych zapisów giełdowych.
FAQ
Co wydarzyło się na rynku w tym tygodniu?
W tygodniu od Jul 17 do Jul 23 indeks S&P 500 osiągnął zwrot na poziomie -0.45%, a Nasdaq 100 0.28%. Najsilniejszym sektorem był Technology, natomiast najsłabszym Consumer Disc.. Podczas ostatniej sesji akcje z grupy 101 odnotowały wzrosty, podczas gdy spółki z grupy 128 odnotowały spadki. Powyższe panele zawierają pełne szczegóły.
Jak często aktualizowane jest to podsumowanie?
Co tydzień. Strona jest generowana na podstawie bieżących zapytań dotyczących pięciu ostatnich sesji handlowych, dzięki czemu zawsze odzwierciedla pełny, ostatni tydzień. Subskrybenci otrzymują je w formie jednego e-maila tygodniowo.
Skąd pochodzą dane liczbowe?
Każda wartość jest pobierana z zapytania do rejestru rynkowego (minutowe słupki dla akcji). Aby zweryfikować dane, można otworzyć kod SQL pod dowolnym panelem lub samodzielnie uruchomić to samo zapytanie w terminalu Strasmore.
Chcesz otrzymywać te dane na swoją skrzynkę? To cotygodniowe podsumowanie dla subskrybentów: jeden e-mail w tygodniu, tydzień na rynku w liczbach, każda wartość jest możliwa do zweryfikowania. W sprawach bieżących należy śledzić strony największe zmiany oraz krótka sprzedaż, które są aktualizowane w sposób ciągły.