Strasmore Research
Educación Matt ConnorPor Matt Connor · Actualizado 2026-07-23 · data as of July 23, 2026 · refreshed weekly

Qué es el RVOL y cómo leer el volumen relativo

El RVOL compara el volumen actual con el promedio de veinte días. Aprenda a interpretar este indicador para detectar actividad inusual en un ticker o ETF.

El volumen relativo (RVOL) mide la actividad de negociación de una acción en comparación con su nivel normal reciente: el volumen de acciones de la sesión dividido por el volumen diario promedio de la acción, calculado generalmente sobre las últimas veinte sesiones. Un RVOL de uno representa un día ordinario, dos significa que el doble de las acciones habituales cambiaron de manos, y 0.5 indica una sesión con la mitad de la actividad normal. Cada cifra en esta página se mide a partir de datos del mercado de EE. UU. a nivel de minuto, con la consulta exacta adjunta a cada panel.

¿Qué es el volumen relativo? Una definición clara

El volumen bruto tiene poco valor por sí solo: cinco millones de acciones representan un día de calma total para una mega-cap y un evento anual para una small-cap. El volumen relativo hace explícita la comparación con el comportamiento normal de la acción:

RVOL = volumen del día ÷ volumen diario promedio de la acción (típicamente las últimas 20 sesiones)

Un ejemplo hipotético: una acción que promedia 10 millones de acciones al día y registra 25 millones al cierre terminó con un RVOL de dos punto cinco. (Un print es una operación reportada en el consolidated tape —el registro de ejecuciones de todo el mercado— y "the tape" es el término abreviado que usan los traders para ese registro). El periodo de observación de 20 sesiones es una convención; las plataformas también utilizan 10, 30 o 50 días; equivale aproximadamente a un mes calendario de negociación. Este periodo también hereda las particularidades del calendario de la bolsa: una media jornada por día festivo suma solo una fracción del volumen de una sesión normal al promedio, y días festivos del mercado y cierres anticipados detalla cuándo ocurren estos eventos.

¿Por qué los traders monitorean el volumen relativo?

El RVOL es un indicador de participación, no de dirección. Los días con un RVOL alto se concentran en eventos identificables: reportes de ganancias, adiciones a índices o noticias de titulares. Un movimiento de precio con volumen alto indica que hay una multitud respaldándolo; el mismo movimiento con un RVOL de 0.3 puede ser resultado de apenas unas pocas órdenes. La actividad también está ligada a la liquidez: entre las acciones, los nombres con menos negociación presentan los bid-ask spreads más amplios, publicados por los market makers que cotizan ambos lados durante todo el día. Para cualquier acción, las cotizaciones tienden a ser más amplias en sus sesiones más tranquilas que en las más activas. (El volumen también sustenta el VWAP, el precio promedio ponderado por volumen, la otra referencia principal basada en volumen).

Cómo calcular el volumen relativo — y la trampa de la hora del día

El cálculo para el día completo consiste en una sola división: el volumen total de la sesión ÷ el promedio de volumen diario de las últimas veinte sesiones. Este dato solo es preciso tras el cierre. La trampa consiste en calcularlo durante la sesión: a las 10:30 a.m., el total acumulado es naturalmente una fracción de cualquier cifra de día completo, por lo que incluso una mañana con mucha actividad puede parecer lenta. El volumen intradía sigue una forma de U a lo largo del reloj, y cualquier RVOL intradía debe partir de esa forma.

A continuación se presenta la forma, medida en SPY, el ETF del S&P 500: la mediana de acciones negociadas por minuto en cada bloque de 30 minutos durante los últimos treinta días de sesiones completas, incluyendo el horario extendido (de 4:00 a.m. a 8:00 p.m., hora del Este).

ConsultaSPY — mediana de acciones negociadas por minuto, por intervalos de 30 min (ET, últimos 30 días, extended hours)
El SQL exacto detrás de cada cifra
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_time

El bloque de las 9:30 —la primera media hora de la negociación regular— registró una mediana de 136 mil acciones por minuto, frente a las 3.5 mil del bloque de premercado de las 9:00 inmediatamente anterior. El ritmo disminuye a 49.5 mil en el bloque de las 12:30, para luego aumentar hacia el cierre: 168.3 mil en el bloque de las 3:30, el periodo previo a la subasta de cierre y muy por encima del punto más bajo del almuerzo. Tras la campana de las 4:00 p.m., el ritmo por minuto cae drásticamente hacia el trading after-hours.

