Machine-Learning-for-Algorithmic-Trading-Second-Edition_Original
Machine-Learning-for-Algorithmic-Trading-Second-Edition_Original 是 Packt 出版的《机器学习与算法交易(第二版)》的官方配套开源资源。它旨在解决金融从业者如何将复杂的机器学习理论转化为实际可盈利的交易策略这一难题,填补了从模型构建到回测评估之间的实践空白。
这套资源非常适合量化分析师、数据科学家以及对算法交易感兴趣的开发者使用。内容涵盖四大板块共 23 章,通过超过 150 个可运行的 Jupyter Notebook,手把手演示如何获取数据、进行金融特征工程及管理投资组合。其技术亮点在于不仅讲解了线性回归等基础方法,还深入探讨了利用深度学习(如 CNN、RNN)处理市场数据,从 SEC 文件或财报电话会议记录等文本中提取交易信号,甚至利用生成对抗网络(GAN)合成数据以及通过深度强化学习训练智能交易代理。无论是希望优化现有策略的专业人士,还是想要系统学习量化金融的学生,都能从中获得从数据清洗到策略部署的全流程实战指导。
使用场景
某量化对冲基金的研究员正试图构建一个融合财报文本情绪与历史量价数据的自动化交易策略,以捕捉短期市场错误定价。
没有 Machine-Learning-for-Algorithmic-Trading-Second-Edition_Original 时
- 数据清洗无从下手:面对 SEC filings(美国证券交易委员会文件)和电话会议记录等非结构化文本,缺乏成熟的预处理流程,难以提取有效的金融特征。
- 模型选型盲目试错:在从线性回归到深度强化学习的众多算法中迷失方向,不清楚如何针对特定资产类别和投资周期选择合适的监督或无监督学习模型。
- 回测系统脆弱:自行搭建的回测框架常忽略未来函数和数据泄露问题,导致策略在模拟盘表现优异,实盘却大幅亏损。
- 合成数据缺失:面对极端市场行情样本不足的问题,无法利用生成对抗网络(GANs)生成高质量的合成数据进行压力测试。
使用 Machine-Learning-for-Algorithmic-Trading-Second-Edition_Original 后
- 文本信号高效提取:直接复用书中提供的 150+ 个笔记本代码,快速实现从财经新闻和财报中提取可交易信号的自然语言处理流水线。
- 策略构建有章可循:依据书中涵盖的 23 章实战指南,精准设计基于 CNN、RNN 及深度强化学习的长短线策略,显著降低模型调试成本。
- 回测评估严谨可靠:采用书中演示的专业回测架构,有效规避常见陷阱,确保策略在多种市场环境下的稳健性与泛化能力。
- 数据增强能力提升:利用书中关于 GANs 的实战案例生成合成市场数据,弥补了罕见极端行情下的训练样本缺口,提升了模型鲁棒性。
Machine-Learning-for-Algorithmic-Trading-Second-Edition_Original 将复杂的机器学习理论转化为可执行的代码模板,帮助团队在短时间内完成了从数据源处理到策略实盘部署的全流程闭环。
运行环境要求
- 未说明 (支持 Docker 及 Conda 环境,通常兼容 Linux/macOS/Windows)
未明确必需 (涉及深度学习章节如 CNN/RNN/GAN/强化学习,建议使用 NVIDIA GPU)
未说明 (处理金融时间序列及替代数据,建议 16GB+)

