2026 के सबसे ज्यादा बढ़ते और गिरते स्टॉक्स
2026 के सबसे बेहतरीन प्रदर्शन करने वाले और सबसे ज्यादा नुकसान वाले स्टॉक्स की सूची। इसमें स्टॉक स्प्लिट और लेवरेज्ड फंड्स को शामिल नहीं किया गया है।
2026 में अब तक के सबसे अच्छा प्रदर्शन करने वाले शेयरों में SNDK सबसे आगे है, जो वर्ष के शुरुआती सत्र से लेकर हाल ही में समाप्त हुए सत्र तक 550.2% बढ़ा है। यह पृष्ठ वास्तविक रूप से ट्रेड होने वाले नामों में 2026 के सबसे बड़े स्टॉक गेनर्स और लूजर्स की रैंकिंग करता है। यह डेटा वेंडर सारांश के बजाय एक्सचेंज टेप से मापा जाता है और वर्ष के दौरान अपडेट होता रहता है। किसी भी रैंकिंग से पहले स्टॉक स्प्लिट और लेवरेज्ड फंड्स को हटा दिया जाता है, जहाँ अधिकांश year-to-date सूचियाँ अक्सर गलत हो जाती हैं।
2026 के सबसे बड़े स्टॉक गेनर्स
नीचे दिए गए प्रत्येक नाम को रैंकिंग से पहले लिक्विडिटी फ्लोर (liquidity floor) पार करना आवश्यक था: पिछले एक महीने में प्रत्येक सत्र में औसतन कम से कम $100 million के स्टॉक का लेन-देन हुआ हो। जिस स्टॉक में कोई ट्रेड नहीं करता, उसमें उच्च प्रतिशत केवल एक कोटेशन है, परिणाम नहीं।
हर आंकड़े के पीछे का पूरा 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 10SNDK 550.2% के साथ वर्ष में सबसे आगे है, जिसके बाद MXL 382.4% पर और AEHR 370.6% पर तीसरे स्थान पर है। बोर्ड पर दसवें स्थान पर, SYRE, अभी भी 213.2% ऊपर है, इसलिए पूरी तालिका किसी भी ब्रॉड इंडेक्स की तुलना में बहुत आगे निकल गई है।
प्रत्येक मूव के बगल वाला डॉलर कॉलम उतना ही महत्वपूर्ण है जितना कि प्रतिशत। SYRE का औसत दैनिक टर्नओवर लगभग $100 million है। बोर्ड के शीर्ष पर SNDK का औसत $18782 million है। यहाँ प्रत्येक नाम प्रतिदिन $100 million का लेन-देन करता है, और इस फ्लोर से ऊपर की रेंज इतनी विस्तृत है कि एक ही हेडलाइन प्रतिशत अपने दोनों छोरों पर दो अलग-अलग चीजें दर्शाता है। कम वॉल्यूम वाले स्टॉक को ऊपर ले जाना आसान होता है, लेकिन स्क्रीन पर दिख रही कीमत पर बाहर निकलना कठिन होता है।
2026 के सबसे बड़े स्टॉक लूजर्स
वही माप, लेकिन विपरीत दिशा में: समान लिक्विडिटी फ्लोर को पार करने वाले नामों में सबसे बड़ी 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
),
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सबसे बड़ी year-to-date गिरावट EOSE में -63.6% रही, जिसके बाद CSGP -57.5% पर रहा। सूची में दसवें स्थान पर, HUBS, -45.2% पर है। यहाँ कई नाम बड़े और व्यापक रूप से होल्ड किए जाने वाले कंपनियाँ हैं, न कि सट्टा वाले micro caps, जो कि लूजर लिस्ट का वह हिस्सा है जो लोगों को आश्चर्यचकित करता है। लिक्विडिटी और एनालिस्ट कवरेज शेयर की कीमत को कोई फ्लोर नहीं देते। यदि किसी ने अपने पोर्टफोलियो में इनमें से किसी एक को बड़े हिस्से के रूप में रखा है, तो उसने पूरी गिरावट का सामना किया, जिसे एक स्टॉक होल्ड करने का जोखिम पेज अस्थिरता और drawdown नंबरों के साथ मापता है।
2026 में बाजार का कितना हिस्सा ऊपर है
लीडरबोर्ड केवल दो छोरों को दिखाता है। ब्रैडथ (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 इस प्रकार हैं:
हर आंकड़े के पीछे का पूरा 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-21) तक। इस अवधि में Russell 2000 (IWM) ने 19.7% का रिटर्न दिया और Dow (DIA) ने 8.2% का रिटर्न दिया। गेनर्स टेबल (gainers table) के सभी नाम इन चारों से काफी आगे रहे, जो एक इंडेक्स की गणितीय प्रक्रिया है: सैकड़ों होल्डिंग्स का औसत एक लाइन में आता है, जहाँ व्यक्तिगत उतार-चढ़ाव आंशिक रूप से एक-दूसरे को संतुलित कर देते हैं। उस लाइन के नीचे का अंतर स्वयं लाइन से कहीं अधिक व्यापक था, और पहली छमाही का सेक्टर स्कोरकार्ड सभी ग्यारह सेक्टरों की आपस में तुलना करता है।
The stock split that fakes a year-to-date move
A split changes the share count and the per-share price without changing what a holding is worth. Over a window this long many companies split, and an unadjusted year-to-date calculation reads the change in the per-share price as performance. The names below each carried a 2026 split or stock dividend large enough to move that price by at least a fifth, and each cleared the same liquidity floor, so each was eligible for the boards above before the split filter removed it.
हर आंकड़े के पीछे का पूरा 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 ASCBKNG would print -96.7% on an unadjusted screen after a forward split moved its per-share price -96%, and VGT would print -84.8% after a forward split moved its price -87.5%. No holder of either lost anything on the day the split took effect. The per-share price was divided and the share count was multiplied by the same factor. The split effect column isolates the price change the split alone accounts for, which is the part an unadjusted screen reads as performance.
The last row of the panel runs the other way: DD shows 243.4% after a reverse split lifted its per-share price 200%, raising the price instead of cutting it. Any list that skips this step publishes fiction at the top and the bottom simultaneously, which is why the screen sets split tickers aside rather than trying to patch their prices. A fund can land in this panel as easily as a company: index funds split their shares too, and this screen covers both.
इस स्क्रीन को कैसे मापा जाता है
स्क्रीन का प्रत्येक चरण, और उसके बाद बचे हुए नामों की संख्या:
हर आंकड़े के पीछे का पूरा 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)। वर्ष का पहला रेगुलर-सेशन ओपन और अंतिम रेगुलर-सेशन क्लोज, जिसकी गणना मिनट बार से की जाती है। प्री-मार्केट और आफ्टर-ऑवर्स प्रिंट्स को अनदेखा किया जाता है। ये प्राइस रिटर्न हैं; डिविडेंड्स को वापस नहीं जोड़ा जाता है, इसलिए हाई-यील्ड नाम यहाँ टोटल-रिटर्न फिगर की तुलना में थोड़े खराब दिखते हैं।
- लिक्विडिटी फ्लोर (The liquidity floor)। पिछले 20 कैलेंडर दिनों में प्रति सत्र कम से कम $100 मिलियन का औसत रेगुलर-ऑवर्स टर्नओवर, जिसमें केवल शुरू से अंत तक चलने वाले सत्रों को गिना जाता है। अन्यथा, एक आंशिक सत्र किसी दिन के डॉलर के हिस्से को पूरे दिन से विभाजित कर देगा और हर नाम के टर्नओवर को कम करके दिखाएगा। यह एकल फ़िल्टर क्षेत्र को 4516 टिकर्स से घटाकर 1039 कर देता है।
- प्राइस फ्लोर (The price floor)। स्टॉक का वर्ष की शुरुआत $10 प्रति शेयर से ऊपर हुई थी। $10 से कम मूल्य वाले नाम छोटे प्राइस स्टेप्स से बड़े प्रतिशत उत्पन्न करते हैं।
- लीवरेज्ड और इनवर्स फंड्स (Leveraged and inverse funds) को एक क्यूरेटेड लिस्ट के माध्यम से बाहर रखा गया है, जो हर टेबल के नीचे SQL में पूरी तरह से दी गई है। इसमें इंडेक्स-गियर्ड फंड्स और सिंगल-स्टॉक फंड्स शामिल हैं जो किसी एक कंपनी के दैनिक उतार-चढ़ाव को गुणा करते हैं। एक गियर्ड फंड बिना किसी कंपनी समाचार के भी किसी भी रॉ मूवर्स लिस्ट में शीर्ष पर हो सकता है। इस लिस्ट को मैन्युअल रूप से बनाए रखा जाता है, जो इसकी कमजोरी है: इस महीने लॉन्च किए गए फंड को केवल तभी बाहर किया जाता है जब कोई उसे जोड़ देता है।
- साधारण फंड्स को फ़िल्टर नहीं किया जाता है। एक अनलीवरेज्ड इंडेक्स या सेक्टर ETF जो लिक्विडिटी और प्राइस फ्लोर को पार कर लेता है, उसे यहाँ ऑपरेटिंग कंपनियों के साथ रैंक किया जाता है, और यह ब्रेड्थ काउंट में भी शामिल होता है। एक फंड पहले से ही उसी यूनिवर्स में गिने गए नामों की टोकरी है, इसलिए उन पंक्तियों को एक कंपनी के वर्ष के बजाय उस टोकरी के प्रदर्शन के रूप में पढ़ें।
- स्प्लिट्स (Splits)। कोई भी टिकर जिसका 2026 के दौरान स्प्लिट या स्टॉक डिविडेंड प्रभावी होता है, उसे अलग कर दिया जाता है, चाहे अनुपात कितना भी छोटा हो। यह एक रूढ़िवादी विकल्प है: इसके कारण कुछ वास्तविक प्रदर्शन करने वाले नामों को बोर्ड पर जगह नहीं मिल पाती है, और यह शेयर-काउंट परिवर्तन को रिटर्न के रूप में कभी प्रकाशित नहीं करता है। ऊपर दिया गया पैनल उन बाहर किए गए नामों को दिखाता है जिनका स्प्लिट इतना बड़ा था कि वह उतार-चढ़ाव का दिखावा कर सके।
- लेट लिस्टिंग्स (Late listings)। वर्ष के पहले सत्र के बाद लिस्ट होने वाली कंपनी का जनवरी का प्राइस नहीं होता है और वह इन टेबल्स में अनुपस्थित होती है, जो भारी नई-लिस्टिंग कैलेंडर वाले वर्ष में एक वास्तविक कमी है।
- परिणाम (The result)। 956 नामों को रैंक किया जाता है, और उनमें से शीर्ष और निचले दस नाम इस पेज पर दो बोर्ड हैं।
तीन अलग-अलग समय सीमाओं पर एक ही प्रश्न
Year to date (वर्ष की शुरुआत से अब तक) एक सीढ़ी के एक पायदान की तरह है, और हर पायदान पर उतार-चढ़ाव अलग दिखता है। साप्ताहिक दृश्य इस सप्ताह के सबसे बड़े स्टॉक गेनर्स और लूजर्स को दर्शाता है, मासिक दृश्य इस महीने के सबसे बड़े स्टॉक मूवर्स को दिखाता है, और यह पृष्ठ पूरे वर्ष का डेटा देता है। प्रत्येक पायदान के लिए मानदंड अलग हैं: यह पृष्ठ पिछले एक महीने में औसतन $100 million प्रतिदिन के आधार पर डेटा फ़िल्टर करता है, जबकि साप्ताहिक और मासिक पृष्ठ अपने संबंधित समय सीमा के भीतर कुल ट्रेड किए गए डॉलर के आधार पर फ़िल्टर करते हैं। इस कारण कोई स्टॉक एक सूची में शीर्ष पर हो सकता है लेकिन दूसरी में नहीं। जो स्टॉक किसी एक अर्निंग रिएक्शन के कारण साप्ताहिक सूची में सबसे ऊपर आता है, वह अक्सर पूरे वर्ष की सूची में बीच में रहता है। इस वर्ष के अब तक के व्यापक विवरण के लिए, पहली छमाही का मार्केट रिकैप इंडेक्स, दरों और सेक्टर का विवरण देता है, और leveraged ETFs कैसे काम करते हैं यह समझाता है कि लीवरेज्ड फंड्स को यहाँ से अलग क्यों रखा गया है।
FAQ
2026 का सबसे अच्छा प्रदर्शन करने वाला स्टॉक कौन सा है?
उन शेयरों में से जिनका औसत दैनिक कारोबार कम से कम $100 million है, जो वर्ष की शुरुआत $10 से ऊपर हुए हैं, जिनमें 2026 में कोई split नहीं हुआ है, और जो leveraged-fund सूची में शामिल नहीं हैं, SNDK अब तक का 2026 का सबसे अच्छा प्रदर्शन करने वाला स्टॉक है। यह वर्ष के पहले सत्र से 550.2% ऊपर है। MXL 382.4% के साथ दूसरे स्थान पर है।
2026 में किन शेयरों में सबसे अधिक गिरावट आई है?
इस स्क्रीन पर -63.6% के साथ EOSE 2026 का सबसे खराब प्रदर्शन करने वाला स्टॉक है, जो -57.5% पर CSGP से आगे है। 2026 के सबसे बड़े नुकसान वाले शेयरों की पूरी सूची ऊपर दी गई दूसरी तालिका में है, जिसे वर्ष के दौरान अपडेट किया जाता है।
year-to-date स्टॉक रिटर्न की गणना कैसे की जाती है?
एक year-to-date रिटर्न नवीनतम कीमत की तुलना कैलेंडर वर्ष की शुरुआत की कीमत से करता है और परिवर्तन को प्रतिशत के रूप में व्यक्त करता है। यहाँ, इसकी तुलना 2026 के पहले नियमित सत्र के ओपन से सबसे हाल ही में समाप्त हुए सत्र के क्लोज के बीच की जाती है। वर्ष के दौरान split होने वाले शेयरों को समायोजित करने के बजाय अलग रख दिया जाता है, ताकि पाठक के लिए कोई समायोजन कारक (adjustment factor) न रहे।
क्या 2026 के गेनर्स (gainers) की सूची में leveraged ETFs शामिल हैं?
नहीं। एक leveraged या inverse फंड किसी इंडेक्स या एकल स्टॉक के दैनिक उतार-चढ़ाव को कई गुना बढ़ा देता है, इसलिए वे अक्सर बिना किसी कंपनी समाचार के ही रॉ मूवर्स (raw movers) सूची में सबसे ऊपर आ जाते हैं। रैंकिंग से पहले उन फंडों को नाम के आधार पर हटा दिया जाता है, और यह सूची प्रत्येक तालिका के नीचे SQL में देखी जा सकती है। साधारण इंडेक्स और सेक्टर ETFs का मामला अलग है: वे किसी भी स्टॉक की तरह ही समान मानदंडों को पूरा करते हैं और यहाँ रैंक किए जाते हैं, इसलिए एक फंड किसी भी बोर्ड पर दिखाई दे सकता है।
यहाँ प्रत्येक तालिका एक संग्रहीत क्वेरी (stored query) है जिसके साथ उसका SQL जुड़ा हुआ है। स्क्रीन का ऑडिट करने के लिए किसी भी पैनल को विस्तार दें, या Strasmore टर्मिनल पर अपने स्वयं के मानदंडों के साथ इसे फिर से बनाएँ।