项目文件夹

文件
2026-07-13 10:38:17 +00:00

331 行
23 KiB
Markdown

此文件含有模棱两可的 Unicode 字符
此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。
<!-- WEHUB_ZH_README -->
> [!NOTE]
> 本文档由 WeHub 基于上游 README 翻译整理,属于社区翻译,非官方中文文档。
> [English](./README.en.md) · [原始项目](https://github.com/stefan-jansen/machine-learning-for-trading) · [上游 README](https://github.com/stefan-jansen/machine-learning-for-trading/blob/HEAD/README.md)
> 原作者、版权与许可证归属以原始项目及本仓库 LICENSE 文件为准。
# Machine Learning for Trading — 第三版
**构建、测试并部署机器学习驱动的交易策略——从数据获取到实盘执行。**
本仓库托管 [*Machine Learning for Trading, 3rd Edition*](https://amzn.to/4eigy2F) 一书的代码,作者为 [Stefan Jansen](https://www.linkedin.com/in/applied-ai/) ——这是一次从零开始的重构,围绕一条端到端工作流组织:如何将研究构想定义出来,并通过迭代开发成一套能在真实市场中实际运行、并持续运行的策略。
- [九个案例研究](https://www.ml4trading.io/case-studies/) 贯穿全书 27 章展示该工作流,涵盖从原始数据、特征、模型、回测、成本与风险到部署的完整路径。
- 本版新增的 **生成式 AIGenerative AI****自主智能体(autonomous agents** 贯穿该工作流,将检索增强生成(retrieval-augmented generation)、知识图谱与多智能体系统引入金融研究。
- [配套网站](https://ml4trading.io) 提供 [112 篇入门讲解](https://ml4trading.io/primer/), [56 项 agent 技能](https://ml4trading.io/skills/), 以及 [六个可用于生产的 Python 库](https://ml4trading.io/libraries/),可支撑工作流中的多个重要环节。
<p align="center">
<a href="https://amzn.to/4eigy2F"><img src="assets/cover.png" width="45%" alt="Machine Learning for Trading, 第三版"></a>
</p>
## 🎓 新增:直播课程与闪电课
第三版首次配套 **直播同期班课程**、动手 **工作坊** 以及由 Stefan 在 [Maven](https://maven.com/stefan-jansen) 平台开设的免费 **闪电课** ——完整课表见 [课程页面](https://ml4trading.io/courses/).
- **▶ [Machine Learning for Trading: From Research to Production](https://maven.com/stefan-jansen/research-to-production)** ——旗舰直播同期班课程:将研究构想一路推进到已部署、可监控的策略,在直接反馈下走完书中的端到端工作流。**首期班于 2026 年 7 月 6 日(周一)开课——报名于 7 月 3 日(周五)截止。**
- **[Getting Stuff Done with Coding Agents](https://maven.com/p/8394ac/getting-stuff-done-with-coding-agents?utm_medium=ll_share_link&utm_source=instructor)** ——一节关于如何让 coding agents 投入实战的免费闪电课。
- **[Building Multi-Agent Forecasting Systems](https://maven.com/stefan-jansen/forecasting-agents)** ——动手工作坊,讲授如何工程化预测智能体循环:为金融研究构建可审计、辩论驱动的多智能体系统。
<p align="center">
<a href="https://youtu.be/Ksxv9QVZSOo"><img src="assets/course-trailer.jpg" width="60%" alt="观看课程概览:Machine Learning for Trading — From Research to Production"></a>
</p>
---
## 第三版有哪些新内容
全书遵循一条统一路径:从数据基础设施与策略研究出发,跨越将调优与评估分开的 *证据边界(evidence boundary*,直至部署与监控——并辅以反馈循环,在策略优势衰减时进行再训练、暂停或退役。
<p align="center">
<img src="assets/workflow.png" width="90%" alt="ML4T 工作流:数据基础设施与策略研究、将调优与评估分开的证据边界,以及带有再训练/暂停/退役反馈循环的部署">
</p>
早期版本按技术逐点推进,第三版则将这一流程端到端贯通,并新增大量内容:
- **更丰富的模型工具箱**:从梯度提升(XGBoost、LightGBM、CatBoost)到深度时间序列架构(PatchTST、iTransformer、TSMixer、TCN、Mamba),再到较新的表格与潜因子模型(TabPFN、TabM、条件自编码器与监督自编码器)。
- **专门的策略设计章节**:交易成本与风险管理现为完整章节(此前均未单独成章),并与组合构建、策略综合衔接,使原始信号一路贯通至经规模调整、成本与风险感知的组合。
- **完整的生产化路径**:实盘交易系统(Interactive Brokers、Alpaca、QuantConnect)、MLOps 与治理(漂移检测、安全发布、熔断机制、特征存储、实验跟踪),以及*运行*策略(而非仅构建策略)的运维现实。
- **生成式 AI**:基于 SEC 申报文件的检索增强生成、知识图谱与 Graph RAG,以及自主多智能体研究系统。
- **因果机器学习(Causal machine learning**Double ML、贝叶斯结构时间序列(Bayesian structural time series)与因果发现,用于区分真实效应与虚假相关。
- **强化学习(Reinforcement learning**:最优执行、带库存的做市,以及深度对冲。
- **合成金融数据**TimeGAN、Tail-GAN、Sig-CWGAN 以及基于扩散的生成器,用于在历史数据较短时进行验证。
方法论严谨性被作为一等公民主题,而非事后补充。本书明确区分探索与确认——即 *证据边界*——全书采用滚动前向交叉验证(walk-forward cross-validation),并直面悄然使大多数回测失效的多重检验与过拟合问题,借助 Deflated Sharpe Ratio、Rademacher Anti-Serum、White's Reality Check 等工具,以及保形预测(conformal prediction)以获得诚实的 uncertainty 估计。
数据层迁移至 **Polars**,以实现快速的基于表达式的数据处理;每章均提供 **可复现的 Docker 环境**,确保结果在不同机器上可重复;PyTorch、LightGBM、Optuna 与 Plotly 共同构成建模与可视化技术栈。
### 九个案例研究
第三版的结构核心是 **九个案例研究**,贯穿全书。ETF、加密货币永续合约、日内股票、期权、外汇、期货与股票因子面板均经由*同一*流水线——从原始数据与标签到特征、模型、回测、成本、风险叠加,直至最终部署评估。将一套严谨流程应用于九个截然不同的市场,可展示其适用之处、失效之处及原因。
| 案例研究 | 资产类别 | 频率 | 探索内容 |
|--------------------------|--------------------|-----------|------------------------------------------------------------------------------|
| ETFs | 多资产 ETF | 日频 | 100 只 ETF 的跨资产动量与均值回归 |
| Crypto Perps | 加密货币 | 8 小时 | 永续期货的资金费率套利 |
| NASDAQ-100 | 股票 | 15 分钟 | 来自订单流与 LOB 的日内微观结构信号 |
| S&P 500 Equity + Options | 股票 + 期权 | 日频 | 以隐含波动率特征增强的股票筛选 |
| US Firm Characteristics | 股票 | 月频 | 公司层面特征面板(规模、价值、动量、质量) |
| FX Pairs | 外汇 | 日频 | 主要货币对的 carry 与动量 |
| CME Futures | 期货 | 日频 | 商品与金融期货的期限结构与 roll-yield 信号 |
| S&P 500 Options | 期权 | 日频 | 纯期权策略(跨式、delta 对冲头寸) |
| US Equities | 股票 | 日频 | 美国股票广截面及经典因子暴露 |
### 112 个入门主题
为书中所依赖的每个概念提供免费讲解。各部分均链接至完整列表;以下若干主题展示其覆盖范围:
- [基础](https://ml4trading.io/primer/): 8 个主题,涵盖限价订单簿机制、双时态数据模型,以及模拟器必须复现的 stylized facts。
- [研究设计与特征工程](https://ml4trading.io/primer/): 21 个主题,包括因子研究中的多重检验、分数差分,以及金融序列的路径签名(path signatures)。
- [模型开发](https://ml4trading.io/primer/): 22 个主题,其中有正则化几何、金融中的保形预测,以及双重机器学习(double machine learning)的机制。
- [策略实现](https://ml4trading.io/primer/): 27 个主题,从 deflated Sharpe ratio 与层次风险平价(hierarchical risk parity),到 Almgren-Chriss 最优执行。
- [高级 AI](https://ml4trading.io/primer/): 8 个主题,如马尔可夫决策过程(Markov decision processes)、策略梯度定理(policy-gradient theorem),以及事件预测的正确评分规则(proper scoring rules)。
- [生产化](https://ml4trading.io/primer/): 2 个主题:冠军-挑战者评估(champion-challenger evaluation),以及特征存储带来的训练-服务偏移(training-serving skew)。
- [跨章节概念](https://ml4trading.io/primer/): 20 个在各章中引用的构建模块,例如动量与均值回归、偏差-方差权衡(bias-variance tradeoff),以及滚动前向验证(walk-forward validation)。
### 56 Agent Skills
面向编码智能体的可复用、带护栏的任务,每项均内置针对前瞻偏差(lookahead bias)、数据泄露(data leakage)和多重检验错误的防护。每个类别链接到其完整技能集;以下列举部分技能以展示范围:
- [Concepts](https://ml4trading.io/skills/): 10 项技能,涵盖前瞻偏差、数据泄露和信息系数(information coefficient)。
- [Data Acquisition](https://ml4trading.io/skills/): 7 项技能,涵盖数据获取、构建 bars 与数据验证。
- [Feature Engineering](https://ml4trading.io/skills/): 10 项技能,包括特征计算、三重障碍标签(triple-barrier labels)和特征选择。
- [Evaluation & Validation](https://ml4trading.io/skills/): 8 项技能,从步进式交叉验证(walk-forward CV)与清除-禁运(purging-and-embargo)到收缩夏普比率(Deflated Sharpe ratio)。
- [Backtesting](https://ml4trading.io/skills/): 5 项技能,例如运行回测、成本模型和 tear sheets。
- [Portfolio Management](https://ml4trading.io/skills/): 5 项技能,包括仓位管理、风险指标和熔断开关(kill switches)。
- [Infrastructure](https://ml4trading.io/skills/): 4 项技能,例如规范 schema、注册表系统和 Polars 模式。
- [Workflows](https://ml4trading.io/skills/): 5 项技能,涵盖因子研究、模型验证和生产就绪。
- [Production](https://ml4trading.io/skills/): 2 项技能:实盘交易与监控与告警。
---
## The ML4T Libraries
这些 notebook 基于六个生产级 Python 包构建,每个包均有独立文档且可单独使用——对应工作流的每个阶段:
| Library | Stage | What it does |
|-------------------------------------------------------------|------------|--------------------------------------------------------------------------------|
| [`ml4t-data`](https://ml4trading.io/docs/data/) | Data | 通过统一接口从 19+ 家数据提供商获取市场数据 |
| [`ml4t-engineer`](https://ml4trading.io/docs/engineer/) | Signal | 特征、标签、替代 bars,以及防泄露的数据集准备 |
| [`ml4t-models`](https://ml4trading.io/docs/models/) | Models | 面向金融的潜因子、SDF、直接预测与组合学习 |
| [`ml4t-diagnostic`](https://ml4trading.io/docs/diagnostic/) | Evaluation | 特征验证、策略诊断与收缩夏普比率(Deflated Sharpe Ratio |
| [`ml4t-backtest`](https://ml4trading.io/docs/backtest/) | Strategy | 具备真实istic 执行的事件驱动回测 |
| [`ml4t-live`](https://ml4trading.io/docs/live/) | Deployment | 对接券商的生产级交易 |
---
导言与收尾章节为六个与工作流对齐的部分作书脊。各章标题链接到对应指南,随各部分陆续发布;其余章节将在未来数周内逐部分添加。
## Introduction
### [1. The Process Is Your Edge](01_process_is_edge/)
为何流程纪律胜过模型复杂度。将 ML4T 工作流介绍为从研究到生产的系统,涵盖因子收益与宏观指标上的制度识别(regime detection),以及区分探索与确认的 evidence boundary。
## Part I — Financial Data (Chapters 2–5)
全书其余部分所依托的市场、工具与基础设施:数据源分类体系、将原始交易所消息转化为可用于特征的 bars、时点(point-in-time)基本面,以及用于稳健验证的合成历史数据。
### [2. The Financial Data Universe](02_financial_data_universe/)
市场、基本面与另类数据的分类体系。调研八类资产,量化幸存者偏差(survivorship bias),对比存储格式(Parquet、DuckDB、kdb+、TimescaleDB),并建立全书沿用的数据质量框架。
### [3. Market Microstructure](03_market_microstructure/)
从原始交易所消息到可用于特征的 bars。解析 NASDAQ ITCH,从多数据源重建限价订单簿,验证 Lee-Ready 成交分类,并比较 bar 采样方法——dollar bars 带来最佳的收益正态性。
### [4. Fundamental and Alternative Data](04_fundamental_alternative_data/)
面向 SEC EDGAR 申报文件的时点(point-in-time)流水线、跨标识符体系的实体解析、宏观与大宗商品基本面,以及另类数据评估——包括链上加密基本面与预测市场(Kalshi、Polymarket)。
### [5. Synthetic Financial Data](05_synthetic_data/)
生成替代市场历史以进行稳健验证。实现 TimeGAN、Tail-GAN、Sig-CWGAN、Diffusion-TS 与基于 LLM 的表格生成,并通过保真度–效用–隐私框架进行评估。
## Part II — Research Design and Feature Engineering (Chapters 6–10)
先定义交易问题,再将数据转化为可供模型使用的信号:研究设计、标签、特征,以及决定任何模型能学到什么的评估。
### [6. Strategy Research Framework](06_strategy_definition/)
在建模之前定义交易博弈:标的池规则、决策日程、成本模型、评估协议与运行日志。介绍九个案例研究,以及贯穿第 7–20 章的步进式交叉验证(walk-forward cross-validation)纪律。
### [7. Defining the Learning Task](07_defining_the_learning_task/)
标签工程(前瞻收益、三重障碍、trend scanning)、单变量特征评估(信息系数、分位数分析、可行性筛选)、多重检验控制(BH-FDR、Deflated Sharpe Ratio)与因果合理性检验。
### [8. Financial Feature Engineering](08_financial_features/)
来自价格数据的五类特征族(动量、反转、波动率、流动性、微观结构),结构与跨工具特征(收益率曲线、期限结构、相对价值),情境特征(宏观制度、日历、情绪),以及带稳健性检验的特征选择。
### [9. Model-Based Feature Extraction](09_model_based_features/)
来自拟合模型的特征:平稳性诊断、Kalman 滤波器、傅里叶与小波谱特征、GARCH 波动率与 HMM 制度概率——全程强制时点(point-in-time)正确性。
### [10. Text Feature Engineering](10_text_feature_engineering/)
从词袋到 TransformerTF-IDF、Word2Vec 与 GloVe 嵌入、LSTM 序列模型、FinBERT 情绪、金融 NER 微调,以及新闻–收益信号构建。
## Part III — Model Development (Chapters 11–15)
五类模型族应用于相同的九个案例研究,均以线性基线为起点。
### 11. The ML Pipeline
正则化线性模型(Ridge、LASSO、Elastic Net)作为后续所有模型必须超越的基线。用于方向的逻辑回归、SHAP 可解释性、用于不确定性的共形预测(conformal prediction),以及跨九个案例研究的数据集对比。
### 12. Gradient Boosting and Advanced Tabular Models
XGBoost、LightGBM 与 CatBoost,配合 Optuna 多目标调参,以及深度学习表格替代方案(TabPFN、TabM)。TreeSHAP 可解释性与跨数据集结果;在多数案例研究中,梯度提升是最强的表格模型。
### 13. Deep Learning for Time Series
LSTM、N-BEATS、TransformerPatchTST、iTransformer、TFT)、TSMixer、TCN 与 Mamba,置于 LTSF-Linear 争论背景下。实践者选型框架与跨数据集证据,说明深度学习何时有帮助、何时更简单的模型已足够。
### 14. Latent Factor Models
PCA 特征组合、带时变载荷的 IPCA、条件与监督自编码器、对抗式 SDF 估计与收益率曲线分解——附跨数据集结果,说明潜因子何时增加预测价值。
### 15. Causal Machine Learning
双重机器学习(Double Machine Learning)用于隔离因子处理效应,贝叶斯结构时间序列(Bayesian Structural Time Series)用于事件影响,以及因果发现(PCMCI、NOTEARS、VAR-LiNGAM),应用于九个案例研究。
## 第四部分 — 策略实施(第 16–20 章)
从预测到可部署策略 — 回测、组合构建、成本、风险与综合。
### 16. 策略模拟
将回测视为证伪:交易协议规范、向量化与事件驱动引擎、ETF 基准策略、核心指标报告、市场状态(regime)诊断,以及策略层面的过拟合控制(Deflated Sharpe Ratio、Rademacher Anti-Serum、White's Reality Check)。
### 17. 组合构建
从得分到组合:均值-方差优化及其陷阱、层次风险平价(Hierarchical Risk Parity)、Kelly 准则、保形(conformal)仓位 sizing、深度组合配置,以及跨案例研究的受控配置器对比。
### 18. 交易成本
成本分类、价差估计、市场冲击校准、执行算法(VWAP、TWAP、Almgren-Chriss 最优执行)、交易成本分析,以及实用防护栏 — 盈亏平衡成本因资产类别差异很大。
### 19. 风险管理
VaR/CVaR 尾部度量、回撤与路径风险控制、因子与行业分解、压力测试、自适应风险叠加层、深度对冲(deep hedging)与熔断机制。叠加层的有效性因策略而异。
### 20. 策略综合
九项实验揭示的关于将 ML 预测转化为策略的洞见:IC–Sharpe 去相关、基本定律(Fundamental Law)诊断、模型族级联、成本生存分析、留出集(holdout)失效模式,以及面向实践者的决策框架。
## 第五部分 — 高级 AI(第 21–24 章)
强化学习、大语言模型、知识图谱,以及面向金融的自主智能体。
### 21. 面向执行与对冲的强化学习
金融领域的 MDP 建模、DQN/PPO/SAC 算法、最优执行、带库存管理的市场做市、基于 PFHedge 的深度对冲、用于策略恢复的逆强化学习(inverse RL),以及仿真到现实(sim-to-real)鸿沟。
### 22. 面向金融研究的 RAG
基于 SEC 申报文件的检索增强生成(RAG):摄取、领域专用嵌入、带重排序的混合检索、基于约束的提示、RAG 评估与失效诊断,以及向智能体式工作流的过渡。
### 23. 知识图谱
图谱何时值得其基础设施成本:从 SEC 申报文件构建知识图谱(KG)、用于多跳推理的 Graph RAG、面向 ML 的图特征(GNN 嵌入、中心性、社区检测)、金融网络,以及时间泄漏(temporal-leakage)防范。
### 24. 自主智能体
智能体架构(ReAct、Tree of Thoughts、Reflexion)、记忆系统、工具契约、工程栈(LangGraph、Claude SDK)、有状态股票研究智能体、带对抗性辩论的多智能体预测,以及生产可靠性。
## 第六部分 — 生产部署(第 25–26 章)
将策略上线 — 交易系统与保障其运行的运营基础设施。
### 25. 实盘交易系统
连接研究与生产的统一框架:Interactive Brokers 与 Alpaca 集成、托管平台(QuantConnect)、订单生命周期管理、流水线验证,以及运营就绪。
### 26. MLOps 与治理
ML 失效分类(流水线漂移 vs 性能衰减)、漂移检测、安全模型发布、熔断器、特征存储、实验跟踪,以及金融 ML 系统所需的 MLOps 基础设施。
## 结语
### 27. 系统化优势
系统化理念、量化职业路径、学习资源、研究前沿,以及如何构建你自己的优势。与第 1 章首尾呼应:流程即优势。
---
## 快速入门
以下命令需在你自己电脑的终端中输入,而非在 GitHub 中输入。不熟悉命令行?请从 **[开始之前](docs/installation.md#before-you-begin)** 读起。
**从仓库根目录运行一切。** 克隆并使用 Docker 或本地 `uv` 环境完成设置:
```bash
git clone https://github.com/stefan-jansen/machine-learning-for-trading.git
cd machine-learning-for-trading
cp .env.example .env
docker compose pull ml4t # Option A — Docker (recommended)
pip install uv && uv sync # Option B — local with uv
```
平台相关设置(Linux、Windows WSL2、macOS)及 GPU 说明见 **[安装指南](docs/installation.md)**。Windows 读者:必须先让 WSL2 正常工作,*再*安装 Docker Desktop,且重启不可省略。
**下载数据。** 大多数 notebook 需要数据集;先从免费数据集开始(无需 API 密钥):
```bash
uv run python data/download_all.py --free-only
```
**[数据指南](data/README.md)** 记录了每个数据集、API 密钥配置、加载器及存储层级(约 70 MB 免费层至约 7 GB 完整版)。
**运行 notebook。** Notebook 与 [Jupytext](https://jupytext.readthedocs.io/) 文件成对(`.py` 源文件 + 生成的 `.ipynb`)。运行快速冒烟测试,或打开 Jupyter Lab
```bash
uv run python 01_process_is_edge/factor_regimes.py
docker compose up -d ml4t # then open http://localhost:8888
```
Papermill 参数与实验工作流见 **[运行 notebook 指南](docs/running-notebooks.md)**。
### Docker 镜像
大多数 notebook 在默认 **ml4t** 镜像上运行;少数需要专用镜像,各 notebook 会在前言中说明。完整说明见 **[Docker 环境指南](envs/README.md)**。
| Image | Covers | When you need it |
|--------------|------------------------------------------------------------------|-------------------------|
| `ml4t` | 全部 27 章 + 9 个案例研究(CPU) | 一切内容的默认选择 |
| `ml4t-gpu` | 同一 `ml4t` 镜像,使用 NVIDIA runtime`--profile gpu`)运行 | 深度学习章节 |
| `ml4t-py312` | Python 3.12,用于 signatory、esig、gensim、pfhedge、tfcausalimpact | 约 10 个 notebook |
| `benchmark` | 数据库客户端(TimescaleDB、ClickHouse、QuestDB、InfluxDB | 第 02 章存储基准测试 |
| `rapids` | RAPIDS cuML + LightGBM CUDA(本地构建) | 第 12 章一项 GPU 基准测试 |
---
## 版本发布
新章节与 notebook 将在未来数周内陆续添加。⭐ 关注或 star 本仓库以跟进进展,并订阅每两周一期的 [**Insights** 通讯](https://insights.ml4trading.io/).
**在找第二版?** 它已在 `second-edition` 分支上完整且稳定 —
`git checkout second-edition`,一切内容与书中描述完全一致。
---
## 贡献与反馈
发现错误、失效链接或有建议?在本书正式发布前,早期反馈尤为宝贵。
- **Issues**[提交 GitHub issue](https://github.com/stefan-jansen/machine-learning-for-trading/issues)
- **网站与联系**[ml4trading.io](https://ml4trading.io)
---
## 许可证
代码:[MIT License](LICENSE) · 书籍内容:© 2026 Stefan Jansen. All rights reserved.
<p align="center">
<a href="https://amzn.to/4eigy2F">获取本书</a> •
<a href="https://ml4trading.io">ml4trading.io</a> •
<a href="https://github.com/stefan-jansen/machine-learning-for-trading">GitHub</a>
</p>