Strasmore Research
Apprendre Matt ConnorPar Matt Connor · Mis à jour le 2026-10-05

Télécharger les données short quotidiennes de FINRA

Téléchargez avec curl les données short quotidiennes de FINRA, lisez les colonnes du fichier Reg SHO et calculez le ratio short d’un ticker avec awk.

Pour télécharger les données quotidiennes de FINRA sur les volumes short, récupérez un fichier texte brut par séance sur le serveur de contenu public de FINRA. Aucun identifiant ni aucune clé API ne sont nécessaires. Le fichier est le rapport quotidien de FINRA sur les ventes à découvert au titre de la Regulation SHO. Il contient une ligne séparée par des caractères « | » pour chaque ticker. Chaque ligne indique le volume short et le volume total du jour, ainsi que le sous-ensemble short exempt, pour les transactions déclarées hors marché auprès d’une infrastructure de FINRA. Ce guide prend comme date historique le 12 juin 2026 et détaille la procédure dans un conteneur Ubuntu fraîchement créé : installer curl, télécharger le fichier, lire les colonnes, puis calculer avec awk le ratio de volume short pour un ticker. Chaque commande s’exécute telle quelle, aujourd’hui comme dans un an.

Où FINRA publie-t-elle le fichier quotidien du short volume ?

Le fichier consolidé de chaque séance se trouve à une adresse prévisible :

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

Remplacez YYYYMMDD par la date de la séance. CNMS correspond au fichier consolidé NMS (National Market System, l’univers des titres cotés en Bourse) : toutes les actions cotées, agrégées sur l’ensemble des trade reporting facilities (TRF) de FINRA. FINRA publie le fichier de chaque séance au plus tard à 18 h, heure de l’Est, le jour même. Il s’agit pratiquement des données publiques sur les ventes à découvert disponibles le plus rapidement. La contrepartie est le périmètre couvert. Le fichier ne comptabilise que les transactions déclarées auprès d’une infrastructure de FINRA. En pratique, cela correspond aux exécutions réalisées hors marché, notamment aux ordres exécutés par les wholesalers pour le compte des particuliers et aux dark pools. Les transactions exécutées directement sur les Bourses n’y figurent pas. La colonne du volume total est donc toujours inférieure au volume de la séance affiché sur un graphique de cours.

Les fichiers n’existent que pour les séances de Bourse. Si vous demandez une date de week-end ou un jour férié boursier, le serveur renvoie l’erreur 403 Forbidden plutôt qu’un fichier vide. Un script qui parcourt un calendrier doit donc ignorer ces dates ou gérer cette erreur.

Étape 1 : un conteneur Ubuntu vierge avec curl

Commencez avec un conteneur vierge et installez curl. L’image de base Ubuntu inclut déjà awk (sous la forme de mawk), aucune autre installation n’est donc nécessaire :

docker run --rm -it ubuntu:24.04 bash

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

Étape 2 : télécharger le fichier quotidien FINRA du volume short pour une date fixe

Fixez la date. Une commande construite autour de « today » échoue les week-ends et les jours fériés, ainsi que chaque matin avant la mise en ligne du fichier par la FINRA. Le 12 juin 2026 était un vendredi avec une séance normale, et son fichier reste disponible sur le serveur :

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

Les options : -f demande à curl d’échouer en cas d’erreur HTTP au lieu d’enregistrer la page d’erreur comme données, -s désactive l’indicateur de progression, -S affiche tout de même une véritable erreur, -L suit une redirection et -O enregistre le fichier sous son nom distant. Inspectez les deux extrémités du fichier reçu :

head -3 CNMSshvol20260612.txt

tail -1 CNMSshvol20260612.txt

La première ligne est l’en-tête, Date|Symbol|ShortVolume|ShortExemptVolume|TotalVolume|Market. La dernière ligne est un trailer : un entier seul correspondant au nombre d’enregistrements de données du fichier. Tout parser doit supprimer ces deux lignes. Vérifiez maintenant la règle du week-end en demandant le jour calendaire suivant, le samedi 13 juin :

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

Curl affiche une erreur et se termine avec le code 22 : le serveur a renvoyé une erreur 403 et -f l’a refusée. Il en va de même pour le 19 juin 2026, jour férié de Juneteenth. Une copie conservée de la même série montre directement la structure du calendrier, avec une ligne par séance et aucune ligne intermédiaire :

RequêteSymboles présents dans chaque fichier quotidien de volume short de juin 2026
21 rows (showing 20)
Date de négociationJour de la semaineLibellé de séanceSymboles publiésLibellé des symboles
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
Le SQL exact derrière chaque chiffre
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
Essayez cette requête

Le mois de juin 2026 a produit 21 fichiers datés. Le premier, June 1, un fichier Monday, contenait 15.12 thousand symboles. Chaque ligne du panel correspond à un jour ouvré, et il n’y a pas de ligne pour le 19 juin.

Que signifient les colonnes du fichier de volume short de la FINRA ?

