Strasmore Research
مارکیٹ خلاصہ Matt Connorاز Matt Connor · اپ ڈیٹ شدہ 2026-07-24 · data as of July 24, 2026 · refreshed weekly

اس ہفتے Short Squeeze کے ممکنہ اسٹاکس

Days to cover اور shares short کی بنیاد پر Short squeeze اسٹاکس کی اسکریننگ، جس میں ہر حد کو سادہ الفاظ میں بیان کیا گیا ہے اور ساتھ ہی اس کے امکانات درج ہیں۔

شارٹ سکویز اسٹاکس کی اسکریننگ دو میکانکس کی بنیاد پر کی جاتی ہے: ایک ایسی شارٹ پوزیشن جو اسٹاک کی ٹریڈنگ کے مقابلے میں بڑی ہو، اور ایسی قیمت جو پہلے ہی بڑھ رہی ہو۔ یہ صفحہ ایکسچینج کی رپورٹ کردہ تازہ ترین شارٹ-انٹرسٹ فائل پر یہ اسکرین رناتا ہے، جس کی سیٹلمنٹ Jun 30, 2026 کو ہوئی، اور Jul 22, 2026 کو ختم ہونے والے پانچ سیشنز کے دوران قیمت کے رجحان کی پیمائش کرتا ہے۔ یہ وہ میکانکس ہیں جو ماضی کے سکویزز سے مشابہت رکھتے ہیں۔ یہاں موجود کوئی بھی معلومات پیش گوئی نہیں ہے، اور زیادہ تر ہیوی شارٹڈ اسٹاکس میں کبھی سکویز نہیں آتا۔

ناموں سے پہلے تاریخیں پڑھیں۔ ریگولیشن کی وجہ سے اس صفحے کا شارٹ-انٹرسٹ والا حصہ کئی ہفتے پرانا ہوتا ہے، یہ فیڈ کی کسی خرابی کی وجہ سے نہیں ہے: بروکرز اپنی شارٹ پوزیشنز کی رپورٹ FINRA کو مہینے میں دو بار مقررہ سیٹلمنٹ تاریخوں پر دیتے ہیں، اور مرتب شدہ فائل تقریباً آٹھ کاروباری دنوں کے بعد عوامی سطح پر آتی ہے۔ کسی کے لیے بھی دستیاب تازہ ترین پرنٹ Jun 30, 2026 کی تاریخ کا ہے، جو 24 دن پہلے کا ہے، جبکہ قیمت کا ڈیٹا Jul 22, 2026 تک چلتا ہے۔ اس وقفے کے دوران شارٹ سائیڈ نے جو کچھ بھی کیا وہ ہر اسکرینر کے لیے پوشیدہ ہے، بشمول اس کے۔ شارٹ انٹرسٹ ڈیٹا ہمیشہ دو ہفتے پرانا کیوں ہوتا ہے رپورٹنگ سائیکل کی مرحلہ وار وضاحت کرتا ہے۔

استفسار کریںاس اسکرین کے پیچھے تمام ان پٹ ڈیٹا اور ان کی مدت (دنوں میں)
ہر عدد کے پیچھے موجود درست 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

سیٹلمنٹ کے دو پرنٹس 39 اور 24 دن پیچھے ہیں، جو کہ دو ہفتہ وار کاؤنٹنگ سائیکل اور کمپائلیشن لیگ کا مجموعہ ہے۔ پرائس ٹیپ 2 دن پیچھے ہے، اور یہ ریگولیشن کے بجائے ویئر ہاؤس انجسٹ لیگ کی وجہ سے ہے۔ دونوں کی مدت کی حدود مقرر ہیں، اس لیے اگر فیڈ رک جائے تو یہ صفحہ نئی سرخی کے تحت پرانی تاریخ دوبارہ شائع کرنے کے بجائے موجودہ حالت میں رہتا ہے۔

شارٹ سکویز اسٹاکس کی فہرست: موجودہ اسکرین

نیچے دیے گئے تمام ناموں نے ایک ہی فائل پر یکساں معیار پورے کیے ہیں: اوسط روزانہ والیم پانچ ملین شیئرز، کور کرنے کے لیے پانچ یا اس سے زیادہ دن، اور Jul 22, 2026 کو ختم ہونے والے پانچ سیشنز کے دوران مثبت حرکت۔ 31 ناموں نے یہ تمام شرائط پوری کیں، اور ان میں سے 12 سب سے زیادہ ہجوم والے (crowded) نام یہاں دکھائے گئے ہیں۔ Days to cover کا مطلب ہے شارٹ فروخت کیے گئے شیئرز کو اوسط روزانہ والیم سے تقسیم کرنا: یعنی شارٹ سائیڈ کو اپنی پوزیشن واپس خریدنے کے لیے اسٹاک کے مکمل ٹیپ کے کتنے پورے دنوں کی ضرورت ہوگی۔

