Files
stefan-jansen--machine-lear…/README.md
T
2026-07-13 10:38:17 +00:00

23 KiB
Raw Blame History

Note

本文档由 WeHub 基于上游 README 翻译整理,属于社区翻译,非官方中文文档。
English · 原始项目 · 上游 README
原作者、版权与许可证归属以原始项目及本仓库 LICENSE 文件为准。

Machine Learning for Trading — 第三版

构建、测试并部署机器学习驱动的交易策略——从数据获取到实盘执行。

本仓库托管 Machine Learning for Trading, 3rd Edition 一书的代码,作者为 Stefan Jansen ——这是一次从零开始的重构,围绕一条端到端工作流组织:如何将研究构想定义出来,并通过迭代开发成一套能在真实市场中实际运行、并持续运行的策略。

  • 九个案例研究 贯穿全书 27 章展示该工作流,涵盖从原始数据、特征、模型、回测、成本与风险到部署的完整路径。
  • 本版新增的 生成式 AIGenerative AI自主智能体(autonomous agents 贯穿该工作流,将检索增强生成(retrieval-augmented generation)、知识图谱与多智能体系统引入金融研究。
  • 配套网站 提供 112 篇入门讲解, 56 项 agent 技能, 以及 六个可用于生产的 Python 库,可支撑工作流中的多个重要环节。

Machine Learning for Trading, 第三版

🎓 新增:直播课程与闪电课

第三版首次配套 直播同期班课程、动手 工作坊 以及由 Stefan 在 Maven 平台开设的免费 闪电课 ——完整课表见 课程页面.

观看课程概览:Machine Learning for Trading — From Research to Production


第三版有哪些新内容

全书遵循一条统一路径:从数据基础设施与策略研究出发,跨越将调优与评估分开的 证据边界(evidence boundary,直至部署与监控——并辅以反馈循环,在策略优势衰减时进行再训练、暂停或退役。

ML4T 工作流:数据基础设施与策略研究、将调优与评估分开的证据边界,以及带有再训练/暂停/退役反馈循环的部署

早期版本按技术逐点推进,第三版则将这一流程端到端贯通,并新增大量内容:

  • 更丰富的模型工具箱:从梯度提升(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 个入门主题

为书中所依赖的每个概念提供免费讲解。各部分均链接至完整列表;以下若干主题展示其覆盖范围:

  • 基础: 8 个主题,涵盖限价订单簿机制、双时态数据模型,以及模拟器必须复现的 stylized facts。
  • 研究设计与特征工程: 21 个主题,包括因子研究中的多重检验、分数差分,以及金融序列的路径签名(path signatures)。
  • 模型开发: 22 个主题,其中有正则化几何、金融中的保形预测,以及双重机器学习(double machine learning)的机制。
  • 策略实现: 27 个主题,从 deflated Sharpe ratio 与层次风险平价(hierarchical risk parity),到 Almgren-Chriss 最优执行。
  • 高级 AI: 8 个主题,如马尔可夫决策过程(Markov decision processes)、策略梯度定理(policy-gradient theorem),以及事件预测的正确评分规则(proper scoring rules)。
  • 生产化: 2 个主题:冠军-挑战者评估(champion-challenger evaluation),以及特征存储带来的训练-服务偏移(training-serving skew)。
  • 跨章节概念: 20 个在各章中引用的构建模块,例如动量与均值回归、偏差-方差权衡(bias-variance tradeoff),以及滚动前向验证(walk-forward validation)。

56 Agent Skills

面向编码智能体的可复用、带护栏的任务,每项均内置针对前瞻偏差(lookahead bias)、数据泄露(data leakage)和多重检验错误的防护。每个类别链接到其完整技能集;以下列举部分技能以展示范围:

  • Concepts: 10 项技能,涵盖前瞻偏差、数据泄露和信息系数(information coefficient)。
  • Data Acquisition: 7 项技能,涵盖数据获取、构建 bars 与数据验证。
  • Feature Engineering: 10 项技能,包括特征计算、三重障碍标签(triple-barrier labels)和特征选择。
  • Evaluation & Validation: 8 项技能,从步进式交叉验证(walk-forward CV)与清除-禁运(purging-and-embargo)到收缩夏普比率(Deflated Sharpe ratio)。
  • Backtesting: 5 项技能,例如运行回测、成本模型和 tear sheets。
  • Portfolio Management: 5 项技能,包括仓位管理、风险指标和熔断开关(kill switches)。
  • Infrastructure: 4 项技能,例如规范 schema、注册表系统和 Polars 模式。
  • Workflows: 5 项技能,涵盖因子研究、模型验证和生产就绪。
  • Production: 2 项技能:实盘交易与监控与告警。

The ML4T Libraries

这些 notebook 基于六个生产级 Python 包构建,每个包均有独立文档且可单独使用——对应工作流的每个阶段:

Library Stage What it does
ml4t-data Data 通过统一接口从 19+ 家数据提供商获取市场数据
ml4t-engineer Signal 特征、标签、替代 bars,以及防泄露的数据集准备
ml4t-models Models 面向金融的潜因子、SDF、直接预测与组合学习
ml4t-diagnostic Evaluation 特征验证、策略诊断与收缩夏普比率(Deflated Sharpe Ratio
ml4t-backtest Strategy 具备真实istic 执行的事件驱动回测
ml4t-live Deployment 对接券商的生产级交易

导言与收尾章节为六个与工作流对齐的部分作书脊。各章标题链接到对应指南,随各部分陆续发布;其余章节将在未来数周内逐部分添加。

Introduction

1. The Process Is Your Edge

为何流程纪律胜过模型复杂度。将 ML4T 工作流介绍为从研究到生产的系统,涵盖因子收益与宏观指标上的制度识别(regime detection),以及区分探索与确认的 evidence boundary。

Part I — Financial Data (Chapters 25)

全书其余部分所依托的市场、工具与基础设施:数据源分类体系、将原始交易所消息转化为可用于特征的 bars、时点(point-in-time)基本面,以及用于稳健验证的合成历史数据。

2. The Financial Data Universe

市场、基本面与另类数据的分类体系。调研八类资产,量化幸存者偏差(survivorship bias),对比存储格式(Parquet、DuckDB、kdb+、TimescaleDB),并建立全书沿用的数据质量框架。

3. Market Microstructure

从原始交易所消息到可用于特征的 bars。解析 NASDAQ ITCH,从多数据源重建限价订单簿,验证 Lee-Ready 成交分类,并比较 bar 采样方法——dollar bars 带来最佳的收益正态性。

4. Fundamental and Alternative Data

面向 SEC EDGAR 申报文件的时点(point-in-time)流水线、跨标识符体系的实体解析、宏观与大宗商品基本面,以及另类数据评估——包括链上加密基本面与预测市场(Kalshi、Polymarket)。

5. Synthetic Financial Data

生成替代市场历史以进行稳健验证。实现 TimeGAN、Tail-GAN、Sig-CWGAN、Diffusion-TS 与基于 LLM 的表格生成,并通过保真度–效用–隐私框架进行评估。

Part II — Research Design and Feature Engineering (Chapters 610)

先定义交易问题,再将数据转化为可供模型使用的信号:研究设计、标签、特征,以及决定任何模型能学到什么的评估。

6. Strategy Research Framework

在建模之前定义交易博弈:标的池规则、决策日程、成本模型、评估协议与运行日志。介绍九个案例研究,以及贯穿第 7–20 章的步进式交叉验证(walk-forward cross-validation)纪律。

7. Defining the Learning Task

标签工程(前瞻收益、三重障碍、trend scanning)、单变量特征评估(信息系数、分位数分析、可行性筛选)、多重检验控制(BH-FDR、Deflated Sharpe Ratio)与因果合理性检验。

8. Financial Feature Engineering

来自价格数据的五类特征族(动量、反转、波动率、流动性、微观结构),结构与跨工具特征(收益率曲线、期限结构、相对价值),情境特征(宏观制度、日历、情绪),以及带稳健性检验的特征选择。

9. Model-Based Feature Extraction

来自拟合模型的特征:平稳性诊断、Kalman 滤波器、傅里叶与小波谱特征、GARCH 波动率与 HMM 制度概率——全程强制时点(point-in-time)正确性。

10. Text Feature Engineering

从词袋到 TransformerTF-IDF、Word2Vec 与 GloVe 嵌入、LSTM 序列模型、FinBERT 情绪、金融 NER 微调,以及新闻–收益信号构建。

Part III — Model Development (Chapters 1115)

五类模型族应用于相同的九个案例研究,均以线性基线为起点。

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 中输入。不熟悉命令行?请从 开始之前 读起。

从仓库根目录运行一切。 克隆并使用 Docker 或本地 uv 环境完成设置:

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 说明见 安装指南。Windows 读者:必须先让 WSL2 正常工作,安装 Docker Desktop,且重启不可省略。

下载数据。 大多数 notebook 需要数据集;先从免费数据集开始(无需 API 密钥):

uv run python data/download_all.py --free-only

数据指南 记录了每个数据集、API 密钥配置、加载器及存储层级(约 70 MB 免费层至约 7 GB 完整版)。

运行 notebook。 Notebook 与 Jupytext 文件成对(.py 源文件 + 生成的 .ipynb)。运行快速冒烟测试,或打开 Jupyter Lab

uv run python 01_process_is_edge/factor_regimes.py
docker compose up -d ml4t # then open http://localhost:8888

Papermill 参数与实验工作流见 运行 notebook 指南

Docker 镜像

大多数 notebook 在默认 ml4t 镜像上运行;少数需要专用镜像,各 notebook 会在前言中说明。完整说明见 Docker 环境指南

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 通讯.

在找第二版? 它已在 second-edition 分支上完整且稳定 — git checkout second-edition,一切内容与书中描述完全一致。


贡献与反馈

发现错误、失效链接或有建议?在本书正式发布前,早期反馈尤为宝贵。


许可证

代码:MIT License · 书籍内容:© 2026 Stefan Jansen. All rights reserved.

获取本书ml4trading.ioGitHub