Chaque ligne de données comporte six champs séparés par des barres verticales.

  • Date correspond à la date de transaction au format AAAAMMJJ.
  • Symbol correspond au ticker, limité à 14 caractères.
  • ShortVolume correspond au nombre d’actions vendues short ce jour-là dans les transactions déclarées à la FINRA, y compris les transactions short exempt.
  • ShortExemptVolume correspond au sous-ensemble marqué short exempt : les ventes indiquées comme exemptées du price test de la Rule 201 de la Reg SHO, le coupe-circuit qui limite les ventes short après une baisse de 10 % de l’action par rapport à sa clôture précédente.
  • TotalVolume correspond à l’ensemble des actions déclarées pour le symbole ce jour-là, ventes short et ventes long confondues.
  • Market correspond à la plateforme de déclaration : N pour le NYSE TRF, Q pour le Nasdaq TRF de Carteret, B pour le Nasdaq TRF de Chicago et D pour l’Alternative Display Facility (ADF).

Dans le fichier consolidé, le champ Market répertorie, séparés par des virgules, tous les marchés qui ont déclaré des transactions sur le symbole. Une ligne se termine donc par une valeur du type B,Q,N. Ces virgules expliquent pourquoi le fichier utilise des barres verticales comme séparateur.

Il faut tenir compte d’une modification récente : depuis le 23 février 2026, les trois champs de volume peuvent contenir des fractions d’actions avec six décimales. Une valeur comportant six chiffres après la virgule est donc normale. Les fichiers antérieurs à cette date ne contiennent que des nombres entiers. Un parseur qui convertit la valeur en entier tronquera silencieusement les fichiers plus récents.

Comment calculer le short volume ratio avec awk ?

Le short volume ratio correspond au volume vendu à découvert divisé par le volume total, exprimé en pourcentage. Une seule ligne awk suffit pour le calculer sur un 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'|' définit la barre verticale comme séparateur de champs, $2 == "AAPL" conserve uniquement la ligne AAPL (l’en-tête et la ligne de fin ne correspondent jamais), et la commande printf divise le champ 3 par le champ 5. Remplacez AAPL par le ticker de votre choix. Le tableau ci-dessous reprend la même date pour six grandes valeurs connues à partir de la série FINRA stockée, avec un arrondi au million d’actions, afin que vous puissiez comparer le résultat de la commande que vous venez d’exécuter :

RequêteRatio de volume short le 12 juin 2026 pour six valeurs grand public
tickerVolume short (millions)Volume total (millions)Pourcentage short
AAPL6.6613.1650.6
AMZN5.8821.7627
KO2.063.6556.3
MSFT3.7314.2426.2
NVDA15.1945.3433.5
SPY7.4815.4848.3
Le SQL exact derrière chaque chiffre
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
Essayez cette requête

Pour AAPL, le 12 juin 2026, le fichier recense 6.66 millions d’actions vendues à découvert, contre 13.16 millions d’actions au total, soit un short volume ratio de 50.6%. Les cinq autres valeurs se situent dans la même zone, ce qui correspond au fonctionnement habituel de ce fichier. Une section ultérieure explique pourquoi un ratio proche de la moitié n’est pas le signal d’alerte qu’il peut sembler être.

Une seule séance ne fournit qu’un instantané, et le ratio varie d’une séance à l’autre. Téléchargez un fichier par date pour constituer votre série sur un mois.

Quelle est la différence entre le fichier CNMS et les fichiers par plateforme ?

CNMS est un total. La FINRA publie également un fichier pour chaque plateforme déclarante, selon le même calendrier et avec la même structure et la même date, mais avec un préfixe différent : FNSQshvol pour le Nasdaq TRF de Carteret (Market Q), FNQCshvol pour le Nasdaq TRF de Chicago (B), FNYXshvol pour le NYSE TRF (N) et FNRAshvol pour l’ADF (D). Un cinquième fichier, FORFshvol, couvre l’OTC Reporting Facility, qui traite les actions OTC non cotées et ne fait pas partie de CNMS. Téléchargez le fichier de Carteret correspondant à la date indiquée et recherchez le même ticker :

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

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

Exécutez les mêmes deux lignes avec FNQCshvol20260612.txt et FNYXshvol20260612.txt. Les trois champs ShortVolume correspondent alors au chiffre CNMS, au dernier chiffre après la virgule près. Le fichier ADF de cette date ne contient qu’un en-tête et une ligne de fin à 0, ce qui est fréquent. Voici la ventilation pour AAPL :

RequêteRépartition des déclarations de volume short hors marché d’AAPL le 12 juin 2026
Place de négociationVolume short (millions)Part du volume consolidé (%)
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
Le SQL exact derrière chaque chiffre
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
Essayez cette requête

Nasdaq TRF Carteret (Q) représentait 96.3% du short volume hors marché d’AAPL ce jour-là. Le Nasdaq TRF de Carteret traite la majeure partie du reporting des transactions hors marché, et cette ventilation le confirme. Les fichiers par plateforme sont utiles pour identifier la plateforme par laquelle un print est passé. Pour tout le reste, utilisez le fichier consolidé.

Pourquoi le short volume de la FINRA n’est-il pas le short interest ?

