Strasmore Research
Piyasa özetleri Matt ConnorYazan Matt Connor · Güncellendi 2026-07-24 · data as of July 24, 2026 · refreshed weekly

Bu Haftanın Short Squeeze Adayları

Yüksek short pozisyonu ve yükselen fiyat verilerine göre taranan short squeeze adayları, güncel borsa raporları ve teknik eşik değerleri ile listelenmiştir.

Short squeeze hisseleri iki mekanizmaya göre taranmaktadır: hisse işlem hacmine kıyasla yüksek bir short pozisyonu ve halihazırda yükselen bir fiyat. Bu sayfa, Jun 30, 2026 tarihinde kapanan en güncel borsa raporlu short pozisyon dosyasını kullanarak tarama yapmakta ve Jul 22, 2026 tarihinde sona eren beş seans boyunca fiyat hareketini ölçmektedir. Bu mekanizmalar geçmişteki squeeze durumlarına benzemektedir. Buradaki hiçbir veri bir tahmin niteliği taşımaz ve en yoğun short edilen hisseler hiçbir zaman squeeze yapmaz.

İsimlerden önce tarihlere bakılmalıdır. Bu sayfadaki short pozisyon verileri, veri akışındaki bir hatadan değil, düzenlemeler gereği haftalar öncesine aittir: Aracı kurumlar, short pozisyonlarını FINRA'ya ayda iki kez belirlenen kapanış tarihlerinde raporlar ve derlenen dosya yaklaşık sekiz iş günü sonra kamuoyuna açıklanır. Herkes için mevcut olan en güncel veri Jun 30, 2026 tarihli olup, bu da 24 gün öncesine tekabül eder; fiyat hareketi ise Jul 22, 2026 tarihine kadar devam eder. Bu boşluk içerisindeki short hareketleri, bu tarayıcı dahil olmak üzere tüm tarayıcılar için görünmezdir. Short interest verilerinin neden her zaman iki hafta geriden geldiği raporlama döngüsünü adım adım açıklamaktadır.

SorgulaEkrandaki tüm girdiler ve güncel durumları
Her verinin arkasındaki tam SQL
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

İki kapanış verisi 39 ve 24 gün öncesine aittir; bu durum, ayda iki kez yapılan sayım döngüsü ile derleme gecikmesinin toplamıdır. Fiyat verisi ise 2 gün geridedir ve bu gecikme düzenlemelerden ziyade veri depolama süreçlerinden kaynaklanmaktadır. Her iki veri türü de belirli sınırlar dahilindedir; bu nedenle veri akışının durması durumunda, sayfa eski bir tarihle yeni bir başlık altında yeniden yayınlamak yerine mevcut durumu korur.

Short squeeze hisse senedi listesi: mevcut tarama

Aşağıdaki tüm isimler aynı kriterleri karşılamaktadır: beş milyon hisse günlük ortalama hacim, beş veya daha fazla günlik cover süresi ve Jul 22, 2026 ile biten beş seans boyunca pozitif hareket. 31 isimler tüm bu kriterleri sağlamıştır ve bunların 12 en yoğun olanları burada gösterilmektedir. Days to cover, kısa pozisyon büyüklüğünün günlük ortalama hacme bölünmesiyle hesaplanır: kısa pozisyon sahiplerinin pozisyonlarını kapatmak için hissenin tüm işlem hacmiyle kaç tam güne ihtiyaç duyacağını gösterir.

SorgulaSqueeze mekanikleri: Likit hisselerde artan fiyatla birlikte yoğunlaşan short pozisyonlar
Her verinin arkasındaki tam SQL
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

