Strasmore Research
Educación Matt ConnorPor Matt Connor · Actualizado 2026-10-03

Cómo descargar datos diarios de short volume de FINRA

Descarga con curl datos diarios de short volume de FINRA, interpreta las columnas del archivo Reg SHO y calcula con awk el short volume ratio de un símbolo. Fecha fija y reproducible.

Para descargar los datos diarios de volumen en corto de FINRA, obtén un archivo de texto plano por cada día de negociación desde el servidor público de contenidos de FINRA. No necesitas iniciar sesión ni usar una clave de API. El archivo es el de volumen diario de ventas en corto de Regulation SHO. Contiene una fila delimitada por barras verticales por símbolo, con el volumen en corto y el volumen total de ese día, además del subconjunto exento de ventas en corto, para operaciones reportadas fuera de bolsa a una facilidad de FINRA.

Esta guía utiliza una fecha histórica concreta, el 12 de junio de 2026, y muestra el proceso en un contenedor Ubuntu nuevo: instalar curl, descargar el archivo, leer las columnas y calcular con awk el short volume ratio de un símbolo. Todos los comandos funcionan tal como están escritos, tanto hoy como dentro de un año.

¿Dónde publica FINRA el archivo diario de volumen en corto?

El archivo consolidado de cualquier día de negociación se encuentra en una dirección predecible:

https://cdn.finra.org/equity/regsho/daily/CNMSshvolYYYYMMDD.txt

Reemplace YYYYMMDD por la fecha de negociación. CNMS es el archivo consolidado del NMS (National Market System, el universo de valores cotizados en bolsa): incluye todas las acciones listadas, agregadas a partir de todas las trade reporting facilities (TRF) de FINRA. FINRA publica el archivo de cada día a más tardar a las 6:00 p. m., hora del Este, en la propia fecha de negociación. Es una de las fuentes públicas más rápidas de datos sobre ventas en corto. La contrapartida es el alcance. El archivo solo contabiliza las operaciones reportadas a una facility de FINRA. En la práctica, esto significa ejecuciones fuera de bolsa, como las realizadas por wholesalers al completar órdenes minoristas y las operaciones en dark pools. Las operaciones casadas directamente en las bolsas no aparecen. Por eso, la columna de volumen total siempre es menor que el volumen del día mostrado en un gráfico de precios.

Los archivos solo existen para días de negociación. Si se solicita una fecha de fin de semana o un feriado bursátil, el servidor responde 403 Forbidden en lugar de devolver un archivo vacío. Un script que recorra un calendario debe omitir esas fechas o tolerar el error.

Paso uno: un contenedor Ubuntu nuevo con curl

Comienza con un contenedor limpio e instala curl. La imagen base de Ubuntu ya incluye awk (como mawk), por lo que no se necesita nada más:

docker run --rm -it ubuntu:24.04 bash

apt-get update && apt-get install -y curl

Paso 2: descarga el archivo diario de volumen en corto de FINRA para una fecha fija

Fija la fecha. Un comando basado en «hoy» falla los fines de semana y feriados, y también cada mañana antes de que FINRA publique el archivo. El 12 de junio de 2026 fue viernes y tuvo una sesión normal. Su archivo permanece en el servidor:

curl -fsSLO https://cdn.finra.org/equity/regsho/daily/CNMSshvol20260612.txt

Los flags: -f hace que curl falle ante un error HTTP en lugar de guardar la página de error como datos; -s silencia el indicador de progreso; -S sigue mostrando un error real; -L sigue una redirección; y -O guarda el archivo con su nombre remoto. Inspecciona ambos extremos del contenido recibido:

head -3 CNMSshvol20260612.txt

tail -1 CNMSshvol20260612.txt

La primera línea es el encabezado, Date|Symbol|ShortVolume|ShortExemptVolume|TotalVolume|Market. La última línea es un tráiler: un entero sin más, que indica la cantidad de registros de datos del archivo. Cualquier parser debe eliminar ambos. Ahora demuestra la regla del fin de semana solicitando el día calendario siguiente, sábado 13 de junio:

curl -fsSLO https://cdn.finra.org/equity/regsho/daily/CNMSshvol20260613.txt

Curl muestra un error y termina con el código 22: el servidor devolvió 403 y -f rechazó la solicitud. Lo mismo ocurre el 19 de junio de 2026, feriado de Juneteenth. Una copia almacenada de la misma serie muestra directamente la estructura del calendario: una fila por sesión y ninguna entre ellas:

