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

2026 मधील सर्वाधिक वाढणारे आणि पडणारे शेअर्स

2026 मधील सर्वोत्तम कामगिरी करणारे आणि सर्वाधिक तोटा देणारे शेअर्स. ही यादी स्टॉक स्प्लिट्स आणि लेव्हरेज्ड फंड्स वगळून प्रत्यक्ष एक्सचेंज टेपवर आधारित आहे.

2026 मधील आतापर्यंतचे सर्वोत्तम कामगिरी करणारे शेअर्स SNDK च्या नेतृत्वाखाली आहेत, जे वर्षाच्या सुरुवातीच्या सत्रापासून अलीकडील पूर्ण झालेल्या सत्रापर्यंत 554.9% ने वधारले आहेत. ही पाटी प्रत्यक्ष व्यवहार होणाऱ्या शेअर्समधील 2026 मधील सर्वाधिक नफा देणारे आणि तोटा देणारे शेअर्स क्रमवारीनुसार दर्शवते. ही माहिती व्हेंडर सारांशाऐवजी एक्सचेंज टेपवरून मोजली जाते आणि वर्षभर ती अद्ययावत केली जाते. कोणत्याही क्रमवारीपूर्वी स्टॉक स्प्लिट्स आणि लेव्हरेज्ड फंड्स वगळले जातात, ज्यामुळे इतर अनेक year-to-date याद्यांमध्ये चुका होऊ शकतात.

2026 मधील सर्वाधिक वाढणारे शेअर्स

खालील प्रत्येक शेअरची रँकिंग करण्यापूर्वी लिक्विडिटी फ्लोर (liquidity floor) तपासली गेली आहे: म्हणजेच गेल्या महिन्यात प्रत्येक ट्रेडिंग सेशनमध्ये सरासरी किमान $100 million चा व्यवहार झाला आहे. ज्या शेअरमध्ये कोणीही व्यवहार करत नाही, त्यातील मोठ्या टक्केवारीचा विचार करणे चुकीचे ठरेल.

क्वेरी2026 मधील सर्वाधिक नफा देणारे शेअर्स: सर्वाधिक व्यवहार झालेल्या टॉप १० शेअर्स (YTD)
प्रत्येक आकड्यामागील अचूक 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 554.9% सह वर्षात आघाडीवर आहे, त्यानंतर MXL 386.3% आणि AEHR 345% स्थानी आहे. या यादीतील दहाव्या क्रमांकाचा शेअर, AAOI, अजूनही 204.3% ने वधारलेला आहे, त्यामुळे संपूर्ण तक्ता कोणत्याही ब्रॉड इंडेक्सपेक्षा (broad index) खूप पुढे आहे.

प्रत्येक शेअरच्या टक्केवारीसोबत दिलेला डॉलर कॉलम तितकीच महत्त्वाची माहिती देतो. AAOI चा दैनंदिन सरासरी टर्नओव्हर (turnover) सुमारे $817 million आहे. यादीतील पहिल्या क्रमांकाचा शेअर SNDK सरासरी $18348 million चा टर्नओव्हर करतो. येथे असलेल्या प्रत्येक शेअरचा दैनंदिन व्यवहार $100 million पेक्षा जास्त आहे आणि या मर्यादेवरील फरक इतका मोठा आहे की, एकाच टक्केवारीचा अर्थ दोन वेगवेगळ्या टोकांना भिन्न असू शकतो. कमी व्हॉल्यूम असलेल्या शेअरची किंमत वाढवणे सोपे असते, परंतु स्क्रीनवरील किमतीला बाहेर पडणे (exit करणे) कठीण असते.

2026 मधील सर्वाधिक घसरणीचे शेअर्स

समान लिक्विडिटी फ्लोर (liquidity floor) पार करणाऱ्या शेअर्सपैकी, उलट दिशेने मोजलेले सर्वात मोठे वार्षिक घसरणीचे प्रमाण.