Buradaki en yoğun isim olan MPT, 138.1 milyon hisse kısa pozisyon karşılığında 16.9 günluk cover süresi göstermektedir ve Jul 22, 2026 ile biten beş seans boyunca 2.8% yükselmiştir. Gösterilen son satır 6.4 günluk cover süresini ifade etmektedir; bu durum ekranın alt sınırından değil, verinin kesilmesinden kaynaklanmaktadır. Sıralama büyüklüğe göre değil, yoğunluğa göre yapılmaktadır; bu nedenle düşük hacimli bir tahtadaki orta ölçekli bir pozisyon, yüksek hacimli bir tahtadaki çok daha büyük bir pozisyondan daha üst sırada yer alır. Büyüklük sıralaması için en çok short edilen hisseler her iki listeyi yan yana sunar.

Fiyat artışı kriterinin mekanik bir nedeni vardır. Squeeze, kısa pozisyon sahiplerinin pozisyonlarını kapatmasıyla oluşan zorunlu alımlardır. Kısa pozisyonu kapatmak hisseyi geri almayı gerektirir ve bu süreç ancak fiyat pozisyonun aleyhine hareket etmeye başladığında tetiklenir. GameStop'un 2021 kayıtları üzerinden incelenen How a short squeeze works, bu süreci rakamlarla göstermektedir.

Kurallar ve her birinin elediği unsurlar

Ekran, sayılara bağlı bir görüş teşkil eder; bu nedenle alan burada belirlenir.

SorgulaTüm takas dosyasından filtrelenmiş listeye, adım adım kurallar
Her verinin arkasındaki tam SQL
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
)

Jun 30, 2026 dosyası 22207 menkul kıymet içerir. Likidite tabanı ve hariç tutma listesi geriye 883 bırakır; yoğunlaşma eşiği bu sayıyı 96 seviyesine indirir ve yükselen fiyat bariyeri geriye 31 bırakır. Her eşik bir tercihtir ve farklı bir tercih farklı bir liste oluşturur. Bu nedenle kurallar bir dipnot yerine sayfanın üzerinde yer alır.

Her şirketin ne kadarı açığa satıldı

Çoğu kişinin aradığı veri, dolaşımdaki hisse miktarına oranla açığa satış oranıdır ancak bu veriler mevcut değildir. Borsa dosyaları, herhangi bir hisse sayısı belirtmeksizin açığa satılan hisse miktarını ve ortalama günlük hacmi raporlamaktadır. Buradan elde edilebilecek veri, her şirketin piyasa değerinin hisse fiyatına bölünmesiyle hesaplanan toplam tedavüldeki hisse sayısına göre pozisyon ölçümüdür.

SorgulaDolaşımdaki hisse sayısına göre short faiz oranına göre sıralanmış hisseler
Her verinin arkasındaki tam SQL
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, tedavüldeki hisselerin 26.3%'ünün açığa satılmasıyla bu kesimi 29.9 milyon hisse ile zirvede tutmaktadır; mevcut hisse sayısı ise 113 milyondur. Gösterilen 10 satırı, yayınlanmış hisse sayısına sahip olan taranmış isimler arasındaki en yüksek değerlerdir ve sonuncusu hala 15.5% seviyesindedir. Bu sütun, dolaşımdaki hisse sayısı (float) olarak değil, bir alt sınır olarak okunmalıdır. Dolaşımdaki hisse sadece gerçekten el değiştiren hisseleri sayar; içerideki payları ve diğer kilitli varlıkları kapsam dışı bırakır. Dolaşımdaki hisse miktarı daha küçük bir payda olduğu için, dolaşımdaki hisselerin gerçek açığa satış oranı gösterilen tüm rakamlardan daha yüksektir. Bu farkın ne kadar olacağı, bu veri tabanında yer almayan her bir şirketin sahiplik yapısına bağlıdır.

Açığa satış yoğunlaşması artıyor mu yoksa azalıyor mu?

Tek bir veri noktası anlık bir görüntüdür. Aynı veri seti yıllar öncesine kadar uzandığı için piyasa genelindeki soruya verilerle yanıt verilebilir.

Sorgula5+ ve 10+ gündaysa cover süresi olan likit hisseler, takas bazlı
Her verinin arkasındaki tam SQL
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

