Strasmore Research
Marktoverzichten Matt ConnorDoor Matt Connor · Bijgewerkt 2026-07-24 · data as of July 24, 2026 · refreshed weekly

Short squeeze kandidaten deze week

Aandelen met een hoge short interest en stijgende koersen. Wij screenen op days to cover en de verhouding tussen short positions en handelsvolume.

Short squeeze-aandelen worden gescreend op basis van twee mechanismen: een short position die groot is in verhouding tot het handelsvolume, en een koers die reeds stijgt. Deze pagina voert die screen uit op basis van het meest recente door de beurs gerapporteerde short-interest bestand, afgesloten op Jun 30, 2026, en meet de prijsbeweging over de vijf sessies eindigend op Jul 22, 2026. Dit zijn mechanismen die lijken op eerdere squeezes. Niets hier is een voorspelling, en de meeste heavily shorted aandelen ondergaan nooit een squeeze.

Lees de data vóór de namen. Het deel over short interest op deze pagina is volgens de regelgeving weken oud, niet door een fout in de feed: brokers rapporteren hun short positions twee keer per maand aan FINRA op geplande settlement-data, en het samengestelde bestand wordt ongeveer acht werkdagen later publiek toegankelijk. De meest recente print die voor iedereen beschikbaar is, dateert van Jun 30, 2026, 24 dagen geleden, terwijl de prijsbeweging loopt tot Jul 22, 2026. Wat de short-zijde binnen die kloof heeft gedaan, is onzichtbaar voor elke screener, inclusief deze. Waarom short interest data altijd twee weken oud is legt de rapportagecyclus stap voor stap uit.

QueryElke input achter dit scherm en de ouderdom in dagen
De exacte SQL achter elk getal
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

De twee settlement-prints liggen 39 en 24 dagen terug, wat de tweejaarlijkse cyclus plus de compilatie-vertraging is. De prijsinformatie loopt 2 dagen achter, en dat komt door de vertraging bij de verwerking in het magazijn in plaats van regelgeving. Beide tijdsperioden hebben grenzen, dus een feed die stilstaat, houdt deze pagina vast in plaats van een oude datum onder een nieuwe kop te publiceren.

Short squeeze stocks lijst: het huidige overzicht

Elke naam in deze lijst voldoet aan dezelfde criteria: een gemiddeld dagelijks volume van vijf miljoen aandelen, vijf of meer days to cover, en een positieve beweging gedurende de vijf sessies eindigend op Jul 22, 2026. 31 namen voldoen aan al deze eisen, en de 12 meest crowded namen worden hier getoond. Days to cover is de hoeveelheid short verkochte aandelen gedeeld door het gemiddelde dagelijkse volume: het aantal volledige handelsdagen dat nodig is om de short-positie volledig terug te kopen.

QuerySqueeze-mechanieken: crowded shorts bij liquide namen met stijgende koersen
De exacte SQL achter elk getal
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

De meest crowded naam hier, MPT, heeft 16.9 days to cover bij 138.1 miljoen short verkochte aandelen, en de koers steeg met 2.8% gedurende de vijf sessies eindigend op Jul 22, 2026. De laatste rij toont 6.4 days to cover; dit is het punt waar de weergave wordt afgekapt en niet waar de ondergrens van de lijst ligt. De rangschikking is gebaseerd op crowding in plaats van omvang. Een matige positie op een dunne tape krijgt dus een hogere rang dan een veel grotere positie op een drukke tape. Voor de rangschikking op omvang kunt u de meest short verkochte aandelen op dit moment bekijken, waar beide ranglijsten naast elkaar staan.

De eis voor een stijgende koers heeft een mechanische reden. Een squeeze is gedwongen koopgedrag doordat short sellers hun posities sluiten. Het sluiten van een short-positie betekent het terugkopen van de aandelen, wat pas begint zodra de prijs tegen de positie in beweegt. Hoe een short squeeze werkt, uitgelegd aan de hand van de gegevens van GameStop uit 2021, laat deze volgorde in cijfers zien.

De regels, en wat elke regel uitsluit

Een screen is een mening met bijbehorende cijfers; hier wordt het veld bepaald.

QueryVan het volledige settlement file naar de gescreende lijst, regel voor regel
De exacte SQL achter elk getal
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
)

Het Jun 30, 2026-bestand bevat 22207 securities. De liquidity floor en de uitsluitingslijst laten 883 over, de crowding threshold verlaagt dit naar 96, en de prijsstijging-limiet laat 31 over. Elke threshold is een keuze, en een andere keuze levert een andere lijst op. Daarom staan de regels in de tekst en niet in een voetnoot.

Hoeveel aandelen van elk bedrijf zijn short verkocht

