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

২০২৬ সালের সেরা লাভজনক ও লোকসানে থাকা স্টকসমূহ

২০২৬ সালের সবচেয়ে বেশি লাভজনক এবং লোকসানে থাকা স্টকগুলোর তালিকা। স্টক স্প্লিট এবং লেভারেজড ফান্ড বাদ দিয়ে সরাসরি এক্সচেঞ্জ টেপ থেকে এই র‍্যাঙ্কিং করা হয়েছে।

২০২৬ সালের এ পর্যন্ত সেরা পারফর্মিং স্টকগুলোর শীর্ষে রয়েছে SNDK, যা বছরের প্রথম সেশন থেকে সর্বশেষ সম্পন্ন হওয়া সেশন পর্যন্ত 550.2% বৃদ্ধি পেয়েছে। এই পৃষ্ঠাটি ২০২৬ সালের সবচেয়ে বেশি লাভজনক এবং লোকসানে থাকা স্টকগুলোর র‍্যাঙ্কিং প্রদান করে। এই তালিকাটি ভেন্ডর সামারি বা সারসংক্ষেপের পরিবর্তে সরাসরি এক্সচেঞ্জ টেপ থেকে সংগৃহীত প্রকৃত লেনদেন করা নামগুলোর ওপর ভিত্তি করে তৈরি করা হয়েছে এবং বছরের কার্যক্রম চলাকালীন এটি নিয়মিত আপডেট করা হয়। র‍্যাঙ্কিং করার আগে স্টক স্প্লিট এবং লেভারেজড ফান্ডগুলো বাদ দেওয়া হয়, যা অধিকাংশ বছরের এ পর্যন্ত (year-to-date) তালিকায় ভুল হিসেবে গণ্য হয়।

২০২৬ সালের সবচেয়ে বেশি লাভজনক স্টকসমূহ

নিচে তালিকাভুক্ত প্রতিটি স্টকের র‍্যাঙ্কিং করার আগে তার তারল্য সীমা (liquidity floor) যাচাই করা হয়েছে: গত এক মাসে প্রতিটি লেনদেন সম্পন্ন হওয়া সেশনে গড়ে অন্তত ১০০ মিলিয়ন ডলারের স্টক লেনদেন হয়েছে। যে স্টকের লেনদেন নেই, সেখানে বড় শতাংশ বৃদ্ধি কেবল একটি উদ্ধৃতি মাত্র, প্রকৃত ফলাফল নয়।

