quantlab.dataset.sharadar.listing#
Point-in-time listing of each Sharadar security: SIC series and exchange, keyed by permaticker.
TICKERS gives each security’s current SIC code and exchange; ACTIONS
records their changes (sicchangefrom/sicchangeto with the code in
value, exchangefrom/exchangeto with the exchange name in
contraname). SharadarListingDataset walks each history back from the
current value (quantlab.dataset.sharadar.history; the SIC history is the
one the Fama-French 48 industry panel reads, so the two never disagree) and
stores five float variables on SEP’s trading days:
sic_codeThe SIC code itself.
sic_sectorThe SIC division of the code, 1..11 (
names: Sharadar’ssicsectorspellings). A code in no division’s range is NaN.sic_industryThe SIC industry, coded by its SIC code: Sharadar’s
sicindustryis one title per code (on the 2026-10-16 pull, 440 codes and 440 titles), so the value is the code itself andnamesmaps each code to its title.namesholds the codes some TICKERS row carries today; a past code no row carries any longer keeps its value without a title, so a day’s value never depends on the day it was built.fama_industryThe Fama-French 48 industry of the code, 1..48, unmerged (
quantlab.dataset._support.ff48);namesare French’s short names. Sharadar’s ownfamaindustryis not used: it is a current snapshot not kept in line withsiccode(it differs from the code’s most common label on 450 of 20,861 SEP rows of the 2026-10-05 pull).fama_industryis the industry panel’s code before its merge.exchangeThe listing exchange, a fixed code per vendor name (
names). An exchange name outsideEXCHANGESrefuses the build naming it, so a new venue is never silently dropped.
A value is shown from the security’s TICKERS firstpricedate to its
lastpricedate and is NaN outside them, or where it is unknown. A change
shows from its own date, or the next trading day when that is a weekend or
holiday. TICKERS attributes with no history in ACTIONS (sector,
industry, category, location, currency, the market-cap and
revenue scales, famaindustry) are not in the panel: they would carry
today’s value back over the whole history. The store grows with
update(): new days are appended and a stored day is never rewritten.
Examples#
Build the store and read a year:
config = SharadarListingConfig(
zarr_file_path="/data/quantlab/market/sharadar/sharadar_listing_1d/sharadar_listing_1d.zarr",
raw_data_dir_path="/data/quantlab/downloads/sharadar",
)
SharadarListingDataset(config).update()
panel = SharadarListingDataset(config).panel("2024-01-02", "2024-12-31")
panel["exchange"].attrs["names"]["2"] # 'NASDAQ'
Classes
Daily panel of each security's point-in-time SIC series and exchange. |