Größte Aktiensteigerungen diesen Monat
Die stärksten Kursbewegungen bei Aktien diesen Monat. Gewinner und Verlierer sortiert nach Börsendaten inklusive des Handelsvolumens in Dollar pro Ticker.
Die größten Kursbewegungen bei Aktien dieses Monats sind unten nach Börsendaten sortiert aufgeführt. Die Liste umfasst die 21 abgeschlossenen Handelstage von Jun 22 bis Jul 21. Es werden nur operative Unternehmen berücksichtigt, die in diesem Zeitraum ein Handelsvolumen von mindestens 1 Milliarde $ aufwiesen. Somit basieren alle Bewegungen in der Übersicht auf realem Kapital. Leveraged und Inverse Funds sind ausgeschlossen. Die Übersicht wird mit Abschluss neuer Handelstage aktualisiert.
Größte Aktiensteigerungen diesen Monat
Die Tabelle listet die höchsten Zuwächse im betrachteten Zeitraum auf. Jede Zeile gibt neben der prozentualen Veränderung das Handelsvolumen in Dollar an. Dies unterscheidet eine massenhafte Neubewertung von einer geringfügigen Bewegung.
Das exakte SQL hinter jeder Zahl
WITH window_days AS (
SELECT d
FROM (
SELECT d, max(d) OVER () AS last_full
FROM (
SELECT d
FROM (
SELECT d, bars, medianExact(bars) OVER () AS typical_bars
FROM (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d, count() AS bars
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= now() - INTERVAL 34 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 d
HAVING d < toDate(toTimeZone(now(), 'America/New_York'))
)
)
WHERE bars >= 0.85 * typical_bars
)
)
WHERE d > last_full - 30
)
SELECT ticker,
round((argMax(c, d) / argMin(o, d) - 1) * 100, 1) AS month_return_pct,
round(sum(dollars) / 1e9, 1) AS month_dollar_bn
FROM (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMin(toFloat64(open), window_start) AS o,
argMax(toFloat64(close), window_start) AS c,
sum(toFloat64(close) * toFloat64(volume)) AS dollars
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= now() - INTERVAL 34 DAY
AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT d FROM window_days)
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','TQQQ','SQQQ','NVDL','NVDS','NVD','TSLL','TSLQ','TSLZ','SPXL','SPXS','UPRO','SPXU','LABU','LABD','FAS','FAZ','TNA','TZA','YINN','YANG','UDOW','SDOW','BOIL','KOLD','UCO','SCO','USD','SSO','SDS','QLD','QID','ERX','ERY','DRN','DRV','CURE','SOXY','MUU','SNXX','UVXY','SVXY','UVIX','SVIX','BULZ','WEBL','WEBS','DPST','DRIP','GUSH','AGQ','ZSL','BITX','ETHU','MSTX','MSTU','CONL','DUST','JNUG','JDST','NUGT')
AND ticker IN (SELECT ticker FROM global_markets.stocks_ratios
WHERE market_cap > 0)
AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits
WHERE execution_date BETWEEN today() - 45 AND today())
GROUP BY ticker, d
)
GROUP BY ticker
HAVING sum(dollars) >= 1000000000 AND argMin(o, d) >= 10 AND count() >= 15
ORDER BY argMax(c, d) / argMin(o, d) DESC
LIMIT 10CRNX führte die Liste mit 133.6% bei einem Handelsvolumen von 9.4 Milliarden US-Dollar an, vor PBF mit 75.5% und MAN mit 56.8%. Eine Bewegung dieser Größenordnung innerhalb eines Monats zeigt sich meist zuerst durch ein erhöhtes relative volume im Vergleich zum average daily volume der Aktie. Häufig beginnt dies mit einem overnight gap in einer Sitzung statt durch einen stetigen Anstieg über den gesamten Zeitraum.
Größte Aktienverlierer diesen Monat
Das umgekehrte Prinzip: die stärksten Rückgänge im betrachteten Zeitraum bei Unternehmen mit einem Handelsvolumen von mindestens einer Milliarde US-Dollar.
Das exakte SQL hinter jeder Zahl
WITH window_days AS (
SELECT d
FROM (
SELECT d, max(d) OVER () AS last_full
FROM (
SELECT d
FROM (
SELECT d, bars, medianExact(bars) OVER () AS typical_bars
FROM (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d, count() AS bars
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= now() - INTERVAL 34 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 d
HAVING d < toDate(toTimeZone(now(), 'America/New_York'))
)
)
WHERE bars >= 0.85 * typical_bars
)
)
WHERE d > last_full - 30
)
SELECT ticker,
round((argMax(c, d) / argMin(o, d) - 1) * 100, 1) AS month_return_pct,
round(sum(dollars) / 1e9, 1) AS month_dollar_bn
FROM (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMin(toFloat64(open), window_start) AS o,
argMax(toFloat64(close), window_start) AS c,
sum(toFloat64(close) * toFloat64(volume)) AS dollars
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= now() - INTERVAL 34 DAY
AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT d FROM window_days)
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','TQQQ','SQQQ','NVDL','NVDS','NVD','TSLL','TSLQ','TSLZ','SPXL','SPXS','UPRO','SPXU','LABU','LABD','FAS','FAZ','TNA','TZA','YINN','YANG','UDOW','SDOW','BOIL','KOLD','UCO','SCO','USD','SSO','SDS','QLD','QID','ERX','ERY','DRN','DRV','CURE','SOXY','MUU','SNXX','UVXY','SVXY','UVIX','SVIX','BULZ','WEBL','WEBS','DPST','DRIP','GUSH','AGQ','ZSL','BITX','ETHU','MSTX','MSTU','CONL','DUST','JNUG','JDST','NUGT')
AND ticker IN (SELECT ticker FROM global_markets.stocks_ratios
WHERE market_cap > 0)
AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits
WHERE execution_date BETWEEN today() - 45 AND today())
GROUP BY ticker, d
)
GROUP BY ticker
HAVING sum(dollars) >= 1000000000 AND argMin(o, d) >= 10 AND count() >= 15
ORDER BY argMax(c, d) / argMin(o, d) ASC
LIMIT 10NVTS verzeichnete mit -47.6% den stärksten Rückgang bei einem Handelsvolumen von 5.1 Milliarden US-Dollar, gefolgt von WOLF mit -47.1%. Achten Sie auf die Spalte für das Handelsvolumen in dieser Übersicht. Ein Rückgang bei hoher Handelsaktivität ist ein anderes Ereignis als ein Rückgang in einem ruhigen Markt; hier werden diese beiden Fälle unterschieden, anstatt sie einfach gleichzusetzen.
Dieselbe Frage in drei Zeiträumen
Eine Frage, drei Zeitfenster. Ein Wertpapier kann an der Spitze einer Liste stehen und in den anderen beiden gar nicht auftauchen.
- die größten Verlierer dieser Woche, sowie die entsprechenden Gewinner über die letzten fünf Handelstage
- Diese Seite, über den letzten Monat
- die größten Kursbewegungen 2026, gemessen seit Jahresbeginn
Die drei Listen werden separat erstellt; die Filterkriterien sind nicht identisch. Die Wochenseite legt eine eigene Liquiditätsuntergrenze und ein Handelsminimum über ein Fenster von fünf Handelstagen fest. Die Seite für das bisherige Jahresergebnis filtert nach dem durchschnittlichen täglichen Handelsvolumen in Dollar statt nach dem Gesamthandelswert über den gesamten Zeitraum. Jede Seite erläutert ihre Regeln im jeweiligen Abschnitt zur Methodik. Bitte lesen Sie diese, bevor Sie einen Wert von einer Liste auf eine andere übertragen.
Ein einzelner Gap dominiert die Wochenliste, verschwindet jedoch im Jahresvergleich. Ein langsamer monatlicher Trend erreicht die Wochenliste überhaupt nicht. Der Vergleich der drei Listen ist der effizienteste Weg, um ein Einzeltagesereignis von einem Trend zu unterscheiden.
Marktlage im gleichen Zeitraum
Die monatliche Performance einer Aktie unterscheidet sich von der Performance des Gesamtmarktes. Die vier großen Index-Tracker wurden jeweils auf ihren ersten Eröffnungskurs innerhalb des Zeitraums normiert:
Das exakte SQL hinter jeder Zahl
WITH window_days AS (
SELECT d
FROM (
SELECT d, max(d) OVER () AS last_full
FROM (
SELECT d
FROM (
SELECT d, bars, medianExact(bars) OVER () AS typical_bars
FROM (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d, count() AS bars
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= now() - INTERVAL 34 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 d
HAVING d < toDate(toTimeZone(now(), 'America/New_York'))
)
)
WHERE bars >= 0.85 * typical_bars
)
)
WHERE d > last_full - 30
)
SELECT session,
round(anyIf(cum_pct, ticker = 'SPY'), 2) AS sp500_pct,
round(anyIf(cum_pct, ticker = 'QQQ'), 2) AS nasdaq100_pct,
round(anyIf(cum_pct, ticker = 'DIA'), 2) AS dow_pct,
round(anyIf(cum_pct, ticker = 'IWM'), 2) AS russell2000_pct
FROM (
SELECT ticker,
formatDateTime(d, '%Y-%m-%d') AS session,
100 * (c / first_value(o) OVER (PARTITION BY ticker ORDER BY d) - 1) AS cum_pct
FROM (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMin(toFloat64(open), window_start) AS o,
argMax(toFloat64(close), window_start) AS c
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= now() - INTERVAL 34 DAY
AND ticker IN ('SPY', 'QQQ', 'DIA', 'IWM')
AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT d FROM window_days)
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, d
)
)
GROUP BY session
ORDER BY sessionIn der letzten Handelssitzung stand der S&P 500 Tracker bei 0.08%, der Nasdaq 100 Tracker bei -4.46%, der Dow Tracker bei 0.91% und der Russell 2000 Tracker bei -0.21%. Vier Warenkörbe, ein Zeitraum, vier verschiedene Ergebnisse. Vergleichen Sie nun die Liste der Gewinner mit dieser Spanne: Der Spitzenreiter der Gewinnerliste überstieg 133.6% im selben Zeitraum. Einzelne Unternehmen weichen viel stärker voneinander ab als die Indizes, die sie enthalten. Dies ist der Grund, warum eine Liste der größten Kursbewegungen eine Liste einzelner Namen ist.
Performance der bekannten Marken
Anleger, die nach den besten Aktien dieses Monats suchen, möchten meist auch wissen, wie sich ihre bereits im Depot befindlichen Titel entwickelt haben. Ein fester Korb aus acht bekannten Mega-Caps, gleicher Zeitraum und gleiche Zusammensetzung:
Das exakte SQL hinter jeder Zahl
WITH window_days AS (
SELECT d
FROM (
SELECT d, max(d) OVER () AS last_full
FROM (
SELECT d
FROM (
SELECT d, bars, medianExact(bars) OVER () AS typical_bars
FROM (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d, count() AS bars
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= now() - INTERVAL 34 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 d
HAVING d < toDate(toTimeZone(now(), 'America/New_York'))
)
)
WHERE bars >= 0.85 * typical_bars
)
)
WHERE d > last_full - 30
)
SELECT ticker,
round((argMax(c, d) / argMin(o, d) - 1) * 100, 1) AS month_return_pct
FROM (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMin(toFloat64(open), window_start) AS o,
argMax(toFloat64(close), window_start) AS c
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= now() - INTERVAL 34 DAY
AND ticker IN ('AAPL', 'MSFT', 'NVDA', 'AMZN', 'GOOGL', 'META', 'TSLA', 'AVGO')
AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT d FROM window_days)
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 (SELECT ticker FROM global_markets.stocks_splits
WHERE execution_date BETWEEN today() - 45 AND today())
GROUP BY ticker, d
)
GROUP BY ticker
HAVING count() >= 15
ORDER BY argMax(c, d) / argMin(o, d) DESCDie Gruppe bewegte sich zwischen 12.5% für META an der Spitze und -6.6% für AVGO am Ende. Die Titel entwickelten sich nicht als geschlossene Einheit, was eher die Regel als die Ausnahme ist. Die Index-Zugehörigkeit gruppiert diese Unternehmen; ihre Umsatzströme stehen in kaum einem Zusammenhang miteinander. Der Korb ist eine feste Liste von acht Namen und kein Ranking. Er dient daher als Orientierungshilfe und nicht als Aussage darüber, welche Unternehmen die größten sind.
So sieht ein normaler Monat aus
Die Bestenlisten zeigen die Ausreißer. Diese Grafik zeigt den Durchschnitt. Alle 1162 Unternehmen, die das Screening bestanden haben, sind nach ihrer Rendite im Zeitraum sortiert:
Das exakte SQL hinter jeder Zahl
WITH window_days AS (
SELECT d
FROM (
SELECT d, max(d) OVER () AS last_full
FROM (
SELECT d
FROM (
SELECT d, bars, medianExact(bars) OVER () AS typical_bars
FROM (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d, count() AS bars
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= now() - INTERVAL 34 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 d
HAVING d < toDate(toTimeZone(now(), 'America/New_York'))
)
)
WHERE bars >= 0.85 * typical_bars
)
)
WHERE d > last_full - 30
)
SELECT tup.1 AS return_bucket,
tup.3 AS stocks
FROM (
SELECT arrayJoin(arrayZip(
['down 20% or more', 'down 10% to 20%', 'down 0% to 10%',
'up 0% to 10%', 'up 10% to 20%', 'up 20% or more'],
[1, 2, 3, 4, 5, 6],
[countIf(r <= -20), countIf(r > -20 AND r <= -10), countIf(r > -10 AND r < 0),
countIf(r >= 0 AND r < 10), countIf(r >= 10 AND r < 20), countIf(r >= 20)])) AS tup
FROM (
SELECT ticker,
(argMax(c, d) / argMin(o, d) - 1) * 100 AS r
FROM (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMin(toFloat64(open), window_start) AS o,
argMax(toFloat64(close), window_start) AS c,
sum(toFloat64(close) * toFloat64(volume)) AS dollars
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= now() - INTERVAL 34 DAY
AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT d FROM window_days)
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','TQQQ','SQQQ','NVDL','NVDS','NVD','TSLL','TSLQ','TSLZ','SPXL','SPXS','UPRO','SPXU','LABU','LABD','FAS','FAZ','TNA','TZA','YINN','YANG','UDOW','SDOW','BOIL','KOLD','UCO','SCO','USD','SSO','SDS','QLD','QID','ERX','ERY','DRN','DRV','CURE','SOXY','MUU','SNXX','UVXY','SVXY','UVIX','SVIX','BULZ','WEBL','WEBS','DPST','DRIP','GUSH','AGQ','ZSL','BITX','ETHU','MSTX','MSTU','CONL','DUST','JNUG','JDST','NUGT')
AND ticker IN (SELECT ticker FROM global_markets.stocks_ratios
WHERE market_cap > 0)
AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits
WHERE execution_date BETWEEN today() - 45 AND today())
GROUP BY ticker, d
)
GROUP BY ticker
HAVING sum(dollars) >= 1000000000 AND argMin(o, d) >= 10 AND count() >= 15
)
)
ORDER BY tup.260 der gescreenten Unternehmen erzielten im Zeitraum einen Gewinn von 20 % oder mehr, während 77 einen Verlust von 20 % oder mehr verzeichneten. Die beiden Gruppen mit der geringsten Veränderung um den Nullpunkt enthielten 315 und 426 Namen. Diese Grafik zeigt die Datenbasis, aus der Bestenlisten für starke Kursbewegungen erstellt werden; die Top-zehn bilden dabei das äußerste rechte Ende. Betrachten Sie die obigen Listen unter diesem Aspekt: Eine monatliche Kursbewegung unter den Top-zehn ist konstruktionsbedingt ein Ausreißer und stellt niemals einen typischen Monat für eine typische Aktie dar.
Warum Aktien auf Listen der monatlichen Tops mover landen
Ein Monat ist lang genug, um mehrere Ereignisse zu beinhalten, aber kurz genug, dass meist eines davon dominiert. Die Namen auf diesen Listen stimmen typischerweise mit Terminen im Kalender des Unternehmens überein. Quartalsergebnisse sind am häufigsten: Ein Übertreffen oder Verfehlen der Erwartungen setzt den Kurs in einer Sitzung neu, und der Rest des Monats wird um dieses neue Niveau gehandelt. Anpassungen der Guidance haben denselben Effekt, auch ohne die dazugehörigen Ergebnisse.
Nachrichten zu Fusionen und Übernahmen hinterlassen den deutlichsten Abdruck auf einer monatlichen Liste. Die Aktie springt auf ein Niveau nahe dem angekündigten Deal-Preis und wird dann ruhig; das Handelsvolumen in Dollar bleibt enorm, während sich die prozentuale Veränderung abflacht. Wenn ein Wert an der Spitze der Gewinnerliste ein riesiges Dollar-Volumen und einen Kurs zeigt, der sich mitten im Zeitraum nicht mehr bewegt hat, sollte dieses Muster vor allem anderen geprüft werden.
Sektor-Bewegungen sind über einen Monat hinweg relevanter, als sie es in einer Woche sind. Eine Verschiebung bei Zinsen, Öl oder Speicherpreisen beeinflusst eine ganze Gruppe gleichzeitig. Deshalb zeigen monatliche Listen oft Cluster ähnlicher Unternehmen statt zehn nicht zusammenhängender Namen. Analystenbewertungen, Index-Aufnahmen und -Entfernungen, klinische Studien oder regulatorische Entscheidungen sowie Short Squeezes füllen den Rest auf. Keines dieser Ereignisse ist allein an der prozentualen Veränderung erkennbar. Deshalb stehen die Spalte für das Handelsvolumen in Dollar und der jeweilige Zeitraum neben jeder Kursbewegung.
So wird dies gemessen
Jeder Schwellenwert wird hier explizit angegeben, anstatt ihn nur anzudeuten. Ein Filter mit verborgenen Regeln wird als Datenpunkt wahrgenommen, ist aber eigentlich eine Meinung.
- Das Zeitfenster. Die letzten 30 Kalendertage bis zur aktuellsten Sitzung, deren Daten vollständig geladen sind. Dies entspricht 21 Sitzungen von Jun 22 bis Jul 21. Zwei Regeln bestimmen, ob eine Sitzung zählt. Sie muss vor dem aktuellen Datum in New York geschlossen haben; die laufende Sitzung ist daher nie im Fokus. Zudem muss die Anzahl der Kerzen während der regulären Handelszeiten 85 % des Medianwerts der 34-Tage-Analyse erreichen. Dies verhindert, dass ein früherer Tag mit unvollständigen Daten berücksichtigt wird. Eine verkürzte Feiertagssitzung liefert nur etwa die Hälfte der üblichen Kerzen und wird daher nach dieser Regel ausgeschlossen, anstatt sie als halbvollständig zu messen.
- Die Rendite. Die Differenz zwischen dem ersten Eröffnungskurs der regulären Handelszeit innerhalb des Zeitfensters und dem letzten Schlusskurs der regulären Handelszeit, basierend auf Minutenkerzen. Es werden nur reguläre Handelszeiten berücksichtigt; Pre-Market- und After-Hours-Kurse sind ausgeschlossen. Es handelt sich um eine Kursrendite: Dividenden werden nicht zurückgerechnet.
- Die Untergrenzen. Ein Handelsvolumen von mindestens 1 Milliarde US-Dollar über das gesamte Zeitfenster, ein Eröffnungskurs von 10 US-Dollar oder mehr und Handelsaktivitäten an mindestens 15 der Sitzungen des Zeitfensters. Die Dollar-Untergrenze bezieht sich auf das Monatsgesamtvolumen, was die Hürde im Vergleich zu einem wöchentlichen Wert senkt.
- Die Ausschlüsse. Hebelprodukte (Leveraged Funds) und inverse Fonds werden namentlich ausgeschlossen. Jeder Ticker muss zudem über Fundamentaldaten und eine in unseren Referenzdaten hinterlegte Marktkapitalisierung verfügen. Diese zweite Regel schließt ETFs, geschlossene Fonds, Rohstoff-Trusts und die schnell wachsenden Hebelprodukte auf Einzelaktien aus, die ansonsten den Großteil der Listen füllen würden. Diese Referenztabelle enthält einen Datensatz pro Ticker statt einer täglichen Momentaufnahme; der Filter liest die gesamte Tabelle, sodass kein einzelnes Datum über die Berechtigung entscheidet. Ein Ticker mit einem Aktiensplit innerhalb der letzten 45 Tage wird ausgeschlossen, anstatt den Kurs rückwirkend anzupassen, da ein Split den Preis pro Aktie verändert, ohne den Gesamtwert einer Position zu beeinflussen. Ein Symbol, das von Datenanbietern zwischen zwei verschiedenen Unternehmen neu zugeordnet wurde, wird namentlich ausgeschlossen.
- Das Mega-Cap-Panel. Ein fester Korb aus acht weit verbreiteten großen US-Unternehmen, die namentlich in der SQL-Datenbank des Panels gelistet sind. Es verwendet dasselbe Zeitfenster und dieselbe Renditeberechnung wie die Listen, ist jedoch vom Filter für das Handelsvolumen ausgenommen.
- Was nicht angewendet wird. Es gibt keinen Sektorfilter, keine Untergrenze für die Marktkapitalisierung und keine Anforderung zur Indexmitgliedschaft. Daher kann ein stark fluktuierendes Small-Cap-Unternehmen neben einem Large-Cap-Unternehmen gelistet sein. Das Ranking erfolgt ausschließlich nach der prozentualen Veränderung, weshalb die Spalte für das Handelsvolumen daneben angezeigt wird.
Ein Panel enthält die Bestätigung für alle Parameter: die Sitzungen des Zeitfensters und den Universums-Umfang, aus dem die Listen gefiltert wurden.
Das exakte SQL hinter jeder Zahl
WITH window_days AS (
SELECT d
FROM (
SELECT d, max(d) OVER () AS last_full
FROM (
SELECT d
FROM (
SELECT d, bars, medianExact(bars) OVER () AS typical_bars
FROM (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d, count() AS bars
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= now() - INTERVAL 34 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 d
HAVING d < toDate(toTimeZone(now(), 'America/New_York'))
)
)
WHERE bars >= 0.85 * typical_bars
)
)
WHERE d > last_full - 30
),
screened AS (
SELECT ticker
FROM (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMin(toFloat64(open), window_start) AS o,
sum(toFloat64(close) * toFloat64(volume)) AS dollars
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= now() - INTERVAL 34 DAY
AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT d FROM window_days)
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','TQQQ','SQQQ','NVDL','NVDS','NVD','TSLL','TSLQ','TSLZ','SPXL','SPXS','UPRO','SPXU','LABU','LABD','FAS','FAZ','TNA','TZA','YINN','YANG','UDOW','SDOW','BOIL','KOLD','UCO','SCO','USD','SSO','SDS','QLD','QID','ERX','ERY','DRN','DRV','CURE','SOXY','MUU','SNXX','UVXY','SVXY','UVIX','SVIX','BULZ','WEBL','WEBS','DPST','DRIP','GUSH','AGQ','ZSL','BITX','ETHU','MSTX','MSTU','CONL','DUST','JNUG','JDST','NUGT')
AND ticker IN (SELECT ticker FROM global_markets.stocks_ratios
WHERE market_cap > 0)
AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits
WHERE execution_date BETWEEN today() - 45 AND today())
GROUP BY ticker, d
)
GROUP BY ticker
HAVING sum(dollars) >= 1000000000 AND argMin(o, d) >= 10 AND count() >= 15
)
SELECT formatDateTime(w.first_d, '%b %e') AS first_session_date,
formatDateTime(w.last_d, '%b %e') AS last_session_date,
w.n AS sessions,
(SELECT count() FROM global_markets.stocks_ratios WHERE market_cap > 0) AS companies_on_file,
(SELECT count() FROM screened) AS companies_screened
FROM (SELECT min(d) AS first_d, max(d) AS last_d, count() AS n FROM window_days) AS wDer Filter startete mit 4122 Tickern mit einer Marktkapitalisierung in der Referenztabelle und endete mit 1162 Unternehmen, die die Schwellenwerte für Handelsvolumen, Preis und Sitzungen erfüllt haben. Beide Werte werden bei jedem Neuladen dieser Seite gespeichert. So wird sichtbar, wenn ein kleineres Universum das Ergebnis beeinflusst.
FAQ
Was sind die größten Aktiengewinner diesen Monat?
Für den Zeitraum bis Jul 21 verzeichneten Unternehmen mit einem Marktwert von über 1 Milliarde Dollar die höchsten Zuwächse bei CRNX mit 133.6% und PBF mit 75.5%. Die vollständige Liste der Top zehn befindet sich in der ersten Tabelle auf dieser Seite und wird mit Abschluss neuer Handelssitzungen aktualisiert.
Welche Aktien sind diesen Monat am stärksten gefallen?
NVTS war mit -47.6% der größte Verlierer, gefolgt von WOLF mit -47.1%. Beide Werte beziehen sich auf denselben Zeitraum von 21 Sitzungen und unterliegen derselben Untergrenze von 1 Milliarde Dollar wie die Gewinnerliste.
Wie werden die monatlichen Aktienrenditen gemessen?
Eine monatliche Rendite ist hier die Veränderung vom ersten regulären Eröffnungskurs innerhalb des Zeitraums zum letzten regulären Schlusskurs, basierend auf Minutendaten. Es handelt sich um eine Preisrendite; Dividenden werden nicht berücksichtigt. Unternehmen, die kurz vor oder während des Zeitraums einen Aktiensplit durchführen, werden ausgeschlossen, anstatt die Kurse rückwirkend anzupassen.
Warum sind gehebelte ETFs von der Liste der Aktienbewegung ausgeschlossen?
Ein gehebelter oder inverser Fonds vervielfacht die tägliche Bewegung eines Index oder einer einzelnen Aktie. Daher kann ein solcher Fonds an einem normalen Handelstag ohne unternehmensspezifische Nachrichten die Liste der Kursbewegungern anführen. Der Ausschluss stellt sicher, dass es sich um eine Liste operativer Unternehmen handelt. Wie gehebelte ETFs funktionieren erklärt das tägliche Rebalancing und den Drift, der durch eine monatliche Haltedauer entsteht.
Jedes oben genannte Panel ist eine gespeicherte Abfrage mit dem zugehörigen SQL-Code. Öffnen Sie eine Abfrage, ändern Sie die Untergrenze oder den Zeitraum, und filtern Sie denselben Datensatz selbst am Strasmore-Terminal.