استفسار کریںSqueeze-shaped میکانکس: لیکویڈ ناموں میں زیادہ Short پوزیشنز اور بڑھتی ہوئی قیمت
ہر عدد کے پیچھے موجود درست 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

یہاں سب سے زیادہ ہجوم والا نام، MPT، 138.1 ملین شارٹ فروخت شدہ شیئرز میں سے 16.9 days to cover ظاہر کرتا ہے، اور یہ Jul 22, 2026 کو ختم ہونے والے پانچ سیشنز کے دوران 2.8% بڑھا۔ دکھائی گئی آخری قطار میں 6.4 days to cover درج ہے، جو کہ ڈسپلے کے کٹنے کی جگہ ہے نہ کہ اسکرین کی نچلی حد۔ رینکنگ سائز کے بجائے ہجوم (crowding) کی بنیاد پر ہے، لہذا پتلے ٹیپ پر ایک درمیانی پوزیشن، مصروف ٹیپ پر موجود بہت بڑی پوزیشن سے اوپر آتی ہے۔ سائز رینکنگ کے لیے، اس وقت سب سے زیادہ شارٹ کیے گئے اسٹاکس دونوں لیڈر بورڈز کو ساتھ ساتھ دکھاتا ہے۔

قیمتوں میں اضافے کی شرط کی ایک میکانکی وجہ ہے۔ سکویز دراصل شارٹ سیلرز کی جانب سے پوزیشنز بند کرنے کے لیے کی جانے والی مجبور خریداری ہے، اور شارٹ پوزیشن بند کرنے کا مطلب اسٹاک کو واپس خریدنا ہے، جو صرف تب شروع ہوتا ہے جب قیمت پوزیشن کے خلاف حرکت کرتی ہے۔ شارٹ سکویز کیسے کام کرتا ہے، جسے GameStop کے دو ہزار اکیس کے ریکارڈز کے ذریعے دیکھا گیا ہے، اعداد و شمار میں اس تسلسل کو ظاہر کرتا ہے۔

قوانین، اور ہر قانون کس چیز کو خارج کرتا ہے

ایک اسکرین نمبروں سے جڑی ایک رائے ہوتی ہے، لہذا یہاں اس کے میدان کی تفصیل دی گئی ہے۔

استفسار کریںمکمل سیٹلمنٹ فائل سے فلٹر شدہ لسٹ تک، مرحلہ وار رولز کے مطابق
ہر عدد کے پیچھے موجود درست 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' تلاش کرتے ہیں، لیکن یہ ڈیٹا اس میں موجود نہیں ہے۔ ایکسچینج فائل صرف 'shares short' اور 'average daily volume' کی رپورٹ کرتی ہے، جس میں کسی بھی قسم کے شیئرز کی کل تعداد شامل نہیں ہے۔ یہاں صرف 'total shares outstanding' کے مقابلے میں پوزیشن کا اندازہ لگایا جا سکتا ہے، جس کے لیے ہر کمپنی کی مارکیٹ ویلیو کو اس کی شیئر قیمت سے تقسیم کیا گیا ہے۔

استفسار کریںShares outstanding (نہ کہ float) کے مقابلے میں Short interest کی بنیاد پر رینک شدہ نام
ہر عدد کے پیچھے موجود درست 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 اس فہرست میں سب سے اوپر ہے، جس کے 'shares outstanding' کا 26.3% حصہ شارٹ کیا گیا ہے: موجودہ 113 ملین شیئرز کے مقابلے میں 29.9 ملین شیئرز شارٹ ہیں۔ دکھائے گئے 10 قطاریں ان کمپنیوں کی ہیں جن کے شیئرز کی تعداد شائع شدہ ہے، اور ان میں سب سے کم شرح 15.5% ہے۔ اس کالم کو ایک کم سے کم حد (floor) کے طور پر دیکھیں، نہ کہ 'float' نمبر کے طور پر۔ Float میں صرف ان شیئرز کی گنتی ہوتی ہے جو حقیقت میں خرید و فروخت کے لیے دستیاب ہوں، جس میں انسائیڈر حصص اور دیگر لاکڈ-اپ ہولڈنگز شامل نہیں ہوتیں۔ چونکہ 'float' کا ڈینومینیٹر چھوٹا ہوتا ہے، اس لیے 'float' کے مقابلے میں شارٹ کیے گئے شیئرز کی اصل فیصد دکھائی گئی ہر رقم سے زیادہ ہوتی ہے۔ یہ اضافہ کتنا ہوگا، اس کا انحصار ہر کمپنی کی ملکیت کی تفصیلات پر ہے، جو اس ڈیٹا ویئر ہاؤس میں موجود نہیں ہیں۔

