Strasmore Research
बाजार आढावा Matt Connorद्वारे Matt Connor · अपडेटेड 2026-07-24 · data as of July 24, 2026 · refreshed weekly

या आठवड्यातील Short Squeeze चे संभाव्य शेअर्स

Short squeeze चे उमेदवार शोधण्यासाठी Days to Cover आणि वाढती किंमत या निकषांचा वापर केला आहे. यामध्ये शेअरची स्थिती आणि संभाव्य शक्यतांची माहिती दिली आहे.

Short squeeze stocks ची निवड दोन निकषांवर केली जाते: शेअरच्या व्यवहाराच्या तुलनेत मोठी short position असणे आणि शेअरची किंमत आधीच वाढत असणे. ही page एक्सचेंजने जाहीर केलेल्या नवीनतम short-interest फाईलवर, जी Jun 30, 2026 रोजी settle झाली आहे, आधारित आहे. तसेच, Jul 22, 2026 रोजी संपलेल्या पाच सत्रांमधील किंमतीतील बदल (price leg) मोजते. या प्रक्रिया पूर्वीच्या squeezes सारख्याच आहेत. येथे दिलेली माहिती कोणताही अंदाज (forecast) नाही आणि ज्या शेअर्समध्ये सर्वाधिक short interest असते, ते सर्वच squeeze होत नाहीत.

नावांच्या आधीच्या तारखांकडे लक्ष द्या. नियमांमुळे या page वरील short-interest डेटा काही आठवड्यांपूर्वीचा आहे, यात कोणत्याही तांत्रिक त्रुटी नाही: brokers त्यांच्या short positions FINRA कडे महिन्यातून दोनदा ठरवून दिलेल्या settlement dates ला रिपोर्ट करतात आणि त्यानंतर साधारण आठ कामकाजाच्या दिवसांनी ही फाईल सार्वजनिक केली जाते. कोणालाही उपलब्ध असलेला सर्वात नवीन डेटा Jun 30, 2026, 24 दिवसांपूर्वीचा आहे, तर किंमतीतील बदल (price leg) Jul 22, 2026 पर्यंत मोजला जातो. त्या कालावधीत short side मध्ये काय घडले हे या screener सह इतर कोणत्याही screener ला दिसत नाही. Short interest डेटा नेहमी दोन आठवडे जुना का असतो यामध्ये रिपोर्टिंग सायकलची सविस्तर माहिती दिली आहे.

क्वेरीया स्क्रीनवरील प्रत्येक इनपुट आणि त्याचे दिवस
प्रत्येक आकड्यामागील अचूक 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

दोन settlement prints 39 आणि 24 दिवसांपूर्वीचे आहेत, जे महिन्यातून दोनदा चालणाऱ्या counting cycle आणि compilation lag मुळे आहेत. किंमतींचा डेटा (price tape) 2 दिवस मागे आहे, आणि तो नियमांमुळे नव्हे तर warehouse ingest lag मुळे आहे. या दोन्ही माहितींच्या कालावधीला मर्यादा आहेत, त्यामुळे जर डेटा येण्यास उशीर झाला, तर ही page जुनी तारीख न ठेवता थांबवली जाते.

Short squeeze stocks list: सध्याची यादी

खालील प्रत्येक नाव एकाच निकषांवर उतरले आहे: पाच दशलक्ष (five million) सरासरी दैनंदिन व्हॉल्यूम, कव्हर करण्यासाठी पाच किंवा अधिक दिवस, आणि Jul 22, 2026 रोजी संपलेल्या पाच सत्रांमधील सकारात्मक हालचाल. 31 ही सर्व निकष पूर्ण करतात आणि त्यातील 12 सर्वात जास्त 'crowded' शेअर्स खाली दिले आहेत. Days to cover म्हणजे एकूण शॉर्ट सेल केलेल्या शेअर्सना सरासरी दैनंदिन व्हॉल्यूमने भागणे: शॉर्ट पोझिशन बंद करण्यासाठी स्टॉकच्या संपूर्ण व्यवहारासाठी किती पूर्ण दिवस लागतील, हे यावरून समजते.