Gösterilen 12 takası genelinde, beş gün veya daha fazla kapatma süresi olan likit hisse sayısı 58 seviyesinden 96 seviyesine yükseldi. Dağılımın nadir görülen uç noktası çok daha ince kalmaya devam ediyor: Son verilerde 5 hisse, on gün veya daha fazla kapatma süresine sahipti. Medyan likit hisse 1.87 gün olarak gerçekleşti; bu durum beş günlük eşiği keyfi olmaktan çıkarıp anlamlı kılmaktadır. En yüksek kapatma süresine sahip hisseler sayfası bu uç noktayı ayrı olarak takip etmektedir.

What has usually happened next

Screens like this are easy to build and easy to over-read, so here is the same screen run backward, at the same offset from the file. For every settlement print in the past year, take the names that cleared the crowding gate on that print and were rising over the six sessions ending twenty calendar days later, which is where this page sits today, then measure what each one did over the following 30 calendar days.

SorgulaGeçmişte filtrelenen tüm hisselerin sonraki 30 günlük performansları
Her verinin arkasındaki tam SQL
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% of those name-and-settlement observations traded lower 30 days later. That is close to a coin flip, and it is the honest headline of this page: short sellers are frequently right, and crowded-plus-rising describes a setup rather than an edge. The tails are where a squeeze would show up, and both of them are thin. 68 observations fell by more than a fifth; 73 gained by more than a fifth, the bucket a genuine squeeze would land in. 87.8% of the sample never got there.

Treat that panel as a distribution, not as a trading result. It ignores costs, borrow fees and position sizing, and it weights every flagged name identically. Both legs are anchored twenty calendar days after each settlement date, the same offset this page uses, so every flagged name rests on prices a reader could have seen. A year of settlements is a short sample.

Bu veriler nasıl ölçülür

Yukarıdaki rakamların arkasındaki tüm kural ve istisnalar.

  • Açığa satış raporu borsalar tarafından bildirilir ve ayda iki kez yayınlanır. Burada kullanılan veriler Jun 30, 2026, 24 gün önce kesinleşmiştir. ABD'de günlük olarak açıklanan bir açığa satış rakamı bulunmamaktadır; yalnızca menkul kıymet ödünç verme verilerinden modellenen sağlayıcı tahminleri mevcuttur.
  • Likidite tabanı: aynı dosyada bildirilen beş milyon hisse hacmi ortalamasıdır. Bu sınır olmasaydı, liste, devasa "days-to-cover" değerlerinin neredeyse sıfır hacimden kaynaklandığı mikro ölçekli şirketlerle dolardı.
  • Yoğunlaşma eşiği: beş veya daha fazla günlük kapatma süresi (days to cover); yukarıda gösterilen likit medyan değerin oldukça üzerindedir.
  • Momentum ayağı: son altı tam düzenli seansın kapanış fiyatları arasındaki değişimdir; bu da beş seanslık bir getiridir. Bir seans, ancak referans veri akışı tam bir günlük dakikalık barlar sağladığında pencereye dahil edilir. Veri akışına henüz ulaşmakta olan bir seans, yarım kalmış bir ölçüm yerine beklemeye alınır; bu nedenle pencere, o seans kapanmış olsa bile takvimin bir seans gerisinde kalabilir. Fiyatlar, düzenli seans kapanışlarıdır.
  • Her iki tarih de sınırlandırılmıştır. Üst paneldeki panel, her bir girdinin gün cinsinden yaşını tutar ve bu yaşlar mantık sınırlarına sahiptir. Bir aydan daha eski bir kesinleşmiş veri veya normal veri giriş gecikmasından daha geride bir fiyat akışı, taze bir başlık altında bayat bir tarih yayınlamak yerine bu sayfanın incelenmek üzere bekletilmesine neden olur.
  • İstisnalar. Kaldıraçlı ve ters yönlü ETF'ler tüm panellerden çıkarılır (açığa satış pozisyonları büyük ölçüde bir hedging sonucudur); ayrıca sağlayıcı veri akışlarının iki farklı şirket için yeniden kullandığı belirsiz bir sembol de çıkarılır. Fiyat hareketini ölçen paneller, hisse bölünmesi nedeniyle büyük bir hareket varmış gibi görünen isimleri de kapsam dışı bırakır. Backtest sürecinde test her kesinleşme dönemi için ayrı çalışır, bu nedenle bir aydaki bölünme, bir ismin diğer aylardaki gözlemlerini asla silmez.
  • Fonlar bu dosyada işletme şirketleriyle birlikte yer alır. Bir tahvil veya endeks ETF'si, birinin tersine bahis oynamasından ziyade, yaratım ve itfa süreçlerinden kaynaklanan büyük bir açığa satış pozisyonuna sahip olabilir.
  • Bu dosyada dolaşımdaki hisse sayısı veya toplam hisse sayısı bulunmaz; veri ambarında herhangi bir opsiyon açık pozisyonu yer almaz. Yukarıdaki toplam hisse sayısı sütunu ayrı bir temel veriler tablosundan gelir; bu nedenle piyasa değeri yayınlanmamış olan bir isim o panelden çıkarılır.
  • Buradaki hiçbir veri bir tahmin veya tavsiye niteliği taşımaz. Sadece ölçülebilir koşulları ve ekteki sonuç panelini tanımlar.

