Strasmore Research
Market Recap

Podsumowanie rynku Q2 2026

Matt ConnorBy Matt Connor Updated 2026-07-24

Drugi kwartał 2026 roku był okresem odbicia: po ujemnym pierwszym kwartale wszystkie główne indeksy ETF odnotowały dwucyfrowe wzrosty, prowadzone przez QQQ na poziomie 26.5%. Poniższe panele przedstawiają przebieg kwartału — miesięczne wzniesienie, tło stóp procentowych, kalendarz — oraz dwa zastrzeżenia dotyczące danych, podane w tekście. Każda liczba jest wynikiem zapytania SQL; można rozwinąć dowolny panel, aby uzyskać dokładny kod SQL.

Wyniki kwartalne

Jak duża była zmiana względem Q1? Ten panel oblicza stopy zwrotu z obu kwartałów w jednym zapytaniu — dane referencyjne dla Q1 są przeliczane na żywo według tych samych definicji, a nie pobierane z zewnętrznych źródeł.

ZapytanieStopy zwrotu 4 ETF indeksowych za Q2 2026, z przeliczonym Q1 dla porównania
Dokładny kod SQL dla każdej liczby
SELECT ticker,
    round((argMaxIf(toFloat64(close), window_start, toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-06-30') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)
         / argMinIf(toFloat64(open), window_start, toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2026-04-01') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) - 1) * 100, 1) AS q2_return_pct,
    round((argMaxIf(toFloat64(close), window_start, toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-03-31') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)
         / argMinIf(toFloat64(open), window_start, toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2026-01-01') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) - 1) * 100, 1) AS q1_return_pct,
    round(argMaxIf(toFloat64(close), window_start, toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-06-30') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959), 2) AS q2_close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'QQQ', 'DIA', 'IWM')
  AND window_start >= toDateTime('2026-01-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
GROUP BY ticker
ORDER BY ticker

QQQ wzrosło o 26.5% w tym kwartale po -6.9% w Q1; SPY wzrosło o 14.1% po -5.2%; IWM wzrosło o 20.2%. Każdy indeks, który spadł w pierwszym kwartale, odrobił straty w drugim kwartale z nawiązką. Cztery indeksy przedstawiają trzy różne scenariusze: indeks wzrostowy odnotował największe spadki w Q1 i osiągnął największe odbicie; DIA — indeks przemysłowy ważony ceną — zmienił kurs z -3.9% na 12.1%; natomiast IWM nie odnotował znaczących spadków (0.1% w Q1), więc jego 20.2% kwartał stanowił kontynuację stabilnego trendu, a nie odrabianie strat. W kolumnie stóp zwrotu kwartalnych odbicie i momentum wyglądają identycznie; to kolumna Q1 pozwala je rozróżnić.

Wynik kwartalny w zestawieniu z każdym drugim kwartałem

Okresy odbicia od dna rynku sprawiają wrażenie historycznych w momencie ich trwania; dane rynkowe mogą jednak potwierdzić tę skalę. Panele obliczają tę SAMĄ stopę zwrotu za okres od kwietnia do czerwca dla każdego roku z dostępnej historii w ramach jednego zapytania. Zastosowano identyczną arytmetykę dla każdego roku, a następnie zestawiono ten kwartał z pozostałymi.

ZapytanieDrugie kwartały w historii: SPY i QQQ, przeliczone rocznie (liczba sesji)
Dokładny kod SQL dla każdej liczby
SELECT toYear(toTimeZone(window_start, 'America/New_York')) AS y,
       ticker,
       uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) AS sessions,
       round((argMax(toFloat64(close), window_start) / argMin(toFloat64(open), window_start) - 1) * 100, 1) AS q2_return_pct
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'QQQ')
  AND window_start >= toDateTime('2003-01-01 00:00:00')
  AND window_start < toDateTime('2026-07-01 00:00:00')
  AND toMonth(toTimeZone(window_start, 'America/New_York')) BETWEEN 4 AND 6
  AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY y, ticker
HAVING sessions >= 50
ORDER BY y ASC, ticker ASC
ZapytanieRanking: bieżący kwartał względem wszystkich poprzednich Q2 (rank 1 = najlepszy; wykluczono samo siebie)
Dokładny kod SQL dla każdej liczby
SELECT ticker,
       round(anyIf(ret, y = 2026), 1) AS q2_2026_pct,
       arrayCount(x -> x > anyIf(ret, y = 2026), groupArrayIf(ret, y != 2026)) + 1 AS rank_best,
       count() AS q2s_compared,
       min(y) AS first_year,
       anyIf(sessions, y = 2026) AS sessions_2026
FROM (
    SELECT toYear(toTimeZone(window_start, 'America/New_York')) AS y,
           ticker,
           uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) AS sessions,
           (argMax(toFloat64(close), window_start) / argMin(toFloat64(open), window_start) - 1) * 100 AS ret
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('SPY', 'QQQ')
      AND window_start >= toDateTime('2003-01-01 00:00:00')
      AND window_start < toDateTime('2026-07-01 00:00:00')
      AND toMonth(toTimeZone(window_start, 'America/New_York')) BETWEEN 4 AND 6
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY y, ticker
    HAVING sessions >= 50
)
GROUP BY ticker
ORDER BY ticker ASC

Wynik jest zbliżony do historycznych poziomów: 26.5% dla QQQ zajmuje 2 miejsce wśród 17 porównywalnych drugich kwartałów (miejsce 1 = najlepszy) — dokładnie jeden poprzedni drugi kwartał zakończył się wyższym wynikiem, co przedstawia powyższa tabela roczna. 14.1% dla SPY zajmuje 3 miejsce wśród 23 od 2004. Występują dwa zastrzeżenia: seria dla QQQ jest krótsza (fundusz przez pewien czas był notowany pod innym symbolem bazowym — mechanizm ochrony liczby sesji wyklucza te lata, co widać w tabeli poprzez liczniki roczne), a każde zapytanie historyczne ustala górną granicę na koniec bieżącego kwartału, więc zestaw porównawczy nie powiększa się automatycznie wraz z nadejściem kolejnych lat. Podstawa każdego rankingu na tej stronie: cena otwarcia i zamknięcia w godzinach sesji regularnej w ramach danego kwartału kalendarzowego.

Miesięczna drabina

ZapytanieMiesięczne stopy zwrotu Q2: kwiecień, maj, czerwiec (SPY i QQQ, identyczne przeliczenia)
Dokładny kod SQL dla każdej liczby
SELECT toString(toStartOfMonth(toDate(toTimeZone(window_start, 'America/New_York')))) AS period_start, ticker,
    round((argMaxIf(toFloat64(close), window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) / argMinIf(toFloat64(open), window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199) - 1) * 100, 1) AS month_return_pct,
    round(argMaxIf(toFloat64(close), window_start, (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199), 2) AS month_close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'QQQ')
  AND window_start >= toDateTime('2026-04-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
GROUP BY period_start, ticker
ORDER BY period_start, ticker

Pierwsza połowa kwartału przyniosła największe wzrosty: kluczową rolę odegrał kwiecień (SPY 9.9%, QQQ 14.8%), maj wzmocnił trend (4.9% oraz 10.3%), natomiast czerwiec odnotował niewielkie spadki — SPY -1.2%. Podsumowanie czerwca zawiera szczegółowe dane za ten miesiąc, w tym analizę szerokości rynku.

Liderzy rynku w skali kwartalnej

ZapytanieWolumen USD w godzinach sesyjnych, cały rynek (wykluczono jeden symbol w trakcie weryfikacji)
Dokładny kod SQL dla każdej liczby
SELECT ticker,
    round(sum(toFloat64(close) * toFloat64(volume)) / 1e9, 1) AS dollar_bn,
    round(100 * sum(toFloat64(close) * toFloat64(volume)) / max(sum(toFloat64(close) * toFloat64(volume))) OVER (), 1) AS pct_of_leader
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= toDateTime('2026-04-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
  AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
  AND ticker NOT IN ('SPCX')
GROUP BY ticker
ORDER BY dollar_bn DESC
LIMIT 8

W całym kwartale MU ($2047.5 billion) wyprzedził SPY ($2032 billion), zajmując pierwsze miejsce na liście — pojedyncza akcja osiągnęła większy obrót niż flagowy fundusz indeksowy w ciągu trzech miesięcy, przewyższając go o 99.2% całkowitego obrotu lidera. Za nimi znaleźli się: QQQ ($1658.5 billion), następnie NVDA o wartości $1591.8 billion — którego czerwiec został szczegółowo przeanalizowany tick po ticku tutaj — oraz TSLA o wartości $1198.8 billion. Należy zwrócić uwagę na charakterystykę zestawienia: są to obroty w godzinach regulowanych, a nie stopy zwrotu — dana spółka może dominować na rynku nawet w miesiącu spadkowym. Czerwiec lidera został szczegółowo przeanalizowany tick po ticku w szczegółowej analizie. Podstawa: okres od 1 kwietnia do 30 czerwca, godziny regulowane; wykluczono jedną pozycję z czerwca dotyczącą powtórzonego symbolu do czasu weryfikacji podmiotu (jego zestawienie).

Breadth: the day grain

ZapytanieLiczba sesji SPY wzrostowych vs spadkowych w kwartale
Dokładny kod SQL dla każdej liczby
SELECT countIf(day_ret > 0) AS up_sessions,
       countIf(day_ret < 0) AS down_sessions,
       countIf(day_ret = 0) AS flat_sessions,
       count() AS sessions_total
FROM (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
           round((argMax(toFloat64(close), window_start) / argMin(toFloat64(open), window_start) - 1) * 100, 2) AS day_ret
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= toDateTime('2026-04-01 00:00:00')
      AND window_start < toDateTime('2026-07-01 00:00:00')
      AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
    GROUP BY d
)

36 of the quarter's 62 sessions closed SPY higher against 26 lower — up-day dominance that matches a double-digit quarter. The ticker-grain count (every advancer and decliner) is bounded at quarter scale: the single whole-market scan exceeds the query budget this page generates under (measured at authoring), so the equal-count breadth lives at month scale — June's advancer/decliner split, where more fell than rose, is in the June recap — and the bound is disclosed here rather than silently narrowed.

Rynek opcji w ujęciu miesięcznym

Analiza mikrostruktury rynku w danym kwartale, przedstawiona w jedynej możliwej skali — poprzez porównanie wyników miesiąc do miesiąca dla całego rynku opcji notowanych na giełdzie. Wolumen wzrósł do końca kwartału: z 1386.9 milionów kontraktów w kwietniu do 1477.9 milionów w czerwcu, który był najaktywniejszym miesiącem w kwartale. Udział instrumentów z terminem wygaśnięcia w dniu notowań (0DTE) również wzrósł, z 30.3% do 34.3% — udział w czerwcu jest najwyższy w pierwszym półroczu, a ewolucję od stycznia widać w podsumowaniu H1.

ZapytanieKwiecień: wolumen kontraktów options i udział terminów wygasających tego samego dnia
Dokładny kod SQL dla każdej liczby
SELECT round(sum(toFloat64(volume)) / 1e6, 1) AS contracts_mm,
       round(100.0 * sumIf(toFloat64(volume), toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6))) = toDate(toTimeZone(window_start, 'America/New_York'))) / sum(toFloat64(volume)), 1) AS zero_dte_pct,
       uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) AS sessions
FROM global_markets.options_minute_aggs
WHERE window_start >= toDateTime('2026-04-01 00:00:00')
  AND window_start < toDateTime('2026-05-01 00:00:00')
ZapytanieMaj: wolumen kontraktów options i udział terminów wygasających tego samego dnia
Dokładny kod SQL dla każdej liczby
SELECT round(sum(toFloat64(volume)) / 1e6, 1) AS contracts_mm,
       round(100.0 * sumIf(toFloat64(volume), toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6))) = toDate(toTimeZone(window_start, 'America/New_York'))) / sum(toFloat64(volume)), 1) AS zero_dte_pct,
       uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) AS sessions
FROM global_markets.options_minute_aggs
WHERE window_start >= toDateTime('2026-05-01 00:00:00')
  AND window_start < toDateTime('2026-06-01 00:00:00')
ZapytanieCzerwiec: wolumen kontraktów options i udział terminów wygasających tego samego dnia
Dokładny kod SQL dla każdej liczby
SELECT round(sum(toFloat64(volume)) / 1e6, 1) AS contracts_mm,
       round(100.0 * sumIf(toFloat64(volume), toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6))) = toDate(toTimeZone(window_start, 'America/New_York'))) / sum(toFloat64(volume)), 1) AS zero_dte_pct,
       uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) AS sessions
