Strasmore Research
বাজারের সারসংক্ষেপ Matt Connorদ্বারা Matt Connor · আপডেট করা হয়েছে 2026-07-23 · data as of July 23, 2026 · refreshed weekly

সপ্তাহের সম্ভাব্য শর্ট স্কুইজ স্টকসমূহ

শেয়ারের দাম বৃদ্ধি এবং শর্ট পজিশনের পরিমাণ বিশ্লেষণ করে এই সপ্তাহের সম্ভাব্য শর্ট স্কুইজ স্টকগুলো এখানে দেওয়া হয়েছে। প্রতিটি ডেটা এবং সম্ভাবনা বিস্তারিত দেখুন।

Short squeeze স্টকগুলোকে দুটি বিষয়ের ভিত্তিতে যাচাই করা হয়: শেয়ারের লেনদেনের তুলনায় শর্ট পজিশন বা স্বল্প বিক্রির পরিমাণ অনেক বেশি থাকা এবং শেয়ারের দাম ইতিমধ্যে বাড়তে থাকা। এই পৃষ্ঠাটি সর্বশেষ এক্সচেঞ্জ-রিপোর্টেড শর্ট-ইন্টারস্ট ফাইল, যা Jun 30, 2026 তারিখে সেটেল হয়েছে, তার ওপর ভিত্তি করে এই যাচাই প্রক্রিয়াটি চালায়। এছাড়া Jul 21, 2026 তারিখে সমাপ্ত শেষ পাঁচটি সেশনের মধ্যে দামের পরিবর্তন পরিমাপ করে। এই প্রক্রিয়াগুলো অতীতের squeeze বা শর্ট স্কুইজ ঘটনার মতো। এখানে থাকা কোনো তথ্যই পূর্বাভাস নয়, এবং যে স্টকগুলোতে সবচেয়ে বেশি শর্ট পজিশন থাকে, সেগুলোর বেশিরভাগই কখনো squeeze হয় না।

নামের আগে তারিখগুলো দেখে নিন। নিয়ম অনুযায়ী এই পৃষ্ঠার শর্ট-ইন্টারস্ট সংক্রান্ত তথ্য কয়েক সপ্তাহ পুরনো, যা ডেটা ফিডের কোনো ত্রুটি নয়: ব্রোকাররা FINRA-কে প্রতি মাসে দুবার নির্ধারিত সেটেলমেন্ট ডেটে তাদের শর্ট পজিশন রিপোর্ট করে এবং সংকলিত ফাইলটি প্রায় আটটি ব্যবসায়িক দিন পরে প্রকাশ করা হয়। সবার জন্য উপলব্ধ সবচেয়ে সাম্প্রতিক তথ্যটি Jun 30, 2026, 23 দিন আগের, যেখানে প্রাইস লেগ বা দামের পরিবর্তন Jul 21, 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

দুটি সেটেলমেন্ট প্রিন্ট 38 এবং 23 দিন আগের, যা হলো দ্বিমাসিক গণনা চক্র এবং সংকলনের বিলম্বের যোগফল। প্রাইস টেপ 2 দিন আগের, যা মূলত ডেটা স্টোরেজে জমা হওয়ার বিলম্বের কারণে ঘটে, কোনো নিয়মগত কারণে নয়। উভয় ক্ষেত্রেই সময়ের একটি সীমা রয়েছে, তাই কোনো ফিড আটকে গেলে এই পৃষ্ঠাটি পুরনো তারিখ নিয়েই থাকবে, নতুন শিরোনামে পুরনো ডেটা পুনরায় প্রকাশ করবে না।

Short squeeze stocks তালিকা: বর্তমান স্ক্রিন

নিচের প্রতিটি নাম একই শর্ত পূরণ করেছে: দৈনিক গড় ভলিউম পাঁচ মিলিয়ন শেয়ার, কভার করার জন্য পাঁচ বা তার বেশি দিন, এবং Jul 21, 2026 তারিখে শেষ হওয়া পাঁচটি সেশনে ইতিবাচক মুভমেন্ট। 36 নামগুলো এই সব শর্ত পূরণ করেছে এবং তাদের মধ্যে সবচেয়ে বেশি জনাকীর্ণ 12 নাম এখানে দেখানো হয়েছে। Days to cover হলো শর্ট সেল করা শেয়ারকে দৈনিক গড় ভলিউম দিয়ে ভাগ করার ফল: শর্ট পজিশনটি পুনরায় কেনা শেষ করতে স্টকের সম্পূর্ণ লেনদেনের কতটি পূর্ণ দিন প্রয়োজন হবে তা এটি নির্দেশ করে।