کیا شارٹ کراؤڈنگ بڑھ رہی ہے یا کم ہو رہی ہے؟

ایک رپورٹ صرف ایک لمحے کی تصویر ہوتی ہے۔ لیکن یہی ڈیٹا کئی سالوں پر محیط ہے، اس لیے مارکیٹ کے اس وسیع سوال کا جواب ڈیٹا میں موجود ہے۔

استفسار کریں5+ اور 10+ days to cover والے لیکویڈ نام، ہر سیٹلمنٹ کے مطابق
ہر عدد کے پیچھے موجود درست 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 سیٹلمنٹس کے دوران، پانچ یا اس سے زیادہ days to cover والے لیکویڈ ناموں کی تعداد 58 سے بڑھ کر 96 ہو گئی۔ ڈسٹریبیوشن کا نایاب سرا اب بھی کافی کم ہے: تازہ ترین رپورٹ کے مطابق 5 نام دس یا اس سے زیادہ days to cover پر موجود تھے۔ میڈین لیکویڈ نام 1.87 دن ہے، جس کی وجہ سے پانچ دن کی حد من مانی ہونے کے بجائے بامعنی بن جاتی ہے۔ سب سے زیادہ days-to-cover والے اسٹاکس کا صفحہ اس انتہائی حد کو علیحدگی سے ٹریک کرتا ہے۔

عام طور پر آگے کیا ہوا

اس طرح کے اسکرینز بنانا آسان ہے اور ان کا ضرورت سے زیادہ تجزیہ کرنا بھی آسان ہے، اس لیے یہاں وہی اسکرین الٹی ترتیب میں چلائی گئی ہے، فائل سے اسی آفسیٹ پر۔ گزشتہ ایک سال میں ہر سیٹلمنٹ پرنٹ کے لیے، ان ناموں کو لیں جنہوں نے اس پرنٹ پر کراؤڈنگ گیٹ کلیئر کیا اور بیس کیلنڈر دنوں کے بعد ختم ہونے والے چھ سیشنز کے دوران بڑھ رہے تھے، جہاں یہ صفحہ آج موجود ہے، پھر پیمائش کریں کہ ہر ایک نے اگلے 30 کیلنڈر دنوں میں کیا کیا۔

استفسار کریںماضی کے تمام فلٹر شدہ نام اور اگلے 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

ان ناموں اور سیٹلمنٹ کے 51.7% مشاہدات 30 دنوں بعد نیچے ٹریڈ ہوئے۔ یہ تقریباً ایک سکہ اچھالنے جیسا ہے، اور یہی اس صفحے کی اصل سرخی ہے: شارٹ سیلرز اکثر درست ہوتے ہیں، اور 'crowded-plus-rising' ایک ایج کے بجائے صرف ایک سیٹ اپ کی وضاحت کرتا ہے۔ ٹیلز وہ جگہ ہیں جہاں ایک squeeze نظر آتا ہے، اور دونوں ہی پتلے ہیں۔ 68 مشاہدات میں پانچویں حصے سے زیادہ کی کمی آئی؛ 73 میں پانچویں حصے سے زیادہ کا اضافہ ہوا، جو کہ ایک حقیقی squeeze کا زون ہے۔ نمونے کے 87.8% حصے وہاں تک کبھی نہیں پہنچے۔

اس پینل کو ایک ڈسٹری بیوشن کے طور پر لیں، نہ کہ ٹریڈنگ کے نتیجے کے طور پر۔ یہ لاگتوں، borrow fees اور پوزیشن سائزنگ کو نظر انداز کرتا ہے، اور ہر نشان زدہ نام کو یکساں وزن دیتا ہے۔ دونوں لیگز ہر سیٹلمنٹ کی تاریخ کے بیس کیلنڈر دنوں بعد طے شدہ ہیں، وہی آفسیٹ جو یہ صفحہ استعمال کرتا ہے، لہذا ہر نشان زدہ نام ان قیمتوں پر مبنی ہے جو ایک قاری دیکھ سکتا تھا۔ سیٹلمنٹس کا ایک سال کا ڈیٹا ایک مختصر نمونہ ہے۔