FROM global_markets.options_minute_aggs
WHERE window_start >= toDateTime('2026-06-01 00:00:00')
  AND window_start < toDateTime('2026-07-01 00:00:00')

Koszty handlu, próbka miesięczna

ZapytanieMediana spreadu SPY dla jednej wybranej sesji miesięcznie (drugie środy)
Dokładny kod SQL dla każdej liczby
SELECT toDate(toTimeZone(sip_timestamp, 'America/New_York')) AS session,
       round(quantileDeterministicIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, toUInt64(toUnixTimestamp64Micro(sip_timestamp)), bid_price > 0 AND ask_price >= bid_price), 3) AS med_spread_bps,
       round(count() / 1e6, 2) AS quote_updates_m,
       countIf(NOT (bid_price > 0 AND ask_price > 0 AND ask_price >= bid_price)) AS invalid_dropped
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'SPY'
  AND ((sip_timestamp >= toDateTime64('2026-04-15 13:30:00', 9) AND sip_timestamp < toDateTime64('2026-04-15 20:00:00', 9))
    OR (sip_timestamp >= toDateTime64('2026-05-13 13:30:00', 9) AND sip_timestamp < toDateTime64('2026-05-13 20:00:00', 9))
    OR (sip_timestamp >= toDateTime64('2026-06-10 13:30:00', 9) AND sip_timestamp < toDateTime64('2026-06-10 20:00:00', 9)))
