Wat is RVOL? Relatief volume uitgelegd en interpreteren
RVOL meet het handelsvolume ten opzichte van het gemiddelde over twintig dagen. Een waarde boven één duidt op verhoogde activiteit. Leer hoe u intraday RVOL en pieken analyseert.
Relative volume (RVOL) uitgelegd
Relative volume (RVOL) meet hoe actief een aandeel wordt verhandeld in vergelijking met het recente gemiddelde: het handelsvolume van de sessie gedeeld door het gemiddelde dagvolume van het aandeel, doorgaans berekend over de afgelopen twintig sessies. Een RVOL van één staat voor een normale dag, twee betekent dat er twee keer zoveel aandelen zijn verhandeld dan gebruikelijk, en 0,5 duidt op een sessie die op halve kracht draait. Elk cijfer op deze pagina is gebaseerd op marktdata van de Amerikaanse beurs op minutenniveau, waarbij de exacte query aan elk paneel is gekoppeld.
Wat is relatief volume? Een eenvoudige definitie
Ruw volume zegt op zichzelf weinig: vijf miljoen aandelen is een extreem rustige dag voor een mega-cap en een gebeurtenis die slechts eens per jaar voorkomt bij een small-cap. Relatief volume maakt de vergelijking met het normale volume van het aandeel expliciet:
RVOL = het volume van de dag ÷ het gemiddelde dagelijkse volume van het aandeel (doorgaans de laatste twintig sessies)
Een hypothetisch voorbeeld: een aandeel dat gemiddeld tien miljoen aandelen per dag verhandelt en op 25 miljoen eindigt bij het slot, heeft een RVOL van 2,5. (Een print is een transactie die wordt gerapporteerd aan de consolidated tape, het marktbrede register van uitgevoerde transacties, en "the tape" is de vakterm van handelaren voor dat register.) De terugblik van twintig sessies is een conventie; handelsplatformen gebruiken ook tien, dertig of vijftig dagen; dit komt ruwweg overeen met één kalendermaand aan handel. Het venster neemt ook de eigenaardigheden van de beurskalender over: een halve handelsdag op een feestdag voegt slechts een fractie van het volume van een normale sessie toe aan het gemiddelde, en beursfeestdagen en vervroegde sluitingen brengt in kaart waar deze vallen.
Waarom letten handelaren op relatief volume?
RVOL is een graadmeter voor participatie, niet voor richting. Dagen met een hoog RVOL clusteren rond identificeerbare gebeurtenissen, kwartaalcijfers, toevoegingen aan indices of belangrijk nieuws. Een koersbeweging die tot stand komt bij een hoog volume heeft een grote groep achter zich; dezelfde beweging bij een RVOL van 0,3 kan het werk zijn van slechts een handvol orders. Activiteit hangt ook samen met verhandelbaarheid: bij aandelen kennen de meest thinly traded namen de breedste bid-ask spreads, die worden gesteld door de market makers die de hele dag aan beide kanten koersen afgeven. Voor elk aandeel geldt dat de quotes tijdens rustige sessies doorgaans wat breder zijn dan tijdens drukke sessies. (Volume vormt ook de basis voor VWAP, de volume-weighted average price, de andere belangrijke referentie op basis van volume.)
Hoe u relatief volume berekent en de valkuil van het tijdstip
De berekening voor de gehele dag is een eenvoudige deling: het totale volume van de sessie gedeeld door het gemiddelde dagvolume over twintig sessies. Deze is pas betrouwbaar na het slot. De valkuil is om deze berekening halverwege de sessie uit te voeren: om 10:30 uur is het lopende totaal uiteraard slechts een fractie van een dagcijfer, waardoor zelfs een zeer actieve ochtend er rustig uitziet. Intraday volume volgt een U-vorm gedurende de dag, en elke intraday RVOL moet rekening houden met dit verloop.
Hieronder ziet u dit verloop, gemeten op SPY, de S&P 500 ETF: de mediaan van het aantal verhandelde aandelen per minuut in elk tijdvak van dertig minuten over de afgelopen dertig voltooide sessies, inclusief buitenbeurstijden (04:00 tot 20:00 uur Eastern Time).
| ET tijd | mediaan minuutvolume k |
|---|---|
| 04:00 | 0.6 |
| 04:30 | 0.3 |
| 05:00 | 0.3 |
| 05:30 | 0.3 |
| 06:00 | 0.4 |
| 06:30 | 0.5 |
| 07:00 | 1.1 |
| 07:30 | 1.6 |
| 08:00 | 2.2 |
| 08:30 | 3.3 |
| 09:00 | 4.7 |
| 09:30 | 113.2 |
| 10:00 | 82.9 |
| 10:30 | 77.6 |
| 11:00 | 64.3 |
| 11:30 | 52.3 |
| 12:00 | 49.3 |
| 12:30 | 43.5 |
| 13:00 | 43.4 |
| 13:30 | 36.8 |
De exacte SQL achter elk getal
SELECT formatDateTime(toStartOfInterval(toTimeZone(window_start, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i') AS et_time,
round(quantileDeterministic(0.5)(toFloat64(volume), toUInt64(toUnixTimestamp(window_start))) / 1000, 1) AS median_minute_volume_k
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= now() - INTERVAL 30 DAY
AND toDate(toTimeZone(window_start, 'America/New_York')) < toDate(toTimeZone(now(), 'America/New_York'))
GROUP BY et_time
HAVING et_time >= '04:00' AND et_time < '20:00'
ORDER BY et_timeHet tijdvak van 09:30 uur, het eerste half uur van de reguliere handel, kende een mediaan van 113.2 duizend aandelen per minuut, tegenover 4.7 duizend in het premarket-tijdvak van 09:00 uur vlak daarvoor. Het tempo vlakt af naar 43.5 duizend in het tijdvak van 12:30 uur, om vervolgens weer op te lopen richting het slot: 152.6 duizend in het tijdvak van 15:30 uur, de aanloop naar de slotveiling, wat aanzienlijk hoger is dan het dieptepunt tijdens de lunch. Na de bel van 16:00 uur keldert het tempo per minuut in de nabeurshandel.
Intraday relatief volume: correctie voor het tijdstip
Deze correctie wijzigt de noemer: vergelijk het lopende totaal van vandaag met het gemiddelde lopende totaal op hetzelfde tijdstip. Hiervoor moet bekend zijn welk deel van het volume van een normale handelsdag op elk tijdstip reeds is verhandeld, hier gemeten aan de hand van de laatste twintig voltooide sessies van SPY:
| ET checkpoint | gem. % dagvolume voltooid |
|---|---|
| 10:00 | 20.7 |
| 12:00 | 42.6 |
| 14:00 | 57.2 |
| 15:30 | 71.2 |
| 16:00 | 87.5 |
De exacte SQL achter elk getal
WITH per_min AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,
formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') AS et_min,
sum(toFloat64(volume)) AS v
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= now() - INTERVAL 45 DAY
AND toDate(toTimeZone(window_start, 'America/New_York')) < toDate(toTimeZone(now(), 'America/New_York'))
GROUP BY et_date, et_min
),
last20 AS (
SELECT DISTINCT et_date FROM per_min ORDER BY et_date DESC LIMIT 20
)
SELECT checkpoint AS et_checkpoint,
round(avg(share) * 100, 1) AS avg_pct_of_day_volume_done
FROM (
SELECT et_date,
checkpoint,
sumIf(v, et_min < checkpoint) / sum(v) AS share
FROM (
SELECT et_date, et_min, v, arrayJoin(['10:00', '12:00', '14:00', '15:30', '16:00']) AS checkpoint
FROM per_min
WHERE et_date IN (SELECT et_date FROM last20)
)
GROUP BY et_date, checkpoint
)
GROUP BY checkpoint
ORDER BY checkpointOm 10:00 uur, een half uur na de opening van de reguliere handel, heeft SPY doorgaans slechts 20.7% van het uiteindelijke dagvolume verhandeld; om 12:00 uur is dit 42.6%, om 14:00 uur 57.2% en om 15:30 uur nog steeds slechts 71.2%. Zelfs bij de slotbel om 16:00 uur staat het totaal op 87.5%; al het overige wordt om of na 16:00 uur gerapporteerd. Het grootste deel daarvan komt in de eerste minuten na de bel binnen, wanneer de slotveiling en andere transacties aan het einde van de dag op de tape verschijnen; de nabeurshandel zelf is aanzienlijk minder liquide. Dat komt overeen met de scherpe daling in de bovenstaande grafiek: het tempo per minuut keldert bij de slotbel, terwijl er nog steeds een aanzienlijk deel van het dagtotaal wordt gerapporteerd. Een tijdgecorrigeerde RVOL voor de ochtend deelt het cumulatieve volume van vandaag door het twintigdaags gemiddelde, vermenigvuldigd met het aandeel op het controlemoment. Eén kanttekening: dit schema geldt voor SPY; elk aandeel heeft zijn eigen ritme en het onderstaande uitgewerkte voorbeeld meet dat van één specifiek fonds.
Een uitgewerkt voorbeeld: een sessie met een hoog volume (MU)
Juni 2026 was een drukke maand voor Micron; de diepgaande analyse van MU juni 2026 doorloopt de volledige tape. Hieronder volgt de sessie met het hoogste volume van die maand, waarbij de RVOL-berekening op beide manieren is uitgevoerd:
| sessiedatum | volume t/m 10:30 m | gem. volume t/m 10:30 m | rvol 1030 aangepast | rvol 1030 naïef | sessievolume m | trailing adv m | rvol volledige dag |
|---|---|---|---|---|---|---|---|
| 2026-06-25 | 32.8 | 17.3 | 1.9 | 0.64 | 77.2 | 51 | 1.5 |
De exacte SQL achter elk getal
WITH mu_daily AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,
sum(toFloat64(volume)) AS day_volume,
sumIf(toFloat64(volume), formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') < '10:30') AS vol_by_1030
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'MU'
AND window_start >= toDateTime('2026-04-15 00:00:00', 'America/New_York')
AND window_start < toDateTime('2026-07-01 00:00:00', 'America/New_York')
GROUP BY et_date
HAVING day_volume > 1000000
),
biggest AS (
SELECT et_date, day_volume, vol_by_1030
FROM mu_daily
WHERE et_date >= toDate('2026-06-01') AND et_date <= toDate('2026-06-30')
ORDER BY day_volume DESC
LIMIT 1
),
trailing AS (
SELECT sum(day_volume) / 20 AS adv, sum(vol_by_1030) / 20 AS avg_by_1030
FROM (
SELECT day_volume, vol_by_1030
FROM mu_daily
WHERE et_date < (SELECT et_date FROM biggest)
ORDER BY et_date DESC
LIMIT 20
)
)
SELECT formatDateTime((SELECT et_date FROM biggest), '%Y-%m-%d') AS session_date,
round((SELECT vol_by_1030 FROM biggest) / 1e6, 1) AS vol_by_1030_m,
round((SELECT avg_by_1030 FROM trailing) / 1e6, 1) AS avg_vol_by_1030_m,
round((SELECT vol_by_1030 FROM biggest) / (SELECT avg_by_1030 FROM trailing), 1) AS rvol_1030_adjusted,
round((SELECT vol_by_1030 FROM biggest) / (SELECT adv FROM trailing), 2) AS rvol_1030_naive,
round((SELECT day_volume FROM biggest) / 1e6, 1) AS session_volume_m,
round((SELECT adv FROM trailing) / 1e6, 1) AS trailing_adv_m,
round((SELECT day_volume FROM biggest) / (SELECT adv FROM trailing), 1) AS rvol_full_dayDe sessie met het grootste volume voor MU in die maand vond plaats op 2026-06-25. Om 10:30 uur die dag waren er 32.8 miljoen aandelen verhandeld, tegenover een gemiddelde van 17.3 miljoen op datzelfde tijdstip over de voorgaande twintig sessies, wat neerkomt op een tijdgecorrigeerde RVOL van 1.9. Deelt men dat ochtendtotaal in plaats daarvan door het daggemiddelde van 51 miljoen, dan is de naïeve lezing 0.64: ogenschijnlijk een dag met een ondergemiddeld volume, terwijl de ochtend in werkelijkheid op bijna twee keer het gebruikelijke tempo verliep. De sessie eindigde op 77.2 miljoen aandelen, een RVOL over de gehele dag van 1.5.
Dat slotcijfer kan bescheiden lijken in vergelijking met screenshots van aandelen die tien keer het gemiddelde volume behalen; of het werkelijk bescheiden is, is een vraag voor een verdelingsanalyse, die hierna wordt besproken.
Wat geldt als een hoog relatief volume?
Op handelsfora circuleren drempelwaarden zoals "RVOL boven 2 is hoog". Hier volgt de gemeten versie: de dagelijkse RVOL voor elk in de VS genoteerd aandeel en elke ETF met een gemiddeld dagelijks volume over twintig dagen van meer dan vijf miljoen aandelen (en een volledige historie van twintig voorgaande sessies), percentielgewijs ingedeeld over de groep voor de meest recent voltooide sessie in onze data. Eén kanttekening bij het label: de screening telt aandelen, geen dollars. Deze groep met een hoog volume varieert dus van mega-caps en ETF's tot goedkope small-caps met een hoge omloopsnelheid; een hoog aandelenaantal is niet hetzelfde als een gemakkelijke verhandelbaarheid.
| percentiel | rvol |
|---|---|
| p10 | 0.08 |
| p25 | 0.57 |
| p50 (median) | 0.86 |
| p75 | 1.2 |
| p90 | 1.69 |
| p99 | 3.43 |
De exacte SQL achter elk getal
WITH daily AS (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,
toFloat64(sum(volume)) AS day_volume
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= now() - INTERVAL 40 DAY
AND toDate(toTimeZone(window_start, 'America/New_York')) < toDate(toTimeZone(now(), 'America/New_York'))
GROUP BY ticker, et_date
),
spy_days AS (
SELECT et_date,
day_volume,
avg(day_volume) OVER (ORDER BY et_date ROWS BETWEEN 20 PRECEDING AND 1 PRECEDING) AS prior_avg
FROM daily
WHERE ticker = 'SPY' AND day_volume > 10000000
),
sessions AS (
SELECT et_date FROM spy_days
),
latest AS (
SELECT max(et_date) AS d FROM spy_days WHERE prior_avg > 0 AND day_volume >= 0.6 * prior_avg
),
prior20 AS (
SELECT et_date FROM sessions WHERE et_date < (SELECT d FROM latest) ORDER BY et_date DESC LIMIT 20
),
rvols AS (
SELECT ticker, day_vol / adv20 AS rvol
FROM (
SELECT ticker,
sumIf(day_volume, et_date = (SELECT d FROM latest)) AS day_vol,
sumIf(day_volume, et_date IN (SELECT et_date FROM prior20)) / 20 AS adv20,
countIf(day_volume > 0 AND et_date IN (SELECT et_date FROM prior20)) AS sessions_traded
FROM daily
WHERE ticker NOT IN ('SPCX')
GROUP BY ticker
HAVING adv20 > 5000000 AND day_vol > 0 AND sessions_traded = 20
)
)
SELECT pair.1 AS percentile,
round(pair.2, 2) AS rvol
FROM (
SELECT arrayJoin(arrayZip(['p10', 'p25', 'p50 (median)', 'p75', 'p90', 'p99'], quantilesExact(0.1, 0.25, 0.5, 0.75, 0.9, 0.99)(rvol))) AS pair
FROM rvols
)
ORDER BY percentileDe mediaan in deze groep met een hoog volume handelde op 0.86 keer het eigen gemiddelde over twintig dagen. Negen van de tien namen bleven onder de 1.69, en slechts één op de honderd overschreed de 3.43. Zet de sessie van MU uit de vorige sectie af tegen deze tabel en het ziet er niet langer bescheiden uit; zelfs drukke namen brengen de meeste dagen door nabij hun eigen gemiddelde. Veelvouden daarvan zijn zeldzaam.
De onderkant van de verdeling is eveneens van belang: het tiende percentiel lag op 0.08. Dergelijke lage waarden duiden meestal op een aandeel waarvan het gemiddelde over twintig dagen nog steeds één enorme sessie bevat; na een piek houdt de opgeblazen noemer de RVOL wekenlang laag. Het venster heeft een geheugen, in beide richtingen.
Eén kanttekening: dit is een dwarsdoorsnede van één enkele sessie, percentielen verschuiven van dag tot dag, en marktomvattende gebeurtenissen (indexherwegingen, optie-expiraties) kunnen de gehele curve omhoog tillen.
Welke aandelen vertoonden ongebruikelijk volume? Het RVOL-klassement
Hetzelfde universum, gerangschikt (de wekelijkse versie vindt u op aandelen met ongebruikelijk volume deze week): de tien hoogste RVOL-waarden over een volledige dag tijdens de 2026-08-21-sessie onder fondsen die gemiddeld meer dan vijf miljoen aandelen per dag verhandelen; het overzicht dat een screener zou markeren als ongebruikelijk volume. De scan vereist twintig volledige voorgaande sessies; recente noteringen hebben geen betekenisvol gemiddelde over twintig dagen en zouden het klassement anders vullen met ruis.
| ticker | sessiedatum | sessievolume m | adv 20d m | rvol |
|---|---|---|---|---|
| HOWL | 2026-08-21 | 265 | 5.3 | 50 |
| CAN | 2026-08-21 | 93 | 11 | 8.5 |
| LGCL | 2026-08-21 | 88.1 | 13.1 | 6.8 |
| MRNA | 2026-08-21 | 88.1 | 16 | 5.5 |
| PURR | 2026-08-21 | 36.7 | 9.8 | 3.8 |
| BABA | 2026-08-21 | 32.1 | 8.7 | 3.7 |
| COIN | 2026-08-21 | 24.5 | 7.1 | 3.4 |
| BITX | 2026-08-21 | 26.7 | 8.3 | 3.2 |
| GOSS | 2026-08-21 | 130.9 | 41 | 3.2 |
| TEM | 2026-08-21 | 16.2 | 5.1 | 3.2 |
De exacte SQL achter elk getal
WITH daily AS (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS et_date,
toFloat64(sum(volume)) AS day_volume
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= now() - INTERVAL 40 DAY
AND toDate(toTimeZone(window_start, 'America/New_York')) < toDate(toTimeZone(now(), 'America/New_York'))
GROUP BY ticker, et_date
),
spy_days AS (
SELECT et_date,
day_volume,
avg(day_volume) OVER (ORDER BY et_date ROWS BETWEEN 20 PRECEDING AND 1 PRECEDING) AS prior_avg
FROM daily
WHERE ticker = 'SPY' AND day_volume > 10000000
),
sessions AS (
SELECT et_date FROM spy_days
),
latest AS (
SELECT max(et_date) AS d FROM spy_days WHERE prior_avg > 0 AND day_volume >= 0.6 * prior_avg
),
prior20 AS (
SELECT et_date FROM sessions WHERE et_date < (SELECT d FROM latest) ORDER BY et_date DESC LIMIT 20
)
SELECT ticker,
formatDateTime((SELECT d FROM latest), '%Y-%m-%d') AS session_date,
round(day_vol / 1e6, 1) AS session_volume_m,
round(adv20 / 1e6, 1) AS adv_20d_m,
round(day_vol / adv20, 1) AS rvol
FROM (
SELECT ticker,
sumIf(day_volume, et_date = (SELECT d FROM latest)) AS day_vol,
sumIf(day_volume, et_date IN (SELECT et_date FROM prior20)) / 20 AS adv20,
countIf(day_volume > 0 AND et_date IN (SELECT et_date FROM prior20)) AS sessions_traded
FROM daily
WHERE ticker NOT IN ('SPCX')
GROUP BY ticker
HAVING adv20 > 5000000 AND day_vol > 0 AND sessions_traded = 20
)
ORDER BY rvol DESC, ticker
LIMIT 10De koploper van het klassement, HOWL, noteerde 265 miljoen aandelen tegenover een gemiddelde over twintig dagen van 5.3 miljoen, een RVOL van 50. Elke rij overtrof het eigen gemiddelde. Overzichten als deze wijken af van de bekende mega-caps; het verdubbelen van een reeds enorm gemiddelde vereist een buitengewoon aantal aandelen, terwijl een kleiner fonds zijn volume in één sessie kan vermenigvuldigen.
Datatoelichting: sessieselectie en uitsluitingen
Beide gerangschikte tabellen gebruiken hetzelfde universum en dezelfde sessieregel. Een kandidaat-sessie telt pas als voltooid zodra de tape van SPY voor die datum ten minste zestig procent van het eigen gemiddelde volume over de voorgaande twintig sessies bereikt; de data van de meest recente dag komen met vertraging binnen en deze controle voorkomt dat een gedeeltelijk geladen dag wordt gelezen als een afgeronde sessie. Beide tabellen sluiten bovendien één symbool uit dat door de beurzen onlangs aan een nieuwe notering is toegewezen: dataleveranciers voeren de historie van twee verschillende bedrijven onder die ticker, waardoor het gemiddelde over twintig dagen geen zinvolle basislijn vormt. De uitsluitingslijst in de SQL wordt bij elke verversing synchroon gehouden met onze controles op symboolidentiteit; elk nieuw gemarkeerd hergebruikt symbool wordt op dezelfde wijze toegevoegd.
Veelgestelde vragen
Wat is een goed RVOL-cijfer?
Er is geen officiële drempelwaarde. Gemeten over Amerikaanse aandelen met een hoog volume tijdens de meest recente voltooide sessie in onze data, noteerde de mediaan op 0.86 keer het gemiddelde over twintig dagen, het negentigste percentiel op 1.69 en het negenennegentigste op 3.43.
Wat betekent een RVOL van twee?
Het aandeel is verhandeld op tweemaal het gemiddelde volume voor het gemeten venster, doorgaans de afgelopen twintig sessies. Het tijdstip is van belang: een twee ten opzichte van het gemiddelde op hetzelfde tijdstip is een sterke meting halverwege de sessie; een twee bij het slot duidt op een dag met een dubbel zo hoog tempo als normaal.
Hoe berekent u het relatieve volume intraday?
Deel het cumulatieve volume van vandaag door het gemiddelde cumulatieve volume op hetzelfde tijdstip over uw terugkijkperiode. Het delen van een totaal van de ochtend door een gemiddelde over de gehele dag geeft een vertekend beeld; om tien uur 's ochtends heeft SPY doorgaans slechts 20.7% van het uiteindelijke dagvolume voltooid.
Bevat het relatieve volume handel buiten de reguliere uren?
Conventies op platforms verschillen; deze pagina telt elke minuutbalk in de kalenderdag volgens de Eastern Time, inclusief de uitgebreide uren. Voor SPY is de bijdrage van de premarket zichtbaar klein, met een mediaan van 4.7 duizend aandelen per minuut in het blok van negen uur, tegenover 113.2 duizend direct na opening.
Is een hoog relatief volume bullish of bearish?
Geen van beide. RVOL meet de participatie, niet de richting; een zware tape is zichtbaar op zowel de beste als de slechtste dagen van een aandeel. Sessies met een hoge RVOL vallen historisch gezien samen met kwartaalcijfers, indexwijzigingen en belangrijk nieuws; het cijfer geeft aan dat de markt aanwezig is, niet in welke richting deze beweegt.
Elk paneel hierboven bevat de exacte SQL die het heeft gegenereerd. Open er een, voer uw eigen ticker in en meet de RVOL voor de namen die u daadwerkelijk verhandelt op de Strasmore-terminal.