اس کی پیمائش کیسے کی جاتی ہے

اوپر دیے گئے اعداد و شمار کے پیچھے موجود ہر قاعدہ اور استثنیٰ۔

  • short-interest فائل ایکسچینج کی رپورٹ کردہ ہوتی ہے اور مہینے میں دو بار جاری ہوتی ہے۔ یہاں استعمال ہونے والا ڈیٹا Jun 30, 2026، 24 دن پہلے سیٹل ہوا تھا۔ امریکہ میں روزانہ کی بنیاد پر short interest کا کوئی نمبر ظاہر نہیں کیا جاتا، صرف vendor کے اندازے ہوتے ہیں جو securities-lending ڈیٹا سے ماڈل کیے جاتے ہیں۔
  • لیکویڈیٹی فلور: اوسط روزانہ والیم کے پانچ ملین شیئرز، جیسا کہ اسی فائل میں رپورٹ کیا گیا ہے۔ اس کے بغیر فہرست ان microcaps سے بھر جائے گی جن کا days-to-cover ریڈنگ تقریباً صفر والیم کی وجہ سے غیر حقیقی طور پر زیادہ ہوتا ہے۔
  • Crowding تھریش ہولڈ: کور کرنے کے لیے پانچ یا اس سے زیادہ دن، جو اوپر دکھائے گئے لیکویڈ میڈین سے کافی زیادہ ہے۔
  • Momentum لیگ: گزشتہ چھ مکمل ریگولر سیشنز کی کلوزنگ قیمتوں کے درمیان تبدیلی، جو کہ پانچ سیشنز کا ریٹرن ہے۔ ایک سیشن ونڈو میں صرف تب شامل ہوتا ہے جب benchmark ٹیپ میں اس کے لیے ایک پورے دن کے منٹ بارز موجود ہوں۔ وہ سیشن جو ابھی فیڈ میں آ رہا ہو اسے ادھورا ناپنے کے بجائے روک لیا جاتا ہے، اس لیے ونڈو کیلنڈر سے ایک سیشن پیچھے ہو سکتی ہے چاہے وہ سیشن بند ہو چکا ہو۔ قیمتیں ریگولر سیشن کی کلوزنگ قیمتیں ہیں۔
  • دونوں تاریخیں محدود ہیں۔ اوپر والا پینل ہر ان پٹ کی عمر دنوں میں محفوظ کرتا ہے، اور ان کی عمروں کی معقول حدود مقرر ہیں۔ ایک ماہ سے زیادہ پرانی سیٹلمنٹ پرنٹ، یا نارمل ingest lag سے زیادہ پیچھے رہ جانے والی قیمت کی ٹیپ، اس صفحے کو تازہ سرخی کے تحت پرانی تاریخ شائع کرنے کے بجائے ریویو کے لیے روک دیتی ہے۔
  • استثنائی صورتیں۔ Leveraged اور inverse exchange-traded funds کو ہر پینل سے نکال دیا گیا ہے (ان کا short interest زیادہ تر ہیجنگ کا نتیجہ ہوتا ہے)، ساتھ ہی ایک مبہم سمبل کو بھی نکال دیا گیا ہے جسے vendor فیڈز نے دو کمپنیوں کے لیے دوبارہ استعمال کیا تھا۔ وہ پینلز جو قیمت کی نقل و حرکت کو ناپتے ہیں، اس نام کو بھی نکال دیتے ہیں جس کا stock split اس پینل کی اپنی پیمائش کی ونڈو کے اندر آتا ہے، کیونکہ split ایک بڑی نقل و حرکت کا دھوکہ دیتا ہے۔ backtest میں یہ ٹیسٹ ہر سیٹلمنٹ کے مطابق چلتا ہے، اس لیے ایک مہینے میں split ہونے سے کسی نام کے مشاہدات دوسرے مہینوں سے ختم نہیں ہوتے۔
  • اس فائل میں فنڈز، آپریٹنگ کمپنیوں کے ساتھ موجود ہوتے ہیں۔ ایک bond یا index ETF میں ایک بڑی short پوزیشن ہو سکتی ہے جو creation-and-redemption کے طریقہ کار سے پیدا ہوتی ہے نہ کہ اس لیے کہ کوئی اس کے خلاف شرط لگا رہا ہو۔
  • اس فائل میں کوئی float اور شیئرز کی تعداد موجود نہیں ہے، اور ویئر ہاؤس میں کہیں بھی options open interest موجود نہیں ہے۔ اوپر والا shares-outstanding کالم ایک علیحدہ fundamentals ٹیبل سے آتا ہے، اس لیے وہ نام جس کی شائع شدہ مارکیٹ ویلیو نہیں ہے، اس پینل سے نکل جاتا ہے۔
  • یہاں کوئی بھی چیز پیش گوئی یا سفارش نہیں ہے۔ یہ قابلِ پیمائش حالات کی وضاحت کرتا ہے، جس کے ساتھ outcome پینل منسلک ہے۔