Le short volume est un flux : il correspond aux actions vendues à découvert au cours d’une séance, uniquement dans le cadre de transactions exécutées hors marché. Le short interest est un encours : il désigne le nombre d’actions toujours détenues à découvert à une date de règlement. La FINRA le collecte deux fois par mois et le publie environ deux semaines plus tard. Les deux séries ne concordent pas. Un ratio élevé de short volume ne signifie donc pas qu’une position vendeuse importante est ouverte. Lorsqu’un market maker exécute l’ordre d’achat d’un client avec des titres qu’il ne détient pas en inventaire, il vend à découvert et la transaction est enregistrée comme une vente à découvert. S’il couvre cette position une heure plus tard, le fichier conserve la vente à découvert sans aucune trace de l’achat. Les jours ordinaires, le ratio des valeurs liquides se situe autour de la moitié, comme le montre le panel de six titres ci-dessus. Ce mécanisme de market making constitue l’explication habituelle. Short interest et short volume détaille cette notion, tandis que ce qu’est le short interest traite de l’aspect lié aux positions. Cet article se concentre sur l’obtention du fichier. Pour la série des positions elle-même, commencez par les données de short interest de la FINRA, puis consultez la date de publication du short interest et pourquoi le short interest accuse un retard de deux semaines pour comprendre le décalage de publication.

Particularités connues du fichier de volume short de la FINRA

Quelques caractéristiques surprennent les utilisateurs qui découvrent ce fichier. Les places boursières font passer des ticker de test dans leurs systèmes de production, notamment la famille ZVZZT du Nasdaq. Les lignes correspondantes peuvent apparaître dans les fichiers avec des volumes qui semblent réels. Écartez tout ticker que vous ne pouvez pas rattacher à une valeur cotée avant de tracer un graphique.

Dans de rares cas, la FINRA republie le fichier d’une séance avec des chiffres corrigés. La mention « Updated » apparaît alors sur sa page de catalogue. Un chiffre récupéré le soir de la date de négociation peut donc différer du même fichier téléchargé une semaine plus tard. Téléchargez de nouveau le fichier avant de le citer.

La ligne de fin contient uniquement un nombre, sans séparateurs verticaux. Un parseur rudimentaire qui suppose la présence de six champs sur chaque ligne échouera à sa lecture.

Les volumes sont fractionnaires à partir du 23 février 2026 et entiers avant cette date. Seules les transactions réalisées pendant les heures normales sont prises en compte. Il s’agit uniquement des transactions déclarées hors marché auprès d’une infrastructure de la FINRA. La colonne du volume total ne correspond donc jamais au consolidated tape.

Ces caractéristiques relèvent du format du fichier, et non de défauts. Un parseur qui les intègre renvoie des chiffres propres.

FAQ

Où puis-je télécharger gratuitement les données quotidiennes de FINRA sur le short volume ?

Sur le serveur public de contenu de FINRA, à l’adresse cdn.finra.org/equity/regsho/daily/. Un fichier est disponible pour chaque séance, sous le nom CNMSshvolYYYYMMDD.txt pour le fichier NMS consolidé. Aucun compte n’est nécessaire : une simple commande curl suffit. Le site de FINRA propose également une vue interactive avec export CSV, pour sept jours au maximum par requête.

Pourquoi n’existe-t-il pas de fichier FINRA sur le short volume pour un week-end ou un jour férié ?

Les fichiers sont produits uniquement pour les dates de séance. Une requête portant sur un week-end ou un jour férié boursier renvoie une erreur HTTP 403, et non un fichier vide. Un script qui parcourt le calendrier doit donc ignorer les jours sans séance ou gérer cette erreur.

Le short volume quotidien de FINRA correspond-il au short interest ?

Non. Le short volume comptabilise les actions vendues à découvert au cours d’une journée dans le cadre de transactions hors marché, y compris les ventes à découvert des market makers couvertes en quelques minutes. Le short interest mesure les positions toujours détenues à découvert à une date de règlement. Ces données sont collectées deux fois par mois. Un short volume ratio proche de 50 % est courant pour une action liquide et ne renseigne pas sur le montant d’une éventuelle position à découvert ouverte.

Pourquoi le fichier FINRA sur le short volume contient-il des décimales ?

Depuis le 23 février 2026, FINRA publie les quantités fractionnaires d’actions des titres NMS avec six décimales dans les trois champs de volume. Les fichiers antérieurs à cette date ne contiennent que des actions entières. Un parser qui convertit les valeurs en nombres entiers tronquera donc les nouveaux fichiers.

Que signifie la colonne Market dans le fichier FINRA sur le short volume ?

Elle identifie la plateforme de FINRA qui a reçu le compte rendu de transaction : N pour le TRF du NYSE, Q pour le TRF du Nasdaq à Carteret, B pour le TRF du Nasdaq à Chicago et D pour l’ADF. Le fichier CNMS consolidé répertorie, séparées par des virgules, toutes les plateformes ayant déclaré le ticker.


Chaque panneau ci-dessus est accompagné de sa requête SQL ; développez-en un pour voir comment le chiffre a été calculé. Pour obtenir l’historique du short volume d’un ticker sans télécharger le moindre fichier, formulez votre demande en anglais courant sur le terminal Strasmore.

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