क्वेरी2026 मधील सर्वाधिक तोटा देणारे शेअर्स: सर्वाधिक व्यवहार झालेल्या टॉप १० शेअर्स (YTD)
प्रत्येक आकड्यामागील अचूक 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 मध्ये -65.9% इतकी आहे, त्यानंतर CSGP -58.7% वर आहे. या यादीत दहाव्या क्रमांकावर TEAM -47.3% वर आहे. या यादीतील अनेक कंपन्या मोठ्या आणि मोठ्या प्रमाणावर धारण केलेल्या (widely held) कंपन्या आहेत, केवळ सट्टा आधारित (speculative) मायक्रो कॅप्स नाहीत; ही बाब लोकांना आश्चर्यचकित करते. लिक्विडिटी आणि ॲनालिस्ट कव्हरेजमुळे शेअरच्या किमतीला कोणतीही मर्यादा (floor) नसते. ज्यांच्या पोर्टफोलिओमध्ये यापैकी एका शेअरचे प्रमाण जास्त आहे, त्यांना या घसरणीचा पूर्ण फटका बसला आहे, ज्याचे मोजमाप एका शेअरमध्ये गुंतवणूक करण्याचा धोका या पृष्ठावरील व्होलॅटिलिटी आणि ड्रॉडाउन (drawdown) संख्यांद्वारे केले जाते.

2026 मध्ये मार्केटचा किती भाग वधारला आहे

लीडरबोर्ड फक्त दोन टोकांची स्थिती दर्शवतो. Breadth (व्याप्ती) संपूर्ण स्थिती स्पष्ट करते: यामध्ये इंडेक्स फंड्ससह सर्व निवडलेल्या शेअर्समधील वाढणाऱ्या आणि घसरणाऱ्या शेअर्सचे प्रमाण, त्यांच्या हालचालीच्या आकारानुसार विभागलेले असते.

क्वेरीYear-to-date 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.9% शेअर्सची किंमत वर्षाच्या सुरुवातीपेक्षा जास्त आहे आणि 38.1% शेअर्सची किंमत कमी झाली आहे. टॉप-टेन टेबलमध्ये ही वितरण पद्धत दिसून येत नाही. एका टोकाला 22 शेअर्स Down 40%+ बकेटमध्ये आहेत आणि दुसऱ्या टोकाला 130 शेअर्स Up 50%+ बकेटमध्ये आहेत; तसेच, न बदललेल्या शेअर्सच्या दोन्ही बाजूंना 146 शेअर्स Down 0-10% मध्ये आणि 159 शेअर्स Up 0-10% मध्ये आहेत. कोणत्याही ठराविक वर्षात मार्केटचा मोठा हिस्सा सामान्य हालचाल करतो, आणि वरील दोन टेबल्सवरील शेअर्स हे अपवाद आहेत ज्यांच्या आधारे सरासरी काढली जाते.

बाजार नेमका कुठे आहे

एका विशिष्ट शेअरची वार्षिक कामगिरी ही बाजाराच्या कामगिरीपेक्षा वेगळी असू शकते. खालील चार प्रमुख इंडेक्स ETFs एकाच कालखंडासाठी आहेत:

क्वेरीचार प्रमुख index ETFs, year to date (समान कालावधीत)
प्रत्येक आकड्यामागील अचूक 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 मधील पहिला पूर्ण सत्र (2026-01-02) ते सर्वात अलीकडील पूर्ण झालेले सत्र (2026-07-22). या काळात Russell 2000 (IWM) ने 18.6% परतावा दिला आणि Dow (DIA) ने 8.2% परतावा दिला. नफा देणाऱ्या शेअरंच्या तक्त्यातील प्रत्येक शेअरने या चारही निर्देशांकांच्या तुलनेत मोठी आघाडी घेतली आहे. हे निर्देशांकाच्या गणिती प्रक्रियेचे फळ आहे: शेकडो शेअर्सची सरासरी एका रेषेत येते, जिथे वैयक्तिक चढ-उतार एकमेकांना अंशतः संतुलित करतात. त्या रेषेखालील फरक स्वतः त्या रेषेपेक्षा खूप जास्त होता, आणि पहिल्या सहामाहीचा सेक्टर स्कोअरकार्ड सर्व अकरा क्षेत्रांची एकमेकांशी तुलना करतो.

शेअर स्प्लिटमुळे (stock split) चुकीची year-to-date माहिती मिळते