GROUP BY session
ORDER BY session ASC

Mediana spreadu dla SPY w sesjach próbnych z danego kwartału: 0.286 bps w próbce z kwietnia, 0.27 w maju, 0.409 w czerwcu — próbka z czerwca wykazuje największą wartość. Podstawa danych: pojedyncze oznaczone sesje próbne (druga środa każdego miesiąca), a nie mediany miesięczne; nieprawidłowe kwotowania są uwzględniane w panelu, a nie usuwane.

Stopy procentowe: kwartał spłaszczenia krzywej

ZapytanieSpread 2s10s oraz rentowność 10-letnich obligacji skarbowych przez Q2, dziennie
Dokładny kod SQL dla każdej liczby
SELECT toString(date) AS d,
    round(yield_10_year, 2) AS y10,
    round((yield_10_year - yield_2_year) * 100, 0) AS spread_2s10s_bp
FROM global_markets.treasury_yields
WHERE date >= toDate('2026-04-01') AND date <= toDate('2026-06-30')
  AND isNotNull(yield_10_year) AND isNotNull(yield_2_year)
ORDER BY date

spread 2s10s na początku kwartału wynosił 52 punktów bazowych, a na koniec osiągnął poziom 30. Był to kwartał spłaszczenia krzywej, w którym rentowność 10-letnich obligacji skarbowych zamknęła się na poziomie 4.44%. Podobną sytuację w ujęciu sześciomiesięcznym przedstawia podsumowanie H1. Mechanicznie spłaszczenie oznacza zmniejszenie dystansu między krótkim końcem krzywej a długim końcem; na podstawie tej tabeli nie można stwierdzić, czy trend ten się utrzyma, a niniejsza strona nie podejmuje próby takiej analizy.