ConsultaSímbolos incluidos en cada archivo diario de volumen short de junio de 2026
21 rows (showing 20)
fecha de operacióndía de la semanaetiqueta de sesiónsímbolos reportadosetiqueta de símbolos
2026-06-01MondayJune 11511815.12 thousand
2026-06-02TuesdayJune 21490714.91 thousand
2026-06-03WednesdayJune 31483914.84 thousand
2026-06-04ThursdayJune 451365.14 thousand
2026-06-05FridayJune 51474014.74 thousand
2026-06-08MondayJune 81481514.81 thousand
2026-06-09TuesdayJune 91475114.75 thousand
2026-06-10WednesdayJune 1056945.69 thousand
2026-06-11ThursdayJune 111468714.69 thousand
2026-06-12FridayJune 121473414.73 thousand
2026-06-15MondayJune 151494814.95 thousand
2026-06-16TuesdayJune 1656315.63 thousand
2026-06-17WednesdayJune 171461114.61 thousand
2026-06-18ThursdayJune 181470014.70 thousand
2026-06-22MondayJune 221492214.92 thousand
2026-06-23TuesdayJune 2357675.77 thousand
2026-06-24WednesdayJune 241474314.74 thousand
2026-06-25ThursdayJune 251471614.72 thousand
2026-06-26FridayJune 261505215.05 thousand
2026-06-29MondayJune 2954895.49 thousand
El SQL exacto detrás de cada cifra
SELECT
    toString(date)                                              AS trade_date,
    formatDateTime(date, '%W')                                  AS weekday,
    concat(monthName(date), ' ', toString(toDayOfMonth(date)))  AS session_label,
    count(DISTINCT ticker)                                      AS symbols_reported,
    formatReadableQuantity(count(DISTINCT ticker))              AS symbols_label
FROM global_markets.stocks_short_volume
WHERE date >= '2026-06-01'
  AND date <  '2026-07-01'
GROUP BY date
ORDER BY date
Pruébalo tú mismo

Junio de 2026 generó 21 archivos fechados. El primero, June 1, un Monday, contenía símbolos 15.12 thousand. Todas las filas del panel corresponden a días hábiles y no hay una fila para el 19 de junio.

¿Qué significan las columnas del archivo de volumen en corto de FINRA?

Cada fila de datos tiene seis campos separados por barras verticales.

  • Date es la fecha de operación en formato YYYYMMDD.
  • Symbol es el ticker, con un máximo de 14 caracteres.
  • ShortVolume es el número de acciones vendidas en corto ese día en las operaciones reportadas a FINRA, incluidas las operaciones short exempt.
  • ShortExemptVolume es el subconjunto marcado como short exempt: ventas identificadas como exentas de la prueba de precio de la Reg SHO Rule 201, el disyuntor que restringe las ventas en corto después de que una acción cae 10% frente al cierre anterior.
  • TotalVolume es el total de acciones reportadas para el símbolo ese día, incluidas las posiciones short y long.
  • Market es la entidad de reporte: N para el NYSE TRF, Q para el Nasdaq TRF en Carteret, B para el Nasdaq TRF en Chicago y D para el Alternative Display Facility (ADF).

En el archivo consolidado, el campo Market enumera todas las entidades que reportaron el símbolo, separadas por comas. Por eso, una línea termina con algo como B,Q,N. Esas comas explican por qué el archivo utiliza barras verticales como delimitador. Hay un cambio reciente que debe tenerse en cuenta: desde el 23 de febrero de 2026, los tres campos de volumen incluyen acciones fraccionarias con seis decimales, por lo que es normal encontrar un valor con seis dígitos después del punto decimal. Los archivos con fecha anterior solo contienen números enteros. Un parser que convierta el valor a entero truncará silenciosamente los archivos más recientes.

¿Cómo calculo el short volume ratio con awk?

El short volume ratio es el short volume dividido entre el volumen total, expresado como porcentaje. Una línea de awk lo calcula para un solo ticker:

awk -F'|' '$2 == "AAPL" { printf "%s %s short=%s total=%s ratio=%.1f\n", $1, $2, $3, $5, 100 * $3 / $5 }' CNMSshvol20260612.txt

-F'|' establece la barra vertical como separador de campos, $2 == "AAPL" conserva únicamente la fila de AAPL —el encabezado y el registro final nunca coinciden—, y printf divide el campo 3 entre el campo 5. Sustituye el ticker por cualquier otro. El panel siguiente muestra la misma fecha para seis nombres conocidos a partir de la serie de FINRA almacenada, redondeados a millones de acciones, para que puedas comparar el resultado de la línea que acabas de ejecutar:

ConsultaRatio de volumen short el 12 de junio de 2026 para seis empresas conocidas
tickervolumen en corto (millones)volumen total (millones)% en corto
AAPL6.6613.1650.6
AMZN5.8821.7627
KO2.063.6556.3
MSFT3.7314.2426.2
NVDA15.1945.3433.5
SPY7.4815.4848.3
El SQL exacto detrás de cada cifra
SELECT
    ticker,
    round(toFloat64(max(short_volume)) / 1e6, 2)                                  AS short_volume_millions,
    round(toFloat64(max(total_volume)) / 1e6, 2)                                  AS total_volume_millions,
    round(100 * toFloat64(max(short_volume)) / toFloat64(max(total_volume)), 1)   AS short_pct