क्वेरीSqueeze-mechanics: वाढत्या किमतीसह liquid names मधील crowded shorts
प्रत्येक आकड्यामागील अचूक 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

येथे सर्वात जास्त 'crowded' नाव, MPT, मध्ये 138.1 दशलक्ष (million) शॉर्ट सेल केलेल्या शेअर्ससाठी 16.9 'days to cover' आहेत आणि Jul 22, 2026 रोजी संपलेल्या पाच सत्रांमध्ये ते 2.8% नी वाढले आहे. शेवटची ओळ 6.4 'days to cover' दर्शवते, जी यादीचा शेवट नसून डिस्प्ले कापल्यामुळे आहे. ही रँकिंग आकारावरून (size) नाही तर 'crowding' नुसार आहे, त्यामुळे कमी व्हॉल्यूम असलेल्या स्टॉकवरील मध्यम पोझिशन, जास्त व्हॉल्यूम असलेल्या स्टॉकवरील मोठ्या पोझिशनपेक्षा वरच्या क्रमांकावर असते. आकाराच्या रँकिंगसाठी, the most shorted stocks right now मध्ये दोन्ही लीडरबोर्ड्स एकत्र दिले आहेत.

किंमत वाढण्याच्या निकषामागे एक तांत्रिक कारण आहे. 'Squeeze' म्हणजे शॉर्ट सेलर्सनी आपली पोझिशन बंद करण्यासाठी केलेली सक्तीची खरेदी होय. शॉर्ट पोझिशन बंद करणे म्हणजे स्टॉक पुन्हा खरेदी करणे, जे केवळ किंमत पोझिशनच्या विरुद्ध गेल्यावरच सुरू होते. GameStop च्या 2021 च्या रेकॉर्ड्सवरून समजून घेता, How a short squeeze works मध्ये ही प्रक्रिया अंकांमधून स्पष्ट केली आहे.

नियम आणि त्याद्वारे वगळण्यात येणारे घटक

स्क्रीनिंग म्हणजे अंकांशी जोडलेली एक मते असतात, त्यामुळे माहिती खालीलप्रमाणे आहे.

क्वेरीसंपूर्ण settlement file पासून स्क्रीन केलेल्या list पर्यंत, एक एक नियम
प्रत्येक आकड्यामागील अचूक 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 फाईलमध्ये 22207 सिक्युरिटीज असतात. लिक्विडिटी फ्लोर आणि एक्स्क्लुजन लिस्टमुळे 883 उरतात, क्राउडिंग थ्रेशोल्डमुळे ते 96 पर्यंत कमी होतात आणि राइजिंग-प्राईस गेटमुळे 31 उरतात. प्रत्येक थ्रेशोल्ड हा एक निवडलेला पर्याय आहे आणि वेगळ्या निवडीमुळे वेगळी यादी तयार होते. म्हणूनच हे नियम तळटीपांमध्ये न ठेवता थेट मुख्य मजकुरात दिले आहेत.

प्रत्येक कंपनीचा किती हिस्सा शॉर्ट सेल केला आहे

बहुतेक लोक 'short interest as a percent of float' शोधतात, परंतु या डेटामध्ये ती माहिती उपलब्ध नाही. एक्सचेंज फाईलमध्ये शॉर्ट शेअर्स आणि सरासरी दैनंदिन व्हॉल्यूमची माहिती असते, परंतु शेअर काउंटची कोणतीही माहिती नसते. यातून आपण 'total shares outstanding' च्या तुलनेत पोझिशन काढू शकतो; यासाठी प्रत्येक कंपनीचे मार्केट व्हॅल्यू आणि शेअर प्राईस यांचा भागाकार केला जातो.