Volumen relativo intradía: ajuste por hora del día

El ajuste modifica el denominador: se compara el total acumulado de hoy contra el promedio acumulado a la misma hora. Esto requiere conocer la proporción del volumen de un día normal que ya se ha completado en cada punto de la jornada —medido aquí según las últimas veinte sesiones completas de SPY—:

ConsultaSPY — promedio de volumen diario completado por hora (últimas 20 sesiones)
El SQL exacto detrás de cada cifra
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 checkpoint

Para las 10:00 a.m., media hora después de la apertura de la sesión regular, SPY suele registrar solo el 12.4% de su volumen total diario; para el mediodía es el 34.8%, para las 2:00 p.m. el 51.1%, y para las 3:30 p.m. apenas el 67.3%. Incluso al cierre de las 4:00 p.m., el total es del 85.7% —todo lo demás se reporta a las 16:00 o después, y la mayor parte ocurre en los primeros minutos tras la campana, cuando la subasta de cierre y otras operaciones de fin de jornada impactan el tape; la sesión after-hours es mucho más delgada. Esto coincide con la caída en el gráfico anterior: el ritmo por minuto colapsa al cierre, incluso cuando todavía se está reportando una parte significativa del total del día. Un RVOL matutino ajustado por tiempo divide el volumen acumulado de hoy por el promedio de veinte días multiplicado por la proporción del punto de control. Una advertencia: este cronograma pertenece a SPY —cada acción tiene su propio horario, y el ejemplo práctico a continuación mide el de un solo ticker.

Un ejemplo práctico: una sesión de alto volumen real (MU)

Junio de 2026 fue un mes de alto volumen para Micron — el análisis profundo de MU para junio de 2026 examina todo el registro de operaciones. Esta es la sesión con mayor volumen de ese mes, con el cálculo de RVOL realizado de ambas formas:

ConsultaMU — sesión de mayor volumen de junio 2026: RVOL ajustado por tiempo vs. naive, más cifra diaria total
El SQL exacto detrás de cada cifra
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_day

La sesión más grande de MU en el mes ocurrió el 2026-06-25. Para las 10:30 a.m. de ese día, se habían negociado 32.8 millones de acciones, frente a un promedio de 17.3 millones para la misma hora en las 20 sesiones anteriores — un RVOL ajustado por tiempo de 1.9. Si se divide ese total de la mañana por el promedio de todo el día de 51 millones, la lectura simple es 0.64: un día por debajo del promedio, aparentemente, en una mañana que transcurrió a casi el doble de su ritmo habitual. La sesión finalizó con 77.2 millones de acciones, un RVOL de todo el día de 1.5.

Esa cifra de cierre puede parecer modesta comparada con capturas de pantalla de activos que se mueven diez veces por encima del promedio; si realmente es modesta es una cuestión de distribución, que se medirá a continuación.

¿Qué se considera un volumen relativo alto?

En los foros de trading se mencionan umbrales como "un RVOL superior a dos es alto". Esta es la versión medida: el RVOL de jornada completa para cada acción y ETF listado en EE. UU. con un volumen diario promedio de 20 días superior a cinco millones de acciones (y un historial completo de 20 sesiones previas), calculado por percentiles para el grupo en la sesión completada más reciente de nuestros datos. Una nota sobre la etiqueta: el filtro cuenta acciones, no dólares, por lo que este grupo de alto volumen abarca desde mega-caps y ETFs hasta small-caps baratas con alta rotación; un alto volumen de acciones no es lo mismo que una alta liquidez para operar.

ConsultaPercentiles de RVOL diario en stocks y ETFs de alto volumen (ADV de 20 días > 5M de acciones), última sesión completada
El SQL exacto detrás de cada cifra
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 percentile

La mediana de este grupo de alto volumen operó a 0.73 veces su propio promedio de 20 días. Nueve de cada diez valores quedaron por debajo de 1.37, y solo uno de cada cien superó el 4.71. Si se compara la sesión de MU de la sección anterior con esta tabla, deja de parecer modesta: incluso los valores con mucha actividad pasan la mayoría de los días cerca de su propio promedio; operar con múltiplos de este es poco común.

