Machine Learning for Trading / Data

Machine Learning for Trading 数据:Polars、数据源与合成数据

第 3 版把数据层迁到 Polars 做快速列式处理,存储基准覆盖 Parquet、DuckDB、kdb+、TimescaleDB;ml4t-data 用一个接口统一 19+ 数据源,并用合成数据(TimeGAN、Tail-GAN、Sig-CWGAN、扩散)在历史不足时做稳健验证。

处理:Polars存储:Parquet/DuckDB/kdb+/TimescaleDB接口:ml4t-data(19+ 数据源)
Polars列式处理
存储Parquet/DuckDB/kdb+
数据源ml4t-data 19+
合成数据TimeGAN/扩散
ML4T 数据层示意(Polars + 列式存储 + 数据源 + 合成数据),基于官方 README;示意非官方图。
Stack

数据层组件

以下组件与范围来自官方 README(2026-08 核验)。

组件作用说明
Polars快速、基于表达式的数据操作第 3 版从 Pandas 迁入,作为数据层主力
ml4t-data统一市场数据获取19+ 数据源一个接口,含数据校验与规范 schema
列式存储Parquet / DuckDB / kdb+ / TimescaleDBCh2 基准不同存储格式,量化生存者偏差
点内时间基本面SEC EDGAR filings 管道跨标识符实体解析,避免未来数据泄漏
合成数据TimeGAN / Tail-GAN / Sig-CWGAN / Diffusion-TS / LLM 表格生成历史不足时生成替代市场历史做稳健验证
Sources

数据源与授权边界

免费数据集无需 API key,另类与实盘数据需对应授权。

数据类别代表来源是否需 key/授权
免费行情仓库内置 S&P500 日线(AlgoSeek)等否(--free-only)
基本面SEC EDGAR filings否(公开)
另类数据链上加密、预测市场(Kalshi/Polymarket)部分需 key
微观结构NASDAQ ITCH部分需授权数据
实盘行情Interactive Brokers / Alpaca / QuantConnect需券商账号/授权
边界:AlgoSeek 提供的 S&P500 daily_bars.parquet 版权归 AlgoSeek,MIT 协议只覆盖代码不含该文件;引用需标注 algoseek.com。
Storage benchmark

存储格式怎么选:4 种基准对照

Ch2 对存储格式做了基准,并量化了生存者偏差。选择取决于查询模式与规模。

格式类型适合场景
Parquet列式文件通用分析、特征存储的默认选择
DuckDB嵌入式分析数据库单机 SQL 分析、中小规模交互查询
kdb+金融时序专用低延迟行情、时序密集场景
TimescaleDBPostgreSQL 时序扩展需要 SQL 生态 + 时序能力的场景
Synthetic data

合成数据:历史不足时的稳健验证

当历史样本不足或需要压力场景时,用生成模型造替代市场历史,并通过 fidelity–utility–privacy 框架评估。

时序 GAN

TimeGAN、Tail-GAN:生成逼真的时序与尾部风险场景。

路径签名 + 扩散

Sig-CWGAN、Diffusion-TS:用路径签名与扩散模型生成金融序列。

LLM 表格生成

用大模型生成表格数据,配合 fidelity–utility–privacy 三重评估。

边界:合成数据用于稳健验证与压力测试,不是「伪造历史收益」;它只补历史不足,不能替代真实行情。
FAQ

常见问题

为什么数据层用 Polars?

Polars 提供快速、基于表达式的列式操作,比 Pandas 更适合大规模行情与特征计算,是第 3 版的性能主线。

合成数据有什么用?

当历史样本不足时,用 TimeGAN/Tail-GAN/Sig-CWGAN/扩散生成替代市场历史,通过 fidelity-utility-privacy 框架评估,做更稳健的验证而非伪造收益。

点内时间基本面为什么重要?

避免未来数据泄漏:用 SEC EDGAR 的 point-in-time 管道重建「当时已知」的基本面,而不是用后来修正的数据回测。

免费数据和授权数据怎么区分?

download_all.py --free-only 只下免费部分(约 4 GB);另类数据、微观结构、实盘行情需要对应数据源或券商的 key/授权。

ML4T 的数据层能直接用于 A 股吗?

ML4T 案例聚焦美股/加密/外汇/期货,未内置 A 股数据源;想用 A 股行情/财务数据,EasyClaw 的 akshare-finance/tushare-finance 等 Skill 提供本地化数据(见对比页)。

数据准备好后怎么用?

数据喂给模型做训练,再把预测变成策略,看模型页与策略页。