FROM global_markets.stocks_short_volume
WHERE ticker IN ('AAPL', 'AMZN', 'KO', 'MSFT', 'NVDA', 'SPY')
  AND date = '2026-06-12'
GROUP BY ticker
HAVING max(total_volume) > 0
ORDER BY ticker
Pruébalo tú mismo

Para AAPL, el 12 de junio de 2026, el archivo registra 6.66 millones de acciones vendidas en corto frente a 13.16 millones reportadas en total. El short volume ratio es de 50.6%. Los otros cinco nombres se sitúan en un rango similar, que es el comportamiento habitual de este archivo. Una sección posterior explica por qué un ratio cercano a la mitad no es la señal de alerta que parece.

Un solo día es una fotografía instantánea, y el ratio cambia de una sesión a otra. Descarga un archivo por fecha y podrás construir la serie mensual.

¿Cuál es la diferencia entre el archivo CNMS y los archivos por instalación?

CNMS es un agregado. FINRA también publica un archivo por cada instalación de reporte con el mismo calendario, formato y fecha, pero con un prefijo diferente: FNSQshvol para el Nasdaq TRF Carteret (Market Q), FNQCshvol para el Nasdaq TRF Chicago (B), FNYXshvol para el NYSE TRF (N) y FNRAshvol para el ADF (D). Un quinto archivo, FORFshvol, corresponde a la OTC Reporting Facility, que gestiona acciones OTC no listadas y no forma parte de CNMS. Descarga el archivo de Carteret para la fecha fijada y extrae el mismo ticker:

curl -fsSLO https://cdn.finra.org/equity/regsho/daily/FNSQshvol20260612.txt

awk -F'|' '$2 == "AAPL"' FNSQshvol20260612.txt

Ejecuta las mismas dos líneas contra FNQCshvol20260612.txt y FNYXshvol20260612.txt. Los tres campos ShortVolume suman la cifra de CNMS hasta el último decimal. El archivo del ADF para esa fecha contiene únicamente un encabezado y un tráiler de 0, algo habitual. Este es el desglose de AAPL:

ConsultaDónde se reportó el volumen short extrabursátil de AAPL el 12 de junio de 2026
plazavolumen en corto (millones)participación del consolidado (%)
Consolidated (CNMS)6.659100
Nasdaq TRF Carteret (Q)6.41296.3
NYSE TRF (N)0.1942.9
Nasdaq TRF Chicago (B)0.0530.8
ADF (D)00
El SQL exacto detrás de cada cifra
SELECT
    tupleElement(v, 1)                                  AS venue,
    round(tupleElement(v, 2) / 1e6, 3)                  AS short_volume_millions,
    round(100 * tupleElement(v, 2) / consolidated, 1)   AS share_of_consolidated_pct
FROM
(
    SELECT
        consolidated,
        arrayJoin([
            ('Consolidated (CNMS)',     consolidated),
            ('Nasdaq TRF Carteret (Q)', carteret),
            ('Nasdaq TRF Chicago (B)',  chicago),
            ('NYSE TRF (N)',            nyse),
            ('ADF (D)',                 adf)
        ]) AS v
    FROM
    (
        SELECT
            toFloat64(ifNull(max(short_volume), 0))                 AS consolidated,
            toFloat64(ifNull(max(nasdaq_carteret_short_volume), 0)) AS carteret,
            toFloat64(ifNull(max(nasdaq_chicago_short_volume), 0))  AS chicago,
            toFloat64(ifNull(max(nyse_short_volume), 0))            AS nyse,
            toFloat64(ifNull(max(adf_short_volume), 0))             AS adf
        FROM global_markets.stocks_short_volume
        WHERE ticker = 'AAPL'
          AND date = '2026-06-12'
    )
)
ORDER BY tupleElement(v, 2) DESC
Pruébalo tú mismo

Nasdaq TRF Carteret (Q) representó 96.3% del volumen short de AAPL fuera de bolsa ese día. El Nasdaq TRF de Carteret gestiona la mayor parte del reporte de operaciones fuera de bolsa del mercado, y este desglose lo muestra. Los archivos por instalación son útiles cuando se necesita saber por qué venue pasó un print; para todo lo demás, debe utilizarse el archivo consolidado.

¿Por qué el short volume de FINRA no es short interest?