কুয়েরিSqueeze মেকানিক্স: ক্রমবর্ধমান মূল্যের সাথে লিকুইড স্টকের মধ্যে শর্ট পজিশন জমার প্রবণতা
প্রতিটি সংখ্যার পেছনের সঠিক 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 দিন কভার করতে প্রয়োজন এবং Jul 21, 2026 তারিখে শেষ হওয়া পাঁচটি সেশনে এটি 5.4% বৃদ্ধি পেয়েছে। প্রদর্শিত শেষ সারিটি হলো 6.5 দিন কভার, যা স্ক্রিনের নিচের সীমার পরিবর্তে প্রদর্শনের সীমাবদ্ধতার কারণে দেখা যাচ্ছে। র‍্যাঙ্কিং করা হয়েছে জনাকীর্ণতার ভিত্তিতে, আকার বা সাইজের ভিত্তিতে নয়; তাই একটি কম লেনদেনের স্টকে মাঝারি পজিশন একটি ব্যস্ত স্টকের অনেক বড় পজিশনের চেয়ে উপরে থাকবে। সাইজ র‍্যাঙ্কিংয়ের জন্য, the most shorted stocks right now উভয় লিডারবোর্ড পাশাপাশি প্রদর্শন করে।

দাম বৃদ্ধির শর্তটির একটি যান্ত্রিক কারণ রয়েছে। শর্ট সেলাররা তাদের পজিশন বন্ধ করার জন্য জোরপূর্বক শেয়ার কেনার প্রক্রিয়াকেই squeeze বলা হয়। শর্ট পজিশন বন্ধ করার অর্থ হলো শেয়ারটি পুনরায় কেনা, যা কেবল তখনই শুরু হয় যখন দাম পজিশনের বিপরীতে মুভ করে। GameStop-এর ২০২১ সালের রেকর্ড অনুযায়ী How a short squeeze works সংখ্যাতাত্ত্বিকভাবে এই প্রক্রিয়াটি ব্যাখ্যা করে।

নিয়মাবলি এবং প্রতিটি নিয়ম যা বাদ দেয়

একটি স্ক্রিন হলো সংখ্যার ভিত্তিতে তৈরি একটি মতামত, তাই এখানেই ফিল্ড বা ক্ষেত্রগুলো নির্ধারিত হয়।

কুয়েরিসম্পূর্ণ সেটেলমেন্ট ফাইল থেকে স্ক্রিন করা তালিকা পর্যন্ত প্রতিটি নিয়ম অনুযায়ী
প্রতিটি সংখ্যার পেছনের সঠিক 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 সিকিউরিটিজ থাকে। লিকুইডিটি ফ্লোর এবং এক্সক্লুশন লিস্টের মাধ্যমে 885 অবশিষ্ট থাকে, ক্রাউডিং থ্রেশহোল্ড সেটি কমিয়ে 96 করে ফেলে, এবং রাইজিং-প্রাইস গেট শেষে 36 অবশিষ্ট রাখে। প্রতিটি থ্রেশহোল্ড একটি পছন্দ, এবং ভিন্ন পছন্দ ভিন্ন তালিকা তৈরি করে। এই কারণেই নিয়মগুলো কোনো পাদটীকা হিসেবে না থেকে সরাসরি পৃষ্ঠায় উল্লেখ করা হয়।

প্রতিটি কোম্পানির কতটুকু শেয়ার শর্ট সেল করা হয়েছে

