Strasmore Research
Podsumowania rynkowe Matt ConnorAutor: Matt Connor · Zaktualizowano 2026-10-18 · data as of October 18, 2026 · refreshed weekly

Akcje typu short squeeze potencjalni kandydaci

Analiza spółek z wysokim poziomem krótkiej sprzedaży w oparciu o wskaźnik dni na pokrycie pozycji oraz dynamikę kursu. Zestawienie obejmuje metodologię selekcji i ryzyko inwestycyjne.

Akcje typu short squeeze są selekcjonowane w oparciu o dwa mechanizmy: dużą pozycję krótką w relacji do wolumenu obrotu oraz rosnący kurs akcji. Niniejsza strona przeprowadza taką selekcję na podstawie najnowszych danych o krótkiej sprzedaży raportowanych przez giełdy, rozliczonych na dzień Sep 30, 2026, oraz mierzy zmianę ceny w ciągu pięciu sesji kończących się Oct 15, 2026. Mechanizmy te przypominają historyczne przypadki typu short squeeze. Niniejsze zestawienie nie stanowi prognozy, a większość spółek z wysokim poziomem krótkiej sprzedaży nigdy nie doświadcza zjawiska short squeeze.

Należy zwrócić uwagę na daty przed nazwami spółek. Część danych dotycząca krótkiej sprzedaży jest przestarzała o kilka tygodni ze względów regulacyjnych, a nie z powodu błędów w przesyłaniu danych: brokerzy raportują swoje pozycje krótkie do FINRA dwa razy w miesiącu w wyznaczonych dniach rozliczenia, a skompilowany plik staje się publiczny około osiem dni roboczych później. Najświeższy dostępny dla każdego odczyt pochodzi z dnia Sep 30, 2026, czyli sprzed 17 dni, podczas gdy zmiana ceny obejmuje okres do Oct 15, 2026. Działania strony krótkiej w tym odstępie czasu są niewidoczne dla każdego skanera, w tym również dla niniejszego. Dlaczego dane o krótkiej sprzedaży są zawsze przestarzałe o dwa tygodnie wyjaśnia cykl raportowania krok po kroku.

ZapytanieWaluta danych: wszystkie dane wejściowe oraz ich wiek w dniach
data aktualnościnogawiek (dni)
Sep 15, 2026Short interest, previous settlement32
Sep 30, 2026Short interest, latest settlement17
Oct 15, 2026Price tape, last fully loaded session2
Dokładny kod SQL dla każdej liczby
WITH prints AS (
    SELECT DISTINCT settlement_date AS d
    FROM global_markets.stocks_short_interest
    ORDER BY d DESC
    LIMIT 2
),
loaded AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS session
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= now() - INTERVAL 20 DAY
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
        + toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
        + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
    GROUP BY session
    HAVING count() >= 380
),
legs AS (
    SELECT arrayJoin([
        ('Short interest, previous settlement', (SELECT min(d) FROM prints)),
        ('Short interest, latest settlement', (SELECT max(d) FROM prints)),
        ('Price tape, last fully loaded session', (SELECT max(session) FROM loaded))]) AS row
)
SELECT formatDateTime(row.2, '%b %e, %Y') AS as_of_date,
       row.1 AS leg,
       dateDiff('day', row.2, today()) AS age_days
FROM legs
Uruchom samodzielnie

Dwa odczyty rozliczeniowe pochodzą sprzed 32 i 17 dni, co wynika z dwumiesięcznego cyklu liczenia oraz opóźnienia w kompilacji danych. Taśma cenowa jest opóźniona o 2 dni, co wynika z opóźnienia w przetwarzaniu danych, a nie z regulacji. Oba wskaźniki czasowe posiadają ograniczenia, dlatego w przypadku zawieszenia przesyłu danych strona zostaje wstrzymana, zamiast publikować stare dane pod nową datą.

Lista spółek podatnych na short squeeze: bieżące zestawienie

Każda z poniższych spółek spełniła te same kryteria w tym samym zbiorze danych: średni dzienny wolumen obrotu na poziomie pięciu milionów akcji, wskaźnik days to cover wynoszący co najmniej pięć dni oraz dodatnia stopa zwrotu w ciągu pięciu sesji kończących się Oct 15, 2026. Wszystkie te warunki spełniło 52 spółek, a 12 z nich o największym zaangażowaniu krótkich pozycji przedstawiono poniżej. Days to cover to iloraz liczby akcji w krótkiej sprzedaży oraz średniego dziennego wolumenu; wskaźnik ten określa, ile pełnych sesji potrzebowałaby strona krótka na odkupienie swoich pozycji przy obecnej płynności.