De meest gezochte waarde is de short interest als percentage van de float, maar deze is niet in deze data opgenomen. Het bestand van de beurs rapporteert het aantal short verkochte aandelen en het gemiddelde dagelijkse volume, zonder een totaal aantal aandelen te vermelden. Wat wel afgeleid kan worden, is de positie afgezet tegen de totale aandelen in omloop (shares outstanding), waarbij de marktwaarde van elk bedrijf gedeeld wordt door de koers per aandeel.

QueryGescreende namen gerangschikt naar short interest t.o.v. shares outstanding (niet float)
De exacte SQL achter elk getal
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

KSS voert de lijst aan met 26.3% van de shares outstanding die short zijn verkocht: 29.9 miljoen aandelen tegenover 113 miljoen aandelen in omloop. De 10 rijen die worden getoond, zijn de hoogste waarden onder de gescreende namen met een gepubliceerd aantal aandelen, waarbij de laatste waarde 15.5% bedraagt. Beschouw deze kolom als een ondergrens en niet als het float-aandeel. Float telt alleen de aandelen die daadwerkelijk van eigenaar wisselen, waarbij insider-posities en andere geblokkeerde aandelen worden weggelaten. De float is de kleinere noemer, waardoor het werkelijke percentage van de float dat short is verkocht hoger ligt dan alle getoonde cijfers. Hoeveel hoger dit is, hangt af van het eigendom van elk bedrijf, welke informatie niet in deze database aanwezig is.

Is short crowding aan het toenemen of aan het afnemen?

Eén datapunt is slechts een momentopname. Omdat dezelfde dataset over meerdere jaren loopt, kan de marktbrede vraag met data worden beantwoord.

QueryLiquide namen met 5+ en 10+ days to cover, per settlement
De exacte SQL achter elk getal
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

Over de 12 settlements die worden getoond, is het aantal liquide namen met een days-to-cover van vijf of meer dagen gestegen van 58 naar 96. Het zeldzame uiteinde van de distributie blijft veel dunner: 5 namen hadden bij de laatste print een days-to-cover van tien of meer dagen. De mediaan voor liquide namen is 1.87 dagen, wat de drempelwaarde van vijf dagen relevant maakt in plaats van arbitrair. De pagina De aandelen met de hoogste days-to-cover volgt die extreme tail afzonderlijk.

Wat er doorgaans volgde

Schermen zoals dit zijn eenvoudig te maken, maar ook gevoelig voor verkeerde interpretaties. Daarom vindt u hier hetzelfde scherm, maar dan achterwaarts berekend met dezelfde offset vanaf het bestand. Neem voor elke settlement in het afgelopen jaar de namen die de crowding gate hebben gepasseerd op die print en die stegen gedurende de zes sessies die eindigen twintig kalenderdagen later (de huidige datum van deze pagina). Meet vervolgens wat elke naam deed gedurende de daaropvolgende 30 kalenderdagen.

QueryResultaten van eerdere gescreende namen over de volgende 30 dagen
De exacte SQL achter elk getal
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

51.7% van die naam-en-settlement observaties handelde 30 dagen later lager. Dit komt bijna overeen met een kans van 50/50, wat de kern van deze pagina is: short sellers hebben vaak gelijk, en een combinatie van 'crowded' en stijgend beschrijft een marktconditie in plaats van een edge. Een squeeze zou zichtbaar worden in de staarten, maar beide zijn dun. 68 observaties daalden met meer dan een vijfde; 73 steeg met meer dan een vijfde, de categorie waarin een echte squeeze zou vallen. 87.8% van de steekproef bereikte dit niveau nooit.

Beschouw dit paneel als een distributie en niet als een handelsresultaat. Het houdt geen rekening met kosten, borrow fees en position sizing, en elke gemarkeerde naam krijgt een gelijk gewicht. Beide zijden zijn verankerd op twintig kalenderdagen na elke settlement-datum, dezelfde offset die deze pagina gebruikt. Hierdoor zijn de prijzen van elke gemarkeerde naam zichtbaar voor een lezer. Een jaar aan settlements is een kleine steekproef.

Hoe dit wordt gemeten