বেশিরভাগ মানুষ শেয়ারের ফ্লোট (float) এর শতাংশ হিসেবে শর্ট ইন্টারেস্ট বা স্বল্প বিক্রয় আগ্রহের পরিমাণ খোঁজেন, যা এই তথ্যে নেই। এক্সচেঞ্জ ফাইলগুলোতে শর্ট শেয়ার এবং গড় দৈনিক ভলিউম রিপোর্ট করা হয়, কিন্তু কোনো ধরনের শেয়ার সংখ্যা দেওয়া থাকে না। এখান থেকে শুধুমাত্র মোট ইস্যু করা শেয়ারের (total shares outstanding) বিপরীতে পজিশন নির্ণয় করা সম্ভব, যেখানে প্রতিটি কোম্পানির বাজার মূল্যকে তার শেয়ারের দাম দিয়ে ভাগ করা হয়।

কুয়েরিশেয়ার আউটস্ট্যান্ডিং-এর বিপরীতে শর্ট ইন্টারেস্ট অনুযায়ী স্ক্রিন করা নামসমূহ
প্রতিটি সংখ্যার পেছনের সঠিক 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% শতাংশ শর্ট সেল করার মাধ্যমে তালিকার শীর্ষে রয়েছে: বিদ্যমান 113 মিলিয়ন শেয়ারের বিপরীতে 29.9 মিলিয়ন শেয়ার শর্ট সেল করা হয়েছে। প্রদর্শিত 10টি সারি হলো সেই সব স্ক্রিন করা কোম্পানির মধ্যে সবচেয়ে বড় রিডিং যাদের প্রকাশিত শেয়ার সংখ্যা রয়েছে, এবং তাদের মধ্যে শেষটির মান হলো 15.5%। এই কলামটিকে সর্বনিম্ন সীমা হিসেবে বিবেচনা করবেন, কখনোই ফ্লোট সংখ্যা হিসেবে নয়। Float শুধুমাত্র সেই শেয়ারগুলো গণনা করে যা প্রকৃতপক্ষে হস্তান্তরিত হয়, যেখানে ইনসাইডার হোল্ডিং এবং অন্যান্য লক-আপ হোল্ডিং বাদ দেওয়া হয়। ফ্লোট হলো একটি ছোট হরে (denominator), তাই ফ্লোটের প্রকৃত শর্ট সেল শতাংশ এখানে দেখানো প্রতিটি সংখ্যার চেয়ে বেশি। এটি কতটা বেশি হবে তা প্রতিটি কোম্পানির মালিকানার ওপর নির্ভর করে, যা এই ডেটাবেজে নেই।

শর্ট ক্রাউডিং কি বাড়ছে নাকি কমছে?

একটি রিপোর্ট একটি স্থির চিত্রের মতো। একই ফাইল কয়েক বছর ধরে সংরক্ষিত আছে, তাই বাজারের এই প্রশ্নের একটি তথ্যভিত্তিক উত্তর রয়েছে।

কুয়েরি৫+ এবং ১০+ দিন কভার করার মতো লিকুইড নামসমূহ, সেটেলমেন্ট অনুযায়ী
প্রতিটি সংখ্যার পেছনের সঠিক 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 সেটেলমেন্টের মধ্যে, যে সব লিকুইড স্টকের কভারেজ নিতে পাঁচ দিন বা তার বেশি সময় লাগে তাদের সংখ্যা 58 থেকে বেড়ে 96 হয়েছে। ডিস্ট্রিবিউশনের প্রান্তভাগটি এখনও অনেক পাতলা: সর্বশেষ রিপোর্টে 5টি স্টকের কভারেজ নিতে দশ দিন বা তার বেশি সময় লাগে। মিডিয়ান লিকুইড স্টকের কভারেজ সময় হলো 1.87 দিন, যা পাঁচ দিনের থ্রেশহোল্ডটিকে যথেচ্ছ না করে অর্থবহ করে তোলে। সবচেয়ে বেশি days-to-cover স্টক পেজটি সেই চরম প্রান্তভাগটি আলাদাভাবে ট্র্যাক করে।

সাধারণত এরপর যা ঘটে থাকে

এই ধরনের স্ক্রিন তৈরি করা সহজ কিন্তু এর ভুল ব্যাখ্যা করার সম্ভাবনাও বেশি। তাই এখানে একই স্ক্রিনটি উল্টোভাবে দেখানো হয়েছে, যা ফাইলের একই অফসেটে অবস্থিত। গত এক বছরে প্রতিটি সেটেলমেন্ট প্রিন্টের জন্য, সেই প্রিন্টে ক্রাউডিং গেট অতিক্রম করা এবং পরবর্তী ২০ ক্যালেন্ডার দিন পর্যন্ত ক্রমবর্ধমান ছিল এমন নামগুলো নিন (যা আজকের এই পৃষ্ঠার অবস্থান)। এরপর পরবর্তী ৩০ ক্যালেন্ডার দিনে প্রতিটি নামের পারফরম্যান্স পরিমাপ করুন।

