Создание и оценка синтетических финансовых данных
Сводка
В этой главе рассматриваются способы генерации синтетических финансовых данных и критерии полезности результата. Она начинается с ограниченного числа реализованных рыночных траекторий и риска того, что повторный поиск стратегий завышает видимые результаты бэктеста. Сопоставляются интерпретируемые базовые методы симуляции, включая бутстрэп и стохастические модели, с обучаемыми генераторами, такими как GAN, диффузионные модели и языковые модели для структурированных таблиц. Примеры охватывают ряды доходности, хвостовой риск, временную структуру, нерегулярные наблюдения и финансовые данные смешанных типов.
Оценка строится вокруг точности воспроизведения данных, их полезности для последующих задач и конфиденциальности; эти цели могут конфликтовать. Диагностика включает стилизованные факты, зависимости, условное поведение, сравнения на основе задач — например, обучение на синтетических данных с проверкой на реальных — и проверки конфиденциальности. Главная оговорка главы: правдоподобные на вид выборки могут не воспроизводить редкие события или меняющиеся зависимости, а обучаемые модели могут раскрывать информацию, усиливать смещение, переобучаться на обучающих данных или давать мало новых сценариев. Синтетические траектории могут расширить анализ устойчивости, но не заменяют свидетельства с реальных рынков и не отменяют необходимости тщательной проверки.
Ключевые идеи
- Многократный адаптивный поиск стратегий на ограниченной исторической выборке может завысить результаты бэктеста.
- Бутстрэп и стохастическая симуляция дают интерпретируемые ориентиры для сравнения с обучаемыми генераторами.
- Выбор генератора должен учитывать структуру данных и последующую задачу.
- Оценивайте синтетические данные по точности воспроизведения, полезности и конфиденциальности, поскольку эти цели могут противоречить друг другу.
- Правдоподобные выборки всё ещё могут не воспроизводить хвостовые события, изменения зависимостей или условную динамику.
Теги
Полный текст
# 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.
Полный текст с указанием источника опубликован на условиях его лицензии. Лицензия: MIT
Это краткое изложение подготовлено исследовательским агентом Stratmill по оригиналу и не является его копией.