El short volume es un flujo: las acciones vendidas en corto durante una sesión, únicamente en operaciones fuera de bolsa. El short interest es un saldo: el número de acciones que siguen vendidas en corto en una fecha de liquidación. FINRA lo recopila dos veces al mes y lo publica aproximadamente dos semanas después. Ambos datos no coinciden, y un ratio elevado de short volume no significa que exista una posición corta grande. Un market maker que ejecuta la orden de compra de un cliente con inventario que no tiene vende en corto y registra una venta en corto; si cubre la posición una hora después, el archivo muestra la venta en corto sin rastro de la compra. En días normales, el ratio de los nombres líquidos se sitúa cerca de la mitad, como muestra el panel de seis nombres anterior, y ese mecanismo de market making es la explicación habitual. Short interest frente a short volume desarrolla el concepto y qué es short interest aborda el lado de la posición; esta publicación se centra en obtener el archivo. Para la serie de posiciones, empieza con datos de short interest de FINRA, continúa con cuándo se publica short interest y consulta por qué short interest tiene dos semanas de antigüedad para conocer el retraso de publicación.

Particularidades conocidas del archivo de volumen en corto de FINRA

Hay varios aspectos que suelen sorprender a los usuarios nuevos. Las bolsas ejecutan símbolos de prueba en sistemas de producción. La familia ZVZZT de Nasdaq es el ejemplo más conocido. Sus filas pueden aparecer en los archivos con volúmenes que parecen reales. Elimine cualquier símbolo que no pueda asociar con un valor listado antes de graficarlo.

En casos excepcionales, FINRA vuelve a publicar el archivo de un día con cifras corregidas. En la página de su catálogo aparece con la etiqueta “Updated”. Por ello, una cifra descargada la noche de la fecha de operación puede diferir del mismo archivo descargado una semana después. Vuelva a descargarlo antes de citarla.

La línea final contiene únicamente un conteo y no incluye separadores verticales. Un parser básico que asuma seis campos en todas las líneas fallará al procesarla.

Los volúmenes son fraccionarios desde el 23 de febrero de 2026 y enteros antes de esa fecha. Solo se incluyen las operaciones realizadas durante el horario regular y reportadas fuera de bolsa a una entidad de FINRA. Por eso, la columna de volumen total nunca coincide con la cinta consolidada.

Estas características pertenecen al archivo y no son defectos. Un parser que las tenga en cuenta devuelve cifras limpias.

Preguntas frecuentes

¿Dónde puedo descargar gratis los datos diarios de volumen en corto de FINRA?

Desde el servidor público de contenidos de FINRA, en cdn.finra.org/equity/regsho/daily/. Hay un archivo por cada día de trading, con el nombre CNMSshvolYYYYMMDD.txt para el archivo consolidado de NMS. No se necesita una cuenta; basta con ejecutar un comando curl. El sitio web de FINRA también ofrece una vista interactiva con exportación a CSV para un máximo de siete días a la vez.

¿Por qué no hay un archivo de volumen en corto de FINRA para un fin de semana o feriado?

Los archivos se generan únicamente para fechas de trading. Una solicitud para un fin de semana o un feriado bursátil devuelve HTTP 403, no un archivo vacío. Por eso, un script que recorra el calendario debe omitir los días sin trading o tolerar el error.

¿El volumen diario en corto de FINRA es lo mismo que el short interest?

No. El volumen en corto contabiliza las acciones vendidas en corto durante un día en operaciones fuera de bolsa. Incluye posiciones cortas de market makers cubiertas en cuestión de minutos. El short interest contabiliza las acciones que siguen vendidas en corto en una fecha de liquidación y se recopila dos veces al mes. Un short volume ratio cercano a 50% es habitual en una acción líquida y no dice nada sobre el tamaño de una posición corta abierta.

¿Por qué el archivo de volumen en corto de FINRA contiene decimales?

Desde el 23 de febrero de 2026, FINRA informa cantidades fraccionarias de acciones de títulos NMS con seis decimales en los tres campos de volumen. Los archivos anteriores a esa fecha solo contienen acciones enteras. Por lo tanto, un parser que convierta los valores a enteros truncará los archivos nuevos.

¿Qué significa la columna Market en el archivo de volumen en corto de FINRA?

Identifica la facilidad de FINRA que recibió el reporte de la operación: N para el NYSE TRF, Q para el Nasdaq TRF en Carteret, B para el Nasdaq TRF en Chicago y D para el ADF. El archivo consolidado CNMS enumera, separados por comas, todas las facilidades que reportaron el símbolo.


Cada panel anterior incluye su SQL debajo. Expande cualquiera para ver cómo se calculó una cifra. Para consultar el historial de volumen en corto de un símbolo sin descargar ningún archivo, solicítalo en lenguaje natural en la terminal de Strasmore.

#finra#short volume#reg sho#curl#awk#market data