কুয়েরিঅতীতের প্রতিটি স্ক্রিন করা নাম এবং পরবর্তী ৩০ দিনে তার পারফরম্যান্স
প্রতিটি সংখ্যার পেছনের সঠিক 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%টি ৩০ দিন পরে কম দামে ট্রেড করেছে। এটি একটি মুদ্রার দুই পিঠের মতো সমতুল্য, যা এই পৃষ্ঠার প্রকৃত সারসংক্ষেপ: শর্ট সেলাররা প্রায়শই সঠিক হন এবং 'crowded-plus-rising' কোনো বিশেষ সুবিধা (edge) নয় বরং একটি সেটআপ মাত্র। স্কুইজ (squeeze) যেখানে দেখা যায় সেই প্রান্তগুলো অত্যন্ত পাতলা। 68টি পর্যবেক্ষণ এক পঞ্চমাংশের বেশি কমেছে; 73টি এক পঞ্চমাংশের বেশি বেড়েছে, যা একটি প্রকৃত স্কুইজের ক্ষেত্র। 87.8%টি নমুনাটি কখনোই সেই পর্যায়ে পৌঁছায়নি।

এই প্যানেলটিকে একটি ডিস্ট্রিবিউশন হিসেবে বিবেচনা করুন, কোনো ট্রেডিং ফলাফল হিসেবে নয়। এটি খরচ, ধার করার ফি এবং পজিশন সাইজিং উপেক্ষা করে এবং প্রতিটি চিহ্নিত নামকে একইভাবে গুরুত্ব দেয়। উভয় অংশই প্রতিটি সেটেলমেন্ট তারিখের ২০ ক্যালেন্ডার দিন পরে নির্ধারিত, যা এই পৃষ্ঠায় ব্যবহৃত একই অফসেট। ফলে প্রতিটি চিহ্নিত নাম এমন সব মূল্যের ওপর ভিত্তি করে দাঁড়িয়ে আছে যা একজন পাঠক দেখতে পেতেন। এক বছরের সেটেলমেন্ট একটি সংক্ষিপ্ত নমুনা।

এটি যেভাবে পরিমাপ করা হয়