क्वेरीshares outstanding (not float) च्या तुलनेत short interest नुसार ranked names
प्रत्येक आकड्यामागील अचूक 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 मध्ये शेअर काउंटची टक्केवारी 26.3% आहे: 29.9 दशलक्ष शेअर्स शॉर्ट सेल झाले आहेत आणि एकूण 113 दशलक्ष शेअर्स अस्तित्वात आहेत. दर्शवलेल्या 10 ओळींमध्ये, ज्या कंपन्यांचा शेअर काउंट प्रकाशित आहे, त्यातील सर्वात मोठी मूल्ये आहेत; त्यातील शेवटची कंपनी 15.5% आहे. या कॉलममधील माहितीला किमान मर्यादा (floor) मानून पहा, तो 'float' आकडा नाही. Float मध्ये केवळ प्रत्यक्षात हस्तांतरित होणारे शेअर्स मोजले जातात, ज्यामध्ये इनसाइडर होल्डिंग्स आणि इतर लॉक-अप होल्डिंग्सचा समावेश नसतो. 'Float' हा छेदक (denominator) लहान असल्याने, 'float' च्या तुलनेत शॉर्ट सेल केलेला खरा टक्केवारीचा आकडा येथे दर्शवलेल्या प्रत्येक आकड्यापेक्षा जास्त आहे. हा फरक प्रत्येक कंपनीच्या मालकी हक्कांवर अवलंबून असतो, जी माहिती या डेटाबेसमध्ये उपलब्ध नाही.

Short crowding वाढत आहे की कमी होत आहे?

एक डेटा पॉइंट म्हणजे केवळ एक स्थिर क्षण आहे. तोच डेटा अनेक वर्षांचा असल्याने, संपूर्ण मार्केटसाठी असलेला प्रश्न डेटाद्वारे स्पष्ट होऊ शकतो.

क्वेरी5+ आणि 10+ days to cover असलेले liquid names, settlement नुसार
प्रत्येक आकड्यामागील अचूक 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

दाखवलेल्या 12 settlements मध्ये, पाच किंवा अधिक days to cover असलेल्या liquid names ची संख्या 58 वरून 96 पर्यंत बदलली आहे. वितरणाचा (distribution) दुर्मिळ भाग अजूनही खूप कमी आहे: ताज्या डेटाप्रमाणे 5 names चे ten or more days to cover होते. Median liquid name 1.87 days आहे, ज्यामुळे five-day threshold हे केवळ arbitrary न राहता अर्थपूर्ण ठरते. The highest days-to-cover stocks हे पान त्या extreme tail वर स्वतंत्रपणे लक्ष केंद्रित करते.

सहसा पुढे काय घडले आहे

अशा प्रकारचे स्क्रीन्स तयार करणे सोपे असते, परंतु त्यांचे चुकीचे विश्लेषण होण्याची शक्यताही जास्त असते. म्हणूनच, येथे त्याच माहितीचा उलट क्रम दिला आहे. गेल्या एका वर्षातील प्रत्येक settlement print साठी, ज्या नावांनी crowding gate पार केला आहे आणि त्यानंतरच्या सहा sessions मध्ये त्यांची किंमत वाढत होती, अशा नावांची निवड केली आहे. ही स्थिती आजच्या तारखेपासून वीस calendar days नंतरची आहे. त्यानंतर, त्या प्रत्येक नावाचा पुढील 30 calendar days मधील कामगिरी मोजली आहे.

क्वेरीमागील प्रत्येक screened name आणि पुढील 30 दिवसांतील त्याची कामगिरी
प्रत्येक आकड्यामागील अचूक 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

अशा name-and-settlement observations पैकी 51.7% नावांची किंमत 30 दिवसांनी कमी झाली होती. ही स्थिती जवळपास coin flip सारखी आहे. या पृष्ठाचा खरा निष्कर्ष हाच आहे: short sellers अनेकदा बरोबर ठरतात आणि 'crowded-plus-rising' ही स्थिती केवळ एक setup आहे, कोणताही edge नाही. Squeeze ही स्थिती दोन्ही टोकांना (tails) दिसून येते, परंतु दोन्ही टोके खूप पातळ आहेत. 68 observations मध्ये पाचव्या भागापेक्षा (one-fifth) जास्त घट झाली; 73 मध्ये पाचव्या भागापेक्षा जास्त वाढ झाली, जी खरी squeeze दर्शवणारी श्रेणी आहे. 87.8% observations त्या टप्प्यापर्यंत पोहोचले नाहीत.