কুয়েরি২০২৬ সালের সর্বোচ্চ লাভজনক স্টক: উচ্চ লেনদেনকৃত নামগুলোর মধ্যে এ বছরের সেরা দশটি
প্রতিটি সংখ্যার পেছনের সঠিক SQL
WITH complete AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= toDateTime('2026-01-01 00:00:00')
      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 d
    HAVING count() >= 380
),
universe AS (
    SELECT ticker,
           sum(toFloat64(close) * toFloat64(volume)) / uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) AS adv
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= now() - INTERVAL 21 DAY
      AND toDate(toTimeZone(window_start, 'America/New_York')) >= today() - 20
      AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT d FROM complete)
      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
    HAVING adv >= 100000000
),
edges AS (
    SELECT ticker,
        argMinIf(toFloat64(open), toTimeZone(window_start, 'America/New_York'), toDate(toTimeZone(window_start, 'America/New_York')) = (SELECT min(d) FROM complete)) AS year_open,
        argMaxIf(toFloat64(close), toTimeZone(window_start, 'America/New_York'), toDate(toTimeZone(window_start, 'America/New_York')) = (SELECT max(d) FROM complete)) AS latest_close,
        countIf(toDate(toTimeZone(window_start, 'America/New_York')) = (SELECT min(d) FROM complete)) AS bars_open,
        countIf(toDate(toTimeZone(window_start, 'America/New_York')) = (SELECT max(d) FROM complete)) AS bars_close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ((window_start >= toDateTime('2026-01-01 00:00:00') AND window_start < toDateTime('2026-01-10 00:00:00'))
        OR (window_start >= now() - INTERVAL 8 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
      AND ticker NOT IN ('SPCX')
      AND ticker NOT IN ('KORU','SOXL','SOXS','SOXY','TQQQ','SQQQ','QQQU','SPXL','SPXS','UPRO','SPXU','SPYU','LABU','LABD','FAS','FAZ','TNA','TZA','YINN','YANG','UDOW','SDOW','BOIL','KOLD','UCO','SCO','USD','SSO','SDS','QLD','QID','ERX','ERY','DRN','DRV','CURE','MUU','SNXX','UVXY','SVXY','UVIX','SVIX','BULZ','WEBL','WEBS','DPST','DRIP','GUSH','AGQ','ZSL','GDXU','GDXD','FNGU','FNGD','DUST','JNUG','JDST','NUGT','BITX','BITU','SBIT','ETHU','ETHT','NVDL','NVDS','NVD','NVDX','NVDU','NVDD','NVDQ','TSLL','TSLQ','TSLZ','TSLR','TSLT','TSLS','TSDD','AAPU','AAPD','MSFU','MSFD','GGLL','GGLS','AMZU','AMZD','METU','METD','PLTU','PLTD','SMCX','SMCZ','CONL','CONI','MSTX','MSTU','MSTZ','BRKU','AMDL','AMUU','AMDD','ELIL','ELIS','HOOX','AVGX','AVGU','TSMX','TSMZ','MULL')
      AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits
                         WHERE execution_date BETWEEN toDate('2026-01-01') AND today())
    GROUP BY ticker
    HAVING bars_open >= 100 AND bars_close >= 100
)
SELECT e.ticker AS ticker,
    round((e.latest_close / e.year_open - 1) * 100, 1) AS ytd_return_pct,
    round(u.adv / 1e6, 0) AS avg_daily_dollar_m
FROM edges AS e
INNER JOIN universe AS u ON e.ticker = u.ticker
WHERE e.year_open >= 10
ORDER BY (e.latest_close / e.year_open) DESC
LIMIT 10

SNDK 550.2% শতাংশ বৃদ্ধি নিয়ে বছরের শীর্ষে রয়েছে, এরপর যথাক্রমে 382.4% শতাংশ বৃদ্ধি নিয়ে MXL এবং 370.6% শতাংশ বৃদ্ধি নিয়ে AEHR তৃতীয় স্থানে রয়েছে। তালিকার দশম স্থানে থাকা SYRE এখনও 213.2% শতাংশ বৃদ্ধি পেয়েছে, তাই পুরো তালিকাটি যেকোনো ব্রড ইনডেক্স বা সূচকের তুলনায় অনেক এগিয়ে রয়েছে।

প্রতিটি মুভমেন্টের পাশের ডলার কলামটি শতাংশের মতোই গুরুত্বপূর্ণ তথ্য বহন করে। SYRE প্রতিদিন গড়ে প্রায় $100 মিলিয়ন টার্নওভার করে। তালিকার শীর্ষে থাকা SNDK গড়ে $18782 মিলিয়ন টার্নওভার করে। এখানে প্রতিটি স্টকের প্রতিদিনের লেনদেন ১০০ মিলিয়ন ডলার ছাড়িয়ে যায় এবং এই সীমার উপরের পরিসরটি এতই বড় যে, একই শতাংশ বৃদ্ধি তালিকার দুই প্রান্তে ভিন্ন ভিন্ন অর্থ বহন করতে পারে। কম লেনদেনের স্টক বা 'thin name' এর দাম বাড়ানো সহজ কিন্তু স্ক্রিনে দেখানো দামে তা থেকে বের হওয়া কঠিন।

২০২৬ সালের সবচেয়ে বেশি দরপতন ঘটা শেয়ারসমূহ

একই মাপকাণ্ড, তবে বিপরীতভাবে: একই তারল্য সীমা অতিক্রম করা শেয়ারগুলোর মধ্যে বছরের শুরু থেকে এখন পর্যন্ত সবচেয়ে বেশি দরপতন।

কুয়েরি২০২৬ সালের সর্বোচ্চ লোকসানে থাকা স্টক: উচ্চ লেনদেনকৃত নামগুলোর মধ্যে এ বছরের দশটি সবচেয়ে খারাপ
প্রতিটি সংখ্যার পেছনের সঠিক SQL
WITH complete AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= toDateTime('2026-01-01 00:00:00')
      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 d
    HAVING count() >= 380
),
universe AS (
    SELECT ticker,
           sum(toFloat64(close) * toFloat64(volume)) / uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) AS adv
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= now() - INTERVAL 21 DAY
      AND toDate(toTimeZone(window_start, 'America/New_York')) >= today() - 20
      AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT d FROM complete)
      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
    HAVING adv >= 100000000
),
edges AS (
    SELECT ticker,
        argMinIf(toFloat64(open), toTimeZone(window_start, 'America/New_York'), toDate(toTimeZone(window_start, 'America/New_York')) = (SELECT min(d) FROM complete)) AS year_open,
        argMaxIf(toFloat64(close), toTimeZone(window_start, 'America/New_York'), toDate(toTimeZone(window_start, 'America/New_York')) = (SELECT max(d) FROM complete)) AS latest_close,
        countIf(toDate(toTimeZone(window_start, 'America/New_York')) = (SELECT min(d) FROM complete)) AS bars_open,
        countIf(toDate(toTimeZone(window_start, 'America/New_York')) = (SELECT max(d) FROM complete)) AS bars_close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ((window_start >= toDateTime('2026-01-01 00:00:00') AND window_start < toDateTime('2026-01-10 00:00:00'))
        OR (window_start >= now() - INTERVAL 8 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
      AND ticker NOT IN ('SPCX')
      AND ticker NOT IN ('KORU','SOXL','SOXS','SOXY','TQQQ','SQQQ','QQQU','SPXL','SPXS','UPRO','SPXU','SPYU','LABU','LABD','FAS','FAZ','TNA','TZA','YINN','YANG','UDOW','SDOW','BOIL','KOLD','UCO','SCO','USD','SSO','SDS','QLD','QID','ERX','ERY','DRN','DRV','CURE','MUU','SNXX','UVXY','SVXY','UVIX','SVIX','BULZ','WEBL','WEBS','DPST','DRIP','GUSH','AGQ','ZSL','GDXU','GDXD','FNGU','FNGD','DUST','JNUG','JDST','NUGT','BITX','BITU','SBIT','ETHU','ETHT','NVDL','NVDS','NVD','NVDX','NVDU','NVDD','NVDQ','TSLL','TSLQ','TSLZ','TSLR','TSLT','TSLS','TSDD','AAPU','AAPD','MSFU','MSFD','GGLL','GGLS','AMZU','AMZD','METU','METD','PLTU','PLTD','SMCX','SMCZ','CONL','CONI','MSTX','MSTU','MSTZ','BRKU','AMDL','AMUU','AMDD','ELIL','ELIS','HOOX','AVGX','AVGU','TSMX','TSMZ','MULL')
      AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits
                         WHERE execution_date BETWEEN toDate('2026-01-01') AND today())
    GROUP BY ticker
    HAVING bars_open >= 100 AND bars_close >= 100
)
SELECT e.ticker AS ticker,
    round((e.latest_close / e.year_open - 1) * 100, 1) AS ytd_return_pct,
    round(u.adv / 1e6, 0) AS avg_daily_dollar_m
FROM edges AS e
INNER JOIN universe AS u ON e.ticker = u.ticker
WHERE e.year_open >= 10
ORDER BY (e.latest_close / e.year_open) ASC
LIMIT 10

বছরের শুরু থেকে সবচেয়ে বেশি দরপতন হয়েছে EOSE এর, যা দাঁড়িয়েছে -63.6% এ। এর পরে রয়েছে CSGP যা -57.5% এ অবস্থান করছে। তালিকার দশম স্থানে থাকা HUBS এর অবস্থান -45.2% এ। এখানে বেশ কিছু নাম বড় এবং বহুল মালিকানাধীন কোম্পানি, যা কোনো ফটকা মাইক্রো ক্যাপ নয়; এই বিষয়টি তালিকার দরপতন ঘটা শেয়ারগুলোর ক্ষেত্রে অবাক করার মতো। তারল্য এবং বিশ্লেষকদের কভারেজ কোনো শেয়ারের দামের জন্য সুরক্ষা নিশ্চিত করে না। যারা পোর্টফোলিওতে এই শেয়ারগুলোর একটি বড় অংশ রেখেছেন, তারা সম্পূর্ণ দরপতনটি অনুভব করেছেন, যা একটি শেয়ার ধরে রাখার ঝুঁকি পেজটি ভোলাটিলিটি এবং ড্রডাউন সংখ্যা দিয়ে পরিমাপ করে।

২০২৬ সালে বাজারের কত শতাংশ বৃদ্ধি পেয়েছে

একটি লিডারবোর্ড কেবল প্রান্তিক পরিবর্তনগুলো দেখায়। ব্রডথ বা বিস্তৃতি বাজারের প্রকৃত অবস্থা প্রকাশ করে: ইনডেক্স ফান্ডসহ সম্পূর্ণ স্কৃত মহাবিশ্ব কীভাবে বৃদ্ধি পাওয়া এবং হ্রাস পাওয়া স্টকের মধ্যে বিভক্ত, যা মুভমেন্টের আকার অনুযায়ী বিন্যস্ত করা হয়।

কুয়েরিবছরের এ পর্যন্ত breadth: রিটার্ন বাকেট অনুযায়ী বাছাইকৃত ইউনিভার্সের বিন্যাস
প্রতিটি সংখ্যার পেছনের সঠিক SQL
WITH complete AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= toDateTime('2026-01-01 00:00:00')
      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 d
    HAVING count() >= 380
),
universe AS (
    SELECT ticker,
           sum(toFloat64(close) * toFloat64(volume)) / uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) AS adv
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= now() - INTERVAL 21 DAY
      AND toDate(toTimeZone(window_start, 'America/New_York')) >= today() - 20
      AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT d FROM complete)
      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
    HAVING adv >= 100000000
),
edges AS (
    SELECT ticker,
        argMinIf(toFloat64(open), toTimeZone(window_start, 'America/New_York'), toDate(toTimeZone(window_start, 'America/New_York')) = (SELECT min(d) FROM complete)) AS year_open,
        argMaxIf(toFloat64(close), toTimeZone(window_start, 'America/New_York'), toDate(toTimeZone(window_start, 'America/New_York')) = (SELECT max(d) FROM complete)) AS latest_close,
        countIf(toDate(toTimeZone(window_start, 'America/New_York')) = (SELECT min(d) FROM complete)) AS bars_open,
        countIf(toDate(toTimeZone(window_start, 'America/New_York')) = (SELECT max(d) FROM complete)) AS bars_close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ((window_start >= toDateTime('2026-01-01 00:00:00') AND window_start < toDateTime('2026-01-10 00:00:00'))
        OR (window_start >= now() - INTERVAL 8 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
      AND ticker NOT IN ('SPCX')
      AND ticker NOT IN ('KORU','SOXL','SOXS','SOXY','TQQQ','SQQQ','QQQU','SPXL','SPXS','UPRO','SPXU','SPYU','LABU','LABD','FAS','FAZ','TNA','TZA','YINN','YANG','UDOW','SDOW','BOIL','KOLD','UCO','SCO','USD','SSO','SDS','QLD','QID','ERX','ERY','DRN','DRV','CURE','MUU','SNXX','UVXY','SVXY','UVIX','SVIX','BULZ','WEBL','WEBS','DPST','DRIP','GUSH','AGQ','ZSL','GDXU','GDXD','FNGU','FNGD','DUST','JNUG','JDST','NUGT','BITX','BITU','SBIT','ETHU','ETHT','NVDL','NVDS','NVD','NVDX','NVDU','NVDD','NVDQ','TSLL','TSLQ','TSLZ','TSLR','TSLT','TSLS','TSDD','AAPU','AAPD','MSFU','MSFD','GGLL','GGLS','AMZU','AMZD','METU','METD','PLTU','PLTD','SMCX','SMCZ','CONL','CONI','MSTX','MSTU','MSTZ','BRKU','AMDL','AMUU','AMDD','ELIL','ELIS','HOOX','AVGX','AVGU','TSMX','TSMZ','MULL')
      AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits
                         WHERE execution_date BETWEEN toDate('2026-01-01') AND today())
    GROUP BY ticker
    HAVING bars_open >= 100 AND bars_close >= 100
),
rets AS (
    SELECT e.ticker AS ticker, (e.latest_close / e.year_open - 1) * 100 AS ret
    FROM edges AS e
    INNER JOIN universe AS u ON e.ticker = u.ticker
    WHERE e.year_open >= 10
)
SELECT bucket,
       names,
       round(100 * sum(names) OVER (PARTITION BY side) / sum(names) OVER (), 1) AS side_share_pct
FROM (
    SELECT tup.1 AS bucket, tup.2 AS names, tup.3 AS ord, tup.4 AS side
    FROM (
        SELECT arrayJoin([
            ('Down 40%+',   countIf(ret < -40),               1, 'down'),
            ('Down 20-40%', countIf(ret >= -40 AND ret < -20), 2, 'down'),
            ('Down 10-20%', countIf(ret >= -20 AND ret < -10), 3, 'down'),
            ('Down 0-10%',  countIf(ret >= -10 AND ret < 0),   4, 'down'),
            ('Up 0-10%',    countIf(ret >= 0 AND ret < 10),    5, 'up'),
            ('Up 10-25%',   countIf(ret >= 10 AND ret < 25),   6, 'up'),
            ('Up 25-50%',   countIf(ret >= 25 AND ret < 50),   7, 'up'),
            ('Up 50%+',     countIf(ret >= 50),                8, 'up')
        ]) AS tup
        FROM rets
    )
)
ORDER BY ord

স্কৃত নামগুলোর মধ্যে 61.8% শতাংশ বছরের তুলনায় বেশি এবং 38.2% শতাংশ কম। একটি শীর্ষ দশের তালিকা যা গোপন করে, তা হলো এই বন্টন। একদিকে 25টি নাম Down 40%+ বাকেটে এবং অন্যদিকে 132টি নাম Up 50%+ বাকেটে অবস্থান করছে; অপরপক্ষে অপরিবর্তিত অবস্থার দুই পাশে 144টি Down 0-10% এবং 173টি Up 0-10% বাকেটে রয়েছে। যেকোনো নির্দিষ্ট বছরে বাজারের বেশিরভাগ অংশই সাধারণ মানের পরিবর্তন প্রদর্শন করে, এবং উপরের দুটি তালিকায় থাকা নামগুলো হলো সেই ব্যতিক্রম যা গড় মান নির্ধারণে ব্যবহৃত হয়।

বাজারের বর্তমান অবস্থা

একটি নির্দিষ্ট স্টকের বার্ষিক পারফরম্যান্স বাজারের তুলনায় ভিন্ন হতে পারে। ঠিক একই সময়ের ব্যবধানে চারটি প্রধান ইনডেক্স ETF-এর অবস্থা হলো:

কুয়েরিচারটি প্রধান index ETF, একই পরিমাপের ভিত্তিতে বছরের এ পর্যন্ত
প্রতিটি সংখ্যার পেছনের সঠিক SQL
WITH complete AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= toDateTime('2026-01-01 00:00:00')
      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 d
    HAVING count() >= 380
),
edges AS (
    SELECT ticker,
        argMinIf(toFloat64(open), toTimeZone(window_start, 'America/New_York'), toDate(toTimeZone(window_start, 'America/New_York')) = (SELECT min(d) FROM complete)) AS year_open,
        argMaxIf(toFloat64(close), toTimeZone(window_start, 'America/New_York'), toDate(toTimeZone(window_start, 'America/New_York')) = (SELECT max(d) FROM complete)) AS latest_close,
        countIf(toDate(toTimeZone(window_start, 'America/New_York')) = (SELECT min(d) FROM complete)) AS bars_open,
        countIf(toDate(toTimeZone(window_start, 'America/New_York')) = (SELECT max(d) FROM complete)) AS bars_close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ((window_start >= toDateTime('2026-01-01 00:00:00') AND window_start < toDateTime('2026-01-10 00:00:00'))
        OR (window_start >= now() - INTERVAL 8 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
      AND ticker IN ('SPY', 'QQQ', 'DIA', 'IWM')
    GROUP BY ticker
    HAVING bars_open >= 100 AND bars_close >= 100
)
SELECT multiIf(ticker = 'SPY', 'S&P 500 (SPY)', ticker = 'QQQ', 'Nasdaq 100 (QQQ)',
               ticker = 'DIA', 'Dow (DIA)', ticker = 'IWM', 'Russell 2000 (IWM)', ticker) AS label,
    round((latest_close / year_open - 1) * 100, 1) AS ytd_return_pct,
    (SELECT toString(min(d)) FROM complete) AS measured_from_date,
    (SELECT toString(max(d)) FROM complete) AS measured_through_date
FROM edges
ORDER BY ytd_return_pct DESC

উপরের বোর্ড এবং প্যানেল উভয়ই একটি নির্দিষ্ট সময়কাল জুড়ে পরিমাপ করা হয়েছে: ২০২৬ সালের প্রথম পূর্ণাঙ্গ সেশন (2026-01-02) থেকে সর্বশেষ সমাপ্ত সেশন (2026-07-21) পর্যন্ত। এই সময়ে Russell 2000 (IWM) 19.7% রিটার্ন করেছে এবং Dow (DIA) 8.2% রিটার্ন করেছে। গেইনার্স টেবিলে থাকা প্রতিটি স্টকের পারফরম্যান্স এই চারটি ইনডেক্সের তুলনায় অনেক বেশি ছিল। এটি একটি ইনডেক্সের স্বাভাবিক বৈশিষ্ট্য: শত শত হোল্ডিংয়ের গড় ফলাফল একটি লাইনে প্রকাশ করা হয়, যেখানে প্রতিটি স্টকের আলাদা মুভমেন্ট একে অপরকে কিছুটা প্রশমিত করে। ওই লাইনের নিচের ব্যবধান লাইনের চেয়ে অনেক বেশি ছিল। এছাড়া প্রথম অর্ধবার্ষিকের সেক্টর স্কোরকার্ড এগারোটি সেক্টরের মধ্যে তুলনামূলক বিশ্লেষণ করা হয়েছে।

স্টক স্প্লিট যা বছরের শুরু থেকে বর্তমান পর্যন্ত মুভমেন্টকে ভুলভাবে উপস্থাপন করে

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

কুয়েরিবোর্ড থেকে বাদ দেওয়া হয়েছে: ২০২৬ সালের বড় splits যা বছরের এ পর্যন্ত মুভমেন্টকে প্রভাবিত করতে পারে
প্রতিটি সংখ্যার পেছনের সঠিক SQL
WITH complete AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= toDateTime('2026-01-01 00:00:00')
      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 d
    HAVING count() >= 380
),
universe AS (
    SELECT ticker,
           sum(toFloat64(close) * toFloat64(volume)) / uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) AS adv
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= now() - INTERVAL 21 DAY
      AND toDate(toTimeZone(window_start, 'America/New_York')) >= today() - 20
      AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT d FROM complete)
      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
    HAVING adv >= 100000000
),
split_terms AS (
    SELECT ticker,
        argMax(split_to, execution_date) AS new_shares,
        argMax(split_from, execution_date) AS old_shares,
        round((old_shares / new_shares - 1) * 100, 1) AS split_price_effect_pct,
        replaceAll(argMax(adjustment_type, execution_date), '_', ' ') AS split_type,
        toString(max(execution_date)) AS split_date
    FROM global_markets.stocks_splits
    WHERE execution_date BETWEEN toDate('2026-01-01') AND today()
    GROUP BY ticker
    HAVING new_shares > 0 AND old_shares > 0
       AND greatest(new_shares / old_shares, old_shares / new_shares) >= 1.25
),
edges AS (
    SELECT ticker,
        argMinIf(toFloat64(open), toTimeZone(window_start, 'America/New_York'), toDate(toTimeZone(window_start, 'America/New_York')) = (SELECT min(d) FROM complete)) AS year_open,
        argMaxIf(toFloat64(close), toTimeZone(window_start, 'America/New_York'), toDate(toTimeZone(window_start, 'America/New_York')) = (SELECT max(d) FROM complete)) AS latest_close,
        countIf(toDate(toTimeZone(window_start, 'America/New_York')) = (SELECT min(d) FROM complete)) AS bars_open,
        countIf(toDate(toTimeZone(window_start, 'America/New_York')) = (SELECT max(d) FROM complete)) AS bars_close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ((window_start >= toDateTime('2026-01-01 00:00:00') AND window_start < toDateTime('2026-01-10 00:00:00'))
        OR (window_start >= now() - INTERVAL 8 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
      AND ticker NOT IN ('SPCX')
      AND ticker NOT IN ('KORU','SOXL','SOXS','SOXY','TQQQ','SQQQ','QQQU','SPXL','SPXS','UPRO','SPXU','SPYU','LABU','LABD','FAS','FAZ','TNA','TZA','YINN','YANG','UDOW','SDOW','BOIL','KOLD','UCO','SCO','USD','SSO','SDS','QLD','QID','ERX','ERY','DRN','DRV','CURE','MUU','SNXX','UVXY','SVXY','UVIX','SVIX','BULZ','WEBL','WEBS','DPST','DRIP','GUSH','AGQ','ZSL','GDXU','GDXD','FNGU','FNGD','DUST','JNUG','JDST','NUGT','BITX','BITU','SBIT','ETHU','ETHT','NVDL','NVDS','NVD','NVDX','NVDU','NVDD','NVDQ','TSLL','TSLQ','TSLZ','TSLR','TSLT','TSLS','TSDD','AAPU','AAPD','MSFU','MSFD','GGLL','GGLS','AMZU','AMZD','METU','METD','PLTU','PLTD','SMCX','SMCZ','CONL','CONI','MSTX','MSTU','MSTZ','BRKU','AMDL','AMUU','AMDD','ELIL','ELIS','HOOX','AVGX','AVGU','TSMX','TSMZ','MULL')
      AND ticker IN (SELECT ticker FROM split_terms)
    GROUP BY ticker
    HAVING bars_open >= 100 AND bars_close >= 100
),
ranked AS (
    SELECT e.ticker AS ticker,
        round((e.latest_close / e.year_open - 1) * 100, 1) AS unadjusted_ytd_pct,
        s.split_price_effect_pct AS split_price_effect_pct,
        s.split_type AS split_type,
        s.split_date AS split_date
    FROM edges AS e
    INNER JOIN split_terms AS s ON e.ticker = s.ticker
    WHERE e.year_open >= 10 AND e.ticker IN (SELECT ticker FROM universe)
)
SELECT ticker, unadjusted_ytd_pct, split_price_effect_pct, split_type, split_date
FROM (
    SELECT ticker, unadjusted_ytd_pct, split_price_effect_pct, split_type, split_date,
           row_number() OVER (ORDER BY unadjusted_ytd_pct ASC) AS rn_low,
           row_number() OVER (ORDER BY unadjusted_ytd_pct DESC) AS rn_high
    FROM ranked
)
WHERE rn_low <= 14 OR rn_high = 1
ORDER BY unadjusted_ytd_pct ASC

BKNG একটি forward split এর ফলে তার প্রতি শেয়ারের দাম -96% পরিবর্তন করার পর একটি আন-অ্যাডজাস্টেড স্ক্রিনে -96.7% প্রদর্শন করবে, এবং VGT একটি forward split এর ফলে তার দাম -87.5% পরিবর্তন করার পর -84.8% প্রদর্শন করবে। স্প্লিট কার্যকর হওয়ার দিনে কোনো বিনিয়োগকারীই কোনো ক্ষতি করেননি। প্রতি শেয়ারের দামকে ভাগ করা হয়েছিল এবং শেয়ারের সংখ্যাকে একই ফ্যাক্টর দিয়ে গুণ করা হয়েছিল। স্প্লিট ইফেক্ট কলামটি শুধুমাত্র স্প্লিটের কারণে হওয়া দামের পরিবর্তনকে আলাদা করে দেখায়, যা একটি আন-অ্যাডজাস্টেড স্ক্রিন পারফরম্যান্স হিসেবে পড়ে।

প্যানেলের শেষ সারিটি বিপরীতভাবে কাজ করে: reverse split এর ফলে প্রতি শেয়ারের দাম 200% বৃদ্ধি পাওয়ার পর DD দেখায় 243.4%, যেখানে দাম কমার পরিবর্তে বেড়েছে। যে কোনো তালিকা যা এই ধাপটি বাদ দেয়, তা একই সাথে উপরে এবং নিচে কাল্পনিক তথ্য প্রকাশ করে; এই কারণেই স্ক্রিনটি দাম ঠিক করার চেষ্টা না করে স্প্লিট করা টিকারগুলোকে আলাদা করে রাখে। একটি ফান্ডও একটি কোম্পানির মতোই এই প্যানেলে আসতে পারে: ইনডেক্স ফান্ডগুলোও তাদের শেয়ার স্প্লিট করে এবং এই স্ক্রিনটি উভয়কেই কভার করে।

এই স্ক্রিনটি যেভাবে পরিমাপ করা হয়

প্রতিটি ধাপ এবং সেই ধাপের পর কতটি নাম অবশিষ্ট আছে তা নিচে দেওয়া হলো:

কুয়েরিধাপে ধাপে screen: প্রতিটি ফিল্টারে কতগুলো নাম টিকে থাকে
প্রতিটি সংখ্যার পেছনের সঠিক SQL
WITH complete AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= toDateTime('2026-01-01 00:00:00')
      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 d
    HAVING count() >= 380
),
universe AS (
    SELECT ticker
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE window_start >= now() - INTERVAL 21 DAY
      AND toDate(toTimeZone(window_start, 'America/New_York')) >= today() - 20
      AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT d FROM complete)
      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
    HAVING sum(toFloat64(close) * toFloat64(volume)) / uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) >= 100000000
),
edges AS (
    SELECT ticker,
        argMinIf(toFloat64(open), toTimeZone(window_start, 'America/New_York'), toDate(toTimeZone(window_start, 'America/New_York')) = (SELECT min(d) FROM complete)) AS year_open,
        argMaxIf(toFloat64(close), toTimeZone(window_start, 'America/New_York'), toDate(toTimeZone(window_start, 'America/New_York')) = (SELECT max(d) FROM complete)) AS latest_close,
        countIf(toDate(toTimeZone(window_start, 'America/New_York')) = (SELECT min(d) FROM complete)) AS bars_open,
        countIf(toDate(toTimeZone(window_start, 'America/New_York')) = (SELECT max(d) FROM complete)) AS bars_close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ((window_start >= toDateTime('2026-01-01 00:00:00') AND window_start < toDateTime('2026-01-10 00:00:00'))
        OR (window_start >= now() - INTERVAL 8 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
    HAVING bars_open >= 100 AND bars_close >= 100
),
flagged AS (
    SELECT ticker,
        year_open,
        ticker IN (SELECT ticker FROM universe) AS liquid,
        ticker NOT IN ('SPCX','KORU','SOXL','SOXS','SOXY','TQQQ','SQQQ','QQQU','SPXL','SPXS','UPRO','SPXU','SPYU','LABU','LABD','FAS','FAZ','TNA','TZA','YINN','YANG','UDOW','SDOW','BOIL','KOLD','UCO','SCO','USD','SSO','SDS','QLD','QID','ERX','ERY','DRN','DRV','CURE','MUU','SNXX','UVXY','SVXY','UVIX','SVIX','BULZ','WEBL','WEBS','DPST','DRIP','GUSH','AGQ','ZSL','GDXU','GDXD','FNGU','FNGD','DUST','JNUG','JDST','NUGT','BITX','BITU','SBIT','ETHU','ETHT','NVDL','NVDS','NVD','NVDX','NVDU','NVDD','NVDQ','TSLL','TSLQ','TSLZ','TSLR','TSLT','TSLS','TSDD','AAPU','AAPD','MSFU','MSFD','GGLL','GGLS','AMZU','AMZD','METU','METD','PLTU','PLTD','SMCX','SMCZ','CONL','CONI','MSTX','MSTU','MSTZ','BRKU','AMDL','AMUU','AMDD','ELIL','ELIS','HOOX','AVGX','AVGU','TSMX','TSMZ','MULL') AS not_geared,
        ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits
                       WHERE execution_date BETWEEN toDate('2026-01-01') AND today()) AS no_split
    FROM edges
)
SELECT tup.1 AS screen_step, tup.2 AS names
FROM (
    SELECT arrayJoin([
        ('Traded the first and the last full session', count()),
        ('Averaging $100m+ a day over the past month', countIf(liquid)),
        ('Opened 2026 above $10 a share', countIf(liquid AND year_open >= 10)),
        ('Not on the excluded-fund list', countIf(liquid AND year_open >= 10 AND not_geared)),
        ('No split or stock dividend in 2026', countIf(liquid AND year_open >= 10 AND not_geared AND no_split))
    ]) AS tup
    FROM flagged
)

সম্পূর্ণ পদ্ধতিটি নিচে বিস্তারিতভাবে বর্ণনা করা হলো:

  • সময়সীমা (The window)। ২০২৬ সালের প্রথম পূর্ণ ট্রেডিং সেশন থেকে সাম্প্রতিকতম পূর্ণ সেশন পর্যন্ত। উভয় প্রান্তের তথ্য মিনিট বার (minute bars) থেকে নেওয়া হয়। একটি সেশন তখনই গণনা করা হয় যখন তার একটি সম্পূর্ণ রেগুলার-আওয়ার বার কাউন্ট থাকে; তাই চলমান কোনো দিনকে শেষ হিসেবে ধরা হয় না।
  • রিটার্ন (The return)। বছরের প্রথম রেগুলার-সেশনের ওপেন প্রাইস এবং সর্বশেষ রেগুলার-সেশনের ক্লোজ প্রাইসের মধ্যে পার্থক্য, যা মিনিট বার থেকে গণনা করা হয়। প্রি-মার্কেট এবং আফটার-আওয়ারস প্রিন্টগুলো উপেক্ষা করা হয়। এগুলো হলো প্রাইস রিটার্ন; ডিভিডেন্ড এখানে যোগ করা হয় না, তাই উচ্চ ডিভিডেন্ড প্রদানকারী নামগুলোর ফলাফল এখানে টোটাল-রিটার্নের তুলনায় কিছুটা কম দেখাবে।
  • লিকুইডিটি ফ্লোর (The liquidity floor)। গত ২০ ক্যালেন্ডার দিনের প্রতিটি সেশনে গড়ে অন্তত ১০০ মিলিয়ন ডলারের রেগুলার-আওয়ার টার্নওভার থাকতে হবে; এক্ষেত্রে শুধুমাত্র শুরু থেকে শেষ পর্যন্ত চলা সেশনগুলো গণনা করা হয়। অন্যথায়, একটি আংশিক সেশন দিনের ডলারকে পূর্ণ দিন দিয়ে ভাগ করে প্রতিটি নামের টার্নওভারকে কম দেখাত। এই একটি ফিল্টারই টিকার সংখ্যাকে 4516 থেকে কমিয়ে 1039 এ নিয়ে আসে।
  • প্রাইস ফ্লোর (The price floor)। শেয়ারটির ওপেনিং প্রাইস বছরের শুরুতে ১০ ডলারের উপরে থাকতে হবে। ১০ ডলারের নিচের শেয়ারগুলোর ক্ষেত্রে সামান্য দামের পরিবর্তনও বড় শতাংশের রিটার্ন তৈরি করতে পারে।
  • লেভারেজড এবং ইনভার্স ফান্ড (Leveraged and inverse funds) একটি তালিকাভুক্ত পদ্ধতি অনুযায়ী বাদ দেওয়া হয়, যা প্রতিটি টেবিলের নিচে SQL-এ সম্পূর্ণভাবে দেওয়া আছে। এর মধ্যে ইনডেক্স-ভিত্তিক ফান্ড এবং সিঙ্গেল-স্টক ফান্ড অন্তর্ভুক্ত যা কোনো একটি কোম্পানির দৈনিক মুভমেন্টকে গুণিতক হিসেবে দেখায়। কোনো কোম্পানির খবর ছাড়াই একটি জিয়ার্ড ফান্ড যেকোনো র রিয়েল মুভার্স লিস্টের শীর্ষে থাকতে পারে। এই তালিকাটি হাতে কলমে রক্ষণাবেক্ষণ করা হয়, যা এর একটি দুর্বলতা: এই মাসে চালু হওয়া কোনো ফান্ড তখনই বাদ পড়বে যখন কেউ সেটি তালিকায় যোগ করবে।
  • সাধারণ ফান্ড (Ordinary funds) বাদ দেওয়া হয় না। একটি আনলেভারেজড ইনডেক্স বা সেক্টর ETF যা লিকুইডিটি এবং প্রাইস ফ্লোর অতিক্রম করে, তাকে এখানে অপারেটিং কোম্পানির সাথে র‍্যাঙ্কিং করা হয় এবং এটি ব্রেডথ কাউন্টেও অন্তর্ভুক্ত থাকে। একটি ফান্ড হলো একই ইউনিভার্সের নামগুলোর একটি বাস্কেট, তাই সেই সারিগুলোকে কোনো একটি নির্দিষ্ট কোম্পানির বছরের ফলাফল হিসেবে না দেখে বাস্কেটটির ফলাফল হিসেবে দেখুন।
  • স্প্লিট (Splits)। ২০২৬ সালের মধ্যে যে কোনো স্প্লিট বা স্টক ডিভিডেন্ড কার্যকর হওয়া টিকারকে আলাদা রাখা হয়, অনুপাত যত ছোটই হোক না কেন। এটি একটি রক্ষণশীল পদ্ধতি: এর ফলে কিছু প্রকৃত পারফর্মার তালিকার বাইরে চলে যায়, তবে এটি শেয়ার সংখ্যা পরিবর্তনের কারণে রিটার্নে ভুল তথ্য প্রকাশ করতে পারে না। উপরের প্যানেলে সেই নামগুলো দেখানো হয়েছে যেগুলোর স্প্লিট এত বড় ছিল যে তা মুভমেন্টের ভুয়া চিত্র তৈরি করতে পারত।
  • দেরিতে তালিকাভুক্ত হওয়া (Late listings)। বছরের প্রথম সেশনের পরে যে কোম্পানি তালিকাভুক্ত হয়েছে তার জানুয়ারির কোনো প্রাইস নেই এবং এই টেবিলগুলোতে তার উপস্থিতি নেই; নতুন কোম্পানি তালিকাভুক্ত হওয়ার হার বেশি এমন বছরের ক্ষেত্রে এটি একটি প্রকৃত ঘাটতি।
  • ফলাফল (The result)। 956টি নাম র‍্যাঙ্ক করা হয়েছে, এবং তাদের মধ্যে শীর্ষ এবং নিচের দশটি নাম এই পৃষ্ঠার দুটি বোর্ডে দেখানো হয়েছে।

তিনটি ভিন্ন সময়ের প্রেক্ষাপটে একই প্রশ্ন

বছরের শুরু থেকে বর্তমান সময় পর্যন্ত (year to date) একটি ধাপ মাত্র, এবং সময়ের ব্যাপ্তি পরিবর্তনের সাথে সাথে মুভমেন্টের ধরণও পরিবর্তিত হয়। সাপ্তাহিক ভিউতে রয়েছে এই সপ্তাহের সবচেয়ে বেশি লাভ ও লোকসান করা স্টকসমূহ, মাসিক ভিউতে রয়েছে এই মাসের সবচেয়ে বড় স্টক মুভার্সসমূহ, আর এই পৃষ্ঠাটি হলো বার্ষিক ভিউ। প্রতিটি ধাপের মানদণ্ড ভিন্ন: এই পৃষ্ঠাটি গত এক মাসে প্রতিদিন গড়ে ১০০ মিলিয়ন ডলারের লেনদেনের ভিত্তিতে ফিল্টার করা হয়, যেখানে সাপ্তাহিক ও মাসিক পৃষ্ঠাগুলো তাদের নিজস্ব সময়ের মোট লেনদেনের ভিত্তিতে ফিল্টার করা হয়; ফলে একটি স্টক একটি তালিকার শীর্ষে থাকলেও অন্যটিতে নাও থাকতে পারে। কোনো একটি নির্দিষ্ট আয়ের রিপোর্টের প্রতিক্রিয়ায় যে স্টকটি সাপ্তাহিক তালিকায় শীর্ষে থাকে, তা বার্ষিক তালিকায় মাঝের অবস্থানে থাকতে পারে। চলতি বছরের সামগ্রিক প্রেক্ষাপট বুঝতে, প্রথম অর্ধবার্ষিক বাজার সারসংক্ষেপ সূচক, সুদের হার এবং সেক্টর সংক্রান্ত বিস্তারিত তথ্য প্রদান করে, এবং লেভারেজড ETF কীভাবে কাজ করে তা ব্যাখ্যা করে কেন এই ফান্ডগুলোকে এখানে আলাদা রাখা হয়েছে।

FAQ

২০২৬ সালের সেরা পারফর্মিং স্টক কোনটি?

যেসব স্টকের দৈনিক লেনদেনের গড় অন্তত $100 million, যা বছরের শুরুতে $10-এর উপরে ছিল, ২০২৬ সালে কোনো split ঘটেনি এবং যা leveraged-fund তালিকায় নেই, তাদের মধ্যে SNDK হলো ২০২৬ সালের এ পর্যন্ত সেরা পারফর্মিং স্টক; বছরের প্রথম সেশনের তুলনায় এর বৃদ্ধি 550.2%। MXL 382.4% বৃদ্ধি নিয়ে দ্বিতীয় অবস্থানে রয়েছে।

২০২৬ সালে কোন স্টকগুলোর দাম সবচেয়ে বেশি কমেছে?

এই স্ক্রিনে -63.6% হ্রাস পেয়ে EOSE হলো ২০২৬ সালের সবচেয়ে খারাপ পারফর্মিং স্টক, যা -57.5% হ্রাস পাওয়া CSGP-এর চেয়ে বেশি। ২০২৬ সালের সবচেয়ে বড় লস করা স্টকের সম্পূর্ণ তালিকা উপরের দ্বিতীয় টেবিলে দেওয়া হয়েছে, যা বছরের অগ্রগতির সাথে সাথে আপডেট করা হয়।

year-to-date স্টক রিটার্ন কীভাবে গণনা করা হয়?

একটি year-to-date রিটার্ন ক্যালেন্ডার বছরের শুরুর দিনের দামের সাথে সাম্প্রতিক দামের তুলনা করে এবং পরিবর্তনটিকে শতাংশ হিসেবে প্রকাশ করে। এখানে ২০২৬ সালের প্রথম রেগুলার-সেশনের ওপেন প্রাইস এবং সাম্প্রতিক সমাপ্ত সেশনের ক্লোজ প্রাইসের তুলনা করা হয়েছে। বছরের মধ্যে যে স্টকগুলোর split হয়েছে, সেগুলোকে অ্যাডজাস্ট না করে আলাদা রাখা হয়েছে, যাতে পাঠকের জন্য কোনো অ্যাডজাস্টমেন্ট ফ্যাক্টর না থাকে।

২০২৬ সালের গেইনার্স তালিকায় কি leveraged ETFs অন্তর্ভুক্ত করা হয়েছে?

না। একটি leveraged বা inverse ফান্ড কোনো ইনডেক্স বা একক স্টকের দৈনিক মুভমেন্টকে গুণিতক হিসেবে দেখায়, তাই কোনো কোম্পানির খবর ছাড়াই এগুলো প্রায়ই সাধারণ মুভার্স তালিকার শীর্ষে থাকে। র‍্যাঙ্কিং করার আগে সেই ফান্ডগুলোকে নাম দিয়ে সরিয়ে ফেলা হয় এবং প্রতিটি টেবিলের নিচে SQL-এ সেই তালিকাটি দেখা যায়। সাধারণ ইনডেক্স এবং সেক্টর ETF-এর ক্ষেত্রে বিষয়টি ভিন্ন: এগুলো যেকোনো স্টকের মতো একই শর্ত পূরণ করে এবং এখানে র‍্যাঙ্ক করা হয়, তাই একটি ফান্ড উভয় তালিকায় দেখা যেতে পারে।


এখানে প্রতিটি টেবিল একটি স্টোরড কুয়েরি এবং এর সাথে SQL যুক্ত রয়েছে। স্ক্রিনটি যাচাই করতে যেকোনো প্যানেল এক্সপ্যান্ড করুন, অথবা Strasmore টার্মিনালে আপনার নিজস্ব শর্ত দিয়ে এটি পুনরায় তৈরি করুন।