ZapytanieMechanika typu squeeze: spółki o wysokim poziomie krótkich pozycji przy rosnącej cenie
tickerdni do pokryciaakcje krótkie (mln)stopa zwrotu 5d (%)
CNQ21.3117.15.9
WIT14.2102.811.1
ERIC10.274.812.6
FOXA9.548.20.6
SLS9.455.10.6
LYFT9.278.96.3
RUN8.970.70.7
IBRX8.9124.11
UWMC8.298.56.8
NVAX8.14616.5
XEL849.22.4
XBI874.20.3
Dokładny kod SQL dla każdej liczby
WITH latest AS (
    SELECT max(settlement_date) AS d FROM global_markets.stocks_short_interest
),
sessions AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS session
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= now() - INTERVAL 20 DAY
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
        + toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
        + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
    GROUP BY session
    HAVING count() >= 380
    ORDER BY session DESC
    LIMIT 6
),
crowded AS (
    SELECT ticker, days_to_cover, short_interest
    FROM global_markets.stocks_short_interest
    WHERE settlement_date = (SELECT d FROM latest)
      AND avg_daily_volume >= 5000000
      AND days_to_cover >= 5
      AND ticker NOT IN ('SPCX')
      AND ticker NOT IN ('KORU','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 ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits
                         WHERE execution_date BETWEEN today() - 60 AND today())
),
tape AS (
    SELECT ticker,
           toDate(toTimeZone(window_start, 'America/New_York')) AS session,
           argMax(close, window_start) AS rth_close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN (SELECT ticker FROM crowded)
      AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT session FROM sessions)
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
        + toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
        + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
    GROUP BY ticker, session
),
moves AS (
    SELECT ticker,
           round((argMax(rth_close, session) / argMin(rth_close, session) - 1) * 100, 1) AS return_5d_pct
    FROM tape
    GROUP BY ticker
    HAVING count() = 6 AND return_5d_pct > 0
)
SELECT c.ticker AS ticker,
       round(c.days_to_cover, 1) AS days_to_cover,
       round(c.short_interest / 1e6, 1) AS shares_short_m,
       m.return_5d_pct AS return_5d_pct
FROM crowded c
INNER JOIN moves m ON m.ticker = c.ticker
ORDER BY c.days_to_cover DESC, c.ticker
LIMIT 12
Uruchom samodzielnie

Spółką o największym zaangażowaniu krótkich pozycji w zestawieniu jest CNQ, gdzie wskaźnik days to cover wynosi 21.3 przy 117.1 milionach akcji w krótkiej sprzedaży, a kurs wzrósł o 5.9% w ciągu pięciu sesji kończących się Oct 15, 2026. Ostatni wiersz tabeli wskazuje 8 dni na pokrycie pozycji; jest to punkt odcięcia prezentacji danych, a nie dolny limit przyjęty w analizie. Ranking oparto na stopniu nasycenia krótkimi pozycjami, a nie na wielkości spółki, dlatego umiarkowana pozycja na mało płynnym walorze wyprzedza znacznie większą pozycję na aktywach o wysokim wolumenie. W celu porównania wielkości, najczęściej szortowane obecnie spółki prezentuje oba rankingi równolegle.

Kryterium wzrostu ceny ma uzasadnienie techniczne. Short squeeze to wymuszone zakupy realizowane przez sprzedających krótko w celu zamknięcia pozycji, co oznacza odkupienie akcji; proces ten rozpoczyna się dopiero wtedy, gdy cena zaczyna rosnąć wbrew oczekiwaniom strony krótkiej. Mechanizm short squeeze, prześledzony na podstawie danych spółki GameStop z 2021 roku, przedstawia tę sekwencję w liczbach.

Zasady i zakres eliminacji

Sito inwestycyjne to opinia wyrażona za pomocą liczb, dlatego poniżej przedstawiono sposób selekcji.