উপরের সংখ্যাগুলোর পেছনের প্রতিটি নিয়ম এবং বর্জনীয় বিষয়।

  • Short-interest ফাইলটি এক্সচেঞ্জ দ্বারা রিপোর্ট করা হয় এবং এটি প্রতি মাসে দুবার প্রকাশ করা হয়। এখানে ব্যবহৃত তথ্যটি Jun 30, 2026, 23 দিন আগে নিষ্পত্তি করা হয়েছে। মার্কিন যুক্তরাষ্ট্রে প্রতিদিনের শর্ট ইন্টারেস্ট সংখ্যা প্রকাশ করা হয় না; শুধুমাত্র সিকিউরিটিজ-লেন্ডিং ডেটা থেকে মডেল করা ভেন্ডর এস্টিমেট বা ভেন্ডরদের অনুমান পাওয়া যায়।
  • Liquidity floor: গড় দৈনিক ভলিউমের পাঁচ মিলিয়ন শেয়ার, যা একই ফাইলে রিপোর্ট করা হয়েছে। এটি না থাকলে তালিকায় এমন সব মাইক্রো-ক্যাপ কোম্পানি চলে আসবে যাদের বিশাল 'days-to-cover' রিডিং আসলে প্রায় শূন্য ভলিউমের একটি কৃত্রিম ফলাফল।
  • Crowding threshold: পাঁচটি বা তার বেশি days to cover, যা উপরে দেখানো লিকুইড মিডিয়ানের চেয়ে অনেক বেশি।
  • Momentum leg: শেষ ছয়টি পূর্ণাঙ্গ রেগুলার সেশনের ক্লোজিং প্রাইসের মধ্যে পরিবর্তন, যা একটি পাঁচ-সেশনের রিটার্ন। একটি সেশন উইন্ডোতে তখনই অন্তর্ভুক্ত হয় যখন বেঞ্চমার্ক টেপে তার পূর্ণাঙ্গ একদিনের মিনিট বার (minute bars) পাওয়া যায়। যে সেশনটি এখনও ফিডে আসছে, সেটিকে অর্ধেক সম্পন্ন অবস্থায় পরিমাপ না করে স্থগিত রাখা হয়; ফলে ক্যালেন্ডারের তুলনায় উইন্ডোটি এক সেশন পিছিয়ে থাকতে পারে, এমনকি সেই সেশনটি শেষ হয়ে গেলেও। প্রাইস হলো রেগুলার-সেশনের ক্লোজিং প্রাইস।
  • উভয় তারিখই সীমাবদ্ধ। উপরের প্যানেলটি প্রতিটি ইনপুট কত দিন পুরনো তা সংরক্ষণ করে এবং সেই দিনগুলোর একটি নির্দিষ্ট সীমা থাকে। এক মাসের বেশি পুরনো সেটেলমেন্ট প্রিন্ট, অথবা স্বাভাবিক ইনজেস্ট ল্যাগ (ingest lag) এর চেয়ে বেশি পিছিয়ে থাকা প্রাইস টেপ, নতুন শিরোনামের নিচে পুরনো তারিখ প্রকাশ করার পরিবর্তে এই পেজটিকে পর্যালোচনার জন্য আটকে রাখে।
  • বর্জনীয় বিষয় (Exclusions)। লেভারেজড এবং ইনভার্স এক্সচেঞ্জ-ট্রেডেড ফান্ডগুলোকে প্রতিটি প্যানেল থেকে বাদ দেওয়া হয় (তাদের শর্ট ইন্টারেস্ট মূলত হেজিংয়ের একটি ফলাফল), সেই সাথে একটি অস্পষ্ট সিম্বলকেও বাদ দেওয়া হয় যা ভেন্ডর ফিড দুটি ভিন্ন কোম্পানির জন্য পুনরায় ব্যবহার করেছে। যে প্যানেলগুলো প্রাইস মুভ পরিমাপ করে, সেখান থেকে সেই কোম্পানিকেও বাদ দেওয়া হয় যার স্টক স্প্লিট ওই প্যানেলের নিজস্ব পরিমাপের উইন্ডোর মধ্যে পড়ে, কারণ একটি স্প্লিট বড় মুভমেন্টের ভুয়া চিত্র তৈরি করে। ব্যাকটেস্টের ক্ষেত্রে এই পরীক্ষাটি প্রতিটি সেটেলমেন্ট অনুযায়ী চলে, তাই এক মাসের স্প্লিট অন্য মাসের কোনো অবজারভেশনকে বাদ করে দেয় না।
  • অপারেটিং কোম্পানিগুলোর পাশাপাশি ফান্ডগুলোও এই ফাইলে থাকে। একটি বন্ড বা ইনডেক্স ETF বড় শর্ট পজিশন ধারণ করতে পারে যা কারো বেটিং করার চেয়ে ক্রিয়েশন-অ্যান্ড-রিডেম্পশন প্রক্রিয়ার কারণে হয়ে থাকে।
  • এই ফাইলে কোনো float বা শেয়ার সংখ্যা নেই, এবং কোনো অপশন ওপেন ইন্টারেস্টও নেই। উপরের শেয়ার-আউটস্ট্যান্ডিং কলামটি একটি আলাদা ফান্ডামেন্টাল টেবিল থেকে আসে, তাই যে কোম্পানির মার্কেট ভ্যালু প্রকাশিত নেই, সেটি সেই প্যানেল থেকে বাদ পড়ে যায়।
  • এখানে যা কিছু আছে তা কোনো ভবিষ্যদ্বাণী বা সুপারিশ নয়। এটি পরিমাপযোগ্য পরিস্থিতি বর্ণনা করে, যার সাথে ফলাফল প্যানেলটি যুক্ত থাকে।

FAQ

আপনি কীভাবে শর্ট স্কুইজ (short squeeze) হওয়ার মতো স্টক খুঁজে পাবেন?

