news 2026/10/26 1:21:06

machine-learning-for-trading 实战教程:27 章、9 个案例研究,从原始数据跑通回测策略

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
machine-learning-for-trading 实战教程:27 章、9 个案例研究,从原始数据跑通回测策略

machine-learning-for-trading 实战教程:27 章、9 个案例研究,从原始数据跑通回测策略

【免费下载链接】machine-learning-for-tradingCode for Machine Learning for Trading, 3rd edition — from data sourcing to live execution.项目地址: https://gitcode.com/GitHub_Trending/ma/machine-learning-for-trading

machine-learning-for-trading 是《Machine Learning for Trading》第三版的官方配套代码,从金融数据下载、打标签、训练模型,到回测验证和模拟实盘,每个环节都有可运行的脚本。很多量化学习者卡在"数据怎么洗、标签怎么打、回测怎么接上"这几段之间。这个仓库把整条链路拆成了 27 个章节目录加 9 个跨市场案例研究。本文先用最短路径带你跑出第一个结果,再回头解释每一环的设计。

先跑通:从克隆到 ETF 策略报告只需五步

第一步,拉取代码:

git clone https://gitcode.com/GitHub_Trending/ma/machine-learning-for-trading cd machine-learning-for-trading

第二步,装环境。Docker 路线执行docker compose pull ml4t,再docker compose up ml4t,浏览器打开 http://localhost:8888 即可。本地 uv 路线要先装 C/C++ 编译器,Ubuntu 执行sudo apt install build-essential python3-dev,然后uv sync。两条路线各预留约 16 GB 磁盘。

第三步,拉取免费数据:

uv run python data/download_all.py --free-only --skip-firm-characteristics

--free-only覆盖 7 个数据集,全程不需要 API key。加上--skip-firm-characteristics后体积约 75 MB;不加则约 4.1 GB,多出来的都是个股基本面数据。

第四步,验证环境并跑冒烟测试。先执行uv run python scripts/verify_installation.py,它会逐组件打印 PASS 或 FAIL;再执行uv run python 01_process_is_edge/factor_regimes.py,能正常出结果说明数据和代码链路都通了。

第五步,读一个案例研究的成品,不用自己训练:

uv run python scripts/download_artifacts.py --cs etfs uv run python case_studies/etfs/20_strategy_analysis.py

第一条命令下载 ETF 案例预存好的训练产物,第二条直接基于它生成策略报告。想看模型对比过程,运行同目录下的13_model_analysis.py。

27 章和 9 个案例研究怎么分工

图中上层 Strategy Research 框住研究框架、特征工程、模型开发、策略设计四段,中间用一条 evidence boundary 隔开调参与评估;下层是部署监控,外加一条重训、暂停、退役的反馈回路。章节目录跟着这张图排布:

  • 02 到 05 章是数据层:八类资产的市场行情、微观结构、基本面、合成数据
  • 06 到 10 章是研究设计与特征工程,含文本特征
  • 11 到 15 章是模型擂台:线性、梯度提升、深度学习、潜在因子、因果估计
  • 16 到 20 章是回测、组合构建、交易成本、风险管理与信号合成
  • 21 到 26 章延伸到强化学习执行、大模型研究和生产运维

case_studies/下 9 个子目录对应 ETF、股票、期货、外汇、加密、期权等市场,每个都跑同一套从可行性分析到 holdout 验证的 20 步流程,结论密度比章节更高。

三个高频问题:数据、标签、信号

数据从哪来?

data/目录把 19 家以上供应商统一成一个接口:data/download_all.py负责拉取,所有 loader 返回结构一致的 Polars DataFrame,落地统一存 Parquet。data/README.md 里的目录表列出了每个数据集的资产类别、频率、时间覆盖和付费情况,选数据集前查这一张表就够了。

特征怎么切、标签怎么打?

特征侧按"数据要求"分成价格、多工具、上下文/外部数据三族,分类图里标了每族适用的频率区间:动量类适合日频到月频,微观结构类适合秒频到小时频。它决定模型前面接哪条处理管线,而不是一股脑全喂进去。

标签侧的代表方案叫 triple barrier:窗口内先触上障记 +1,先触下障记 -1,时间耗尽记 0。障碍宽度按波动率估计 θ×σ√h 缩放,同一套逻辑因此适用于波动率差异很大的资产,不用写死"涨 3% 算赢"。

信号训完之后去哪?

第 16 章把回测当证伪用:只有战胜等权基准的策略才算通过。第 18、19 章再叠加价差、市场冲击、执行算法,以及 VaR、止损和 kill switch。信号活不过成本扣除和风险约束,就谈不上可部署。第 25、26 章接着处理券商模拟盘、漂移监控和熔断机制。

新手最容易踩的三个坑

现象:notebook 里 loader 报"找不到数据"。原因:notebook 的工作目录被默认设成了所在章节文件夹,loader 会先在那里找。解法:在仓库根目录启动 Jupyter,并加环境变量前缀,形如ML4T_DATA_PATH="$PWD/data" uv run jupyter lab。

现象:有的 notebook 秒出结果,有的要等训练。章节 notebook 大多当场训练模型,这是教学目的;案例研究的分析 notebook 读的是预先存好的训练产物。想快速复现结论,用scripts/download_artifacts.py --cs etfs拉工件即可。

现象:本地uv sync报error: command 'c++' failed。有 12 个锁定包没有预编译 wheel,必须源码编译。先装编译器再同步:Ubuntu/WSL2 用sudo apt install build-essential python3-dev,macOS 用xcode-select --install。docs/installation.md 还有 macOS OpenMP 等更细节的排查项。

下一步

数据、标签、成本、风险这些最容易被跳过的环节,在这个仓库里都有可复现的管线。建议接着按case_studies/README.md逐个市场读结论,再回到data/目录细化数据层。代码获取方式:git clone https://gitcode.com/GitHub_Trending/ma/machine-learning-for-trading🚀

【免费下载链接】machine-learning-for-tradingCode for Machine Learning for Trading, 3rd edition — from data sourcing to live execution.项目地址: https://gitcode.com/GitHub_Trending/ma/machine-learning-for-trading

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/26 1:16:28

Formality:官方Tutorial(三)

相关阅读 Formalityhttps://blog.csdn.net/weixin_45791458/category_12841971.html?spm1001.2014.3001.5482 本文是对Synopsys Formality User Guide Tutorial中第三个实验的翻译(有删改),Lab文件可以从以下链接获取。 Formality官方Tut…

作者头像 李华
网站建设 2026/10/26 1:11:12

PLC工程师入行与进阶指南:从电气基础到现场调试的90条实战经验

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/26 1:10:21

PLSQL连Oracle:instantclient_11_2配置与ORA报错排查

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/26 1:10:06

PLC工程师12年经验90条:从认知到调试的自动化岗位实用指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/26 1:09:55

存储芯片代理商视角:eMMC与SSD选型、初始化及量产全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华