快速开始
加入我们的新闻通讯 📬
DataPro
AI的未来正在展开。别掉队。
与DataPro保持同步,这是面向数据科学家、AI/ML研究人员和数据工程师的免费每周通讯。
从热门工具如PyTorch、scikit-learn、XGBoost和BentoML,到关于数据库优化和真实世界ML工作流的实用见解,您将快速获取所需信息。
用DataPro保持敏锐。加入超过11.5万名数据专业人士,不错过任何重要资讯。
BIPro
业务运行依赖于数据。确保您的数据讲述正确的故事。
BIPro是面向商业智能专业人士、分析师和数据领导者的免费每周通讯。
提供关于仪表盘设计、数据可视化和分析策略的实用技巧,涵盖Power BI、Tableau、Looker、SQL和dbt等工具。
通过BIPro变得更聪明。受到3.5万多名BI专业人士的信赖,看看您错过了什么。
机器学习在交易中的应用 - 第2版
本书链接旨在以实用且全面的方式展示机器学习如何为算法交易策略增值。书中涵盖了从线性回归到深度强化学习的广泛机器学习技术,并演示了如何构建、回测及评估由模型预测驱动的交易策略。
全书分为四部分,共23章加附录,超过800页,内容包括:
- 数据获取、金融特征工程和投资组合管理的重要方面,
- 基于监督和无监督机器学习算法的多空策略的设计与评估,
- 如何从SEC文件、财报电话会议记录及财经新闻等金融文本数据中提取可交易信号,
- 使用CNN、RNN等深度学习模型结合市场数据和另类数据,利用生成对抗网络生成合成数据,以及通过深度强化学习训练交易代理。
本仓库包含150多个笔记本,将书中讨论的概念、算法和用例付诸实践。这些笔记本提供了大量示例,展示了
- 如何处理并从市场、基本面以及另类文本和图像数据中提取信号,
- 如何训练和调优能够预测不同资产类别和投资期限收益的模型,包括复现近期发表的研究成果,
- 如何设计、回测和评估交易策略。
我们强烈建议在阅读本书时同时查看这些笔记本;它们通常处于已执行状态,且常常包含因书籍篇幅限制而未能收录的额外信息。
第2版有哪些新内容?
首先,本书(链接)展示了如何从多样化的数据源中提取信号,并利用广泛的监督学习、无监督学习和强化学习算法为不同资产类别设计交易策略。书中还提供了相关的数学和统计学知识,以帮助调优算法或解释结果。此外,它涵盖了金融背景知识,使读者能够处理市场数据和基本面数据,提取有用特征,并管理交易策略的绩效。
从实践角度来看,第2版旨在为您提供概念性理解与工具,以开发自己的基于机器学习的交易策略。为此,本书将机器学习视为一个流程中的关键环节,而非独立的操作,介绍了端到端的机器学习交易工作流,涵盖数据获取、特征工程、模型优化、策略设计以及回测等环节。
具体而言,ML4T工作流始于为明确的投资标的池构思策略创意,收集相关数据并提取有信息量的特征;接着是针对预测任务设计、调优和评估机器学习模型;最后则是根据模型的预测信号制定交易策略,并使用回测引擎在历史数据上模拟和评估策略表现。一旦决定在真实市场中执行算法策略,您将需要反复迭代这一工作流,以融入新信息并适应不断变化的市场环境。
第二版强调的ML4T工作流,体现在新增了关于策略回测的一章、描述超过100种阿尔法因子的新附录,以及许多新的实际应用案例。我们还对现有内容进行了大量重写,以提高清晰度和可读性。
这些交易应用现在使用的数据源比以往更广泛,不仅限于美国股市的日线数据,还包括国际股票和ETF。书中还演示了如何利用分钟级的股票数据构建日内交易策略。此外,对另类数据源的覆盖范围也进一步扩展,例如利用美国证监会的文件进行情绪分析和收益预测,以及借助卫星图像对土地利用类型进行分类。
第二版的另一项创新是复现了近期发表在顶级期刊上的几项交易应用:
- 第18章展示了如何将时间序列转换为图像格式后,再应用卷积神经网络进行收益预测,其方法基于Sezer和Ozbahoglu于2018年的研究《基于深度卷积神经网络的时间序列转图像方法的算法化金融交易》。
- 第20章介绍了如何基于Gu、Kelly和Xiu于2019年发表的论文《自编码器资产定价模型》,利用自编码器提取与个股特征相关的风险因子,用于资产定价。
- 第21章则说明了如何基于Yoon、Jarrett和van der Schaar于2019年提出的时间序列生成对抗网络技术,使用生成对抗网络创建合成训练数据。
所有应用目前均采用撰写时可用的最新软件版本,如pandas 1.0和TensorFlow 2.2。此外,书中还提供了一个定制版的Zipline库,方便在设计交易策略时轻松集成机器学习模型的预测结果。
安装与数据源
- 关于如何使用Docker镜像或设置各种conda环境来安装笔记本中所用的软件包,请参阅此处。
- 若要下载并预处理本书中使用的多种数据源,请参阅create_datasets。
章节概要
本书共分为四个部分,分别探讨在获取和处理市场、基本面及另类数据时遇到的不同挑战,在交易环境中为各类预测任务开发机器学习解决方案,以及设计并评估依赖于机器学习模型生成的预测信号的交易策略。
每个章节的目录中都包含一个README文件,其中提供了关于内容、代码示例及其他资源的补充信息。
- 06 机器学习流程
- 07 线性模型:从风险因子到收益预测
- 08 ML4T工作流:从模型到策略回测
- 09 时间序列模型:用于波动率预测与统计套利
- 10 贝叶斯机器学习:动态夏普比率与配对交易
- 11 随机森林:一种针对日本股票的多空策略
- 12 提升你的交易策略
- 13 无监督学习驱动的风险因子与资产配置
- 17 用于交易的深度学习
- 18 CNN应用于金融时间序列与卫星图像
- 19 RNN用于多元时间序列与情感分析
- 20 自编码器用于条件风险因子与资产定价
- 21 生成对抗网络用于合成时间序列数据
- 22 深度强化学习:构建交易智能体
- 23 结论与下一步行动
- 24 附录——阿尔法因子库
第1部分:从数据到策略开发
第一部分提供了一个基于机器学习(ML)开发交易策略的框架。它重点关注支撑本书中讨论的机器学习算法和策略的数据,概述了如何为机器学习模型构建和评估特征,并在执行交易策略时如何管理和衡量投资组合的绩效。
01 机器学习在交易中的应用:从想法到执行
本章探讨了促使机器学习成为投资行业竞争优势来源的行业趋势。我们还将研究机器学习在投资流程中所处的位置,以支持算法交易策略的实施。
具体而言,本章涵盖以下主题:
- 投资行业中机器学习兴起的关键趋势
- 利用机器学习设计和执行交易策略
- 机器学习在交易中的常见应用场景
02 市场与基本面数据:来源与技术
本章展示了如何处理市场和基本面数据,并描述了这些数据所反映的环境中的关键方面。例如,熟悉各种订单类型和交易基础设施不仅有助于正确解读数据,还能确保回测模拟的设计准确无误。此外,我们还演示了如何使用Python访问和操作交易数据及财务报表数据。
通过实际案例,我们展示了如何利用纳斯达克的逐笔数据和Algoseek的分钟级分时数据来处理交易数据,这些数据具有丰富的属性,能够捕捉供需动态,而这些动态将在后续用于基于机器学习的日内策略。同时,我们也介绍了多家数据提供商的API,以及如何从美国证券交易委员会获取财务报表信息。
- 市场数据如何反映交易环境的结构
- 处理分钟级别的日内成交与报价数据
- 使用纳斯达克ITCH协议从逐笔数据重建限价订单簿
- 利用不同类型的K线图汇总逐笔数据
- 处理可扩展商业报告语言(XBRL)编码的电子备案文件
- 解析并整合市场与基本面数据,构建市盈率序列
- 如何使用Python访问各类市场和基本面数据源
03 金融领域的另类数据:类别与用例
本章节概述了另类数据的类别和应用场景,介绍了评估不断涌现的数据源和提供商的标准,并总结了当前市场格局。
此外,本章还演示了如何通过网页爬取来构建另类数据集,例如收集财报电话会议的文字稿,以便在本书第三部分中与自然语言处理(NLP)及情感分析算法结合使用。
具体而言,本章涵盖以下内容:
- 在另类数据革命过程中涌现出哪些新型信号来源
- 个人、企业和各类传感器如何生成多样化的另类数据
- 另类数据的重要类别及其主要提供商
- 如何评估日益丰富的另类数据资源在交易中的应用潜力
- 使用Python进行另类数据处理,包括网络爬虫技术的应用
04 金融特征工程:如何研究阿尔法因子
如果你已经熟悉机器学习,就会知道特征工程是实现成功预测的关键环节。在交易领域,这一点同样至关重要。学术界和业界的研究人员几十年来一直在探究驱动资产市场与价格变动的因素,以及哪些特征能够解释或预测价格走势。
本章节以这些研究成果为核心要点,为你开启寻找阿尔法因子的旅程。同时,本书还提供了计算和测试阿尔法因子的必备工具,重点介绍了NumPy、pandas和TA-Lib等库如何帮助高效处理数据,以及小波变换和卡尔曼滤波等流行平滑技术如何有效降低数据噪声。阅读本章后,你将了解:
- 阿尔法因子的主要类别、其作用原理及衡量方法
- 如何利用NumPy、pandas和TA-Lib构建阿尔法因子
- 如何运用小波变换和卡尔曼滤波对数据去噪
- 使用Zipline离线环境及Quantopian平台测试单个或多个阿尔法因子
- 如何借助Alphalens,通过信息系数等指标评估预测性能
05 投资组合优化与绩效评估
阿尔法因子会生成信号,由算法策略转化为交易指令,进而形成多头和空头仓位。最终投资组合的收益与风险决定了该策略是否达成了既定的投资目标。
优化投资组合的方法多种多样,其中包括运用机器学习技术来挖掘资产间的层次化关系,在设计投资组合的风险特征时将其视为互补或替代关系。本章节涵盖以下内容:
- 如何度量投资组合的风险与收益
- 利用均值方差优化及其他方法管理投资组合权重
- 运用机器学习优化资产配置
- 使用Zipline模拟交易并基于阿尔法因子构建投资组合
- 如何借助pyfolio评估投资组合绩效
第二部分:机器学习在交易中的基础
第二部分将介绍监督学习和无监督学习的基本算法,并展示它们在交易策略中的应用。此外,还将介绍Quantopian平台,该平台允许你整合并运用本书中所开发的数据与机器学习技术,从而在真实市场中执行算法交易策略。
06 机器学习流程
本章节作为第二部分的开篇,旨在说明如何将多种监督与无监督机器学习模型应用于交易。我们将首先解释每种模型的假设与适用场景,随后通过不同的Python库演示相关应用。
许多模型及其应用具有若干共性。本章将聚焦这些共性内容,以便在后续章节中更深入地探讨各模型的具体用法。本章以系统化的流程为主线,阐述如何制定、训练、调优机器学习模型,并对其预测性能进行评估。具体内容包括:
- 监督学习与无监督学习从数据中学习的基本原理
- 回归与分类任务中监督学习模型的训练与评估
- 偏差-方差权衡对预测性能的影响
- 如何诊断并解决过拟合导致的预测误差
- 利用交叉验证优化超参数,尤其针对时间序列数据
- 为何金融数据在进行样本外测试时需要额外关注
07 线性模型:从风险因子到收益预测
线性模型是回归与分类问题中用于推断与预测的标准工具。许多广泛使用的资产定价模型都依赖于线性回归。而岭回归和Lasso回归等正则化模型则通过限制过拟合风险,往往能带来更好的预测效果。典型的回归应用会识别驱动资产收益的风险因素,以管理风险或预测收益;而分类问题则常用于方向性的价格预测。
第7章涵盖以下主题:
- 线性回归的工作原理及其假设条件
- 线性回归模型的训练与诊断
- 利用线性回归预测股票收益
- 通过正则化提升预测性能
- 逻辑回归的工作原理
- 将回归问题转化为分类问题
08 ML4T 工作流:从模型到策略回测
本章[08_ml4t_workflow]从端到端的角度,介绍如何设计、模拟并评估由机器学习算法驱动的交易策略。我们将详细演示如何使用 Python 库 backtrader 和 Zipline 在历史市场环境中对基于机器学习的策略进行回测。ML4T 工作流的最终目标是从历史数据中获取证据,以帮助决策是否将候选策略部署到实盘市场并投入资金。对策略的真实模拟必须忠实反映证券市场的运作方式和交易执行过程。此外,还需关注若干方法论上的细节,以避免产生偏差的结果和虚假发现,从而导致糟糕的投资决策。
具体而言,学完本章后,你将能够:
- 规划并实施端到端的策略回测
- 理解并规避回测实施中的关键陷阱
- 讨论向量化与事件驱动型回测引擎各自的优缺点
- 识别并评估事件驱动型回测器的关键组件
- 使用分钟级和日频数据源设计并执行 ML4T 工作流,其中机器学习模型可以单独训练,也可以在回测过程中同步训练
- 利用 Zipline 和 backtrader 设计并评估自己的策略
09 时间序列模型用于波动率预测与统计套利
本章[09_time_series_models]聚焦于从时间序列的历史数据中提取信号,以预测该序列未来的值。由于交易天然具有时间维度,时间序列模型被广泛使用。本章提供了诊断时间序列特征(如平稳性)以及提取潜在有用模式特征的工具。同时,还介绍了单变量和多变量时间序列模型,用于预测宏观数据和波动率模式。最后,本章解释了协整如何识别不同时间序列间的共同趋势,并展示了如何基于这一关键概念开发配对交易策略。
具体内容包括:
- 如何利用时间序列分析为建模过程做准备并提供信息
- 估计和诊断单变量自回归及移动平均模型
- 构建自回归条件异方差(ARCH)模型以预测波动率
- 如何构建多变量向量自回归模型
- 利用协整开发配对交易策略
10 贝叶斯机器学习:动态夏普比率与配对交易
贝叶斯统计使我们能够量化对未来事件的不确定性,并在新信息不断涌现时以合理的方式修正估计。这种动态方法非常适合金融市场的不断变化特性。贝叶斯方法应用于机器学习,可以深入洞察统计指标、参数估计和预测结果中的不确定性。其应用范围涵盖更精细的风险管理,以及根据市场环境变化动态更新预测模型等。
具体来说,本章[10_bayesian_machine_learning]涵盖了:
- 贝叶斯统计在机器学习中的应用
- 使用 PyMC3 进行概率编程
- 利用 PyMC3 定义并训练机器学习模型
- 如何运行最先进的采样方法进行近似推理
- 贝叶斯机器学习在计算动态夏普比率、动态配对交易对冲比例以及估计随机波动率方面的应用
11 随机森林:针对日本股票的多空策略
本章[11_decision_trees_random_forests]将决策树和随机森林应用于交易。决策树可以从数据中学习规则,这些规则编码了非线性的输入输出关系。我们将展示如何训练决策树来解决回归和分类问题,可视化并解释模型所学到的规则,以及调整模型的超参数以优化偏差-方差权衡并防止过拟合。
本章的第二部分介绍了集成模型,它以随机化的方式组合多个决策树,从而生成误差更低的单一预测。最后,我们提出了一种基于随机森林模型生成的交易信号的日本股市多空策略。
简而言之,本章内容包括:
- 将决策树用于回归和分类任务
- 从决策树中获取洞察,并可视化从数据中学到的规则
- 理解为何集成模型往往能带来更优异的效果
- 使用自助聚合方法应对决策树过拟合的问题
- 训练、调优并解读随机森林模型
- 利用随机森林设计并评估一项盈利的交易策略
12 提升你的交易策略
梯度提升是一种基于树的集成算法,通常比随机森林效果更好。其关键区别在于,梯度提升会根据模型累计的误差动态调整每棵树的训练数据。而随机森林是独立地使用数据的随机子集训练多棵树,梯度提升则是按顺序进行,并对数据重新加权。本章[12_gradient_boosting_machines]展示了当前最先进的库如何实现卓越性能,并将梯度提升应用于日频和高频数据,以回测一种日内交易策略。
具体而言,我们将讨论以下主题:
- 梯度提升与自助聚合有何不同,梯度提升又是如何从自适应提升发展而来的
- 使用 scikit-learn 设计并调优自适应提升和梯度提升模型
- 利用最先进的 XGBoost、LightGBM 和 CatBoost 实现,在大型数据集上构建、优化并评估梯度提升模型
- 使用 SHAP 值解释并深入理解梯度提升模型
- 将梯度提升与高频数据结合,设计日内交易策略
13 基于无监督学习的数据驱动风险因子与资产配置
无监督学习的主要任务是降维和聚类:
- 降维将现有特征转换为一组新的、更小的特征,同时尽量减少信息损失。现有的算法种类繁多,它们在衡量信息损失的方式、采用线性或非线性变换以及对新特征集施加的约束等方面各有不同。
- 聚类算法不是寻找新的特征,而是识别并分组相似的观测值或特征。不同算法在定义观测值相似性的方法以及对聚类结果的假设上存在差异。
具体而言,本章[13_unsupervised_learning]涵盖:
- 主成分分析(PCA)和独立成分分析(ICA)如何进行线性降维
- 利用PCA从资产收益率中识别数据驱动的风险因子和特征组合
- 使用流形学习有效地可视化非线性高维数据
- 使用T-SNE和UMAP探索高维图像数据
- k-means、层次聚类和基于密度的聚类算法的工作原理
- 利用凝聚聚类构建具有层次化风险平价的稳健投资组合
第三部分:用于交易的自然语言处理
文本数据内容丰富,但格式非结构化,因此需要更多的预处理,以便机器学习算法能够提取潜在信号。关键挑战在于将文本转换为算法可使用的数值形式,同时保留其语义或含义。
接下来的三章将介绍几种技术,这些技术能够捕捉人类易于理解的语言细微差别,从而使机器学习算法也能加以解读。
14 用于交易的文本数据:情感分析
文本数据内容非常丰富,但高度非结构化,因此需要更多的预处理才能使机器学习算法提取相关信息。一个关键挑战是在不丢失文本意义的情况下将其转换为数值形式。 本章[14_working_with_text_data]展示了如何通过构建文档-词项矩阵,将文档表示为词频向量,进而作为文本分类和情感分析的输入。此外,还介绍了朴素贝叶斯算法,并将其性能与线性模型和树模型进行了比较。
本章特别涵盖了以下内容:
- NLP的基本工作流程是什么
- 如何使用spaCy和TextBlob构建多语言特征提取流水线
- 执行词性标注或命名实体识别等NLP任务
- 利用文档-词项矩阵将文本转换为数字
- 使用朴素贝叶斯模型对新闻进行分类
- 如何利用不同的机器学习算法进行情感分析
15 主题建模:总结金融新闻
本章[15_topic_modeling]利用无监督学习来建模文档中的潜在主题并提取隐藏的主旨。这些主题可以为大量金融报告提供深入洞察。 主题模型能够自动创建复杂且可解释的文本特征,从而帮助从大量文本中提取交易信号。它们还能加快文档审查速度,实现相似文档的聚类,并生成对预测建模有用的注释。应用包括识别公司披露文件、财报电话会议记录或合同中的关键主题,以及基于情感分析或相关资产收益的注释。
具体来说,本章涵盖了:
- 主题建模的发展历程、作用及其重要性
- 使用潜在语义索引降低文档-词项矩阵的维度
- 利用概率潜在语义分析(pLSA)提取主题
- 潜在狄利克雷分配(LDA)如何改进pLSA,使其成为最流行的主题模型
- 可视化和评估主题建模的结果
- 使用scikit-learn和gensim运行LDA
- 如何将主题建模应用于财报电话会议记录和金融新闻文章
16 用于财报电话会议和SEC备案文件的词嵌入
本章[16_word_embeddings]利用神经网络学习单个语义单元(如单词或段落)的向量表示。这些向量包含几百个实数值,相比词袋模型的高维稀疏向量更为稠密。因此,这些向量将每个语义单元嵌入到一个连续的向量空间中。
词嵌入是通过训练模型使标记与其上下文相关而得到的,其优势在于相似的用法会对应相似的向量。因此,它们通过相对位置编码了词语之间的关系等语义信息。这些强大的特征将在后续章节中与深度学习模型结合使用。
具体而言,本章将涵盖:
- 词嵌入是什么,如何捕捉语义信息
- 如何获取并使用预训练的词向量
- 哪些网络架构最适合训练word2vec模型
- 如何使用TensorFlow和gensim训练word2vec模型
- 可视化和评估词向量的质量
- 如何在SEC备案文件上训练word2vec模型以预测股价变动
- doc2vec如何扩展word2vec并有助于情感分析
- 为什么Transformer的注意力机制对NLP产生了如此深远的影响
- 如何在金融数据上微调预训练的BERT模型
第四部分:深度学习与强化学习
第四部分解释并演示如何利用深度学习进行算法交易。 深度学习算法在非结构化数据中识别模式的强大能力,使其特别适合处理图像和文本等另类数据。
示例应用展示了如何将文本和价格数据结合起来,从SEC备案文件中预测盈利惊喜;如何生成合成时间序列以扩充训练数据量;以及如何使用深度强化学习训练交易代理。其中一些应用复制了近期发表在顶级期刊上的研究成果。
17 深度学习在交易中的应用
本章介绍前馈神经网络(NN),并演示如何利用反向传播高效训练大型模型,同时管理过拟合风险。此外,还将展示如何使用 TensorFlow 2.0 和 PyTorch,以及如何优化神经网络架构以生成交易信号。
在接下来的几章中,我们将在此基础上,针对不同投资应用场景,特别是另类数据,应用多种神经网络架构。其中包括专为时间序列或自然语言等序列数据设计的循环神经网络,以及特别适用于图像数据的卷积神经网络。我们还将探讨深度无监督学习,例如如何使用生成对抗网络(GAN)创建合成数据。此外,还将讨论强化学习,用于训练能够与环境交互式学习的智能体。
具体而言,本章将涵盖:
- 深度学习如何解决复杂领域中的人工智能挑战
- 推动深度学习如今广受欢迎的关键创新
- 前馈网络如何从数据中学习表示
- 使用 Python 设计和训练深度神经网络(NN)
- 利用 Keras、TensorFlow 和 PyTorch 实现深度神经网络
- 构建并调优深度神经网络以预测资产收益
- 基于深度神经网络信号设计并回测交易策略
18 用于金融时间序列和卫星图像的卷积神经网络
卷积神经网络架构仍在不断发展。本章描述了成功应用中常见的构建模块,展示了迁移学习如何加速学习过程,以及如何使用卷积神经网络进行目标检测。
卷积神经网络可以从图像或时间序列数据中生成交易信号。卫星数据可通过农业区、矿山或交通网络的航拍图像来预测大宗商品趋势。摄像头视频可以帮助预测消费者活动;我们将展示如何构建一个能够对卫星图像中的经济活动进行分类的卷积神经网络。
此外,卷积神经网络还能通过利用其与图像的结构相似性,提供高质量的时间序列分类结果,并且我们会设计一种基于以图像格式呈现的时间序列数据的策略。
更具体地说,本章介绍的内容包括:
- 卷积神经网络如何利用多个构建模块高效地建模网格状数据
- 使用 TensorFlow 训练、调优和正则化用于图像和时间序列数据的卷积神经网络
- 利用迁移学习简化卷积神经网络的开发流程,即使在数据较少的情况下也能实现
- 设计一种基于卷积神经网络对以图像格式呈现的时间序列数据进行收益预测的交易策略
- 如何根据卫星图像对经济活动进行分类
19 用于多元时间序列和情感分析的循环神经网络
循环神经网络(RNN)将每个输出计算为前一输出和新数据的函数,从而有效地创建了一个具有记忆功能、并在更深的计算图中共享参数的模型。其中较为著名的架构包括长短期记忆网络(LSTM)和门控循环单元(GRU),它们旨在解决学习长距离依赖关系的难题。
循环神经网络的设计目的是将一个或多个输入序列映射到一个或多个输出序列,尤其适合处理自然语言。它们也可应用于单变量和多变量时间序列,以预测市场或基本面数据。本章将介绍 RNN 如何利用我们在第 16 章中讨论的词嵌入技术,对替代文本数据进行建模,从而对文档中表达的情感进行分类。
更具体而言,本章将探讨:
- 循环连接如何使 RNN 能够记忆模式并建模隐藏状态
- 展开并分析 RNN 的计算图
- 门控单元如何从数据中学习调节 RNN 内存,以实现长距离依赖
- 在 Python 中设计和训练用于单变量和多变量时间序列的 RNN
- 如何学习词嵌入或使用预训练的词向量进行 RNN 情感分析
- 构建双向 RNN,利用自定义词嵌入预测股票收益
20 用于条件风险因子和资产定价的自编码器
本章介绍如何将无监督深度学习应用于交易。我们还将讨论自编码器,即一种经过训练能够在学习隐藏层参数所编码的新表示的同时重现输入的神经网络。自编码器长期以来一直被用于非线性降维,其基础正是我们在过去三章中介绍过的神经网络架构。
我们将复现一篇近期的 AQR 论文,该论文展示了自编码器如何支撑交易策略。我们将使用一个基于自编码器的深度神经网络,提取风险因子并预测股票收益,这些预测会根据一系列股票属性进行条件化。
更具体地说,在本章中您将了解到:
- 哪些类型的自编码器具有实际用途及其工作原理
- 使用 Python 构建和训练自编码器
- 如何利用自编码器提取数据驱动的风险因子,同时考虑资产特征以预测收益
21 用于生成合成时间序列数据的生成对抗网络
本章介绍生成对抗网络(GAN)。GAN 在竞争环境中同时训练生成器和判别器网络,使生成器学会生成能够欺骗判别器、使其无法区分与给定训练数据类别样本的样本。其目标是生成一个能够产出代表该类别的合成样本的生成模型。
尽管 GAN 最常用于图像数据,但它们也被用于在医疗领域生成合成时间序列数据。随后的金融数据实验则探讨了 GAN 是否能生成对机器学习训练或策略回测有用的替代价格轨迹。我们将复现 2019 年 NeurIPS 时间序列 GAN 论文,以说明这一方法并展示相关结果。
更具体地说,在本章中您将了解到:
- GAN 的工作原理、其优势以及如何将其应用于交易
- 使用 TensorFlow 2 设计和训练 GAN
- 生成合成金融数据,以扩展可用于训练机器学习模型和回测的数据来源
22 深度强化学习:构建交易智能体
强化学习(RL)通过智能体与随机环境的交互来实现目标导向的学习。RL通过从奖励信号中学习状态和动作的价值,优化智能体针对长期目标的决策过程。最终目标是推导出一种策略,该策略编码行为规则,并将状态映射到动作。
本章展示了如何构建并解决一个强化学习问题。它涵盖了基于模型和无模型的方法,介绍了OpenAI Gym环境,并将深度学习与强化学习相结合,训练一个能够在复杂环境中导航的智能体。最后,我们将展示如何通过建模一个与金融市场交互并试图优化目标函数的智能体,将强化学习应用于算法交易。
具体而言,本章将涵盖:
- 定义马尔可夫决策问题(MDP)
- 使用值迭代和策略迭代求解MDP
- 在具有离散状态和动作的环境中应用Q学习
- 构建并在连续环境中训练深度Q学习智能体
- 利用OpenAI Gym设计自定义市场环境,并训练一个RL智能体进行股票交易
23 结论与下一步
在本总结性章节中,我们将简要回顾全书中的关键工具、应用及所学经验,以帮助读者在阅读大量细节之后仍能把握全局。随后,我们将指出一些未涉及但值得进一步关注的领域,以便您在扩展我们介绍的多种机器学习技术并将其有效应用于日常工作中时有所参考。
总之,在本章中,我们将:
- 回顾主要收获与经验教训
- 指明基于本书所介绍技术的下一步发展方向
- 提供建议,指导如何将机器学习融入您的投资流程
24 附录——阿尔法因子库
在整本书中,我们一直强调,特征的合理设计,包括适当的预处理和去噪,通常能够带来有效的策略。本附录综合了我们在特征工程方面的一些经验,并就这一重要主题提供了更多相关信息。
为此,我们重点研究了TA-Lib库中实现的广泛指标(参见第4章),以及WorldQuant于2016年发表的论文《101种公式化阿尔法》(Kakushadze, 2016),该论文介绍了实际生产环境中使用的量化交易因子,其平均持有期为0.6至6.4天。
本章内容包括:
- 如何使用TA-Lib以及NumPy/pandas计算数十种技术指标
- 构建上述论文中描述的公式化阿尔法因子
- 采用秩相关、互信息、特征重要性、SHAP值和Alphalens等多种指标评估结果的预测能力
免费下载PDF
如果您已购买本书的纸质版或Kindle电子版,即可免费获得无DRM限制的PDF版本。
只需点击链接即可领取您的免费PDF。
常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。
markitdown
MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器