Kalendarz, skala kwartalna

ZapytanieKalendarz korporacyjny Q2 (luka indeksowa względem raportów z 30 czerwca)
Dokładny kod SQL dla każdej liczby
SELECT
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date >= toDate('2026-04-01') AND ex_dividend_date <= toDate('2026-06-30')) AS ex_div_events,
    (SELECT count() FROM global_markets.stocks_splits WHERE execution_date >= toDate('2026-04-01') AND execution_date <= toDate('2026-06-30')) AS splits,
    (SELECT count() FROM global_markets.stocks_ipos WHERE listing_date >= toDate('2026-04-01') AND listing_date <= toDate('2026-06-30')) AS ipos,
    (SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date >= toDate('2026-04-01') AND filing_date <= toDate('2026-06-30')) AS q2_filings,
    (SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = toDate('2026-04-30')) AS filings_apr30,
    (SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = toDate('2026-06-30')) AS filings_jun30

105 spółek notowanych w kwartale, 435 przeprowadzonych podziałów akcji oraz 15402 wypłaconych zdarzeń dywidendowych. Liczba zgłoszeń (235075) wykazuje ujawnioną lukę: indeks zawiera tylko 31 zgłoszeń z dnia 30 czerwca — ostatniego dnia kwartału — oraz 34 z dnia 30 kwietnia, podczas gdy w sąsiednich dniach występuje ich tysiące. W związku z tym suma kwartalna pomija dwa dni kończące miesiąc i jest zaniżona do czasu uzupełnienia danych przez system. Luka na koniec miesiąca posiada własną notę diagnostyczną.