El extremo inferior también es relevante: el percentil 10 se situó en 0.11. Lecturas tan bajas suelen marcar una acción cuyo promedio de 20 días todavía contiene una sesión enorme; tras un pico, el denominador inflado mantiene el RVOL bajo durante semanas. La ventana tiene memoria en ambas direcciones.

Una advertencia: esto es una sección transversal de una sola sesión; los percentiles varían día a día, y los días de eventos en todo el mercado (rebalanceos de índices, vencimientos de opciones) pueden elevar toda la curva.

¿Qué acciones tuvieron un volumen inusual? El ranking de RVOL

Mismo universo, clasificado (la versión semanal se encuentra en acciones con volumen inusual esta semana): las diez lecturas de RVOL de jornada completa más altas de la sesión 2026-07-21 entre nombres con un promedio superior a 5 millones de acciones diarias; un ranking que un screener marcaría como volumen inusual. El filtro requiere 20 sesiones previas completas; las cotizaciones recientes no tienen un promedio de 20 días significativo y, de lo contrario, llenarían el ranking con datos erróneos.

ConsultaTop 10 por RVOL diario — última sesión completada (ADV de 20 días > 5M de acciones, requiere historial completo)
El SQL exacto detrás de cada cifra
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 10

El tope del ranking, LBGJ, registró 169.2 millones de acciones frente a un promedio de 20 días de 5.1 millones, lo que representa un RVOL de 33.3. Cada fila superó su propio promedio. Los rankings de este tipo suelen excluir a las mega-caps conocidas; duplicar un promedio ya de por sí enorme requiere una cantidad extraordinaria de acciones, mientras que una empresa de menor capitalización puede multiplicar su volumen en una sola sesión.

Notas de datos: selección de sesión y exclusiones

Ambas tablas clasificadas utilizan el mismo universo y la misma regla de sesión. Una sesión candidata solo se considera completa cuando el volumen del SPY para esa fecha alcanza al menos el 60% de su propio promedio de volumen de las 20 sesiones anteriores; los datos del día más reciente llegan con retraso, y esta verificación evita que un día parcialmente cargado se lea como una sesión finalizada. Ambas tablas también excluyen un símbolo que las bolsas reasignaron recientemente a una nueva cotización: los feeds de los proveedores contienen el historial de dos empresas distintas bajo ese ticker, por lo que su promedio de 20 días no es una base de referencia significativa. La lista de exclusión en el SQL se mantiene sincronizada con nuestras verificaciones de identidad de símbolos en cada actualización; cualquier símbolo reutilizado recientemente se añade de la misma manera.

Preguntas frecuentes

¿Qué es un buen número de RVOL?

No existe un umbral oficial. Según los datos de acciones de alto volumen en EE. UU. de la sesión más reciente completada, la mediana operó a 0.73 veces su promedio de 20 días, el percentil 90 fue 1.37 y el 99 fue 4.71.

¿Qué significa un RVOL de dos?

La acción ha negociado el doble de su volumen promedio en el periodo medido, generalmente las últimas 20 sesiones. El horario es importante: un valor de dos comparado con el promedio a la misma hora del día es una lectura sólida a mitad de la sesión; un valor de dos al cierre indica un día con el doble del ritmo normal.

¿Cómo se calcula el volumen relativo intradía?

Divida el volumen acumulado de hoy por el volumen acumulado promedio a la misma hora durante su ventana de observación. Dividir un total de media mañana por un promedio de día completo subestima gravemente la lectura; para las 10:00 a.m., el SPY suele haber completado solo el 12.4% de su volumen diario final.

¿El volumen relativo incluye la negociación premarket y after-hours?

Las convenciones de las plataformas varían; esta página contabiliza cada barra de un minuto en el día calendario del Tiempo del Este, incluyendo las horas extendidas. Para el SPY, la contribución del premarket es visiblemente pequeña: una mediana de 3.5 mil acciones por minuto en el bloque de las 9:00 frente a 136 mil justo después de la apertura.

¿Un volumen relativo alto es alcista o bajista?

Ninguna de las dos. El RVOL mide la participación, no la dirección; el volumen intenso aparece tanto en los mejores como en los peores días de una acción. Las sesiones con RVOL alto han coincidido históricamente con reportes de ganancias, cambios en índices y noticias de titulares; el número indica que hubo participación, no hacia qué lado se inclina el mercado.


Cada panel anterior contiene el SQL exacto que lo produjo; abra uno, cambie su propio ticker y mida el RVOL para los nombres que realmente opera en la terminal de Strasmore.