ZapytanieProces filtrowania: od pełnego pliku rozliczeniowego do listy końcowej
etykietaspółki
Every name in the settlement file22579
Liquid: five million shares a day, no leveraged funds784
Crowded: five or more days to cover105
Rising: a positive move over the price window52
Dokładny kod SQL dla każdej liczby
WITH latest AS (
    SELECT max(settlement_date) AS d FROM global_markets.stocks_short_interest
),
sessions AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS session
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= now() - INTERVAL 20 DAY
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
        + toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
        + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
    GROUP BY session
    HAVING count() >= 380
    ORDER BY session DESC
    LIMIT 6
),
reported AS (
    SELECT ticker, days_to_cover, avg_daily_volume
    FROM global_markets.stocks_short_interest
    WHERE settlement_date = (SELECT d FROM latest)
),
liquid AS (
    SELECT ticker, days_to_cover
    FROM reported
    WHERE avg_daily_volume >= 5000000
      AND days_to_cover IS NOT NULL
      AND ticker NOT IN ('SPCX')
      AND ticker NOT IN ('KORU','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 ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits
                         WHERE execution_date BETWEEN today() - 60 AND today())
),
crowded AS (
    SELECT ticker FROM liquid WHERE days_to_cover >= 5
),
tape AS (
    SELECT ticker,
           toDate(toTimeZone(window_start, 'America/New_York')) AS session,
           argMax(close, window_start) AS rth_close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN (SELECT ticker FROM crowded)
      AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT session FROM sessions)
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
        + toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
        + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
    GROUP BY ticker, session
),
rising AS (
    SELECT ticker,
           round((argMax(rth_close, session) / argMin(rth_close, session) - 1) * 100, 1) AS return_5d_pct
    FROM tape
    GROUP BY ticker
    HAVING count() = 6 AND return_5d_pct > 0
),
tally AS (
    SELECT (SELECT count() FROM reported) AS all_names,
           (SELECT count() FROM liquid) AS liquid_names,
           (SELECT count() FROM crowded) AS crowded_names,
           (SELECT count() FROM rising) AS rising_names
)
SELECT step.1 AS label, step.2 AS names
FROM (
    SELECT arrayJoin([
        ('Every name in the settlement file', all_names),
        ('Liquid: five million shares a day, no leveraged funds', liquid_names),
        ('Crowded: five or more days to cover', crowded_names),
        ('Rising: a positive move over the price window', rising_names)]) AS step
    FROM tally
)
Uruchom samodzielnie

Plik Sep 30, 2026 zawiera 22579 papierów wartościowych. Minimalny poziom płynności oraz lista wykluczeń pozostawiają 784 pozycji, próg nadmiernej koncentracji ogranicza tę liczbę do 105, a filtr wzrostu cen pozostawia 52. Każdy próg jest wynikiem określonego wyboru, a odmienne założenia prowadzą do odmiennych list. Dlatego zasady zostały umieszczone w treści dokumentu, a nie w przypisach.

Jaka część każdej spółki jest przedmiotem krótkiej sprzedaży

Wskaźnikiem, którego poszukuje większość osób, jest short interest jako procent free floatu, jednak nie znajduje się on w tych danych. Plik giełdowy zawiera informacje o liczbie akcji w krótkiej sprzedaży oraz średnim dziennym wolumenie, nie podając żadnej liczby akcji. Można natomiast wyliczyć pozycję w odniesieniu do całkowitej liczby akcji w obrocie, dzieląc wartość rynkową każdej spółki przez jej cenę akcji.