Harmonogram przed końcem kwartału

ZapytanieNotowania, split i dywidendy według miesięcy w kwartale
Dokładny kod SQL dla każdej liczby
SELECT m, ipos, splits, ex_divs FROM (
    SELECT '2026-04' AS m,
        (SELECT count() FROM global_markets.stocks_ipos WHERE listing_date >= toDate('2026-04-01') AND listing_date <= toDate('2026-04-30')) AS ipos,
        (SELECT count() FROM global_markets.stocks_splits WHERE execution_date >= toDate('2026-04-01') AND execution_date <= toDate('2026-04-30')) AS splits,
        (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date >= toDate('2026-04-01') AND ex_dividend_date <= toDate('2026-04-30')) AS ex_divs, 1 AS o
    UNION ALL SELECT '2026-05',
        (SELECT count() FROM global_markets.stocks_ipos WHERE listing_date >= toDate('2026-05-01') AND listing_date <= toDate('2026-05-31')),
        (SELECT count() FROM global_markets.stocks_splits WHERE execution_date >= toDate('2026-05-01') AND execution_date <= toDate('2026-05-31')),
        (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date >= toDate('2026-05-01') AND ex_dividend_date <= toDate('2026-05-31')), 2
    UNION ALL SELECT '2026-06',
        (SELECT count() FROM global_markets.stocks_ipos WHERE listing_date >= toDate('2026-06-01') AND listing_date <= toDate('2026-06-30')),
        (SELECT count() FROM global_markets.stocks_splits WHERE execution_date >= toDate('2026-06-01') AND execution_date <= toDate('2026-06-30')),
        (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date >= toDate('2026-06-01') AND ex_dividend_date <= toDate('2026-06-30')), 3
) ORDER BY o

Kalendarz korporacyjny uległ zagęszczeniu wraz z upływem kwartału: liczba zdarzeń ex-dividend rosła co miesiąc, od 3947 w kwietniu do 6651 w czerwcu, a wraz z nimi rosła liczba podziałów akcji (129 do 164). Liczba nowych listingów pozostała na stałym poziomie w ciągu trzech miesięcy — metafora fali odnosi się w tym kwartale do dywidend, a nie do IPO.

Podsumowanie sesji