शेअर स्प्लिटमुळे शेअरची संख्या आणि प्रति शेअर किंमत बदलते, परंतु गुंतवणुकीचे एकूण मूल्य बदलत नाही. इतक्या मोठ्या कालखंडात अनेक कंपन्या स्प्लिट करतात आणि अनअडजस्टेड (unadjusted) year-to-date गणनेमुळे प्रति शेअर किमतीतील बदल हा परफॉर्मन्स (performance) असल्याचे दिसते. खालील कंपन्यांपैकी प्रत्येकाचा 2026 मध्ये असा स्प्लिट किंवा स्टॉक डिव्हिडंड होता, ज्यामुळे त्यांची किंमत किमान पाचव्या भागाने (one-fifth) बदलली. या सर्व कंपन्यांनी ठराविक liquidity floor पार केला होता, त्यामुळे स्प्लिट फिल्टरने त्यांना वगळण्यापूर्वी त्या वरील बोर्ड्ससाठी पात्र होत्या.

क्वेरीExcluded: 2026 मधील मोठे splits (YTD हालचाल प्रभावित करणारे)
प्रत्येक आकड्यामागील अचूक 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

forward split मुळे प्रति शेअर किंमत -96% बदलल्यामुळे, अनअडजस्टेड स्क्रीनवर BKNG -96.7% दर्शवेल, आणि forward split मुळे किंमत -80% बदलल्यामुळे CVNA -85.1% दर्शवेल. स्प्लिट लागू झाल्याच्या दिवशी यापैकी कोणत्याही गुंतवणूकदाराचे काहीही नुकसान झाले नाही. प्रति शेअर किंमत विभागली गेली आणि शेअरची संख्या त्याच प्रमाणात वाढवली गेली. 'split effect' कॉलम केवळ स्प्लिटमुळे झालेला किंमतीतील बदल दर्शवतो, जो अनअडजस्टेड स्क्रीन परफॉर्मन्स म्हणून वाचते.

पॅनेलची शेवटची ओळ याउलट माहिती देते: reverse split मुळे प्रति शेअर किंमत 200% वाढल्यामुळे, किंमत कमी करण्याऐवजी वाढवल्यामुळे DD 245.3% दर्शवते. अशी कोणतीही यादी जी हे पाऊल टाळते, ती एकाच वेळी वर आणि खाली काल्पनिक माहिती प्रसिद्ध करते; म्हणूनच ही स्क्रीन किमती सुधारण्याचा प्रयत्न करण्याऐवजी स्प्लिट टिकर्स (split tickers) वेगळे ठेवते. एखादा फंड देखील कंपनीप्रमाणेच या पॅनेलमध्ये येऊ शकतो: इंडेक्स फंड देखील त्यांच्या शेअर्सचे स्प्लिट करतात आणि ही स्क्रीन दोन्ही कव्हर करते.

ही स्क्रीन कशी मोजली जाते

प्रत्येक टप्पा आणि त्या टप्प्यानंतर उरलेल्या कंपन्यांची संख्या:

