FINRA-Tagesdaten zum Short-Volumen herunterladen
FINRA-Tagesdaten zum Short-Volumen mit curl abrufen, Spalten der Reg-SHO-Datei lesen und die Short-Volume-Ratio eines Tickers mit awk berechnen.
Um tägliche Short-Volume-Daten von FINRA herunterzuladen, rufen Sie für jeden Handelstag eine einfache Textdatei vom öffentlichen Content-Server von FINRA ab. Eine Anmeldung und ein API-Schlüssel sind nicht erforderlich. Die Datei ist die tägliche Short-Sale-Volume-Datei nach Regulation SHO. Sie enthält eine durch Pipe-Zeichen getrennte Zeile je Ticker. Jede Zeile weist das Short Volume und das Gesamtvolumen des Tages aus, einschließlich des davon ausgenommenen Short-Volumens. Erfasst werden außerbörslich ausgeführte Trades, die an eine FINRA-Fazilität gemeldet wurden.
Diese Anleitung verwendet das historische Datum 12. Juni 2026 und führt die einzelnen Schritte in einem frischen Ubuntu-Container durch: Sie installieren curl, laden die Datei herunter, lesen die Spalten ein und berechnen mit awk die Short-Volume-Ratio für einen Ticker. Jeder Befehl kann unverändert ausgeführt werden, heute ebenso wie in einem Jahr.
Wo veröffentlicht FINRA die tägliche Datei zum Short-Volumen?
Die konsolidierte Datei für jeden Handelstag ist unter einer vorhersehbaren Adresse abrufbar:
https://cdn.finra.org/equity/regsho/daily/CNMSshvolYYYYMMDD.txt
Ersetzen Sie YYYYMMDD durch das Handelsdatum. CNMS ist die konsolidierte NMS-Datei (National Market System, also das Universum der börsennotierten Werte): Sie enthält jede gelistete Aktie, zusammengefasst über alle Trade Reporting Facilities (TRFs) von FINRA. FINRA stellt die Datei für jeden Tag spätestens um 18:00 Uhr ET am jeweiligen Handelstag bereit. Schneller sind öffentlich verfügbare Daten zu Leerverkäufen kaum erhältlich. Der Nachteil ist der begrenzte Umfang. Die Datei erfasst nur Trades, die an eine FINRA-Einrichtung gemeldet wurden. In der Praxis sind das außerbörsliche Ausführungen, etwa wenn Wholesale-Broker Retail-Orders ausführen, sowie Dark Pools. Trades, die direkt an den Börsen zusammengeführt wurden, sind nicht enthalten. Daher ist die Spalte mit dem Gesamtvolumen immer kleiner als das Tagesvolumen in einem Preischart.
Dateien gibt es nur für Handelstage. Wird ein Wochenenddatum oder ein Börsenfeiertag abgefragt, antwortet der Server mit „403 Forbidden“ statt mit einer leeren Datei. Ein Skript, das einen Kalender durchläuft, muss diese Daten daher überspringen oder den Fehler tolerieren.
Schritt 1: Ein frischer Ubuntu-Container mit curl
Starten Sie mit einem sauberen Container und installieren Sie curl. Das Ubuntu-Basis-Image enthält awk bereits als mawk, sodass keine weiteren Pakete erforderlich sind:
docker run --rm -it ubuntu:24.04 bash
apt-get update && apt-get install -y curl
Schritt 2: Die täglichen FINRA-Dateien zum Short-Volumen für ein festgelegtes Datum herunterladen
Legen Sie das Datum fest. Ein auf „heute“ basierender Befehl scheitert an Wochenenden und Feiertagen sowie jeden Morgen, bevor FINRA die Datei veröffentlicht. Der 12. Juni 2026 war ein Freitag mit einer regulären Handelssitzung. Die Datei bleibt auf dem Server verfügbar:
curl -fsSLO https://cdn.finra.org/equity/regsho/daily/CNMSshvol20260612.txt
Die Optionen: -f sorgt dafür, dass curl bei einem HTTP-Fehler fehlschlägt, statt die Fehlerseite als Daten zu speichern. -s blendet die Fortschrittsanzeige aus. -S gibt weiterhin echte Fehlermeldungen aus. -L folgt einer Weiterleitung. -O speichert die Datei unter ihrem Namen auf dem Server. Prüfen Sie Anfang und Ende der heruntergeladenen Datei:
head -3 CNMSshvol20260612.txt
tail -1 CNMSshvol20260612.txt
Die erste Zeile ist die Kopfzeile, Date|Symbol|ShortVolume|ShortExemptVolume|TotalVolume|Market. Die letzte Zeile ist ein Trailer: eine einzelne Ganzzahl, die Anzahl der Datensätze in der Datei. Jeder Parser muss beide Zeilen entfernen. Beweisen Sie nun die Wochenendregel, indem Sie den nächsten Kalendertag, Samstag, den 13. Juni, abfragen:
curl -fsSLO https://cdn.finra.org/equity/regsho/daily/CNMSshvol20260613.txt
Curl gibt eine Fehlermeldung aus und beendet sich mit dem Exit-Code 22: Der Server hat 403 zurückgegeben, und -f hat die Anfrage abgewiesen. Dasselbe geschieht am 19. Juni 2026, dem Feiertag Juneteenth. Eine gespeicherte Kopie derselben Datenreihe zeigt die Kalenderstruktur unmittelbar: eine Zeile je Handelssitzung und keine Zeilen dazwischen:
| Handelsdatum | Wochentag | Sitzungsbezeichnung | gemeldete Ticker | Tickerbezeichnung |
|---|---|---|---|---|
| 2026-06-01 | Monday | June 1 | 15118 | 15.12 thousand |
| 2026-06-02 | Tuesday | June 2 | 14907 | 14.91 thousand |
| 2026-06-03 | Wednesday | June 3 | 14839 | 14.84 thousand |
| 2026-06-04 | Thursday | June 4 | 5136 | 5.14 thousand |
| 2026-06-05 | Friday | June 5 | 14740 | 14.74 thousand |
| 2026-06-08 | Monday | June 8 | 14815 | 14.81 thousand |
| 2026-06-09 | Tuesday | June 9 | 14751 | 14.75 thousand |
| 2026-06-10 | Wednesday | June 10 | 5694 | 5.69 thousand |
| 2026-06-11 | Thursday | June 11 | 14687 | 14.69 thousand |
| 2026-06-12 | Friday | June 12 | 14734 | 14.73 thousand |
| 2026-06-15 | Monday | June 15 | 14948 | 14.95 thousand |
| 2026-06-16 | Tuesday | June 16 | 5631 | 5.63 thousand |
| 2026-06-17 | Wednesday | June 17 | 14611 | 14.61 thousand |
| 2026-06-18 | Thursday | June 18 | 14700 | 14.70 thousand |
| 2026-06-22 | Monday | June 22 | 14922 | 14.92 thousand |
| 2026-06-23 | Tuesday | June 23 | 5767 | 5.77 thousand |
| 2026-06-24 | Wednesday | June 24 | 14743 | 14.74 thousand |
| 2026-06-25 | Thursday | June 25 | 14716 | 14.72 thousand |
| 2026-06-26 | Friday | June 26 | 15052 | 15.05 thousand |
| 2026-06-29 | Monday | June 29 | 5489 | 5.49 thousand |
Das exakte SQL hinter jeder Zahl
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 dateIm Juni 2026 gab es 21 datierte Dateien. Die erste, June 1, eine Monday, enthielt 15.12 thousand Ticker. Jede Zeile im Panel entspricht einem Wochentag. Für den 19. Juni gibt es keine Zeile.
Was bedeuten die Spalten in der FINRA-Datei zum Short-Volumen?
Jede Datenzeile enthält sechs durch senkrechte Striche getrennte Felder.
Dateist das Handelsdatum im Format JJJJMMTT.Symbolist der Ticker mit bis zu 14 Zeichen.ShortVolumeist die Zahl der an diesem Tag leer verkauften Aktien aus den an FINRA gemeldeten Trades, einschließlich Short-Exempt-Trades.ShortExemptVolumeist die Teilmenge, die als Short Exempt gekennzeichnet ist. Dabei handelt es sich um Verkäufe, die von der Preistestregel nach Regel 201 der Reg SHO ausgenommen sind. Diese Schutzschaltung begrenzt Leerverkäufe, nachdem eine Aktie gegenüber dem vorherigen Schlusskurs um 10 % gefallen ist.TotalVolumeumfasst alle an diesem Tag für das Symbol gemeldeten Aktien, also Short- und Long-Positionen zusammen.Marketist die meldende Einrichtung:Nfür die NYSE TRF,Qfür die Nasdaq TRF in Carteret,Bfür die Nasdaq TRF in Chicago undDfür die Alternative Display Facility (ADF).
In der konsolidierten Datei führt das Feld „Market“ alle Einrichtungen auf, die das Symbol gemeldet haben, jeweils durch Kommas getrennt. Eine Zeile endet daher beispielsweise mit B,Q,N. Wegen dieser Kommas verwendet die Datei senkrechte Striche als Trennzeichen. Eine aktuelle Änderung sollten Sie berücksichtigen: Seit dem 23. Februar 2026 enthalten die drei Volumenfelder Bruchteile von Aktien mit sechs Dezimalstellen. Ein Wert mit sechs Ziffern nach dem Dezimaltrennzeichen ist daher normal. Dateien mit einem Datum vor diesem Zeitpunkt enthalten dagegen ausschließlich ganze Zahlen. Ein Parser, der die Werte in Ganzzahlen umwandelt, würde die neueren Werte unbemerkt abschneiden.
Wie berechne ich die Short-Volume-Ratio mit awk?
Die Short-Volume-Ratio ist das Verhältnis des Short-Volumens zum Gesamtvolumen, angegeben als Prozentsatz. Eine awk-Zeile berechnet sie für ein einzelnes Symbol:
awk -F'|' '$2 == "AAPL" { printf "%s %s short=%s total=%s ratio=%.1f\n", $1, $2, $3, $5, 100 * $3 / $5 }' CNMSshvol20260612.txt
-F'|' setzt den senkrechten Strich als Feldtrenner, $2 == "AAPL" behält nur die AAPL-Zeile bei (Header und Schlusszeile treffen nie zu), und printf teilt Feld 3 durch Feld 5. Ersetzen Sie AAPL durch ein beliebiges Symbol. Die folgende Übersicht liest aus der gespeicherten FINRA-Zeitreihe dasselbe Datum für sechs bekannte Aktien aus. Die Werte sind auf Millionen Aktien gerundet. So können Sie die gerade ausgeführte Zeile überprüfen:
| ticker | Short-Volumen (Mio.) | Gesamtvolumen (Mio.) | Short-Anteil (%) |
|---|---|---|---|
| AAPL | 6.66 | 13.16 | 50.6 |
| AMZN | 5.88 | 21.76 | 27 |
| KO | 2.06 | 3.65 | 56.3 |
| MSFT | 3.73 | 14.24 | 26.2 |
| NVDA | 15.19 | 45.34 | 33.5 |
| SPY | 7.48 | 15.48 | 48.3 |
Das exakte SQL hinter jeder Zahl
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 tickerFür AAPL weist die Datei am 12. Juni 2026 6.66 Millionen leer verkaufte Aktien gegenüber 13.16 Millionen gemeldeten Aktien insgesamt aus. Daraus ergibt sich eine Short-Volume-Ratio von 50.6%. Die fünf anderen Titel liegen in derselben Größenordnung. Das ist der normale Zustand dieser Datei. Ein späterer Abschnitt erläutert, warum ein Verhältnis nahe der Hälfte nicht so alarmierend ist, wie es zunächst wirkt.
Ein einzelner Handelstag ist nur eine Momentaufnahme. Die Ratio verändert sich von Sitzung zu Sitzung. Laden Sie für jedes Datum eine Datei herunter. Dann können Sie daraus die Zeitreihe für den gesamten Monat erstellen.
Was ist der Unterschied zwischen der CNMS-Datei und den Dateien der einzelnen Meldestellen?
CNMS ist eine Summe. FINRA veröffentlicht nach demselben Zeitplan außerdem eine Datei für jede Meldestelle. Diese Dateien haben dasselbe Layout und denselben Datumsstempel, aber ein anderes Präfix: FNSQshvol für das Nasdaq TRF Carteret (Market Q), FNQCshvol für das Nasdaq TRF Chicago (B), FNYXshvol für das NYSE TRF (N) und FNRAshvol für das ADF (D). Eine fünfte Datei, FORFshvol, betrifft die OTC Reporting Facility. Sie verarbeitet nicht börsennotierte OTC-Aktien und ist nicht Teil von CNMS. Rufen Sie die Carteret-Datei für das festgelegte Datum ab und suchen Sie dasselbe Symbol:
curl -fsSLO https://cdn.finra.org/equity/regsho/daily/FNSQshvol20260612.txt
awk -F'|' '$2 == "AAPL"' FNSQshvol20260612.txt
Führen Sie dieselben beiden Zeilen für FNQCshvol20260612.txt und FNYXshvol20260612.txt aus. Die drei ShortVolume-Felder ergeben bis auf die letzte Dezimalstelle den CNMS-Wert. Die ADF-Datei für dieses Datum enthält nur einen Header und einen Trailer mit dem Wert 0. Das ist üblich. Hier ist die Aufteilung für AAPL:
| Handelsplatz | Short-Volumen (Mio.) | Anteil am konsolidierten Volumen (%) |
|---|---|---|
| Consolidated (CNMS) | 6.659 | 100 |
| Nasdaq TRF Carteret (Q) | 6.412 | 96.3 |
| NYSE TRF (N) | 0.194 | 2.9 |
| Nasdaq TRF Chicago (B) | 0.053 | 0.8 |
| ADF (D) | 0 | 0 |
Das exakte SQL hinter jeder Zahl
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) DESCNasdaq TRF Carteret (Q) entfielen an diesem Tag auf 96.3% des außerbörslichen Short-Volumens von AAPL. Das Nasdaq TRF in Carteret wickelt den Großteil der außerbörslichen Meldungen im gesamten Markt ab. Diese Aufteilung macht das sichtbar. Die Dateien der einzelnen Meldestellen sind relevant, wenn Sie wissen möchten, über welchen Handelsplatz ein Print ausgeführt wurde. Für alle anderen Zwecke ist die konsolidierte Datei maßgeblich.
Warum ist das FINRA-Short-Volume nicht gleich dem Short Interest?
Short Volume ist ein Flow: die Zahl der leerverkauften Aktien während einer Handelssitzung, und zwar ausschließlich in außerbörslichen Geschäften. Short Interest ist ein Bestand: die Zahl der Aktien, die an einem Abrechnungstag weiterhin leerverkauft sind. FINRA erhebt diese Zahl zweimal im Monat und veröffentlicht sie ungefähr zwei Wochen später. Beide Größen lassen sich nicht miteinander verrechnen. Ein hoher Short-Volume-Anteil bedeutet nicht, dass eine große Short-Position besteht.
Ein Market Maker, der eine Kauforder eines Kunden aus einem Bestand ausführt, den er nicht hält, verkauft leer und meldet einen Leerverkauf. Deckt er die Position eine Stunde später ein, weist die Datei den Leerverkauf aus, ohne den Kauf abzubilden. An gewöhnlichen Handelstagen liegt der Anteil bei liquiden Titeln nahe der Hälfte, wie das obige Panel mit sechs Titeln zeigt. Dieser Mechanismus im Market Making ist die übliche Erklärung. Short Interest und Short Volume erläutert das Konzept. Was Short Interest ist behandelt die Positionsseite. Dieser Beitrag konzentriert sich auf den Abruf der Datei. Für die Zeitreihe der Position beginnen Sie mit FINRA-Daten zum Short Interest. Danach folgen Wann Short Interest veröffentlicht wird und Warum Short Interest zwei Wochen alt ist zur Verzögerung bei der Veröffentlichung.
Typische Besonderheiten der FINRA-Datei zum Short-Volumen
Einige Merkmale fallen Nutzern bei der ersten Verwendung auf. Börsen lassen Test-Ticker durch ihre Produktionssysteme laufen. Am bekanntesten ist die ZVZZT-Familie von Nasdaq. Zeilen zu diesen Tickern können mit realistisch wirkenden Volumina in den Dateien erscheinen. Entfernen Sie daher vor der Erstellung von Charts jeden Ticker, den Sie keinem gelisteten Wertpapier zuordnen können.
In seltenen Fällen stellt FINRA die Datei eines Handelstags mit korrigierten Zahlen erneut bereit. Auf der Katalogseite ist sie dann mit „Updated“ gekennzeichnet. Eine Zahl, die am Abend des Handelstags abgerufen wurde, kann deshalb von derselben Datei abweichen, die eine Woche später abgerufen wird. Rufen Sie die Datei erneut ab, bevor Sie sie zitieren.
Die Trailer-Zeile enthält nur eine Anzahl und keine Pipe-Zeichen. Ein einfacher Parser, der in jeder Zeile sechs Felder erwartet, bricht daran ab. Seit dem 23. Februar 2026 können die Volumina Nachkommastellen enthalten; davor waren sie ganzzahlig. Es zählen nur Geschäfte während der regulären Handelszeiten und nur solche, die außerbörslich an eine FINRA-Fazilität gemeldet wurden. Deshalb stimmt die Spalte für das Gesamtvolumen nie mit dem konsolidierten Tape überein. Diese Merkmale sind Eigenschaften der Datei und keine Fehler. Ein Parser, der sie berücksichtigt, liefert saubere Zahlen.
FAQ
Wo kann ich die täglichen Short-Volume-Daten von FINRA kostenlos herunterladen?
Auf dem öffentlichen Content-Server von FINRA unter cdn.finra.org/equity/regsho/daily/. Für jeden Handelstag gibt es eine Datei mit dem Namen CNMSshvolYYYYMMDD.txt für die konsolidierte NMS-Datei. Ein Konto ist nicht erforderlich; der Abruf erfolgt mit einem einzigen curl-Befehl. Auf der FINRA-Website gibt es außerdem eine interaktive Ansicht mit CSV-Export für jeweils bis zu sieben Tage.
Warum gibt es für ein Wochenende oder einen Feiertag keine FINRA-Datei zum Short Volume?
Dateien werden nur für Handelstage erstellt. Eine Anfrage für ein Wochenenddatum oder einen Börsenfeiertag liefert HTTP 403 statt einer leeren Datei. Ein Skript, das den Kalender durchläuft, muss daher Nichthandelstage überspringen oder den Fehler tolerieren.
Entspricht das tägliche Short Volume von FINRA dem Short Interest?
Nein. Das Short Volume erfasst die an einem Tag leerverkauften Aktien aus außerbörslichen Geschäften. Dazu gehören auch Leerverkäufe von Market Makern, die innerhalb weniger Minuten gedeckt werden. Das Short Interest erfasst die an einem Abwicklungstag weiterhin leerverkauften Aktien und wird zweimal im Monat erhoben. Ein Short-Volume-Anteil von rund 50 % ist bei einer liquiden Aktie üblich und sagt nichts über den Umfang einer offenen Short-Position aus.
Warum enthält die FINRA-Datei zum Short Volume Dezimalstellen?
Seit dem 23. Februar 2026 weist FINRA bei NMS-Aktien in allen drei Volumenfeldern Bruchteile von Aktien mit sechs Dezimalstellen aus. Dateien vor diesem Datum enthalten ausschließlich ganze Aktien. Ein Parser, der die Werte in Ganzzahlen umwandelt, würde die neuen Dateien daher abschneiden.
Was bedeutet die Spalte „Market“ in der FINRA-Datei zum Short Volume?
Sie bezeichnet die FINRA-Einrichtung, die den Handelsbericht erhalten hat: N steht für den NYSE TRF, Q für den Nasdaq TRF in Carteret, B für den Nasdaq TRF in Chicago und D für den ADF. Die konsolidierte CNMS-Datei führt jede Einrichtung, die das Symbol gemeldet hat, durch Kommas getrennt auf.
Unter jedem der oben gezeigten Panels steht die zugehörige SQL-Abfrage. Öffnen Sie ein Panel, um zu sehen, wie eine Zahl berechnet wurde. Um die Short-Volume-Historie eines Symbols abzurufen, ohne eine Datei herunterzuladen, können Sie die Anfrage auf dem Strasmore-Terminal in einfachem Englisch formulieren.