המניות בעלות הביצועים הטובים והגרועים ביותר לשנת 2026
סקירה מקיפה של המניות שרשמו את העליות והירידות החדות ביותר בשנת 2026. הדירוג מבוסס על נתוני נזילות אמיתיים מהבורסה ללא קרנות ממונפות או השפעות של פיצולי מניות.
SNDK מובילה את רשימת המניות בעלות הביצועים הטובים ביותר לשנת 2026 עד כה, עם עלייה של 536.4% מיום המסחר הראשון של השנה ועד ליום המסחר האחרון שהושלם. דף זה מדרג את המניות שרשמו את העליות והירידות החדות ביותר בשנת 2026 מבין ניירות ערך הנסחרים בפועל, על בסיס נתוני המסחר הישירים מהבורסה ולא על בסיס סיכומים של ספקי מידע, והוא מתעדכן לאורך השנה. פיצולי מניות וקרנות ממונפות מנוטרלים מהחישוב לפני הדירוג, שכן זהו המקום שבו רוב הרשימות המציגות תשואה מתחילת השנה (YTD) נוטות לטעות.
המניות בעלות הביצועים הטובים ביותר בשנת 2026
כל שם המופיע להלן עמד ברף נזילות מינימלי לפני שדורג: ממוצע של לפחות 100 מיליון דולר במחזור מסחר יומי במהלך החודש האחרון. אחוז גבוה במניה שאינה נסחרת בהיקפים משמעותיים הוא בגדר ציטוט בלבד, ולא תוצאה ממשית.
| סימול | תשואה מתחילת שנה (%) | מחזור יומי ממוצע ($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 |
ה-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%, אחריה MRNA עם 399%, ובמקום השלישי TWST עם 305.4%. המניה במקום העשירי, AMLX, רשמה עדיין עלייה של 183.5%, כך שכל הטבלה הקדימה משמעותית כל מדד רחב.
עמודת הדולרים לצד כל תנועה נושאת מידע רב לא פחות מהאחוזים. AMLX מרכזת מחזור ממוצע של כ-131 מיליון דולר ביום. SNDK, הנמצאת בראש הטבלה, מרכזת בממוצע 15431 מיליון דולר. כל שם כאן עובר את רף ה-100 מיליון דולר ביום, והטווח מעל רף זה רחב מספיק כדי שאותו אחוז בכותרת יבטא שני דברים שונים בשני קצותיו. מניה בעלת סחירות נמוכה קלה יותר להקפצה וקשה יותר ליציאה במחיר המופיע על המסך.
המניות שרשמו את הירידות החדות ביותר בשנת 2026
אותו מדד, אך בכיוון ההפוך: הירידות החדות ביותר מתחילת השנה בקרב ניירות ערך העומדים באותו רף נזילות.
| סימול | תשואה מתחילת שנה (%) | מחזור יומי ממוצע ($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 |
ה-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הירידה החדה ביותר מתחילת השנה שייכת ל-TTD בשיעור של -60.5%, ולאחריה WING בשיעור של -54.4%. במקום העשירי ברשימה נמצאת JOBY, עם ירידה של -48.8%. כמה מהשמות כאן הם חברות גדולות ומוחזקות היטב, ולא חברות בעלות שווי שוק זעיר וספקולטיבי; זהו החלק ברשימת המפסידות שמפתיע משקיעים. נזילות וסיקור אנליסטים אינם מהווים רצפת תמיכה למחיר המניה. כל מי שהחזיק באחת ממניות אלו כחלק משמעותי מתיק ההשקעות שלו ספג את מלוא התנועה, אותה מודד עמוד ה-סיכון בהחזקת מניה בודדת באמצעות נתוני תנודתיות וגובה הירידה מהשיא (drawdown).
מהו שיעור השוק שנמצא בעלייה בשנת 2026
טבלת מובילים מציגה רק את שני הקצוות. רוחב השוק (Breadth) מציג את הגוף: כיצד כל היקום הנסרק, כולל קרנות סל (index funds), מתחלק בין מניות בעלייה לבין מניות בירידה, בחלוקה לפי גודל התנועה.
| קטגוריה | שמות | נתח צד (%) |
|---|---|---|
| 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 |
ה-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 ord64.5% מהשמות הנסרקים גבוהים יותר מתחילת השנה ו-35.5% נמוכים יותר. ההתפלגות היא מה שטבלת עשרת הגדולים מסתירה. 18 שמות נמצאים בתוך ה-bucket של Down 40%+ בקצה אחד, ו-103 בתוך ה-bucket של Up 50%+ בקצה השני, לעומת 162 ב-Down 0-10% ו-152 ב-Up 0-10% משני צידי נקודת הקיפאון (unchanged). רוב השוק עושה משהו רגיל בכל שנה נתונה, והשמות בשתי הטבלאות שלעיל הם היוצא מן הכלל שממנו נבנים הממוצעים.
היכן עומד השוק עצמו
ביצועיה של מניה בודדת נראים אחרת בהשוואה לביצועי השוק. להלן ארבע קרנות הסל העוקבות אחר המדדים המרכזיים, באותה תקופת זמן בדיוק:
| תווית | תשואה מתחילת שנה (%) | מתאריך | עד תאריך |
|---|---|---|---|
| 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 |
ה-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-09-03). לאורך תקופה זו, הניב Russell 2000 (IWM) תשואה של 19.2%, בעוד ה-Dow (DIA) הניב 11.4%. כל שם בטבלת המניות העולות עקף את כל ארבעת המדדים בפער ניכר; זהו החשבון הפשוט של מדד בפעולה: מאות אחזקות הממוצעות לשורה אחת, שבה תנועות של מניות בודדות מתקזזות בחלקן. המרווח מתחת לאותה שורה היה רחב בהרבה מהשורה עצמה, ו-כרטיס הניקוד המגזרי למחצית הראשונה מדרג את כל אחת-עשרה המגזרים זה מול זה.
פיצול מניות שיוצר מצג שווא של תשואה מתחילת השנה
פיצול מניות משנה את מספר המניות ואת המחיר למניה מבלי לשנות את שווי האחזקה. לאורך תקופה כה ארוכה, חברות רבות מבצעות פיצול, וחישוב תשואה מתחילת השנה (YTD) שאינו מותאם מפרש את השינוי במחיר למניה כביצועים. השמות להלן ביצעו במהלך שנת 2026 פיצול או דיבידנד במניות בהיקף שהספיק כדי להזיז את המחיר בשיעור של לפחות חמישית, וכל אחד מהם עמד ברף הנזילות הנדרש, כך שהיו זכאים להיכלל בלוחות לעיל בטרם הוסרו על ידי מסנן הפיצולים.
| סימול | תשואה מתחילת שנה (לא מותאם) (%) | השפעת ספליט על מחיר (%) | סוג ספליט | תאריך ספליט |
|---|---|---|---|---|
| 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 |
ה-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 תציג -96.4% במסך לא מותאם לאחר ש-forward split הזיז את מחירה למניה ב--96%, ו-KLAC תציג -86.3% לאחר ש-forward split הזיז את מחירה ב--90%. אף מחזיק באף אחת מהן לא הפסיד דבר ביום שבו נכנס הפיצול לתוקף. המחיר למניה חולק ומספר המניות הוכפל באותו מקדם. עמודת השפעת הפיצול מבודדת את שינוי המחיר הנובע מהפיצול בלבד, וזהו החלק שמסך לא מותאם מפרש כביצועים.
השורה האחרונה בלוח פועלת בכיוון ההפוך: DD מציגה 224.3% לאחר ש-reverse split העלה את מחירה למניה ב-200%, ובכך העלה את המחיר במקום להפחיתו. כל רשימה שמדלגת על שלב זה מפרסמת בדיה בראש הטבלה ובתחתיתה בו-זמנית, וזו הסיבה שהמסך מפריד את הטיקרים שעברו פיצול במקום לנסות לתקן את מחיריהם. קרן יכולה להופיע בלוח זה בקלות בדיוק כמו חברה: קרנות סל ומדדים מפצלות גם הן את מניותיהן, והמסך הזה מכסה את שתיהן.
כיצד נמדד סינון זה
כל שלב בסינון, עם מספר השמות שנותרו לאחר כל שלב:
| שלב סינון | שמות |
|---|---|
| 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 |
ה-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
)המתודולוגיה, במלואה:
- חלון הזמן. החל מיום המסחר המלא הראשון של שנת 2026 ועד ליום המסחר המלא האחרון בבורסה. שני קצוות הטווח נקראים מתוך נתוני דקות, ויום נספר רק אם הוא כולל את מלוא מספר הדקות של שעות המסחר הרגילות; יום שטרם הסתיים לעולם אינו נחשב ליום מסחר מלא.
- התשואה. השוואה בין שער הפתיחה של יום המסחר הרגיל הראשון בשנה לבין שער הסגירה של יום המסחר הרגיל האחרון, מחושבת לפי נתוני דקות. עסקאות (prints) שבוצעו במסחר המוקדם או המאוחר אינן נכללות. מדובר בתשואות מחיר; דיבידנדים אינם מתווספים בחזרה, ולכן מניה בעלת תשואת דיבידנד גבוהה עשויה להיראות מעט פחות אטרקטיבית מכפי שהייתה נראית בחישוב תשואה כוללת (total return).
- רף הנזילות. ממוצע של לפחות מאה מיליון דולר במחזור מסחר בשעות הפעילות הרגילות לכל יום מסחר במהלך עשרים הימים הקלנדריים האחרונים, תוך ספירת ימים מלאים בלבד. יום מסחר חלקי עלול להוביל לחלוקת סכום דולרי חלקי ביום שלם, ובכך להציג מחזור נמוך מהמציאות עבור כל נייר ערך. סינון יחיד זה מצמצם את היקף הנתונים מ-4471 טיקרים ל-1000.
- רף המחיר. המניה פתחה את השנה במחיר הגבוה מעשרה דולרים למניה. מניות שמחירן נמוך מעשרה דולרים מייצרות אחוזים גבוהים משינויי מחיר קטנים.
- קרנות ממונפות והפוכות מוחרגות באמצעות רשימה מנוהלת, המופיעה במלואה בשאילתת ה-SQL מתחת לכל טבלה. הרשימה כוללת קרנות ממונפות על מדדים וקרנות על מניות בודדות המכפילות את התנועה היומית של חברה אחת. קרן ממונפת יכולה להוביל כל רשימת מניות בעלות תנודתיות גבוהה ללא כל הודעה מהותית מצד החברה. הרשימה מתוחזקת ידנית, וזהו חסרונה: קרן שהושקה החודש מוחרגת רק לאחר שמישהו מוסיף אותה לרשימה.
- קרנות רגילות אינן מסוננות. קרן סל (ETF) על מדד או סקטור ללא מינוף, העומדת ברפי הנזילות והמחיר, מדורגת כאן לצד חברות תפעוליות, והיא נכללת גם בספירות הרוחב. קרן היא סל של מניות שכבר נספרו באותו יקום נתונים, לכן יש לקרוא שורות אלו כביצועי הסל ולא כביצועי חברה בודדת.
- פיצולי מניות. כל טיקר שביצע פיצול מניות או חלוקת מניות (stock dividend) במהלך שנת 2026 מוחרג, ללא קשר ליחס הפיצול. זוהי גישה שמרנית: היא גורעת מספר מניות בעלות ביצועים אמיתיים מהרשימה, אך מונעת הצגת שינוי במספר המניות כשינוי במחיר. הלוח לעיל מציג את השמות שהוחרגו בשל פיצול שהיה משמעותי מספיק כדי להטות את התוצאות.
- הנפקות מאוחרות. חברה שהחלה להיסחר לאחר יום המסחר הראשון של השנה אינה כוללת נתוני מחיר לחודש ינואר ולכן נעדרת מטבלאות אלו; מדובר בפער מהותי בשנה שבה לוח ההנפקות החדשות עמוס.
- התוצאה. 922 שמות מדורגים, כאשר עשרת המקומות הראשונים ועשרת המקומות האחרונים מהווים את שני הלוחות בעמוד זה.
אותה שאלה בשלושה חלונות
תשואת מתחילת השנה (YTD) היא שלב אחד בסולם, וכל תנועה נראית אחרת בהתאם לטווח הזמן. התצוגה השבועית מציגה את המניות בעלות העליות והירידות החדות ביותר השבוע, התצוגה החודשית מציגה את המניות עם התנודות הגדולות ביותר החודש, ודף זה מתמקד בסיכום השנה. ספי הכניסה שונים בכל שלב: דף זה מסנן מניות לפי ממוצע מסחר יומי של מאה מיליון דולר במהלך החודש האחרון, בעוד שהדפים השבועיים והחודשיים מסננים לפי סך הדולרים שנסחרו בתוך חלונות הזמן שלהם; לכן, מניה יכולה להופיע בטבלה אחת ולהיעדר מאחרת. מניה שמובילה את הטבלה השבועית בעקבות תגובה לדוחות כספיים, מדורגת לעיתים קרובות במרכז הטבלה בסיכום השנתי. לסקירה רחבה יותר של הנעשה בשווקים מתחילת השנה, סיכום המחצית הראשונה של השנה כולל פירוט על המדדים, הריביות והסקטורים, והמאמר כיצד פועלות קרנות סל ממונפות מסביר מדוע קרנות אלו אינן נכללות כאן.
שאלות נפוצות
מהי המניה בעלת הביצועים הטובים ביותר לשנת 2026?
מבין המניות המציגות מחזור מסחר ממוצע של לפחות מאה מיליון דולר ביום, שפתחו את השנה במחיר הגבוה מעשרה דולרים, לא עברו פיצול מניות במהלך 2026 ואינן נכללות ברשימת הקרנות הממונפות, SNDK היא המניה בעלת הביצועים הטובים ביותר לשנת 2026 עד כה, עם עלייה של 536.4% מאז יום המסחר הראשון של השנה. MRNA מדורגת שנייה עם עלייה של 399%.
אילו מניות רשמו את הירידות החדות ביותר בשנת 2026?
TTD היא המניה בעלת הביצועים הגרועים ביותר לשנת 2026 בסינון זה, עם ירידה של -60.5%, לפני WING שירדה ב--54.4%. הרשימה המלאה של המניות שרשמו את הירידות החדות ביותר ב-2026 מופיעה בטבלה השנייה לעיל, והיא מתעדכנת ככל שהשנה מתקדמת.
כיצד מחושבת תשואה מתחילת השנה (YTD)?
תשואה מתחילת השנה משווה בין המחיר האחרון לבין המחיר בתחילת שנת הלוח ומציגה את השינוי באחוזים. במקרה זה, החישוב מתבסס על שער הפתיחה של יום המסחר הרגיל הראשון של 2026 מול שער הסגירה של יום המסחר המלא האחרון. מניות שעברו פיצול במהלך השנה מוצאות מהרשימה במקום לעבור התאמה, כך שאין גורם התאמה המפריד בין הקורא לבין נתוני המסחר הגולמיים.
האם קרנות סל ממונפות נכללות ברשימת המניות העולות של 2026?
לא. קרן ממונפת או הפוכה מכפילה את התנועה היומית של מדד או של מניה בודדת, ולכן היא עומדת באופן שגרתי בראש רשימת המניות התנודתיות ללא כל חדשות חברה ברקע. קרנות אלו מוסרות לפי שם לפני הדירוג, והרשימה זמינה ב-SQL תחת כל טבלה. קרנות סל רגילות על מדדים וסקטורים הן מקרה שונה: הן עומדות באותם תנאי סף כמו כל מניה ומדורגות כאן, ולכן קרן כזו יכולה להופיע בכל אחד מהלוחות.
כל טבלה כאן היא שאילתה שמורה עם ה-SQL המצורף לה. ניתן להרחיב כל פאנל כדי לבחון את הסינון, או לבנות אותו מחדש עם תנאי סף משלכם במסוף Strasmore.