2026 yılının en çok kazandıran ve kaybettiren hisseleri
2026 yılında gerçek likidite verilerine göre en yüksek getiri sağlayan ve değer kaybeden hisseler listelenmektedir. Hisse bölünmeleri ve kaldıraçlı fonlar hariç tutulmuştur.
2026 yılının şu ana kadarki en iyi performans gösteren hisseleri, yılın ilk işlem gününden en son tamamlanan seansa kadar 536.4% oranında değer kazanan SNDK öncülüğünde ilerlemektedir. Bu sayfa, 2026 yılında gerçek işlem hacmine sahip hisseler arasında en çok kazandıran ve kaybettirenleri, aracı kurum özetlerinden ziyade doğrudan borsa kayıtlarından (exchange tape) alınan verilerle sıralamakta ve yıl boyunca güncellenmektedir. Hisse bölünmeleri ve kaldıraçlı fonlar, yılbaşından bugüne (YTD) getirisi hesaplanan listelerin çoğunda yapılan hataların önüne geçmek amacıyla sıralamaya dahil edilmeden önce elenmektedir.
2026 yılının en çok değer kazanan hisseleri
Aşağıdaki listede yer alan her isim, sıralamaya girmeden önce bir likidite eşiğini aşmıştır: son bir ay içinde tamamlanan her işlem gününde ortalama en az yüz milyon dolarlık hisse el değiştirmiştir. İşlem hacmi düşük bir hissede görülen yüksek yüzdesel değişim, bir sonuç değil, yalnızca bir kotasyondur.
| ticker | ybb getiri (%) | ort. günlük hacim ($m) |
|---|---|---|
| SNDK | 536.4 | 15431 |
| MRNA | 399 | 5598 |
| TWST | 305.4 | 202 |
| DELL | 301.8 | 3566 |
| TXG | 287.5 | 142 |
| AEHR | 262.8 | 208 |
| MXL | 233.4 | 114 |
| AXTI | 226.9 | 525 |
| MU | 224.8 | 20455 |
| AMLX | 183.5 | 131 |
Her verinin arkasındaki tam 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, 536.4% ile yılın zirvesinde yer alırken, MRNA 399% ile ikinci, TWST ise 305.4% ile üçüncü sıradadır. Listenin onuncu sırasındaki AMLX dahi 183.5% oranında değer kazanmış olup, tablonun tamamı geniş kapsamlı endekslerin oldukça üzerinde bir performans sergilemiştir.
Her hareketin yanındaki dolar sütunu, yüzdesel değişim kadar bilgi içermektedir. AMLX günlük ortalama yaklaşık 131 milyon dolar işlem hacmine sahiptir. Listenin zirvesindeki SNDK ise ortalama 15431 milyon dolar hacme ulaşmaktadır. Buradaki her isim günlük yüz milyon dolar barajını aşmaktadır; ancak bu eşiğin üzerindeki aralık, aynı manşet yüzdesinin iki uç noktada farklı anlamlara gelmesine neden olacak kadar geniştir. İşlem hacmi düşük bir hisseyi yukarı taşımak daha kolay, ekrandaki fiyattan çıkış yapmak ise daha zordur.
2026 yılının en çok değer kaybeden hisseleri
Aynı ölçümün tersi: Aynı likidite eşiğini aşan isimler arasında yılbaşından bugüne en sert düşüşler.
| ticker | ybb getiri (%) | ort. günlük hacim ($m) |
|---|---|---|
| TTD | -60.5 | 192 |
| WING | -54.4 | 103 |
| APP | -54.1 | 1257 |
| CSGP | -52.8 | 144 |
| FLUT | -52.7 | 140 |
| STLA | -51.5 | 105 |
| BSX | -51 | 763 |
| KLAR | -50.4 | 145 |
| RBLX | -49.1 | 303 |
| JOBY | -48.8 | 153 |
Her verinin arkasındaki tam 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 10Yılbaşından bugüne en sert düşüş TTD hissesinde -60.5% oranıyla gerçekleşti; onu WING hissesi -54.4% ile takip ediyor. Listenin onuncu sırasında yer alan JOBY ise -48.8% seviyesinde bulunuyor. Buradaki isimlerin birçoğu spekülatif mikro ölçekli şirketlerden ziyade, büyük ve geniş bir yatırımcı kitlesine sahip şirketlerden oluşuyor; kayıplar listesinde insanları şaşırtan kısım da bu. Likidite ve analist takibi, bir hisse fiyatına taban oluşturmaz. Bu hisselerden birini portföyünde ağırlıklı olarak tutan yatırımcılar, hareketin tamamını yaşadı; bu durum, tek bir hisse tutmanın riski sayfasında volatilite ve değer kaybı rakamlarıyla ölçülmektedir.
2026 yılında piyasanın ne kadarı yükselişte
Bir liderlik tablosu yalnızca iki uç noktayı gösterir. Piyasa genişliği ise gövdeyi ortaya koyar: Endeks fonları dahil olmak üzere tüm taranmış evrenin, hareket büyüklüğüne göre gruplandırılarak yükselen ve düşen hisseler arasında nasıl bölündüğünü gösterir.
| grup | isimler | taraf payı (%) |
|---|---|---|
| Down 40%+ | 18 | 35.5 |
| Down 20-40% | 69 | 35.5 |
| Down 10-20% | 78 | 35.5 |
| Down 0-10% | 162 | 35.5 |
| Up 0-10% | 152 | 64.5 |
| Up 10-25% | 198 | 64.5 |
| Up 25-50% | 142 | 64.5 |
| Up 50%+ | 103 | 64.5 |
Her verinin arkasındaki tam 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 ordTaranmış hisselerin 64.5% kadarı yılbaşından bu yana yükselişte, 35.5% kadarı ise düşüşte. Dağılım, ilk on listesinin gizlediği gerçektir. 18 adet hisse bir uçta Down 40%+ grubunda yer alırken, 103 adet hisse diğer uçta Up 50%+ grubundadır; buna karşılık değişim göstermeyenlerin her iki tarafında 162 adet hisse Down 0-10% grubunda ve 152 adet hisse Up 0-10% grubundadır. Piyasanın büyük çoğunluğu herhangi bir yılda olağan bir seyir izler; yukarıdaki iki tabloda yer alan hisseler ise ortalamaların üzerine inşa edildiği istisnalardır.
Piyasanın mevcut durumu
Tek bir hissenin yıllık performansı, piyasanın genel performansıyla kıyaslandığında farklı bir anlam kazanır. Dört büyük endeks ETF'i, tam olarak aynı dönem için şu sonuçları vermiştir:
| etiket | ybb getiri (%) | başlangıç tarihi | bitiş tarihi |
|---|---|---|---|
| Russell 2000 (IWM) | 19.2 | 2026-01-02 | 2026-09-03 |
| Nasdaq 100 (QQQ) | 15.7 | 2026-01-02 | 2026-09-03 |
| S&P 500 (SPY) | 12.7 | 2026-01-02 | 2026-09-03 |
| Dow (DIA) | 11.4 | 2026-01-02 | 2026-09-03 |
Her verinin arkasındaki tam 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 DESCHem tablolar hem de yukarıdaki panel tek bir dönem üzerinden ölçülmüştür: 2026'nın ilk tam işlem günü (2026-01-02) ile tamamlanan en son işlem günü (2026-09-03) arası. Bu dönem boyunca Russell 2000 (IWM), 19.2% getiri sağlarken Dow (DIA), 11.4% getiri elde etmiştir. Kazananlar tablosundaki her bir isim, bu dört endeksi de büyük bir farkla geride bırakmıştır; bu durum endeks matematiğinin bir sonucudur: yüzlerce varlığın ortalaması tek bir çizgide birleşir ve bireysel hareketler kısmen birbirini dengeler. Bu çizginin altındaki spread, çizginin kendisinden çok daha geniştir ve ilk yarı için sektör karnesi on bir sektörün tamamını birbirine göre sıralamaktadır.
Yılbaşından bugüne getiriyi yanıltan hisse bölünmeleri
Hisse bölünmesi, bir varlığın toplam değerini değiştirmeksizin hisse adedini ve hisse başına fiyatı değiştirir. Bu kadar uzun bir zaman diliminde birçok şirket bölünmeye gider ve düzeltilmemiş bir yılbaşından bugüne hesaplama, hisse başına fiyattaki değişimi performans olarak algılar. Aşağıdaki isimlerin her biri, fiyatı en az beşte bir oranında değiştirecek büyüklükte bir 2026 bölünmesi veya hisse senedi temettüsü gerçekleştirmiştir. Her biri aynı likidite eşiğini aşmış olup, bölünme filtresi devreye girmeden önce yukarıdaki tablolara girmeye hak kazanmıştır.
| ticker | düzeltilmemiş ybb (%) | bölünme fiyat etkisi (%) | bölünme türü | bölünme tarihi |
|---|---|---|---|---|
| BKNG | -96.4 | -96 | forward split | 2026-04-06 |
| KLAC | -86.3 | -90 | forward split | 2026-06-12 |
| VGT | -84.1 | -87.5 | forward split | 2026-04-21 |
| CVNA | -82.6 | -80 | forward split | 2026-05-08 |
| VUG | -81.9 | -83.3 | forward split | 2026-04-21 |
| HDV | -75.6 | -80 | forward split | 2026-04-29 |
| IWF | -74.1 | -75 | forward split | 2026-04-29 |
| VO | -71.7 | -75 | forward split | 2026-04-21 |
| CRWD | -54.6 | -75 | stock dividend | 2026-07-02 |
| MNST | -42.5 | -50 | stock dividend | 2026-08-11 |
| APH | -40.1 | -50 | stock dividend | 2026-09-03 |
| MVLL | 4.3 | -66.7 | forward split | 2026-06-26 |
| HON | 6.1 | 100 | reverse split | 2026-06-29 |
| DD | 224.3 | 200 | reverse split | 2026-06-24 |
Her verinin arkasındaki tam 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, bir forward split hisse başına fiyatını -96% oranında değiştirdikten sonra düzeltilmemiş bir ekranda -96.4% olarak yansıyacak; KLAC ise bir forward split fiyatını -90% oranında değiştirdikten sonra -86.3% olarak yansıyacaktır. Bölünmenin yürürlüğe girdiği gün hiçbir hissedar değer kaybına uğramamıştır. Hisse başına fiyat bölünmüş, hisse adedi ise aynı çarpanla artırılmıştır. Bölünme etkisi sütunu, yalnızca bölünmeden kaynaklanan fiyat değişimini izole eder; düzeltilmemiş bir ekranın performans olarak okuduğu kısım budur.
Panelin son satırı ters yönde işlemektedir: DD, bir reverse split hisse başına fiyatını 200% oranında artırarak fiyatı düşürmek yerine yükselttiğinde 224.3% değerini göstermektedir. Bu adımı atlayan her liste, hem en üstte hem de en altta kurgusal veriler yayınlar; ekranın bölünmüş ticker’ları fiyatlarını yamamaya çalışmak yerine kenara ayırmasının nedeni budur. Bir fon da bir şirket kadar kolay bir şekilde bu panele girebilir: Endeks fonları da hisselerini böler ve bu ekran her ikisini de kapsamaktadır.
Bu tarama nasıl ölçülmektedir?
Taramanın her aşaması ve sonrasında kalan hisse senedi sayısı:
| tarama adımı | isimler |
|---|---|
| Traded the first and the last full session | 4471 |
| Averaging $100m+ a day over the past month | 1000 |
| Opened 2026 above $10 a share | 970 |
| Not on the excluded-fund list | 938 |
| No split or stock dividend in 2026 | 922 |
Her verinin arkasındaki tam 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
)Yöntemin tam açıklaması:
- Pencere. 2026 yılının ilk tam işlem seansından, kayıtlardaki en son tam seansa kadar olan dönem. Her iki uç nokta da dakika bazlı barlardan okunur; bir günün seans olarak sayılabilmesi için tam normal işlem saatlerini kapsaması gerekir, bu nedenle devam eden bir gün hiçbir zaman tamamlanmış kabul edilmez.
- Getiri. Yılın ilk normal seans açılışı ile son normal seans kapanışı arasındaki fark, dakika bazlı barlardan hesaplanır. Piyasa öncesi (premarket) ve seans sonrası (after-hours) işlemler dikkate alınmaz. Bunlar fiyat getirileridir; temettüler dahil edilmez, bu nedenle yüksek temettü verimine sahip bir hisse, toplam getiri rakamına kıyasla burada biraz daha düşük performans sergiliyor gibi görünebilir.
- Likidite tabanı. Son yirmi takvim günü boyunca, sadece baştan sona tamamlanmış seanslar baz alınarak, seans başına ortalama en az yüz milyon dolar tutarında normal işlem hacmi. Kısmi seanslar, bir günün işlem hacmini tam bir güne bölerek her hissenin hacmini olduğundan düşük göstereceğinden hesaba katılmaz. Bu tek filtre, evreni 4471 ticker'dan 1000 seviyesine indirir.
- Fiyat tabanı. Hisse senedinin yıl açılış fiyatı on doların üzerindedir. On doların altındaki hisseler, küçük fiyat değişimlerinde bile büyük yüzdesel hareketler yaratır.
- Kaldıraçlı ve ters fonlar, her tablonun altındaki SQL sorgusunda tam listesi verilen özel bir liste aracılığıyla hariç tutulur. Bu liste, endeks bazlı fonları ve tek bir şirketin günlük hareketini çarpan tek hisse senedi fonlarını kapsar. Kaldıraçlı bir fon, hiçbir şirket haberi olmaksızın en çok yükselenler listesinin zirvesine yerleşebilir. Listenin manuel olarak tutulması zayıf noktasıdır: bu ay piyasaya sürülen bir fon, ancak biri listeye eklediğinde hariç tutulur.
- Sıradan fonlar filtrelenmez. Likidite ve fiyat tabanlarını aşan kaldıraçsız bir endeks veya sektör ETF'i, burada faaliyet gösteren şirketlerle birlikte sıralanır ve genişlik hesaplamalarına dahil edilir. Bir fon, aynı evrende zaten sayılmış olan hisselerden oluşan bir sepet olduğundan, bu satırları tek bir şirketin yıllık performansı olarak değil, sepetin performansı olarak okuyunuz.
- Bölünmeler. 2026 yılı içinde bölünmeye giden veya hisse senedi temettüsü dağıtan herhangi bir ticker, oranı ne kadar küçük olursa olsun kapsam dışı bırakılır. Bu muhafazakar bir tercihtir; gerçek performans gösteren birkaç hissenin listede yer almasını engellese de, hisse adedi değişiminin bir getiri gibi yansımasını önler. Yukarıdaki panel, bölünmesi bir fiyat hareketi gibi görünecek kadar büyük olan hariç tutulmuş isimleri gösterir.
- Geç listelenenler. Yılın ilk seansından sonra borsaya kote olan bir şirketin Ocak ayı fiyatı bulunmadığından, yeni halka arz takviminin yoğun olduğu bir yılda önemli bir boşluk yaratan bu tabloların dışında kalır.
- Sonuç. 922 hisse senedi sıralanır ve bunların en iyi ve en kötü on tanesi bu sayfadaki iki paneli oluşturur.
Üç farklı pencerede aynı soru
Yılbaşından bugüne (YTD) performans, bir merdivenin basamakları gibidir ve her uzunlukta farklı bir görünüm sunar. Haftalık görünüm bu haftanın en çok kazandıran ve kaybettiren hisseleri, aylık görünüm bu ayın en hareketli hisseleri başlığında yer alırken, bu sayfa yılın tamamını kapsamaktadır. Basamaklar arasındaki eşikler farklıdır: Bu sayfa son bir ayda günlük ortalama yüz milyon dolar işlem hacmi kriterine göre filtrelenirken, haftalık ve aylık sayfalar kendi dönemleri içindeki toplam işlem hacmine göre filtrelenir; bu nedenle bir hisse bir tabloda yer alırken diğerinde dışarıda kalabilir. Bir kazanç raporu tepkisiyle haftalık tabloda zirveye yerleşen bir hisse, yıl genelinde orta sıralarda kalabilir. Yılın geri kalanına dair daha geniş bir anlatı için yılın ilk yarısı piyasa özeti endeks, faiz oranları ve sektör detaylarını sunarken, kaldıraçlı ETF'ler nasıl çalışır bölümü, kaldıraçlı fonların neden burada hariç tutulduğunu açıklamaktadır.
Sıkça Sorulan Sorular
2026 yılının en iyi performans gösteren hissesi hangisidir?
Günlük ortalama yüz milyon dolar işlem hacmine sahip, yıla on doların üzerinde başlayan, 2026 yılında bölünmeye gitmeyen ve kaldıraçlı fon listesinde yer almayan hisseler arasında SNDK, yılın ilk seansından bu yana 536.4% artışla 2026 yılının en iyi performans gösteren hissesidir. MRNA, 399% ile ikinci sıradadır.
2026 yılında en çok değer kaybeden hisseler hangileridir?
TTD, -60.5% düşüşle bu taramada 2026 yılının en kötü performans gösteren hissesi olurken, onu -54.4% ile WING takip etmektedir. 2026 yılının en çok değer kaybeden hisselerinin tam listesi, yıl ilerledikçe güncellenen yukarıdaki ikinci tabloda yer almaktadır.
Yılbaşından bugüne hisse senedi getirisi nasıl hesaplanır?
Yılbaşından bugüne getiri, en güncel fiyatı takvim yılının başlangıcındaki fiyatla karşılaştırır ve değişimi yüzde olarak ifade eder. Burada kullanılan baz, 2026 yılının ilk normal seans açılışı ile en son tamamlanan seansın kapanışıdır. Yıl içinde bölünmeye giden hisseler düzeltilmek yerine liste dışı bırakılır; böylece okuyucu ile piyasa verisi arasında herhangi bir düzeltme katsayısı bulunmaz.
Kaldıraçlı ETF'ler 2026 kazananlar listesine dahil mi?
Hayır. Kaldıraçlı veya ters fonlar, bir endeksin ya da tek bir hissenin günlük hareketini çarpan etkisiyle yansıtır; bu nedenle arkasında herhangi bir şirket haberi olmaksızın hareketli hisseler listesinin başında yer alırlar. Bu fonlar sıralama yapılmadan önce isim bazında listeden çıkarılır ve liste, her tablonun altındaki SQL sorgusunda görülebilir. Standart endeks ve sektör ETF'leri ise farklı bir durumdur: Bu fonlar herhangi bir hisse senedi ile aynı kriterleri karşılar ve burada sıralamaya dahil edilirler; dolayısıyla bir fon her iki tabloda da yer alabilir.
Buradaki her tablo, ekli SQL sorgusuna sahip kayıtlı bir veridir. Taramayı denetlemek için herhangi bir paneli genişletin veya Strasmore terminalinde kendi kriterlerinizle yeniden oluşturun.