क्वेरीScreening प्रक्रिया: प्रत्येक फिल्टरमध्ये टिकून राहणाऱ्या शेअर्सची संख्या
प्रत्येक आकड्यामागील अचूक 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. 2026 मधील पहिला पूर्ण ट्रेडिंग सेशन ते सर्वात अलीकडील पूर्ण सेशन. दोन्ही टोकांचे मूल्य मिनिट बार्समधून (minute bars) घेतले जाते. पूर्ण नियमित तासांचे बार्स असलेले सेशनच मोजले जाते, त्यामुळे प्रगतीपथावर असलेले दिवस पूर्ण मानले जात नाहीत.
  • The return. मिनिट बार्सवरून मोजलेले, वर्षातील पहिले नियमित सेशन ओपन आणि शेवटचे नियमित सेशन क्लोज यांच्यातील फरक. Premarket आणि after-hours प्रिंट्स दुर्लक्षित केले जातात. हे केवळ किमतींचे रिटर्न आहेत; यामध्ये लाभांश (dividends) समाविष्ट केलेले नाहीत, त्यामुळे high-yield कंपन्यांचे मूल्य total-return पेक्षा थोडे कमी दिसते.
  • The liquidity floor. गेल्या 20 कॅलेंडर दिवसांतील, पूर्ण झालेल्या सेशन्सचा सरासरी regular-hours turnover किमान $100 million असणे आवश्यक आहे. अर्धवट सेशनमुळे दिवसाच्या व्यवहाराची सरासरी कमी होऊ शकते, म्हणून केवळ पूर्ण झालेले सेशन्स मोजले जातात. या फिल्टरमुळे tickers ची संख्या 4492 वरून 1036 पर्यंत येते.
  • The price floor. शेअरची किंमत वर्षाच्या सुरुवातीला $10 च्या वर असावी. $10 पेक्षा कमी किमतीच्या शेअर्समुळे किमतीतील लहान बदलांमुळेही मोठी टक्केवारी दिसून येते.
  • Leveraged and inverse funds हे एका विशिष्ट यादीद्वारे वगळले जातात, जी प्रत्येक टेबलच्या खाली SQL मध्ये दिली आहे. यामध्ये index-geared funds आणि एका कंपनीच्या दैनंदिन हालचालींचा विस्तार करणारे single-stock funds यांचा समावेश आहे. एखादा geared fund कोणत्याही कंपनीच्या बातमीशिवाय मूळ movers list च्या वर असू शकतो. ही यादी मॅन्युअली अपडेट केली जाते, ज्यामुळे त्यात त्रुटी राहू शकते: या महिन्यात लाँच झालेला फंड तोपर्यंत वगळला जात नाही जोपर्यंत तो यादीत समाविष्ट केला जात नाही.
  • Ordinary funds are not filtered out. जर एखादा unlevered index किंवा sector ETF liquidity आणि price floors च्या निकषांवर उतरला, तर त्याला ऑपरेटिंग कंपन्यांसोबतच रँकिंग दिले जाते आणि तो breadth counts मध्येही येतो. फंड म्हणजे आधीच मोजलेल्या कंपन्यांचा समूह असतो, त्यामुळे त्या ओळींचा अर्थ त्या समूहाची कामगिरी असा होतो, एका कंपनीचे वार्षिक निकाल नाही.
  • Splits. 2026 दरम्यान ज्या टिकरचा split किंवा stock dividend लागू होतो, त्याला बाजूला ठेवले जाते, मग त्याचे प्रमाण कितीही लहान असो. हा एक सुरक्षित दृष्टिकोन आहे: यामुळे काही वास्तविक कामगिरी करणाऱ्या कंपन्या या यादीतून बाहेर पडतात, परंतु यामुळे शेअर संख्येतील बदलामुळे रिटर्नमध्ये चुकीची वाढ दिसत नाही. वरील पॅनेलमध्ये अशा वगळलेल्या कंपन्यांची माहिती आहे ज्यांचा split इतका मोठा होता की ज्यामुळे किमतीत कृत्रिम हालचाल दिसून येऊ शकली असती.
  • Late listings. ज्या कंपनीने वर्षाच्या पहिल्या सेशननंतर लिस्टिंग केले आहे, तिची जानेवारीची किंमत उपलब्ध नसते आणि ती या टेबल्समध्ये नसते. ज्या वर्षी नवीन लिस्टिंग जास्त असतात, तिथे ही एक त्रुटी ठरते.
  • The result. 954 कंपन्यांना रँकिंग दिले जाते आणि त्यातील वरच्या आणि खालच्या दहा कंपन्या या पृष्ठावरील दोन बोर्ड्स आहेत.

तीन वेगवेगळ्या कालखंडांतील विश्लेषण

Year to date हा एका शिडीचा एक पायरीचा भाग आहे आणि प्रत्येक कालखंडात हालचालींचे स्वरूप बदलते. Weekly view मध्ये या आठवड्यातील सर्वाधिक नफा आणि तोटा देणारे शेअर्स दिले आहेत, monthly view मध्ये या महिन्यातील सर्वाधिक हालचाल करणारे शेअर्स दिले आहेत, तर हा 페이지 वर्षाचे विश्लेषण करते. प्रत्येक पायरीनुसार निकष बदलतात: हा page गेल्या महिन्यातील सरासरी $100 million च्या व्यवहारांवर आधारित आहे, तर weekly आणि monthly pages त्यांच्या संबंधित कालखंडातील एकूण व्यवहारांवर आधारित आहेत; त्यामुळे एखादा शेअर एका कालखंडात आघाडीवर असून दुसऱ्या कालखंडात मागे असू शकतो. एखाद्या तिमाही निकालावर (earnings reaction) साप्ताहिक यादीत आघाडीवर असलेला शेअर वर्षाच्या यादीत मध्यम स्थानी असू शकतो. वर्षाच्या आतापर्यंतच्या व्यापक विश्लेषणासाठी, first-half market recap मध्ये index, rates आणि sector तपशील दिले आहेत, आणि how leveraged ETFs work मध्ये leveraged funds येथे का समाविष्ट केलेले नाहीत याचे स्पष्टीकरण दिले आहे.

