187 lines
5.8 KiB
Python
187 lines
5.8 KiB
Python
"""Data loading utilities for ML4T third edition.
|
||
|
||
This package provides canonical data loaders for all datasets used in the book.
|
||
|
||
Usage:
|
||
from data import load_etfs
|
||
etf_data = load_etfs()
|
||
|
||
Available loaders:
|
||
|
||
Reference data:
|
||
- load_sp500_index: S&P 500 index OHLCV (1980-present)
|
||
|
||
Downloaded data (requires ML4T_DATA_PATH):
|
||
- load_etfs: 100-ETF cross-asset case study
|
||
- load_crypto_premium: Crypto funding rate premium index
|
||
- load_crypto_perps: Crypto perpetual futures hourly OHLCV
|
||
- load_macro: FRED macroeconomic indicators
|
||
- load_us_equities: US equities (NASDAQ Data Link, 1962-2018)
|
||
- load_ff_factors: Fama-French factors
|
||
- load_aqr_factors: AQR research factors
|
||
- load_cme_futures: CME futures (frequency="daily" default, or "hourly")
|
||
- load_cot: CFTC Commitment of Traders weekly positioning per product
|
||
- load_fx_pairs: FX pairs (OANDA + Yahoo)
|
||
- load_firm_characteristics: Firm characteristics for ML asset pricing (Chen-Pelger-Zhu)
|
||
- load_nasdaq100_bars: AlgoSeek NASDAQ-100 bars (minute default, any frequency; optional quotes or full microstructure)
|
||
- load_sp500_daily_bars: AlgoSeek daily OHLCV (S&P 500)
|
||
- load_sp500_options_eda: AlgoSeek options chains for Chapter 2 / 8 demos
|
||
(8 symbols × 2019-2020, full schema)
|
||
- load_sp500_options_straddles_raw: ATM-band raw chains for the
|
||
sp500_options case study (2017-2021, lifecycle-preserving)
|
||
- load_sp500_options_surface: Daily IV surface summary (derived)
|
||
- load_sp500_options_straddles: Daily 30D ATM straddles (derived)
|
||
- load_nasdaq100_taq: AlgoSeek TAQ tick data (March 2020)
|
||
- load_mbo_data: DataBento MBO tick data (NVDA, 10 trading days in Nov 2024)
|
||
- load_nasdaq_itch: NASDAQ ITCH parsed messages
|
||
- load_fnspid: FNSPID financial news dataset (HuggingFace)
|
||
- load_financial_phrasebank: Financial Phrasebank sentiment dataset
|
||
- load_sec_filings: SEC 10-K / 10-Q / 8-K filings (canonical schema)
|
||
- iter_sec_filings: per-record generator over SEC filings (replaces resolve_sec_filings_dir)
|
||
- load_sp500_10q_mda: convenience wrapper for load_sec_filings("10-Q", "sp500")
|
||
- load_sec_xbrl_fundamentals: SEC XBRL fundamentals panel (Frames + Submissions APIs)
|
||
- load_institutional_holdings_13f: Institutional holdings (13F, per-cik)
|
||
- load_13f_bulk_holdings: Institutional holdings (13F, quarterly bulk universe)
|
||
- load_defillama_chain_tvl: DeFi Total Value Locked (DefiLlama)
|
||
- load_coingecko_ohlcv: Daily prices/volume for a coin (CoinGecko)
|
||
- load_13f_stock_features: Stock-level features from 13F data
|
||
- load_13f_edges: Institution-stock edge list (for graph construction)
|
||
- load_kalshi: Kalshi prediction market OHLCV (CFTC-regulated, free)
|
||
- load_polymarket: Polymarket prediction market OHLCV (crypto, free)
|
||
|
||
|
||
Exceptions:
|
||
DataNotFoundError: Raised when required data is missing
|
||
DownloadError: Raised when a download fails
|
||
MissingDependencyError: Raised when a required package is not installed
|
||
"""
|
||
|
||
# Alternative (cross-asset third-party — news, text corpora)
|
||
from data.alternative.loader import (
|
||
load_bloomberg_news,
|
||
load_financial_phrasebank,
|
||
load_fnspid,
|
||
)
|
||
|
||
# Crypto (market + on-chain)
|
||
from data.crypto.loader import (
|
||
list_crypto_perps,
|
||
load_coingecko_ohlcv,
|
||
load_crypto_perps,
|
||
load_crypto_premium,
|
||
load_defillama_chain_tvl,
|
||
)
|
||
|
||
# Equities (market + fundamentals + positioning + firm_characteristics)
|
||
from data.equities.loader import (
|
||
iter_sec_filings,
|
||
load_13f_bulk_holdings,
|
||
load_13f_edges,
|
||
load_13f_stock_features,
|
||
load_firm_characteristics,
|
||
load_iex_hist,
|
||
load_institutional_holdings_13f,
|
||
load_mbo_data,
|
||
load_nasdaq100_bars,
|
||
load_nasdaq100_taq,
|
||
load_nasdaq_itch,
|
||
load_sec_filings,
|
||
load_sec_xbrl_fundamentals,
|
||
load_sp500_10q_mda,
|
||
load_sp500_daily_bars,
|
||
load_sp500_index,
|
||
load_sp500_options,
|
||
load_sp500_options_eda,
|
||
load_sp500_options_straddles,
|
||
load_sp500_options_straddles_raw,
|
||
load_sp500_options_surface,
|
||
load_us_equities,
|
||
)
|
||
|
||
# ETFs
|
||
from data.etfs.loader import list_etfs, load_etfs
|
||
|
||
# Exceptions
|
||
from data.exceptions import (
|
||
DataNotFoundError,
|
||
DownloadError,
|
||
MissingDependencyError,
|
||
)
|
||
|
||
# Factors
|
||
from data.factors.loader import load_aqr_factors, load_ff_factors
|
||
|
||
# Futures
|
||
from data.futures.loader import list_cme_products, list_cot_products, load_cme_futures, load_cot
|
||
|
||
# FX
|
||
from data.fx.loader import list_fx_pairs, load_fx_pairs
|
||
|
||
# Macro
|
||
from data.macro.loader import load_macro, load_macro_metadata
|
||
|
||
# Prediction Markets
|
||
from data.prediction_markets.loader import load_kalshi, load_polymarket
|
||
|
||
__all__ = [
|
||
# Reference data
|
||
"load_sp500_index",
|
||
# ETFs
|
||
"list_etfs",
|
||
"load_etfs",
|
||
# Crypto
|
||
"list_crypto_perps",
|
||
"load_crypto_premium",
|
||
"load_crypto_perps",
|
||
# Macro
|
||
"load_macro",
|
||
"load_macro_metadata",
|
||
# Equities
|
||
"load_us_equities",
|
||
"load_sp500_daily_bars",
|
||
"load_sp500_options",
|
||
"load_sp500_options_eda",
|
||
"load_sp500_options_straddles_raw",
|
||
"load_sp500_options_surface",
|
||
"load_sp500_options_straddles",
|
||
"load_firm_characteristics",
|
||
# Microstructure
|
||
"load_nasdaq100_bars",
|
||
"load_nasdaq100_taq",
|
||
"load_mbo_data",
|
||
"load_nasdaq_itch",
|
||
"load_iex_hist",
|
||
# Factors
|
||
"load_ff_factors",
|
||
"load_aqr_factors",
|
||
# Futures
|
||
"list_cme_products",
|
||
"load_cme_futures",
|
||
"list_cot_products",
|
||
"load_cot",
|
||
# FX
|
||
"list_fx_pairs",
|
||
"load_fx_pairs",
|
||
# Alternative / NLP
|
||
"load_institutional_holdings_13f",
|
||
"load_13f_bulk_holdings",
|
||
"load_13f_stock_features",
|
||
"load_13f_edges",
|
||
"load_fnspid",
|
||
"load_bloomberg_news",
|
||
"load_sec_filings",
|
||
"iter_sec_filings",
|
||
"load_sec_xbrl_fundamentals",
|
||
"load_sp500_10q_mda",
|
||
"load_financial_phrasebank",
|
||
"load_defillama_chain_tvl",
|
||
"load_coingecko_ohlcv",
|
||
# Prediction Markets
|
||
"load_kalshi",
|
||
"load_polymarket",
|
||
# Exceptions
|
||
"DataNotFoundError",
|
||
"DownloadError",
|
||
"MissingDependencyError",
|
||
]
|