ZapytanieRanking spółek według udziału krótkich pozycji w liczbie akcji w obrocie (nie float)
tickerSI % akcji w obrocieakcje krótkie (mln)akcje w obrocie (mln)dni do pokrycia
RXRX29.5157.95366.1
RUN29.470.72418.9
UWMC28.598.53458.2
NVAX27.9461658.1
SLS27.355.12029.4
WEN25.648.71917.7
ENVX24.253.12196.8
OPEN23.7230.59717.5
HIMS23.554.82335.3
FLO21.144.82125.3
Dokładny kod SQL dla każdej liczby
WITH latest AS (
    SELECT max(settlement_date) AS d FROM global_markets.stocks_short_interest
),
sessions AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS session
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= now() - INTERVAL 20 DAY
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
        + toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
        + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
    GROUP BY session
    HAVING count() >= 380
    ORDER BY session DESC
    LIMIT 6
),
crowded AS (
    SELECT ticker, days_to_cover, short_interest
    FROM global_markets.stocks_short_interest
    WHERE settlement_date = (SELECT d FROM latest)
      AND avg_daily_volume >= 5000000
      AND days_to_cover >= 5
      AND ticker NOT IN ('SPCX')
      AND ticker NOT IN ('KORU','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 ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits
                         WHERE execution_date BETWEEN today() - 60 AND today())
),
tape AS (
    SELECT ticker,
           toDate(toTimeZone(window_start, 'America/New_York')) AS session,
           argMax(close, window_start) AS rth_close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN (SELECT ticker FROM crowded)
      AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT session FROM sessions)
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
        + toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
        + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
    GROUP BY ticker, session
),
rising AS (
    SELECT ticker,
           round((argMax(rth_close, session) / argMin(rth_close, session) - 1) * 100, 1) AS return_5d_pct
    FROM tape
    GROUP BY ticker
    HAVING count() = 6 AND return_5d_pct > 0
),
share_count AS (
    SELECT ticker, market_cap / price AS shares_out
    FROM global_markets.stocks_ratios
    WHERE date = (SELECT max(date) FROM global_markets.stocks_ratios)
      AND market_cap > 0
      AND price > 0
)
SELECT c.ticker AS ticker,
       round(100.0 * c.short_interest / s.shares_out, 1) AS si_pct_shares_out,
       round(c.short_interest / 1e6, 1) AS shares_short_m,
       round(s.shares_out / 1e6, 0) AS shares_out_m,
       round(c.days_to_cover, 1) AS days_to_cover
FROM crowded c
INNER JOIN rising r ON r.ticker = c.ticker
INNER JOIN share_count s ON s.ticker = c.ticker
ORDER BY si_pct_shares_out DESC, c.ticker
LIMIT 10
Uruchom samodzielnie

RXRX przewodzi zestawieniu z wynikiem 29.5% akcji w obrocie będących przedmiotem krótkiej sprzedaży: 157.9 miliona akcji wobec 536 miliona akcji istniejących. 10 wierszy przedstawia najwyższe odczyty wśród wyselekcjonowanych spółek, dla których opublikowano liczbę akcji, a ostatni z nich nadal wskazuje 21.1%. Należy traktować tę kolumnę jako wartość minimalną, a nigdy jako liczbę akcji w wolnym obrocie. Free float uwzględnia wyłącznie akcje, które faktycznie zmieniają właściciela, wykluczając udziały insiderów oraz inne zablokowane pakiety. Free float jest mniejszym mianownikiem, zatem rzeczywisty odsetek akcji w wolnym obrocie będących przedmiotem krótkiej sprzedaży jest wyższy niż każda z przedstawionych wartości. Skala tego wzrostu zależy od struktury akcjonariatu każdej spółki, której niniejsza baza danych nie zawiera.

Czy zjawisko „short crowding” narasta, czy słabnie?

Pojedynczy odczyt stanowi jedynie wycinek rzeczywistości. Ten sam zbiór danych obejmuje lata wstecz, co pozwala na uzyskanie odpowiedzi opartej na twardych danych dla całego rynku.

ZapytaniePłynne aktywa z wskaźnikiem days to cover 5+ i 10+ w ujęciu rozliczeniowym
data rozliczeniaspółki z DTC > 5spółki z DTC > 10mediana DTC (płynne)
2026-04-156961.75
2026-04-3082111.85
2026-05-158382.02
2026-05-298441.88
2026-06-1597121.8
2026-06-309651.87
2026-07-1510362.27
2026-07-319232.15
2026-08-148882.16
2026-08-3110592.31
2026-09-15101152.35
2026-09-3010592.18
Dokładny kod SQL dla każdej liczby
WITH dates AS (
    SELECT DISTINCT settlement_date AS d
    FROM global_markets.stocks_short_interest
    ORDER BY d DESC
    LIMIT 12
)
SELECT toString(settlement_date) AS settlement_date,
       countIf(days_to_cover >= 5) AS names_5plus_dtc,
       countIf(days_to_cover >= 10) AS names_10plus_dtc,
       round(quantileExact(0.5)(days_to_cover), 2) AS median_dtc_liquid
FROM global_markets.stocks_short_interest
WHERE settlement_date IN (SELECT d FROM dates)
  AND avg_daily_volume >= 5000000
  AND days_to_cover IS NOT NULL
  AND ticker NOT IN ('SPCX')
  AND ticker NOT IN ('KORU','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')
