Grootste aandelenbewegingen deze maand
Bekijk de grootste stijgers en dalers van deze maand. De rangschikking is gebaseerd op beursgegevens inclusief het totale volume in dollars per aandeel.
De grootste aandelenbewegingen van deze maand zijn hieronder gerangschikt op basis van de beursgegevens. Deze lijst beslaat de 21 voltooide handelsdagen van Jun 23 tot en met Jul 22. De selectie bevat uitsluitend operationele bedrijven met een handelsvolume van minimaal $1 miljard gedurende deze periode. Elke beweging in het overzicht is dus gebaseerd op aanzienlijk kapitaal. Leveraged en inverse fondsen zijn uitgesloten. De selectie wordt bijgewerkt zodra er nieuwe handelsdagen zijn voltooid.
Grootste stijgers deze maand
De tabel rangschikt de grootste winsten over de betreffende periode. Elke rij bevat het handelsvolume in dollars naast het percentage, wat het verschil aangeeft tussen een massale herwaardering en een beperkte beweging.
De exacte SQL achter elk getal
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 leidde de lijst met 136.1% op $9.7 miljard aan handel, voor PBF met 65.9% en MAN met 62.1%. Een beweging van deze omvang over een maand uit zich meestal eerst als een verhoogde relative volume ten opzichte van de average daily volume van het aandeel, en het begint vaak met een overnight gap in één sessie in plaats van een gestage stijging over de gehele periode.
Grootste aandelenverliezers deze maand
De omgekeerde constructie: de steilste dalingen over de periode, onder bedrijven met een handelsvolume van minimaal $1 miljard.
De exacte SQL achter elk getal
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 10CLBK was de grootste daler met -44.6% op $1.1 miljard aan handel, gevolgd door NVTS met -41.6%. Let op de kolom met dollarbedragen op dit overzicht. Een daling in een markt met een hoog volume is een andere gebeurtenis dan een daling in een rustige markt; het verschil wordt hier expliciet weergegeven in plaats van verondersteld.
Dezelfde vraag op drie tijdshorizonten
Eén vraag, drie vensters. Een aandeel kan bovenaan de ene lijst staan, maar op de andere twee nergens voorkomen.
- grootste verlieslatende aandelen deze week, met de winnaars daarnaast, over de afgelopen vijf sessies
- Deze pagina, over de afgelopen maand
- de grootste bewegingen in aandelen in 2026, gemeten year to date
De drie lijsten worden afzonderlijk samengesteld en de selectiecriteria zijn niet identiek. De wekelijkse pagina hanteert een eigen liquidity floor en sessieminimum over een venster van vijf sessies. De year-to-date pagina selecteert op basis van de gemiddelde dagelijkse dollar volume in plaats van het totaal verhandelde volume over het gehele venster. Elke pagina vermeldt de eigen regels in de betreffende methodensectie; lees deze zorgvuldig voordat u een aandeel van de ene naar de andere lijst verplaatst.
Een enkele gap domineert de wekelijkse lijst, maar verdwijnt over een jaar. Een langzame maandelijkse trend bereikt de wekelijkse lijst helemaal niet. Het naast elkaar bekijken van de drie lijsten is de meest efficiënte manier om een eenmalige gebeurtenis van een trend te onderscheiden.
De marktpositie gedurende dezelfde periode
Het maandresultaat van een aandeel wijkt af van het maandresultaat van de markt. De vier belangrijkste index trackers, elk hergebaseerd op de eerste opening binnen de periode:
De exacte SQL achter elk getal
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 sessionTegen de laatste sessie stond de S&P 500 tracker op 1.85%, de Nasdaq 100 tracker op -1.47%, de Dow tracker op 1.33% en de Russell 2000 tracker op 0.17%. Vier manden, één periode, vier verschillende uitkomsten. Vergelijk de top van de lijst met dit bereik: de hoogste stijger behaalde 136.1% over dezelfde sessies. Individuele bedrijven vertonen een veel grotere spreiding dan de manden waarin zij zijn opgenomen; dit is de reden waarom een lijst met actieve aandelen uit individuele namen bestaat.
Hoe de bekende namen presteerden
Lezers die op zoek zijn naar de best presterende aandelen van deze maand, willen vaak ook weten hoe de namen die zij al in portefeuille hebben hebben gepresteerd. Een vaste mand met acht bekende mega-caps, binnen dezelfde periode en met dezelfde samenstelling:
De exacte SQL achter elk getal
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) DESCDe groep varieerde van 11.5% voor META aan de top tot -4.7% voor TSLA aan de onderkant. De aandelen bewogen niet als één blok, wat eerder de regel dan de uitzondering is. Indexdeelname groepeert deze bedrijven, maar hun omzetstromen hebben weinig met elkaar te maken. De mand is een vaste lijst van acht namen en geen rangschikking; beschouw dit daarom als een oriëntatie en niet als een bewering over welke bedrijven het grootst zijn.
Hoe een normale maand eruitziet
De leaderboards tonen de uitschieters. Dit overzicht toont het gemiddelde. Alle 1167 bedrijven die de selectie hebben gehaald, zijn ingedeeld in categorieën op basis van hun rendement over de periode:
De exacte SQL achter elk getal
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.252 van de geselecteerde bedrijven behaalde een winst van 20% of meer over de periode, en 50 leed een verlies van 20% of meer. De twee categorieën die het dichtst bij nul lagen, bevatten 300 en 515 namen. Die grafiek bepaalt de vorm van een movers leaderboard; de top tien vormt de uiterste rechterkant daarvan. Bekijk de bovenstaande lijsten met dit in gedachten: een maandelijkse beweging in de top tien is per definitie een uitschieter en nooit een typische maand voor een gemiddeld aandeel.
Wat een aandeel op een lijst met maandelijkse uitschieters plaatst
Een maand is lang genoeg om verschillende gebeurtenissen te bevatten, maar kort genoeg zodat er meestal één gebeurtenis domineert. De namen op deze lijsten komen doorgaans overeen met een specifieke datum in de kalender van het bedrijf. Kwartaalcijfers zijn de meest voorkomende oorzaak: een resultaat dat beter of slechter is dan verwacht, zorgt voor een koersaanpassing in één sessie, waarna de handel de rest van de maand rond het nieuwe niveau plaatsvindt. Wijzigingen in de guidance hebben hetzelfde effect zonder dat daar de resultaten aan voorafgaan.
Nieuws over fusies en overnames laat het duidelijkste spoor achter op een maandelijkse lijst. Het aandeel stijgt naar een niveau nabij de geannonceerde dealprijs en wordt daarna rustig; de hoeveelheid dollars die wordt verhandeld blijft enorm, terwijl de procentuele verandering afvlakt. Als een naam bovenaan de lijst met winnaars een enorme dollarwaarde laat zien en een koers die halverwege de periode is gestopt met bewegen, dan is dat patroon de belangrijkste om eerst te controleren.
Sectorbewegingen zijn over een maand belangrijker dan over een week. Een verschuiving in rentes, olie of de prijs van geheugens beïnvloedt een hele groep tegelijk. Daarom tonen maandelijkse lijsten vaak clusters van vergelijkbare bedrijven in plaats van tien ongerelateerde namen. Analistenadviezen, toevoegingen en verwijderingen uit indexen, resultaten van klinische studies of regelgevende instanties, en short squeezes vormen de rest van de lijst. Geen van deze factoren is enkel zichtbaar in het percentage, daarom staan de kolom met verhandelde dollars en de tijdsperiode van de markt bij elke beweging vermeld.
Hoe dit wordt gemeten
Elke drempelwaarde wordt hier expliciet vermeld in plaats van impliciet gelaten. Een scherm met verborgen regels lijkt op data, maar is in feite een mening.
- De window. De afgelopen 30 kalenderdagen eindigend op de meest recente sessie waarvan de tape volledig is geladen, wat neerkwam op 21 sessies van Jun 23 tot Jul 22. Twee regels bepalen of een sessie in aanmerking komt. De sessie moet zijn gesloten vóór de huidige datum in New York; de lopende sessie valt dus nooit binnen de scope. Daarnaast moet het aantal bars tijdens de reguliere handelsuren 85% bereiken van de mediaan over de 34-daagse scan. Dit sluit een eerdere dag uit waarvan de tape nog wordt ingevuld. Een verkorte handelsdag door een feestdag genereert ongeveer de helft van het normale aantal bars, waardoor deze volgens dezelfde regel wordt uitgesloten in plaats van als half geladen te worden gemeten.
- De return. De prijs van de eerste opening tijdens de reguliere handel binnen de window tot de laatste closing tijdens de reguliere handel, opgebouwd uit minute bars. Alleen reguliere uren worden meegerekend; premarket en after-hours prints worden uitgesloten. Het betreft een price return: dividenden worden niet bij de prijs opgeteld.
- De floors. Er moet in de gehele window voor minimaal $1 miljard zijn verhandeld, de openingprijs moet $10 of meer zijn, en er moeten prints zijn op ten minste 15 van de sessies binnen de window. De dollar floor is een maandelijks totaal, wat het makkelijker maakt om aan deze eis te voldoen dan wanneer hetzelfde bedrag over een enkele week wordt gemeten.
- De uitsluitingen. Leveraged en inverse funds worden op naam uitgesloten. Elke ticker moet bovendien beschikken over bedrijfscijfers en een marktkapitalisatie in onze referentiedata. Die tweede regel sluit ETF's, closed-end funds, commodity trusts en de snelgroeiende groep leveraged single-stock producten uit, die anders het grootste deel van beide boards zouden vullen. Deze referentietabel bevat één rij per ticker in plaats van een dagelijkse snapshot; het scherm leest de volledige tabel en een specifieke datum bepaalt niet wie in aanmerking komt. Elke ticker met een stock split in de afgelopen 45 dagen wordt uitgesloten in plaats van back-adjusted, aangezien een split de prijs per aandeel verandert zonder de waarde van de positie te wijzigen. Eén symbool waarvan de vendor-feeds de toewijzing tussen twee verschillende bedrijven hebben gewijzigd, is op naam uitgesloten.
- Het mega-cap panel. Een vaste basket van acht veelgehouden grote Amerikaanse bedrijven, die in de SQL van het panel bij naam staan vermeld. Dit panel gebruikt dezelfde window en dezelfde constructie voor de return als de boards, en staat los van de dollar-volume screen.
- Wat niet wordt toegepast. Er is geen sectorfilter, geen marktkapitalisatie floor en geen vereiste voor index-membership. Hierdoor kan een bedrijf met een hoge omloopsnelheid en een kleine marktkapitalisatie naast een groot bedrijf in het overzicht staan. De ranking is uitsluitend gebaseerd op de percentage change, wat de reden is dat de kolom dollars-traded ernaast wordt weergegeven.
Eén panel bevat het bewijs van al deze regels: de sessies die de window besloeg en de universe waaruit elk board is gescreend.
De exacte SQL achter elk getal
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 wDe screen begon met 4121 tickers met een marktkapitalisatie in de referentietabel en eindigde met 1167 bedrijven die voldeden aan de dollar-volume, prijs en sessie floors. Beide cijfers worden bij elke verversing van deze pagina opgeslagen, zodat een verkleinde universe zichtbaar is in het overzicht in plaats van onopgemerkt te blijven.
FAQ
Wat zijn de grootste stijgers op de aandelenmarkt deze maand?
Voor de periode eindigend op Jul 22 waren de grootste stijgers onder bedrijven met een handelsvolume van meer dan $1 miljard CRNX met 136.1% en PBF met 65.9%. De volledige top tien staat in de eerste tabel op deze pagina en wordt bijgewerkt zodra nieuwe sessies zijn afgerond.
Welke aandelen zijn deze maand het meest gedaald?
CLBK was de grootste daler met -44.6%, gevolgd door NVTS met -41.6%. Beide zijn gemeten over dezelfde 21 sessies, met dezelfde ondergrens van $1 miljard aan handelsvolume als de lijst met stijgers.
Hoe worden maandelijkse aandelenrendementen gemeten?
Een maandelijks rendement is hier de verandering van de eerste openingprijs tijdens een reguliere sessie binnen de periode tot de laatste slotprijs van een reguliere sessie, gebaseerd op minute bars. Het is een prijsrendement, dus dividenden worden niet bijgerekend. Bedrijven die rond de periode een stock split uitvoeren, worden uit de lijst verwijderd in plaats van dat de koersen worden gecorrigeerd.
Waarom worden leveraged ETF's uitgesloten van een lijst met bewegende aandelen?
Een leveraged of inverse fonds vermenigvuldigt de dagelijkse beweging van een index of een individueel aandeel. Hierdoor kan een dergelijk fonds op een normale handelsdag zonder bedrijfsnieuws bovenaan een lijst met stijgers staan. Door deze uit te sluiten, blijft dit een lijst van operationele bedrijven. Hoe leveraged ETF's werken legt de dagelijkse reset en de drift uit die optreedt bij het aanhouden van een fonds gedurende een maand.
Elk paneel hierboven is een opgeslagen query met de bijbehorende SQL. Open een query, wijzig de ondergrens in dollars of de lengte van de periode, en scan dezelfde markt zelf op het Strasmore terminal.