stefan-jansen/machine-learning-for-trading
摘要
本文介绍了《Machine Learning for Trading》第二版的GitHub仓库,包含超过150个Jupyter Notebook,涵盖了用于算法交易的机器学习技术,包括特征工程、监督/无监督学习、深度学习和强化学习。
查看缓存全文
缓存时间: 2026/06/01 12:54
stefan-jansen/machine-learning-for-trading
来源:https://github.com/stefan-jansen/machine-learning-for-trading
机器学习在交易中的应用 - 第2版
本书 (https://www.amazon.com/Machine-Learning-Algorithmic-Trading-alternative/dp/1839217715?pf_rd_r=GZH2XZ35GB3BET09PCCA&pf_rd_p=c5b6893a-24f2-4a59-9d4b-aff5065c90ec&pd_rd_r=91a679c7-f069-4a6e-bdbb-a2b3f548f0c8&pd_rd_w=2B0Q0&pd_rd_wg=GMY5S&ref_=pd_gw_ci_mcx_mr_hp_d) 旨在以实用且全面的方式展示机器学习如何为算法交易策略增添价值。它涵盖了从线性回归到深度强化学习的广泛机器学习技术,并演示了如何构建、回测和评估由模型预测驱动的交易策略。全书分为四个部分,包含 23 个章节外加一个附录,超过 800 页,内容涵盖:
- 数据来源、金融特征工程 和投资组合管理的重要方面
- 基于监督和无监督机器学习算法的多空 策略 的设计与评估
- 如何从 金融文本数据(如 SEC 文件、财报电话会议记录或金融新闻)中提取可交易信号
- 使用 深度学习 模型(如 CNN 和 RNN)处理市场和另类数据,如何使用生成对抗网络生成合成数据,以及使用深度强化学习训练交易智能体
本仓库包含 超过 150 个 Jupyter Notebook,将书中讨论的概念、算法和用例付诸实践。它们提供了大量示例,展示了:
- 如何从市场、基本面以及另类文本和图像数据中处理并提取信号
- 如何训练和调优模型以预测不同资产类别和投资期限的回报,包括如何复现近期发表的研究成果
- 如何设计、回测和评估交易策略。
我们 强烈建议 在阅读本书的同时查看这些 Notebook;它们通常处于已执行状态,并且经常包含因篇幅限制而未收录的额外信息。 除了本仓库中的信息外,本书的网站还包含章节摘要和补充信息。
加入 ML4T 社区!
为了方便读者就本书内容和代码示例,以及他们自身策略的开发、实施和行业发展提出问题,我们托管了一个在线平台 (https://exchange.ml4trading.io/)。欢迎加入 (https://exchange.ml4trading.io/) 我们的社区,与其他对利用机器学习进行交易策略感兴趣的交易者建立联系,分享您的经验,并互相学习!
第二版有何新内容?
首先,本书 (https://www.amazon.com/Machine-Learning-Algorithmic-Trading-alternative/dp/1839217715?pf_rd_r=VMKJPZC4N36TTZZCWATP&pf_rd_p=c5b6893a-24f2-4a59-9d4b-aff5065c90ec&pd_rd_r=8f331266-0d21-4c76-a3eb-d2e61d23bb31&pd_rd_w=kVGNF&pd_rd_wg=LYLKH&ref_=pd_gw_ci_mcx_mr_hp_d) 演示了如何从多样化的数据源中提取信号,并使用广泛的监督、无监督和强化学习算法来为不同资产类别设计交易策略。它还提供了相关的数学和统计知识,以方便您调整算法或解释结果。此外,它还涵盖了有助于您处理市场和基本面数据、提取信息量丰富的特征以及管理交易策略绩效的金融背景知识。
从实践角度来看,第二版旨在为您提供开发基于机器学习的交易策略所需的概念理解和工具。为此,它将机器学习定位为一个流程中的关键环节,而非独立的练习,并介绍了从数据来源、特征工程和模型优化到策略设计和回测的端到端机器学习交易工作流。更具体地说,ML4T 工作流从为定义明确的投资组合产生想法、收集相关数据和提取信息特征开始。它还涉及设计、调优和评估适用于预测任务的机器学习模型。最后,它需要开发交易策略以执行模型的预测信号,并使用回测引擎在历史数据上模拟和评估其表现。一旦您决定在真实市场中执行算法策略,您将会发现自己反复迭代这个工作流程,以吸收新信息并适应不断变化的环境。
第二版 (https://www.amazon.com/Machine-Learning-Algorithmic-Trading-alternative/dp/1839217715?pf_rd_r=GZH2XZ35GB3BET09PCCA&pf_rd_p=c5b6893a-24f2-4a59-9d4b-aff5065c90ec&pd_rd_r=91a679c7-f069-4a6e-bdbb-a2b3f548f0c8&pd_rd_w=2B0Q0&pd_rd_wg=GMY5S&ref_=pd_gw_ci_mcx_mr_hp_d) 对 ML4T 工作流的强调体现在一个新的策略回测章节、一个新的附录(描述了超过 100 种不同的 Alpha 因子),以及许多新的实际应用案例中。为了清晰和易读,我们还重写了大部分现有内容。交易应用现在使用了比每日美国股票价格更广泛的数据源,包括国际股票和 ETF。它还演示了如何使用分钟频率的股票数据为日内交易策略应用机器学习。此外,它将另类数据源的覆盖范围扩展到包括用于情绪分析和回报预测的 SEC 文件,以及用于土地分类的卫星图像。
第二版的另一项创新是复现了近期发表在顶级期刊上的几项交易应用:
- 第 18 章 演示了如何基于 Sezer 和 Ozbahoglu (https://www.researchgate.net/publication/324802031_Algorithmic_Financial_Trading_with_Deep_Convolutional_Neural_Networks_Time_Series_to_Image_Conversion_Approach) (2018) 的研究,将卷积神经网络应用于转换为图像格式的时间序列以进行回报预测。
- 第 20 章 展示了如何基于 Shihao Gu、Bryan T. Kelly 和 Dacheng Xiu (2019) 的 Autoencoder Asset Pricing Models (https://www.aqr.com/Insights/Research/Working-Paper/Autoencoder-Asset-Pricing-Models),使用自编码器提取以股票特征为条件的风险因子进行资产定价。
- 第 21 章 展示了如何基于 Jinsung Yoon、Daniel Jarrett 和 Mihaela van der Schaar (2019) 的 Time-series Generative Adversarial Networks (https://papers.nips.cc/paper/8789-time-series-generative-adversarial-networks),使用生成对抗网络创建合成训练数据。
所有应用现在都使用了(撰写时)最新的可用软件版本,例如 pandas 1.0 和 TensorFlow 2.2。还有一个定制版本的 Zipline,使其在设计交易策略时易于包含机器学习模型预测。
安装、数据源和错误报告
代码示例依赖于来自数据科学和金融领域的广泛 Python 库。没有必要尝试一次性安装所有库,因为这会增加遇到版本冲突的可能性。相反,我们建议您在学习特定章节时按需安装所需的库。
2022 年 3 月更新:
zipline-reloaded、pyfolio-reloaded、alphalens-reloaded和empyrical-reloaded现在已可在conda-forge频道获取。ml4t频道仅包含过时的版本,并将很快被移除。 2021 年 4 月更新:随着 Zipline (https://zipline.ml4trading.io) 的更新,不再需要使用 Docker。安装说明现在指向特定于操作系统的环境文件,这应该能简化您运行 Notebook 的过程。 2021 年 2 月更新:代码示例 2.0 版将 Docker 镜像提供的 conda 环境更新为 Python 3.8、Pandas 1.2 和 TensorFlow 1.2 等;Zipline 回测环境现在使用 Python 3.6。
- 安装 目录包含关于设置和使用 Docker 镜像来运行 Notebook 的详细说明。它还包含配置文件,用于设置各种
conda环境并直接在您的机器上安装 Notebook 中使用的包(如果您愿意,并且取决于您的系统,您可能需要付出额外努力)。 - 要下载和预处理本书中使用的许多数据源,请参阅 data 目录下各个 Notebook 以及 README 文件中的说明。
如果您在安装环境、下载数据或运行代码方面遇到任何困难,请在本仓库(此处 (https://github.com/stefan-jansen/machine-learning-for-trading/issues))中提交 GitHub issue。关于如何使用 GitHub issues 请参见此处 (https://guides.github.com/features/issues/)。 更新:您可以在此处 (https://www.algoseek.com/ml4t-book-data.html) 下载本书使用的 algoseek (https://www.algoseek.com) 数据。有关预处理的说明,请参阅 第 2 章 以及 第 12 章 中关于梯度提升模型的日内交易示例。 更新:figures 目录包含本书中使用的图表的彩色版本。
大纲和章节摘要
本书 (https://www.amazon.com/Machine-Learning-Algorithmic-Trading-alternative/dp/1839217715?pf_rd_r=GZH2XZ35GB3BET09PCCA&pf_rd_p=c5b6893a-24f2-4a59-9d4b-aff5065c90ec&pd_rd_r=91a679c7-f069-4a6e-bdbb-a2b3f548f0c8&pd_rd_w=2B0Q0&pd_rd_wg=GMY5S&ref_=pd_gw_ci_mcx_mr_hp_d) 分为四个部分,分别解决在获取和处理市场、基本面及另类数据,为交易背景下的各种预测任务开发机器学习解决方案,以及设计和评估依赖机器学习模型生成的预测信号的交易策略时出现的不同挑战。
每个章节的目录包含一个 README 文件,其中包含有关内容、代码示例和额外资源的更多信息。
- 06 机器学习流程
- 07 线性模型:从风险因子到回报预测
- 08 ML4T 工作流:从模型到策略回测
- 09 用于波动率预测和统计套利的时间序列模型
- 10 贝叶斯机器学习:动态夏普比率与配对交易
- 11 随机森林:日本股票的多空策略
- 12 提升你的交易策略
- 13 使用无监督学习的数据驱动风险因子和资产配置
- 17 用于交易的深度学习
- 18 用于金融时间序列和卫星图像的 CNN
- 19 用于多变量时间序列和情感分析的 RNN
- 20 用于条件风险因子和资产定价的自编码器
- 21 用于合成时间序列数据的生成对抗网络
- 22 深度强化学习:构建交易智能体
- 23 结论与后续步骤
- 24 附录 - Alpha 因子库
第一部分:从数据到策略开发
第一部分为开发由机器学习驱动的交易策略提供了一个框架。它聚焦于为本书中讨论的机器学习算法和策略提供动力的数据,概述了如何工程化和评估适用于机器学习模型的特征,以及在执行交易策略时如何管理和衡量投资组合的绩效。
01 机器学习在交易中的应用:从想法到执行
本章探讨了促使机器学习成为投资行业竞争优势来源的行业趋势。我们还将探讨机器学习在投资流程中的位置,以支持算法交易策略。更具体地说,它涵盖了以下主题:
- 机器学习在投资行业兴起的关键趋势
- 利用机器学习的交易策略的设计与执行
- 机器学习在交易中的常见用例
02 市场与基本面数据:来源和技术
本章展示了如何处理市场和基本面数据,并描述了它们所反映的环境的关键方面。例如,熟悉各种订单类型和交易基础设施不仅对解释数据很重要,而且对于正确设计回测模拟也很重要。我们还演示了如何使用 Python 访问和操作交易和财务报表数据。实际示例演示了如何处理来自 NASDAQ 逐笔交易数据和 Algoseek 分钟线数据(包含丰富的属性集以捕捉供需动态),我们稍后将在基于机器学习的日内策略中使用这些数据。我们还涵盖了各种数据提供商 API 以及如何从 SEC 获取财务报表信息。具体来说,本章涵盖:
- 市场数据如何反映交易环境的结构
- 处理分钟频率的日内交易和报价数据
- 使用 NASDAQ ITCH 数据从逐笔交易数据中重建限价订单簿
- 使用不同类型的 K 线总结逐笔交易数据
- 处理使用 XBRL 编码的电子文件
- 解析和组合市场与基本面数据以创建市盈率序列
- 如何使用 Python 访问各种市场和基本面数据源
03 金融另类数据:类别和用例
本章概述了另类数据的类别和用例,描述了评估激增的数据源和提供商的标准,并总结了当前的市场格局。它还演示了如何通过抓取网络来创建另类数据集。
相似文章
@techNmak: 我想推荐一个对任何学习机器学习的人都真正有价值的资源:ML-From-Scratch…
一个GitHub仓库,使用纯NumPy从零实现基础机器学习算法,旨在通过强调清晰度而非性能来帮助学习者理解算法的内部工作原理。它涵盖了监督学习、无监督学习、深度学习以及强化学习主题。
@Jolyne_AI: 推荐一本 GitHub 上的免费机器学习与 AI 学习书:Machine Learning Q and AI。 全书围绕 30 个机器学习与人工智能的核心问题展开,从神经网络到模型部署,把关键知识点一次讲清。 GitHub:http://…
推荐免费的机器学习与AI书籍《Machine Learning Q and AI》,围绕30个核心问题系统讲解神经网络、深度学习、计算机视觉、NLP和模型部署,提供GitHub和在线阅读链接。
@jimclydego: 哈佛大学刚刚开源了一整套机器学习系统教科书。大多数ML课程教你如何训练模型。这本…
哈佛大学开源了一套全面的两卷本机器学习系统教科书,涵盖针对现实约束工程化AI系统,包括分布式训练、生产推理、边缘部署和治理,并配有TinyTorch、硬件套件和交互工具等实践组件。
@Jolyne_AI: 网上的机器学习教程常见两种极端:要么满屏公式、讲得抽象难啃;要么只教你调框架、原理一笔带过。结果学完能跑代码,却抓不住算法的核心。 我在 GitHub 上挖到一本开源免费电子书《Applied Machine Learning in Py…
推荐一本开源免费的电子书《Applied Machine Learning in Python》,它结合数学推导和Python实现,覆盖30+算法,并提供交互式可视化,适合系统学习机器学习原理和实战。
harvard-edge/cs249r_book
一本来自哈佛大学的关于机器学习系统的开源教科书,涵盖人工智能系统工程的原则与实践,配有配套实验和套件。