quantlab.dataset.massive.short_interest#
Massive’s short interest as a daily release panel on the permaticker axis (#355).
Massive’s /stocks/v1/short-interest records (FINRA’s short interest,
settled twice a month), as MassiveClient.pull keeps them in the REST raw
tier (quantlab.dataset.massive.raw.read_rest_records), become three
variables on SEP’s trading calendar, one column per permaticker:
short_interest: the shares sold short and not yet covered at the settlement date;short_avg_daily_volume: the vendor’s average daily volume over the settlement period (avg_daily_volume);days_to_cover: the vendor’sshort_interest / avg_daily_volume.
Each settlement date is a release. FINRA publishes it about seven business
days after settlement, so a release becomes visible on the 8th trading day
after its settlement date (release_lag_bars) and is shown until the next
release becomes visible. A security the next release does not carry shows
nothing from then on: a cell shows only the release visible that day, never
an older one.
Each record is placed on the permaticker the Ticker map gives its ticker on
the settlement date (the day the figure is about), through
quantlab.dataset.massive.placement.TickerPlacement; a record it cannot
place is left out and counted in <store>.unplaced.json. A record pulled
again with other values (a revision) replaces the earlier one. Only the
universe’s permatickers (by default SEP’s domestic common stock) are columns.
The store is built through the last day SEP, the REST pull and the Ticker
map all reach, so update() appends a day only once each of them holds it.
Examples#
Build the store and read one security’s short interest:
config = MassiveShortInterestConfig(
zarr_file_path="/data/quantlab/market/massive/massive_short_interest_1d/massive_short_interest_1d.zarr",
raw_data_dir_path="/data/quantlab/downloads/sharadar",
massive_dir="/data/quantlab/downloads/massive",
ticker_map_path="/data/quantlab/market/massive/massive_ticker_map/massive_ticker_map",
start_date="2016-10-10",
)
panel = MassiveShortInterestDataset(config).update().panel("2024-01-02", "2024-12-31")
panel["days_to_cover"].sel(symbol=199059)
Classes
Daily release panel of Massive's short interest, by permaticker. |