اکثر پوچھے گئے سوالات (FAQ)

شارٹ سکویز (short squeeze) کے امیدوار کیسے تلاش کیے جاتے ہیں؟

ایکسچینج کی رپورٹ کردہ short-interest فائل کو اسکرین کریں تاکہ ایسی پوزیشن تلاش کی جا سکے جو اسٹاک کے روزانہ والیم کے مقابلے میں بڑی ہو، صرف وہی نام رکھیں جو ٹریڈنگ کے لیے کافی liquid ہوں، پھر چیک کریں کہ آیا قیمت پہلے ہی بڑھ رہی ہے۔ Jun 30, 2026 short-interest فائل کی اس اسکریننگ میں 'days to cover' پانچ یا اس سے زیادہ، اوسط روزانہ والیم پانچ ملین شیئرز، اور پانچ سیشنز کی مثبت موومنٹ کو معیار بنایا گیا ہے، جس کے نتیجے میں 31 نام باقی بچے۔

short interest کا کون سا فیصد سکویز کا باعث بنتا ہے؟

اس کے لیے کوئی جادوئی نمبر نہیں ہے، اور جو بھی ایسا کوئی نمبر بتاتا ہے وہ محض اندازہ لگا رہا ہے۔ سکویز رینج کے تمام ریڈنگز سے شروع ہوئے ہیں، اور اکثر اوقات کچھ بھی نہیں ہوتا: گزشتہ ایک سال کے سیٹلمنٹ پرنٹس کے مطابق، اس اسکریننگ میں نشان زدہ 51.7% نام 30 دن بعد نیچے تھے۔ زیادہ short interest ایک بنیادی شرط ہے، محرک (trigger) نہیں۔

short interest کا ڈیٹا کتنا پرانا ہوتا ہے؟

یہاں فائل میں موجود تازہ ترین سیٹلمنٹ کی تاریخ Jun 30, 2026 ہے، جو 24 دن پہلے کی ہے، اور قیمت کا ڈیٹا Jul 22, 2026 تک جاتا ہے۔ یہ فرق ڈیٹا فیڈ کے پرانے ہونے کے بجائے رپورٹنگ سائیکل کی وجہ سے ہے: پوزیشنز کی گنتی مہینے میں دو بار کی جاتی ہے اور ہر سیٹلمنٹ کی تاریخ کے تقریباً آٹھ کاروباری دنوں بعد شائع کی جاتی ہے، اس لیے کہیں بھی short-interest کا ہر عدد ملنے تک ہفتوں پرانا ہوتا ہے۔

اس وقت کن اسٹاکس میں سب سے زیادہ شارٹنگ کی گئی ہے؟

بغیر فلٹر کے لیڈر بورڈز، ایک 'days to cover' کے لحاظ سے اور دوسرا 'raw shares short' کے لحاظ سے، سب سے زیادہ شارٹ کیے گئے اسٹاکس کے صفحے پر موجود ہیں۔ یہ صفحہ ایک محدود سوال کا جواب دیتا ہے: Jun 30, 2026 فائل میں موجود ان ناموں میں جن کی قیمت بھی بڑھ رہی ہے، سب سے زیادہ ہجوم MPT میں ہے جس کا 'days to cover' 16.9 ہے، جو کہ اسکرین کا لیڈر ہے نہ کہ مارکیٹ کا سب سے زیادہ شارٹ کیا گیا اسٹاک۔


ہر پینل ایکسچینج کی رپورٹ کردہ فائل پر مبنی ایک اسٹورڈ، ورژن شدہ کوئری ہے۔ کسی بھی ٹیبل کے نیچے SQL کو پھیلائیں، یا Strasmore ٹرمینل پر اپنی اپنی حدود (thresholds) کے ساتھ اسکرین چلائیں۔