quantlab.acquisition.massive#

Massive vendor package and the registry entry for a Massive subscription.

The client lives in quantlab.acquisition.massive.client; this package module holds only the descriptor, as quantlab.acquisition.sharadar does, so importing the client also registers the source.

MASSIVE_SOURCE registers Massive (Stocks Developer) with quantlab.acquisition.registry so an operator surface lists it: one Capability per data type of the raw tier (quantlab.dataset.massive.raw.DATA_TYPES), the credential variables, and the dataset classes that build Trade bars from the trade files (ADR 0030) and the Day aggregate store massive_day_bars_1d from the day aggregates (#352), and the dividend panel massive_dividends_1d from the REST dividends and splits (#351), the news panel massive_news_1d from the REST news articles (#357), the short interest panel massive_short_interest_1d from the REST short interest (#355), the short volume panel massive_short_volume_1d from the REST short volume (#356), the 8-K disclosure panel massive_disclosures_1d from the REST 8-K disclosures (#358), and the IPO panel massive_ipos_1d from the REST IPOs (#359). The minute aggregates are raw only: they are kept to check Trade bars against.

Massive’s raw tier is one vendor file per data type and trading day, pulled by MassiveClient, not the symbol-batched hive tree a SymbolBatchAcquisition writes. The descriptor therefore names no symbol-batch class and no config factory: registry.download_symbols() refuses it. Its raw-tier refresh is quantlab.acquisition.massive.refresh.refresh_raw_tier (every REST endpoint from its watermark), which registry.refresh_raw_tier calls; the daily files are downloaded beside their conversion (scripts/massive/convert.py --download).

Examples#

>>> import quantlab.acquisition.registry
>>> from quantlab.acquisition.base import DataSourceRegistry
>>> source = DataSourceRegistry.get("massive")
>>> [c.data_type for c in source.capabilities]
['trades', 'minute_aggs', 'day_aggs', 'dividends', 'news', 'short_interest', 'short_volume', 'disclosures', 'ipos']
>>> source.required_env
('MASSIVE_API_KEY', 'MASSIVE_S3_ACCESS_KEY_ID')

Modules

client

Massive client: one trading day's file from S3, and REST endpoints into the raw tier.

raw_tier

The writers of Massive's raw tier: REST pages and watermarks.

refresh

Keep Massive's REST raw tier current: every endpoint, each from its watermark.

rest

The Massive REST endpoints MassiveClient.pull keeps in the raw tier.