Zapytanie62 sesje w kwartale, zweryfikowane miesięcznie
Dokładny kod SQL dla każdej liczby
SELECT
    (SELECT uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) FROM global_markets.delayed_stocks_minute_aggs
     WHERE ticker = 'SPY' AND window_start >= toDateTime('2026-04-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')) AS q2_sessions,
    (SELECT uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) FROM global_markets.delayed_stocks_minute_aggs
     WHERE ticker = 'SPY' AND window_start >= toDateTime('2026-04-01 00:00:00') AND window_start < toDateTime('2026-05-01 00:00:00')) AS april_sessions,
    (SELECT uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) FROM global_markets.delayed_stocks_minute_aggs
     WHERE ticker = 'SPY' AND window_start >= toDateTime('2026-05-01 00:00:00') AND window_start < toDateTime('2026-06-01 00:00:00')) AS may_sessions,
    (SELECT uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) FROM global_markets.delayed_stocks_minute_aggs
     WHERE ticker = 'SPY' AND window_start >= toDateTime('2026-06-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')) AS june_sessions

62 sesji, zweryfikowanych na podstawie obserwowanych słupków, a nie na podstawie kalendarza: 21 w kwietniu, 20 w maju (Memorial Day), 21 w czerwcu (Juneteenth). Podsumowania miesięczne oraz dowody zamknięcia znajdują się w podsumowaniu za czerwiec oraz wyjaśnieniu dotyczącym dni wolnych.

Uwagi do danych

Pełne uwagi do danych
  • Short interest kończy się na rozliczeniu z 15 czerwca według stanu na moment generowania — dane za koniec czerwca są w trakcie przygotowania; podsumowanie za czerwiec zawiera pełne informacje. Niniejszy wpis zostanie odświeżony po publikacji danych.
  • Luka między indeksem a raportowaniem na koniec miesiąca jest przedstawiona w tekście: daty 30 czerwca oraz 30 kwietnia przypadają w tym kwartale, a 31 marca wykazuje ten sam wzorzec — każdy koniec miesiąca w 2026 roku, którego ostatni dzień kalendarzowy był dniem roboczym, jest niemal pusty. Notatka diagnostyczna zawiera dowody oraz ograniczoną diagnozę.
  • Mikrostruktura (mechanizmy poziomu ticków) została celowo pominięta — szczegółowa analiza z 29 czerwca zawiera pełną analizę rejestru transakcji z danej sesji.
  • Wykluczenie liderów wolumenu: jedna pozycja z czerwca dotycząca powtórzonego symbolu została wykluczona do czasu weryfikacji podmiotu.

Metodologia

  • Okres obejmuje okres od 1 kwietnia do 30 czerwca 2026 r. — 62 sesji, zweryfikowanych na podstawie obserwowanych słupków. Stopy zwrotu za kwartał obliczane są od otwarcia do zamknięcia sesji regulaminowej w danym okresie; porównanie z Q1 jest przeliczane na bieżąco przy użyciu tych samych definicji.
  • Znaki czasu są przechowywane w formacie UTC i filtrowane według surowych granic UTC; godziny regulaminowe to 13:30–20:00 UTC w danym kwartale (EDT). Wolumen w USD to iloczyn ceny zamknięcia z minutowym wolumenem w godzinach regulaminowych. Wieloletnie bloki danych historycznych filtrują godziny regulaminowe według czasu wschodniego (Eastern wall clock) (konwersja zgodna z DST dla danych z wielu dekad) i kończą się wraz z końcem bieżącego kwartału; weryfikacja głębokości danych (historia minutowa do września 2003 r.) znajduje się w metodologii podsumowania H1.
  • Generowanie danych odbywa się poprzez zabezpieczoną ścieżkę tylko do odczytu; strona publiczna nie wykonuje zapytań na żywo. Stan magazynu danych na dzień 5 lipca 2026 r.

Jest to pierwsza edycja cyklicznego podsumowania kwartalnego; edycja za Q3 będzie zawierać odnośnik do tego miejsca. Szczegóły miesięczne: Czerwiec. Pierwsze półrocze tego kwartału: H1 2026.