GROUP BY settlement_date
ORDER BY settlement_date
Uruchom samodzielnie

W ujęciu wszystkich rozliczeń 12, liczba płynnych spółek z wskaźnikiem „days to cover” na poziomie pięciu lub więcej dni zmieniła się z 69 na 105. Skrajny koniec rozkładu pozostaje znacznie węższy: przy ostatnim odczycie 9 spółek osiągnęło poziom dziesięciu lub więcej dni na pokrycie pozycji. Mediana dla płynnych spółek wynosi 2.18 dnia, co sprawia, że próg pięciu dni jest wartością istotną, a nie arbitralną. Strona spółek z najwyższym wskaźnikiem days-to-cover monitoruje ten skrajny ogon rozkładu w osobnym zestawieniu.

Co zazwyczaj działo się później

Takie zestawienia łatwo przygotować i łatwo nadinterpretować, dlatego poniżej przedstawiamy ten sam filtr zastosowany wstecznie, z zachowaniem tego samego przesunięcia czasowego. Dla każdego rozliczenia w minionym roku wyselekcjonowano spółki, które przekroczyły próg koncentracji pozycji i rosły w ciągu sześciu sesji kończących się dwadzieścia dni kalendarzowych później – czyli w punkcie, w którym znajduje się obecnie niniejsze zestawienie – a następnie zmierzono ich wyniki w kolejnych trzydziestu dniach kalendarzowych.

ZapytanieHistoryczne wyniki wyselekcjonowanych spółek w okresie 30 dni od daty badania
zmiana (30 dni)liczba spółekskumulowany udział (%)
Fell more than 20%8211.2
Fell 10% to 20%12127.7
Fell 0% to 10%19253.9
Rose 0% to 10%19179.9
Rose 10% to 20%7189.6
Rose more than 20%76100
Dokładny kod SQL dla każdej liczby
WITH screened AS (
    SELECT settlement_date, ticker
    FROM global_markets.stocks_short_interest
    WHERE settlement_date >= today() - 400
      AND settlement_date <= today() - 55
      AND avg_daily_volume >= 5000000
      AND days_to_cover >= 5
      AND ticker NOT IN ('SPCX')
      AND ticker NOT IN ('KORU','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')
),
split_hits AS (
    SELECT s.settlement_date AS sd, s.ticker AS tkr
    FROM screened s
    INNER JOIN global_markets.stocks_splits sp ON sp.ticker = s.ticker
    WHERE sp.execution_date > s.settlement_date + 11
      AND sp.execution_date <= s.settlement_date + 50
),
daily AS (
    SELECT ticker,
           toDate(toTimeZone(window_start, 'America/New_York')) AS session,
           argMax(close, window_start) AS rth_close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN (SELECT DISTINCT ticker FROM screened)
      AND window_start >= now() - INTERVAL 400 DAY
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
        + toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
        + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
    GROUP BY ticker, session
),
paired AS (
    SELECT s.settlement_date AS sd,
           s.ticker AS tkr,
           (argMaxIf(d.rth_close, d.session, d.session <= s.settlement_date + 20)
            / argMinIf(d.rth_close, d.session, d.session <= s.settlement_date + 20) - 1) * 100 AS prior_pct,
           (argMaxIf(d.rth_close, d.session, d.session >= s.settlement_date + 20)
            / argMinIf(d.rth_close, d.session, d.session >= s.settlement_date + 20) - 1) * 100 AS next_pct
    FROM screened s
    INNER JOIN daily d ON d.ticker = s.ticker
    WHERE d.session > s.settlement_date + 11
      AND d.session <= s.settlement_date + 50
    GROUP BY sd, tkr
    HAVING countIf(d.session <= s.settlement_date + 20) >= 4
       AND countIf(d.session >= s.settlement_date + 20) >= 15
),
outcomes AS (
    SELECT multiIf(next_pct < -20, 1,
                   next_pct < -10, 2,
                   next_pct < 0, 3,
                   next_pct < 10, 4,
                   next_pct < 20, 5, 6) AS bucket,
           multiIf(next_pct < -20, 'Fell more than 20%',
                   next_pct < -10, 'Fell 10% to 20%',
                   next_pct < 0, 'Fell 0% to 10%',
                   next_pct < 10, 'Rose 0% to 10%',
                   next_pct < 20, 'Rose 10% to 20%', 'Rose more than 20%') AS move_over_30_days
    FROM paired
    WHERE prior_pct > 0
      AND (sd, tkr) NOT IN (SELECT sd, tkr FROM split_hits)
),
tallied AS (
    SELECT bucket, move_over_30_days, count() AS name_count
    FROM outcomes
    GROUP BY bucket, move_over_30_days
)
SELECT move_over_30_days,
       name_count,
       round(100.0 * sum(name_count) OVER (ORDER BY bucket) / sum(name_count) OVER (), 1) AS cumulative_share_pct