SSS

Short squeeze adayları nasıl bulunur?

Borsa tarafından raporlanan short-interest dosyası, hissenin günlük hacmine kıyasla büyük pozisyonlar için taranmalıdır. Sadece işlem yapılabilir likiditedeki isimler seçilmeli ve fiyatın halihazırda yükselip yükselmediği kontrol edilmelidir. Bu Jun 30, 2026 short-interest dosyası taraması; beş gün veya daha fazla günlüğe çıkarma süresi, beş milyon hisselik ortalama günlük hacim ve pozitif beş seanslık hareket kriterlerini kullanır; bu kriterler 31 isimlerin seçilmesini sağlamıştır.

Hangi short interest yüzdesi squeeze tetikler?

Belirli bir sihirli sayı yoktur ve bu tür bir rakam veren kişi tahmin yürütmektedir. Squeeze durumları tüm aralıklardan gelen verilerle başlamıştır; ancak çoğu durumda hiçbir gelişme yaşanmamaktadır. Geçmiş bir yıla ait kapanış verilerine göre, bu taramanın işaretleyeceği isimlerin 51.7% kadarı 30 gün sonra daha düşük fiyatlı olmuştur. Yüksek short interest bir ön koşuldur, tetikleyici değildir.

Short interest verileri ne kadar günceldir?

Buradaki en yeni kayıtlı kapanış Jun 30, 2026 tarihli olup, 24 gün öncesine aittir; fiyat verileri ise Jul 22, 2026 tarihine kadar devam etmektedir. Bu fark, bayat bir veri akışından ziyade raporlama döngüsünden kaynaklanmaktadır: Pozisyonlar ayda iki kez sayılır ve her kapanış tarihinden yaklaşık sekiz iş günü sonra yayınlanır; bu nedenle ulaşılan her short-interest verisi haftalarca eskidir.

Şu anda en çok short edilen hisseler hangileridir?

Filtrelenmemiş liderlik tablolarından biri günlüğe çıkarma süresine, diğeri ise ham hisse sayısına göredir ve en çok short edilen hisseler sayfasında yer alır. Bu sayfa daha dar kapsamlı bir soruyu yanıtlar: Jun 30, 2026 dosyasındaki fiyatı yükselen isimler arasında, en yoğun pozisyon 16.9 günlüğe çıkarma süresiyle MPT hissesidir; bu hisse piyasanın en çok short edilen hissesi değil, tarama kriterlerinin lideridir.


Her panel, borsa tarafından raporlanan dosya üzerinde saklanan ve versiyonlanmış bir sorgudur. Herhangi bir tablonun altındaki SQL kodunu genişletebilir veya taramayı Strasmore terminalinde kendi eşik değerlerinizle çalıştırabilirsiniz.