Construire et évaluer des données financières synthétiques
Résumé
Ce chapitre passe en revue les méthodes de génération de données financières synthétiques et les critères permettant d’en évaluer l’utilité. Il part du nombre limité de trajectoires de marché observées et du risque que des recherches répétées de stratégies gonflent les performances apparentes du backtest. Il compare des références de simulation interprétables, notamment le bootstrap et les modèles stochastiques, à des générateurs appris tels que les GAN, les modèles de diffusion et les modèles de langage pour tableaux structurés. Les exemples couvrent les séries de rendements, le risque de queue, la structure temporelle, les observations irrégulières et les données financières de types mixtes.
L’évaluation s’organise autour de la fidélité, de l’utilité en aval et de la confidentialité, qui peuvent entrer en conflit. Les diagnostics incluent les faits stylisés, la dépendance, le comportement conditionnel, les comparaisons fondées sur des tâches — comme entraîner sur des données synthétiques et tester sur des données réelles — ainsi que les contrôles de confidentialité. Le principal avertissement du chapitre est que des échantillons d’apparence plausible peuvent échouer face aux événements rares ou aux changements de dépendance, et que les modèles appris peuvent divulguer des informations, amplifier les biais, surajuster leurs données d’entraînement ou produire peu de nouveauté dans les scénarios. Les trajectoires synthétiques peuvent élargir l’analyse de robustesse, mais elles ne remplacent pas les éléments probants des marchés réels et ne dispensent pas d’une validation rigoureuse.
Idées clés
- Des recherches adaptatives répétées de stratégies sur un historique limité peuvent exagérer les performances du backtest.
- Le bootstrap et les méthodes de simulation stochastique fournissent des références interprétables pour les générateurs appris.
- Le choix du générateur doit tenir compte de la structure des données et de la tâche en aval.
- Évaluez les données synthétiques selon leur fidélité, leur utilité et leur confidentialité, car ces objectifs peuvent s’opposer.
- Des échantillons plausibles peuvent malgré tout ne pas reproduire les événements extrêmes, les changements de dépendance ou les dynamiques conditionnelles.
Étiquettes
Texte intégral
# ETF Universe (Yahoo Finance) # ETF Universe (Yahoo Finance) 100 diversified ETFs spanning nine thematic categories — the red-thread universe for the Ch6 momentum strategy and the ETF case study that runs through Ch11-20. Daily OHLCV back to 2006. ## Dataset - **Source**: Yahoo Finance, pulled via the `yfinance` Python package. - **Coverage**: 2006-01-01 → present, daily OHLCV. - **Symbols**: 100 ETFs across 9 categories. - **Size on disk**: ~29 MB. - **Runtime**: ~2-3 minutes for a full refresh (yfinance uses public Yahoo Finance endpoints with light rate-limiting). - **API key**: not required. - **License / attribution**: Yahoo Finance data is free for personal and educational use (https://policies.yahoo.com/us/en/yahoo/terms/index.htm). Redistribution of the raw OHLCV is not permitted; derived analytics (returns, features, model outputs) are fine. When publishing results, cite Yahoo Finance as the source. ## Categories | Group | Count | Symbols | | ------------------------ | ----- | ------------------------------------------------------------------------------------------------ | | US Equity — Broad | 10 | SPY, QQQ, IWM, DIA, VTI, MDY, IJR, RSP, IVW, IVE | | US Equity — Style | 10 | VTV, VUG, MTUM, QUAL, VLUE, USMV, DVY, SDY, VIG, SCHD | | US Sectors | 13 | XLB, XLC, XLE, XLF, XLI, XLK, XLP, XLU, XLV, XLY, XLRE, VNQ, IYR | | International Developed | 18 | EFA, VEA, VGK, IEFA, ACWI, ACWX, EWJ, EWG, EWU, EWT, EWH, EWQ, EWL, EWN, EWI, EWP, EWC, EWA | | Emerging Markets | 11 | EEM, VWO, IEMG, FXI, MCHI, EWZ, EWY, EWW, INDA, EZA, THD | | Fixed Income | 15 | AGG, BND, BNDX, TLT, IEF, SHY, GOVT, BIL, LQD, VCSH, HYG, JNK, TIP, EMB, MUB | | Commodities | 9 | GLD, IAU, SLV, PPLT, USO, UNG, DBC, GSG, DBA | | Specialty | 10 | IBB, XBI, SMH, SOXX, KRE, XME, OIH, XRT, ITB, ITA | | Currency | 4 | UUP, FXE, FXY, FXB | Full symbol list + category tagging: `config.yaml`. ## Download ```bash uv run python data/etfs/market/download.py # all 100 ETFs uv run python data/etfs/market/download.py --symbol SPY # single symbol uv run python data/etfs/market/download.py --dry-run # plan only ``` Output layout under `$ML4T_DATA_PATH/etfs/market/`: ``` etf_universe.parquet # consolidated 100-ETF daily OHLCV (loader target) ohlcv_1d/ticker=<TICKER>/... # hive-partitioned per-symbol bars (provider-native) etf_universe_dictionary.parquet # symbol metadata (symbol, group, description) etf_universe_metadata.json # dataset metadata (row counts, date span) ``` ## Loading ```python from data import load_etfs df = load_etfs() # all 100 ETFs df = load_etfs(symbols=["SPY", "QQQ", "IWM"]) df = load_etfs(start_date="2020-01-01", end_date="2024-12-31") ``` Schema (canonical): | Column | Type | Description | | ----------- | -------- | ------------- | | `symbol` | String | ETF ticker | | `timestamp` | Date | Trading date | | `open` | Float | Opening price | | `high` | Float | High price | | `low` | Float | Low price | | `close` | Float | Closing price | | `volume` | Int | Trading volume| ## Consumers - **Ch2**: `01_etf_eda.py`. - **Ch6**: `01_etfs_setup.py` (strategy definition). - **Ch8**: `01_price_volume_features.py`, `03_structural_cross_instrument_features.py`, `05_feature_selection.py`, `06_robustness_sensitivity.py`, `07_event_studies.py`. - **Ch16**: `06_framework_parity.py`, `09_performance_reporting.py`, `11_sharpe_ratio_inference.py`. - **Ch18**: `01_cost_taxonomy.py`, `03_market_impact_calibration.py`, `06_ml4t_execution_demo.py`. - **`case_studies/etfs/`**: full pipeline from `01_feasibility_analysis.py` through `20_strategy_analysis.py` — the flagship reader case study.
Reproduit dans son intégralité avec attribution, conformément à la licence de la source. Licence: MIT
Ce résumé a été rédigé par l’agent de recherche de Stratmill à partir de la source originale ; il n’en est pas une copie.