FROM tallied
ORDER BY bucket
Uruchom samodzielnie

53.9% z tych obserwacji dla poszczególnych spółek i rozliczeń odnotowało spadek po trzydziestu dniach. Wynik ten jest zbliżony do rzutu monetą i stanowi rzetelne podsumowanie tej strony: sprzedający krótko często mają rację, a połączenie wysokiej koncentracji pozycji z trendem wzrostowym opisuje jedynie układ rynkowy, a nie przewagę inwestycyjną. Skrajne wartości pokazują, gdzie mógłby wystąpić tzw. squeeze, jednak oba ogony rozkładu są wąskie. 82 obserwacji odnotowało spadek o ponad jedną piątą; 76 zyskało ponad jedną piątą – to przedział, w którym mieściłby się rzeczywisty squeeze. 89.6% próby nigdy nie osiągnęło takiego wyniku.

Powyższy panel należy traktować jako rozkład statystyczny, a nie wynik transakcyjny. Pomija on koszty, opłaty za pożyczkę papierów wartościowych oraz wielkość pozycji, a każdej wyselekcjonowanej spółce nadaje taką samą wagę. Oba punkty odniesienia są zakotwiczone dwadzieścia dni kalendarzowych po każdej dacie rozliczenia, zgodnie z przesunięciem stosowanym na tej stronie, dzięki czemu każda wskazana spółka opiera się na cenach, które czytelnik mógł zaobserwować. Rok rozliczeń to krótka próba statystyczna.

Metodologia pomiaru

Wszystkie zasady i wykluczenia dotyczące powyższych danych.

  • Dane o krótkiej sprzedaży pochodzą z giełd i są publikowane dwa razy w miesiącu. Wykorzystany tu odczyt został rozliczony Sep 30, 2026, 17 dni temu. W USA nie istnieją dzienne oficjalne dane o krótkiej sprzedaży; dostępne są jedynie szacunki dostawców, modelowane na podstawie danych z rynku pożyczek papierów wartościowych.
  • Próg płynności: średni dzienny wolumen obrotu na poziomie pięciu milionów akcji, zgodnie z raportem. Bez tego ograniczenia lista wypełniłaby się spółkami typu microcap, których wysoki wskaźnik dni potrzebnych na pokrycie pozycji (days-to-cover) wynikałby jedynie z bliskiego zeru wolumenu.
  • Próg zaangażowania (crowding): pięć lub więcej dni na pokrycie pozycji, co znacznie przewyższa medianę dla płynnych aktywów wskazaną powyżej.
  • Składnik momentum: zmiana między cenami zamknięcia z ostatnich sześciu pełnych sesji regularnych, co stanowi stopę zwrotu z pięciu sesji. Sesja trafia do okna czasowego dopiero wtedy, gdy system rejestruje pełny zestaw danych minutowych. Sesja, której dane są jeszcze w trakcie przesyłu, jest wstrzymywana, aby uniknąć pomiaru na niepełnych danych; dlatego okno czasowe może kończyć się jedną sesję za kalendarzem, nawet jeśli sesja ta została już zamknięta. Ceny odnoszą się do zamknięć sesji regularnych.
  • Obie daty są ograniczone ramami czasowymi. Panel na górze wskazuje wiek każdego odczytu w dniach, a wartości te podlegają weryfikacji. Odczyt rozliczeniowy starszy niż miesiąc lub opóźnienie w danych cenowych przekraczające standardowe ramy powoduje wstrzymanie publikacji strony, aby nie prezentować nieaktualnych danych pod nowym nagłówkiem.
  • Wykluczenia. ETF-y lewarowane i odwrotne są usuwane z każdego panelu (ich krótka sprzedaż wynika głównie z mechanizmów hedgingowych), podobnie jak jeden niejednoznaczny ticker, który w systemach dostawców został przypisany do dwóch różnych spółek. Panele mierzące zmianę ceny pomijają również podmioty, w których w badanym okresie wystąpił split akcji, ponieważ zniekształca on obraz ruchu cenowego. W testach historycznych (backtest) weryfikacja odbywa się dla każdego rozliczenia z osobna, więc split w jednym miesiącu nie usuwa obserwacji dla danego podmiotu z pozostałych miesięcy.
  • Fundusze znajdują się w tym zestawieniu obok spółek operacyjnych. Obligacyjne lub indeksowe ETF-y mogą wykazywać dużą krótką pozycję, która wynika z mechanizmów tworzenia i umarzania jednostek (creation-and-redemption), a nie z zakładów na spadek ich wyceny.
  • W tym pliku nie ma danych o free float ani liczbie akcji, a w bazie nie uwzględniono otwartej pozycji na opcjach. Kolumna z liczbą akcji w obrocie pochodzi z oddzielnej tabeli danych fundamentalnych, dlatego podmioty bez opublikowanej wartości rynkowej są usuwane z tego panelu.
  • Żadna z powyższych informacji nie stanowi prognozy ani rekomendacji. Opisują one jedynie mierzalne warunki rynkowe wraz z załączonym panelem wyników.