Elke regel en uitsluiting achter de bovenstaande cijfers.

  • Het short-interest bestand wordt gerapporteerd door de beurs en wordt twee keer per maand bijgewerkt. De gegevens die hier worden gebruikt, zijn vastgesteld Jun 30, 2026, 24 dagen geleden. Er is in de VS geen dagelijks gepubliceerde short interest; er zijn enkel schattingen van leveranciers die zijn gebaseerd op securities-lending data.
  • Liquiditeitsbodem: vijf miljoen aandelen van de gemiddelde dagelijkse omzet (average daily volume), zoals gerapporteerd in hetzelfde bestand. Zonder deze grens zou de lijst vol staan met microcaps waarvan de enorme days-to-cover een gevolg is van een volume dat bijna nul is.
  • Crowding-drempel: vijf of meer days to cover, wat ruim boven de getoonde liquide mediaan ligt.
  • Momentum-component: de verandering tussen de slotkoersen van de laatste zes volledige reguliere handelsdagen, wat een return van vijf sessies is. Een sessie komt pas in het venster zodra de benchmark-tape een volledige dag aan minute bars bevat. Een sessie die nog wordt verwerkt in de feed, wordt uitgesteld in plaats van half voltooid te meten. Hierdoor kan het venster één sessie achterlopen op de kalender, zelfs als die sessie al is gesloten. De prijzen zijn de slotkoersen van reguliere sessies.
  • Beide datums zijn begrensd. Het paneel bovenaan toont de leeftijd van elke input in dagen, en deze leeftijden hebben limieten. Een settlement-prijs die ouder is dan een maand, of een prijs-tape die verder achterloopt dan de normale ingest lag, zorgt ervoor dat deze pagina ter controle wordt vastgehouden in plaats van een verouderde datum onder een nieuwe kop te publiceren.
  • Uitsluitingen. Leveraged en inverse ETF's worden uit elk paneel verwijderd (hun short interest is grotendeels een hedging-artefact), samen met één ambigu symbool dat door leveranciers voor twee verschillende bedrijven wordt hergebruikt. Panelen die een prijsbeweging meten, verwijderen ook een aandeel waarvan de stock split binnen het meetvenster van dat paneel valt, aangezien een split een grote beweging simuleert. In de backtest wordt de test per settlement uitgevoerd, waardoor een split in de ene maand de observaties van een aandeel in de andere maanden nooit verwijdert.
  • Fondsen staan in dit bestand naast operationele bedrijven. Een obligatie- of index ETF kan een grote short position hebben die voortkomt uit creation-and-redemption processen in plaats van uit speculatie tegen het fonds.
  • Geen float en geen aantal aandelen in dit bestand, en geen options open interest ergens in de database. De kolom shares-outstanding hierboven komt uit een aparte fundamentals-tabel; een aandeel zonder gepubliceerde market value valt daarom uit dat paneel.
  • Niets hier is een voorspelling of een advies. Het beschrijft meetbare condities, met het bijbehorende outcome paneel.

FAQ

Hoe vindt u kandidaten voor een short squeeze?

Scan het door de beurs gerapporteerde short-interest bestand op posities die groot zijn in verhouding tot het dagelijkse volume van het aandeel. Selecteer alleen namen die liquide genoeg zijn om te verhandelen en controleer of de koers al stijgt. Deze scan van het Jun 30, 2026 short-interest bestand hanteert een criteria van vijf of meer dagen om te coveren, een gemiddeld dagelijks volume van vijf miljoen aandelen en een positieve beweging over vijf sessies, wat resulteerde in 31 namen.

Welk percentage short interest veroorzaakt een squeeze?

Er bestaat geen magisch getal; iedereen die een specifiek percentage noemt, gokt. Squeezes zijn begonnen bij diverse waarden, maar meestal gebeurt er helemaal niets. Over een periode van een jaar aan historische settlement-gegevens bleken 51.7% van de namen die deze scan zou hebben gemarkeerd, dertig dagen later lager te staan. Een hoge short interest is een voorwaarde, maar nooit de directe trigger.

Hoe actueel zijn de short interest gegevens?

De nieuwste settlement in dit bestand dateert van Jun 30, 2026, het is 24 dagen geleden. De koersgegevens lopen door tot Jul 22, 2026. Dit tijdsverschil komt door de rapportagecyclus en niet door verouderde data: posities worden twee keer per maand geteld en ongeveer acht handelsdagen na elke settlement-datum gepubliceerd. Elke short-interest waarde is dus al weken oud bij ontvangst.

Welke aandelen hebben momenteel de hoogste short interest?

De ongefilterde ranglijsten, één op basis van days to cover en één op basis van het totale aantal shorted aandelen, vindt u op de pagina met de meest shorted aandelen. Deze pagina beantwoordt een specifiekere vraag: onder de namen in het Jun 30, 2026 bestand waarvan de koers ook stijgt, is de meest crowded positie MPT met 16.9 days to cover. Dit is een leider binnen deze specifieke scan en niet noodzakelijkerwijs het meest shorted aandeel op de markt.


Elk paneel is een opgeslagen, versiespecifieke query op het door de beurs gerapporteerde bestand. Open de SQL onder een tabel, of voer de scan uit met uw eigen drempelwaarden op de Strasmore terminal.