এক্সচেঞ্জ-রিপোর্টেড শর্ট-ইন্টারেস্ট ফাইলটি স্ক্যান করুন এবং স্টকের দৈনিক ভলিউমের তুলনায় বড় পজিশনগুলো চিহ্নিত করুন। শুধুমাত্র সেই স্টকগুলো নির্বাচন করুন যেগুলোর ট্রেড করার মতো পর্যাপ্ত লিকুইডিটি আছে, এরপর দেখুন যে দাম ইতিমধ্যে বাড়ছে কি না। Jun 30, 2026 শর্ট-ইন্টারেস্ট ফাইলের এই স্ক্রিনিং পদ্ধতিতে পাঁচটি বা তার বেশি দিন কভার করার সময় (days to cover), পাঁচ মিলিয়ন শেয়ারের গড় দৈনিক ভলিউম এবং একটি পজিটিভ ফাইভ-সেশন মুভ ব্যবহার করা হয়েছে, যার ফলে 36 টি নাম বাদ পড়েছে।

কত শতাংশ শর্ট ইন্টারেস্ট থাকলে স্কুইজ ঘটে?

এর জন্য কোনো নির্দিষ্ট সংখ্যা নেই এবং কেউ যদি কোনো সংখ্যা উল্লেখ করে তবে তা কেবল একটি অনুমান। বিভিন্ন মাত্রার রিডিং থেকে স্কুইজ শুরু হতে পারে, তবে বেশিরভাগ ক্ষেত্রে কিছুই ঘটে না: গত এক বছরের সেটেলমেন্ট প্রিন্টের ভিত্তিতে, এই স্ক্রিনিংয়ে চিহ্নিত করা নামগুলোর মধ্যে 51.7% টি ৩০ দিন পরে আরও নিচে নেমে গিয়েছিল। উচ্চ short interest একটি পূর্বশর্ত মাত্র, এটি কোনো ট্রিগার নয়।

শর্ট ইন্টারেস্ট ডেটা কতটা পুরনো?

এখানে থাকা সর্বশেষ সেটেলমেন্টের তারিখ হলো Jun 30, 2026, যা 23 দিন আগের। আর প্রাইস ডেটা Jul 21, 2026 পর্যন্ত পাওয়া যায়। এই ব্যবধানটি রিপোর্টিং সাইকেলের কারণে, এটি কোনো পুরনো ডেটা নয়: পজিশনগুলো মাসে দুবার গণনা করা হয় এবং প্রতিটি সেটেলমেন্ট ডেটের প্রায় আটটি বিজনেস দিন পরে প্রকাশ করা হয়। তাই যেকোনো শর্ট-ইন্টারেস্ট ডেটা যখন পাওয়া যায়, তখন তা কয়েক সপ্তাহের পুরনো হয়ে থাকে।

বর্তমানে কোন স্টকগুলোর শর্ট ইন্টারেস্ট সবচেয়ে বেশি?

ডেজ টু কভার (days to cover) এবং মোট শর্ট শেয়ারের ভিত্তিতে আনফিল্টারড লিডারবোর্ডগুলো the most shorted stocks page এ পাওয়া যাবে। এই পৃষ্ঠাটি একটি নির্দিষ্ট প্রশ্নের উত্তর দেয়: Jun 30, 2026 ফাইলের সেই স্টকগুলোর মধ্যে যেগুলোর দাম বাড়ছে, তার মধ্যে সবচেয়ে বেশি জনাকীর্ণ স্টক হলো MPT যার কভার করার সময় হলো 16.9 দিন; এটি এই স্ক্রিনিংয়ের শীর্ষে রয়েছে, তবে এটি বাজারের সবচেয়ে বেশি শর্ট করা স্টক নয়।


প্রতিটি প্যানেল হলো এক্সচেঞ্জ-রিপোর্টেড ফাইলের ওপর ভিত্তি করে একটি সংরক্ষিত এবং ভার্সনযুক্ত কুয়েরি। যেকোনো টেবিলের নিচের SQL এক্সপ্যান্ড করুন, অথবা Strasmore টার্মিনালে আপনার নিজস্ব থ্রেশহোল্ড দিয়ে স্ক্রিনটি চালান।