FAQ

2026 मधील सर्वोत्तम कामगिरी करणारा स्टॉक कोणता?

ज्या स्टॉक्समध्ये दररोज किमान $100 million ची सरासरी ट्रेडिंग होते, ज्यांची वर्षाची सुरुवात $10 च्या वर झाली आहे, ज्यांचे 2026 मध्ये कोणतेही split झालेले नाही आणि जे leveraged-fund च्या यादीत नाहीत, त्यापैकी SNDK हा 2026 मधील आतापर्यंतचा सर्वोत्तम कामगिरी करणारा स्टॉक आहे. वर्षाच्या पहिल्या सत्रापासून यामध्ये 554.9% ची वाढ झाली आहे. 386.3% च्या वाढीसह MXL हा दुसऱ्या क्रमांकावर आहे.

2026 मध्ये कोणत्या स्टॉक्समध्ये सर्वाधिक घसरण झाली आहे?

या स्क्रीनवरील -65.9% च्या घसरणीसह EOSE हा 2026 मधील सर्वात खराब कामगिरी करणारा स्टॉक आहे, त्यानंतर -58.7% च्या घसरणीसह CSGP आहे. 2026 मधील सर्वाधिक नुकसान सोसणाऱ्या स्टॉक्सची संपूर्ण यादी वरच्या दुसऱ्या टेबलमध्ये दिली आहे, जी वर्षभर अपडेट केली जाते.

Year-to-date स्टॉक रिटर्नची गणना कशी केली जाते?

Year-to-date रिटर्न म्हणजे चालू वर्षातील सध्याची किंमत आणि कॅलेंडर वर्षाच्या सुरुवातीची किंमत यांची तुलना करणे आणि त्यातील बदल टक्केवारीमध्ये दर्शवणे. येथे, 2026 च्या पहिल्या नियमित सत्रातील ओपनची तुलना सर्वात अलीकडील पूर्ण झालेल्या सत्राच्या क्लोजशी केली जाते. वर्षात split झालेल्या स्टॉक्सना ॲडजस्ट करण्याऐवजी वगळले जाते, त्यामुळे वाचकांसाठी कोणताही ॲडजस्टमेंट फॅक्टर लागू होत नाही.

2026 च्या गेनर्स (gainers) यादीत leveraged ETFs समाविष्ट आहेत का?

नाही. Leveraged किंवा inverse फंड एखाद्या इंडेक्सची किंवा सिंगल स्टॉकची दैनंदिन हालचाल अनेक पटीने वाढवतात, त्यामुळे कंपनीच्या कोणत्याही बातमीशिवाय ते सहसा मूळ मूव्हर्स यादीत वर येतात. रँकिंग करण्यापूर्वी अशा फंड्सना नावाने वगळले जाते आणि ही यादी प्रत्येक टेबलच्या खाली SQL मध्ये पाहता येते. सामान्य इंडेक्स आणि सेक्टर ETFs चे प्रकरण वेगळे आहे: ते कोणत्याही स्टॉकप्रमाणेच सर्व निकष पूर्ण करतात आणि येथे रँक केले जातात, त्यामुळे एखादा फंड दोन्ही यादींमध्ये दिसू शकतो.


येथील प्रत्येक टेबल ही एक स्टोर्ड क्वेरी आहे ज्याची SQL जोडलेली आहे. स्क्रीन तपासण्यासाठी किंवा Strasmore टर्मिनलवर तुमच्या स्वतःच्या निकषांसह ती पुन्हा तयार करण्यासाठी कोणतेही पॅनेल विस्तारू शकता.