या पॅनेलकडे ट्रेडिंग निकाल म्हणून न पाहता एक distribution म्हणून पहावे. यामध्ये खर्च, borrow fees आणि position sizing यांचा विचार केलेला नाही, तसेच प्रत्येक flagged name ला समान महत्त्व दिले आहे. दोन्ही बाजू प्रत्येक settlement date नंतर वीस calendar days नंतरच्या किमतींवर आधारित आहेत, जसा हा पृष्ठ वापरतो. त्यामुळे प्रत्येक flagged name च्या किमती वाचकांना उपलब्ध असू शकतात. एका वर्षातील settlements हा एक लहान नमुना (short sample) आहे.

हे कसे मोजले जाते

वरील आकडेवारीमागील प्रत्येक नियम आणि अपवाद.

  • short-interest फाईल एक्सचेंजद्वारे रिपोर्ट केली जाते आणि ती महिन्यातून दोनदा येते. येथे वापरलेली माहिती Jun 30, 2026, 24 दिवस जुनी आहे. अमेरिकेत short interest चे दररोजचे आकडे जाहीर होत नाहीत, केवळ securities-lending डेटावरून विक्रेत्यांकडून (vendors) अंदाजे आकडेवारी दिली जाते.
  • Liquidity floor: सरासरी दैनंदिन व्हॉल्यूमच्या पाच दशलक्ष शेअर्स, जे याच फाईलमध्ये रिपोर्ट केले जातात. याशिवाय, या यादीमध्ये अशा microcaps चा समावेश होईल ज्यांचा 'days-to-cover' आकडा अत्यंत कमी व्हॉल्यूममुळे चुकीचा आणि मोठा दिसतो.
  • Crowding threshold: पाच किंवा अधिक days to cover, जे वर दर्शवलेल्या liquid median पेक्षा बरेच जास्त आहे.
  • Momentum leg: शेवटच्या सहा पूर्ण नियमित सत्रांच्या closing prices मधील बदल, म्हणजेच पाच-सत्रांचा परतावा (return). एखादे सत्र विंडोमध्ये तेव्हाच येते जेव्हा benchmark tape मध्ये त्या सत्राचे पूर्ण दिवसाचे minute bars उपलब्ध असतात. जे सत्र अजूनही फीडमध्ये येत आहे, ते अर्धवट मोजण्याऐवजी थांबवले जाते, जेणेकरून विंडो कॅलेंडरपेक्षा एक सत्र मागे राहू शकते, जरी ते सत्र बंद झाले असले तरीही. किमती या regular-session closes आहेत.
  • दोन्ही तारखांना मर्यादा आहेत. वरचा पॅनेल प्रत्येक इनपुटचे दिवसांमधील वय साठवतो आणि त्या वयांना ठराविक मर्यादा असतात. एक महिन्यापेक्षा जुनी settlement print किंवा सामान्य ingest lag पेक्षा जास्त मागे असलेली price tape, ताजी हेडलाईन देऊन जुनी तारीख प्रकाशित करण्याऐवजी ही पाने रिव्ह्यूसाठी थांबवून ठेवते.
  • Exclusions. Leveraged आणि inverse exchange-traded funds सर्व पॅनेल मधून वगळले जातात (त्यांचा short interest हा प्रामुख्याने hedging मुळे असतो), तसेच एक संदिग्ध symbol देखील वगळला जातो ज्याचा वापर विक्रेत्यांच्या फीडमध्ये दोन कंपन्यांसाठी केला गेला आहे. किमतीतील बदल मोजणारे पॅनेल अशा नावांना वगळतात ज्यांच्या स्टॉक split मुळे त्या पॅनेलच्या मोजमाप विंडोमध्ये मोठा बदल दिसतो, कारण split मुळे मोठा बदल असल्याचा आभास होतो. बॅकटेस्टमध्ये, हे चाचणी settlement नुसार चालते, त्यामुळे एका महिन्यात झालेला split इतर महिन्यांतील एखाद्या नावाचे निरीक्षण (observations) काढून टाकत नाही.
  • या फाईलमध्ये operating companies सोबतच Funds देखील असतात. एखादा bond किंवा index ETF मध्ये मोठी short position असू शकते, जी कोणाही त्याविरुद्ध पैज लावण्याऐवजी creation-and-redemption प्रक्रियेमुळे असू शकते.
  • या फाईलमध्ये float किंवा share count नाही, आणि कुठेही options open interest नाही. वरचा shares-outstanding कॉलम वेगळ्या fundamentals टेबलमधून येतो, त्यामुळे ज्या कंपनीची market value प्रकाशित झालेली नाही, ती कंपनी त्या पॅनेल मधून वगळली जाते.
  • येथे दिलेली कोणतीही माहिती ही भविष्यवाणी किंवा शिफारस नाही. हे मोजता येण्याजोग्या परिस्थितीचे वर्णन करते, ज्यासोबत परिणाम दर्शवणारा पॅनेल जोडलेला आहे.