FAQ

Jak identyfikować kandydatów do short squeeze?

Należy przefiltrować raportowane przez giełdę dane o krótkiej sprzedaży pod kątem pozycji o dużej skali w relacji do dziennego wolumenu obrotu, wyselekcjonować spółki o odpowiedniej płynności, a następnie sprawdzić, czy kurs akcji wykazuje trend wzrostowy. Niniejszy filtr danych Sep 30, 2026 o krótkiej sprzedaży uwzględnia wskaźnik „days to cover” na poziomie pięciu lub więcej dni, średni dzienny wolumen obrotu wynoszący pięć milionów akcji oraz dodatnią stopę zwrotu z ostatnich pięciu sesji, co pozwoliło wyłonić 52 spółek.

Jaki poziom krótkiej sprzedaży wywołuje short squeeze?

Nie istnieje magiczna liczba; każdy, kto ją podaje, jedynie spekuluje. Zjawisko short squeeze rozpoczynało się przy różnych wartościach, a znacznie częściej nie dochodziło do niego wcale: w skali roku, na podstawie historycznych danych rozliczeniowych, 53.9% spółek wytypowanych przez ten filtr odnotowało spadki po trzydziestu dniach. Wysoki poziom krótkiej sprzedaży jest warunkiem koniecznym, ale nigdy bezpośrednim wyzwalaczem.

Jak aktualne są dane o krótkiej sprzedaży?

Najnowsze dane rozliczeniowe w systemie pochodzą z dnia Sep 30, 2026, czyli sprzed 17 dni, natomiast dane cenowe obejmują okres do Oct 15, 2026. Ta rozbieżność wynika z cyklu raportowania, a nie z opóźnień w przesyłaniu danych: pozycje są liczone dwa razy w miesiącu i publikowane w przybliżeniu osiem dni roboczych po każdej dacie rozliczenia, dlatego każda informacja o krótkiej sprzedaży jest w momencie publikacji już kilkutygodniowa.

Które akcje są obecnie najmocniej „krótkowane”?

Rankingi bez filtrów, z podziałem na wskaźnik „days to cover” oraz liczbę akcji w krótkiej sprzedaży, znajdują się na stronie najmocniej „krótkowanych” akcji. Strona ta odpowiada na węższe pytanie: spośród spółek ujętych w pliku Sep 30, 2026, których kurs rośnie, najbardziej zatłoczoną pozycją jest CNQ ze wskaźnikiem 21.3 „days to cover”, co czyni ją liderem tego konkretnego filtra, a niekoniecznie spółką o najwyższym poziomie krótkiej sprzedaży na całym rynku.


Każdy panel stanowi wynik zapytania opartego na wersji danych raportowanych przez giełdę. Można wyświetlić kod SQL pod dowolną tabelą lub uruchomić filtr z własnymi parametrami w terminalu Strasmore.

#short interest#short squeeze#days to cover#short selling#screens