Machine Learning for Trading / First Run
Machine Learning for Trading 首次运行:下载数据与跑通 9 个案例
装好环境后,从下载免费数据开始:约 4 GB / 12 分钟(跳过 firm-characteristics 可约 75 MB 起步),然后启动 Jupyter Lab 跑第一个 notebook,最后挑一个案例研究逐步深入。
9 个案例研究一览
每个案例把「原始数据→标签→特征→模型→回测→成本→风险→部署评估」同一套管线走一遍,覆盖不同资产与频率。
| 案例 | 资产类别 | 频率 | 研究内容 |
|---|---|---|---|
| ETFs | 多资产 ETF | 日频 | 100 只 ETF 的跨资产动量与均值回归 |
| Crypto Perps | 加密永续 | 8 小时 | 永续合约资金费率套利 |
| NASDAQ-100 | 股票 | 15 分钟 | 订单流与 LOB 的日内微观结构信号 |
| S&P 500 Equity + Options | 股票 + 期权 | 日频 | 隐含波动率特征增强的选股 |
| US Firm Characteristics | 股票 | 月频 | 公司特征面板(规模/价值/动量/质量) |
| FX Pairs | 外汇 | 日频 | 主要货币对的 carry 与动量 |
| CME Futures | 期货 | 日频 | 商品与金融期货的期限结构与展期收益 |
| S&P 500 Options | 期权 | 日频 | 纯期权策略(跨式、delta 对冲) |
| US Equities | 股票 | 日频 | 美股横截面经典因子暴露 |
首次运行步骤
以 Docker 路径为例,从仓库根目录执行。
下载免费数据
uv run python data/download_all.py --free-only(Docker 在 Jupyter Lab 终端去掉 uv run 前缀)。
跑一个冒烟测试
uv run python 01_process_is_edge/factor_regimes.py 快速验证环境与数据加载正常。
启动 Jupyter Lab
ML4T_DATA_PATH 前缀给 loader 绝对路径:ML4T_DATA_PATH="${ML4T_DATA_PATH:-$PWD/data}" uv run jupyter lab。
进入一个案例研究
从 case_studies/ 挑一个主题,或按章节从 01 读到 27。
(可选)下载预计算结果
uv run python scripts/download_artifacts.py 下载已发布的 Ch11-20 案例 registry/预测/模型/回测产物,免重训即可探索。
9 个案例的「模型 + 它能干什么」
把每个案例翻译成一句话交易任务,比记「有哪些模型」更接近真实用法。
| 案例 | 用……方法 | 做……交易任务 |
|---|---|---|
| ETFs | 跨资产动量 + 均值回归 | 100 只 ETF 的轮动择时 |
| Crypto Perps | 资金费率套利 | 永续合约的 carry 交易 |
| NASDAQ-100 | 订单流 + LOB 微观结构信号 | 15 分钟日内交易 |
| S&P 500 Equity+Options | 隐含波动率特征增强 | 选股(股票+期权联动) |
| US Firm Characteristics | 公司特征面板 | 规模/价值/动量/质量因子 |
| FX Pairs | carry + 动量 | 主要货币对交易 |
| CME Futures | 期限结构 + 展期收益 | 商品与金融期货 |
| S&P 500 Options | 跨式 / delta 对冲 | 纯期权策略 |
| US Equities | 经典因子暴露 | 美股横截面选股 |
预计算结果 vs 从头重训
不一定要从头训练才能看结果:官方提供了已发布的案例产物。
| 方式 | 命令 | 代价 | 适合 |
|---|---|---|---|
| 预计算结果 | python scripts/download_artifacts.py | 只下载已发布的 registry/预测/模型/回测产物 | 快速探索 Ch11-20 案例结论 |
| 从头重训 | 逐章跑 notebook(可 Papermill 参数化) | 需数据、算力、时间,部分需授权数据 | 复现、改参数、换市场做自己的研究 |
常见问题
一定要先下载全部数据吗?
不必。跳过 firm-characteristics(约 75 MB 起步)可先跑起来,等章节需要时再下载;该面板约 4 GB,是免费数据里最大的一块。
9 个案例能直接复现结果吗?
官方提供预计算结果(download_artifacts.py)供免重训探索 Ch11-20 案例;从头重训需要数据、算力与时间,部分还需要授权数据。
notebook 是 .ipynb 吗?
仓库用 Jupytext 配对(.py 源 + 生成的 .ipynb),可直接在 Jupyter Lab 里打开运行。
跑第一个 notebook 报数据缺失怎么办?
通常是 working directory 问题;官方建议用 ML4T_DATA_PATH 前缀给 loader 绝对路径,因为 Jupyter 把每章文件夹当 working directory。
有 GPU 需求吗?
多数 notebook 用 CPU 默认镜像即可;深度学习章节用 ml4t-gpu 镜像(NVIDIA runtime),少数笔记本用 ml4t-py312 等专用镜像。