FAQ

short squeeze चे उमेदवार कसे शोधायचे?

एखाद्या शेअरचा daily volume च्या तुलनेत short-interest मोठा आहे का, हे पाहण्यासाठी exchange-reported short-interest file तपासा. त्यानंतर, फक्त पुरेसा liquidity असलेले शेअर्स निवडा आणि त्यांची किंमत आधीच वाढत आहे का ते तपासा. Jun 30, 2026 short-interest file च्या या screen मध्ये five or more days to cover, five million shares of average daily volume आणि positive five-session move या निकषांचा वापर केला आहे, ज्यामुळे 31 शेअर्स निवडले गेले आहेत.

कोणत्या short interest percentage मुळे squeeze होतो?

यासाठी कोणताही निश्चित आकडा नाही आणि जो कोणी तो सांगतोय तो केवळ अंदाज लावत आहे. Squeezes कोणत्याही range मध्ये असू शकतात, आणि अनेकदा काहीच घडत नाही: गेल्या एका वर्षातील settlement prints नुसार, या screen ने सूचित केलेल्या शेअर्सपैकी 51.7% शेअर्सची किंमत 30 दिवसांनंतर कमी झाली होती. High short interest ही एक पूर्वअट आहे, ती कधीही trigger नसते.

short interest डेटा किती जुना असतो?

येथे उपलब्ध असलेला सर्वात नवीन settlement Jun 30, 2026 चा आहे, जो 24 days पूर्वीचा आहे, आणि price data Jul 22, 2026 पर्यंत आहे. ही तफावत reporting cycle मुळे आहे, तो stale feed नाही: positions ची मोजणी महिन्यातून दोनदा केली जाते आणि प्रत्येक settlement date नंतर साधारण eight business days नंतर प्रकाशित केली जाते, त्यामुळे कुठेही मिळणारा प्रत्येक short-interest आकडा काही आठवड्यांचा जुना असतो.

सध्या कोणते शेअर्स सर्वाधिक short केलेले आहेत?

Days to cover आणि raw shares short नुसार असलेले unfiltered leaderboards the most shorted stocks page वर उपलब्ध आहेत. हे page एका मर्यादित प्रश्नाचे उत्तर देते: Jun 30, 2026 file मधील ज्या शेअर्सची किंमत वाढत आहे, त्यापैकी सर्वाधिक crowded शेअर MPT आहे, ज्याचा coverage 16.9 days आहे; हा या screen चा leader आहे, market चा सर्वाधिक short केलेला शेअर नाही.


प्रत्येक panel हे exchange-reported file वरील एक stored, versioned query आहे. कोणत्याही table खालील SQL विस्तारून पहा, किंवा Strasmore terminal वर तुमच्या स्वतःच्या thresholds सह screen चालवा.