Strasmore Research
Piyasa özetleri Matt ConnorYazan Matt Connor · Güncellendi 2026-09-05 · data as of September 5, 2026 · refreshed weekly

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.

Sorgula2026'nın en çok kazandıran hisseleri: yoğun işlem görenler arasında yılbaşından bugüne ilk on
tickerybb getiri (%)ort. günlük hacim ($m)
SNDK536.415431
MRNA3995598
TWST305.4202
DELL301.83566
TXG287.5142
AEHR262.8208
MXL233.4114
AXTI226.9525
MU224.820455
AMLX183.5131
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 10
Kendiniz çalıştırın

SNDK, 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.

Sorgula2026'nın en çok kaybettiren hisseleri: yoğun işlem görenler arasında yılbaşından bugüne son on
tickerybb getiri (%)ort. günlük hacim ($m)
TTD-60.5192
WING-54.4103
APP-54.11257
CSGP-52.8144
FLUT-52.7140
STLA-51.5105
BSX-51763
KLAR-50.4145
RBLX-49.1303
JOBY-48.8153
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 10
Kendiniz çalıştırın

Yı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.

SorgulaYılbaşından bugüne piyasa genişliği: taranan evrenin getiri dilimlerine dağılımı
grupisimlertaraf payı (%)
Down 40%+1835.5
Down 20-40%6935.5
Down 10-20%7835.5
Down 0-10%16235.5
Up 0-10%15264.5
Up 10-25%19864.5
Up 25-50%14264.5
Up 50%+10364.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 ord
Kendiniz çalıştırın

Taranmış 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:

SorgulaDört ana endeks ETF'inin aynı ölçüm aralığında yılbaşından bugüne performansı
etiketybb getiri (%)başlangıç tarihibitiş tarihi
Russell 2000 (IWM)19.22026-01-022026-09-03
Nasdaq 100 (QQQ)15.72026-01-022026-09-03
S&P 500 (SPY)12.72026-01-022026-09-03
Dow (DIA)11.42026-01-022026-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 DESC
Kendiniz çalıştırın

Hem 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.

SorgulaTablolardan çıkarılanlar: yılbaşından bugüne hareketi yanıltabilecek büyüklükteki 2026 hisse bölünmeleri
tickerdüzeltilmemiş ybb (%)bölünme fiyat etkisi (%)bölünme türübölünme tarihi
BKNG-96.4-96forward split2026-04-06
KLAC-86.3-90forward split2026-06-12
VGT-84.1-87.5forward split2026-04-21
CVNA-82.6-80forward split2026-05-08
VUG-81.9-83.3forward split2026-04-21
HDV-75.6-80forward split2026-04-29
IWF-74.1-75forward split2026-04-29
VO-71.7-75forward split2026-04-21
CRWD-54.6-75stock dividend2026-07-02
MNST-42.5-50stock dividend2026-08-11
APH-40.1-50stock dividend2026-09-03
MVLL4.3-66.7forward split2026-06-26
HON6.1100reverse split2026-06-29
DD224.3200reverse split2026-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 ASC
Kendiniz çalıştırın

BKNG, 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ı:

SorgulaAşama aşama tarama süreci: her filtrede kalan hisse sayısı
tarama adımıisimler
Traded the first and the last full session4471
Averaging $100m+ a day over the past month1000
Opened 2026 above $10 a share970
Not on the excluded-fund list938
No split or stock dividend in 2026922
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
)
Kendiniz çalıştırın

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.

#market movers#gainers and losers#year to date#stock splits#market breadth