# machine-learning-for-trading **Repository Path**: trackcc/machine-learning-for-trading ## Basic Information - **Project Name**: machine-learning-for-trading - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-15 - **Last Updated**: 2025-12-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 机器学习与交易(原书第2版) 本书旨在全面且实用地展示机器学习如何为算法交易策略创造价值。它涵盖了从线性回归到深度强化学习的各类机器学习技术,并演示了如何构建、回测和评估由模型预测驱动的交易策略。 全书共分为四部分,包含**23个章节及1个附录**,总篇幅**超过800页**,具体内容如下: - 数据获取、**金融特征工程**和投资组合管理的核心要点 - 基于监督学习与无监督学习算法的多空**策略设计与评估** - 如何从美国证券交易委员会文件、财报电话会议记录、财经新闻等**金融文本数据**中提取可交易信号 - 如何将卷积神经网络、循环神经网络等**深度学习**模型与市场数据、另类数据结合使用,如何通过生成对抗网络生成合成数据,以及如何利用深度强化学习训练交易智能体
本代码仓库包含**150余个Jupyter Notebook**,将书中的核心概念、算法和应用场景转化为可运行的实践代码。这些示例具体展示了: - 如何处理市场数据、基本面数据、另类文本与图像数据,并从中提取有效信号 - 如何训练和调优模型,以预测不同资产类别、不同投资周期下的收益,包括复现近期发表的相关研究成果 - 如何设计、回测和评估交易策略 > 我们**强烈建议**你在阅读本书时同步查看这些Notebook;它们大多已完成运行,并且包含许多因篇幅限制未写入书中的额外内容。 除了本仓库的内容外,本书官网(ml4trading.io)还提供了各章节总结及补充资料。 ## 加入机器学习与交易社区! 为了方便读者针对本书内容、代码示例、自有策略的开发与落地,以及行业动态进行提问交流,我们搭建了线上交流平台(https://exchange.ml4trading.io/)。 欢迎你**加入**我们的社区,与其他致力于将机器学习应用于交易策略的从业者建立连接、分享经验、共同学习! ## 第2版更新内容 首先需要说明的是,本书展示了如何从多元数据源中提取信号,并利用监督学习、无监督学习和强化学习等各类算法,为不同资产类别设计交易策略。同时,书中还提供了相关的数学与统计学知识,助力算法调优和结果解读。此外,本书涵盖的金融背景知识,能够帮助你更好地处理市场与基本面数据、提取有效特征,并对交易策略的表现进行管理。 从实践角度出发,第2版旨在帮助你掌握构建自研机器学习交易策略所需的理论知识与工具。为此,本书将机器学习定位为交易流程中的关键环节而非孤立任务,系统介绍了机器学习交易的端到端工作流——从数据获取、特征工程、模型优化,到策略设计与回测。 具体而言,机器学习交易工作流的步骤如下:首先为明确的投资标的池生成策略思路,收集相关数据并提取有效特征;接着设计、调优并评估适用于预测任务的机器学习模型;最后基于模型生成的预测信号制定交易策略,并利用回测引擎在历史数据上模拟和评估策略表现。当你决定在真实市场中执行算法策略时,需要反复迭代这一工作流,以融入新信息并适应不断变化的市场环境。
第2版对机器学习交易工作流的侧重,体现在新增内容上:包括一个讲解**策略回测**的章节(对应目录`08_ml4t_workflow`)、一个介绍超100种不同阿尔法因子的**附录**(对应目录`24_alpha_factor_library`),以及大量全新的实践应用案例。同时,本书对原有内容进行了全面重写,以提升内容的清晰度与可读性。 在交易应用部分,本书使用的数据来源不再局限于美国股票的日频数据,还涵盖了国际股票与交易所交易基金;同时演示了如何利用股票分钟级数据,基于机器学习构建日内交易策略。此外,本书拓展了另类数据源的覆盖范围,新增了基于美国证券交易委员会文件的情绪分析与收益预测,以及利用卫星图像进行土地利用分类的相关内容。 第2版的另一大创新点在于,复现了多篇发表于顶级期刊的交易应用研究: - **第18章**(对应目录`18_convolutional_neural_nets`)基于Sezer与Ozbahoglu在2018年发表的论文,演示了如何将时间序列数据转换为图像格式,再利用卷积神经网络进行收益预测 - **第20章**(对应目录`20_autoencoders_for_conditional_risk_factors`)基于Shihao Gu、Bryan T. Kelly与Dacheng Xiu在2019年发表的《自编码器资产定价模型》一文,展示了如何利用自编码器提取基于股票特征的风险因子,以应用于资产定价 - **第21章**(对应目录`21_gans_for_synthetic_time_series`)基于Jinsung Yoon、Daniel Jarrett与Mihaela van der Schaar在2019年发表的《时间序列生成对抗网络》一文,介绍了如何利用生成对抗网络生成合成训练数据 所有应用案例均采用了成书时的最新软件版本,例如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。 - **安装指南**:`installation`目录下提供了详细的Docker镜像配置与使用说明,可用于运行Notebook。同时,该目录还包含了多种Conda环境的配置文件,如果你倾向于在本地直接安装所需包(并愿意根据自身系统环境进行额外调试),可参考这些文件进行配置 - **数据获取**:如需下载和预处理本书使用的大部分数据源,可参考`data`目录下的README文件及相关Notebook中的说明 > 如果你在环境配置、数据下载或代码运行过程中遇到任何问题,请在本代码仓库提交**GitHub Issue**(提交地址:https://github.com/stefan-jansen/machine-learning-for-trading/issues)。关于GitHub Issue的使用方法,可参考官方指南(https://guides.github.com/features/issues/)。 > **更新**:本书使用的**Algoseek**数据可通过此链接下载(https://www.algoseek.com/ml4t-book-data.html)。数据预处理方法详见**第2章**(对应目录`02_market_and_fundamental_data/02_algoseek_intraday/README.md`),基于梯度提升模型的日内交易案例详见**第12章**(对应目录`12_gradient_boosting_machines/10_intraday_features.ipynb`)。 > **更新**:`figures`目录下提供了本书中所有图表的彩色版本。 # 目录与章节摘要 本书分为四部分,分别探讨了市场数据、基本面数据与另类数据的获取与处理、交易场景下各类预测任务的机器学习解决方案,以及基于机器学习预测信号的交易策略设计与评估等核心问题。 > 每个章节对应的目录下均包含一个README文件,提供了关于章节内容、代码示例与补充资源的额外说明。 [**第一部分:从数据到策略开发**](#第一部分:从数据到策略开发) * [01 机器学习与交易:从思路到落地](#01-机器学习与交易:从思路到落地) * [02 市场与基本面数据:来源与处理技术](#02-市场与基本面数据:来源与处理技术) * [03 金融另类数据:分类与应用场景](#03-金融另类数据:分类与应用场景) * [04 金融特征工程:阿尔法因子挖掘方法](#04-金融特征工程:阿尔法因子挖掘方法) * [05 投资组合优化与绩效评估](#05-投资组合优化与绩效评估) [**第二部分:机器学习与交易基础**](#第二部分:机器学习与交易基础) * [06 机器学习流程](#06-机器学习流程) * [07 线性模型:从风险因子到收益预测](#07-线性模型:从风险因子到收益预测) * [08 机器学习交易工作流:从模型到策略回测](#08-机器学习交易工作流:从模型到策略回测) * [09 时间序列模型:波动率预测与统计套利](#09-时间序列模型:波动率预测与统计套利) * [10 贝叶斯机器学习:动态夏普比率与配对交易](#10-贝叶斯机器学习:动态夏普比率与配对交易) * [11 随机森林:日本股市多空策略实战](#11-随机森林:日本股市多空策略实战) * [12 提升算法优化交易策略](#12-提升算法优化交易策略) * [13 无监督学习:数据驱动的风险因子与资产配置](#13-无监督学习:数据驱动的风险因子与资产配置) [**第三部分:自然语言处理与交易**](#第三部分:自然语言处理与交易) * [14 文本数据与交易:情绪分析](#14-文本数据与交易:情绪分析) * [15 主题建模:财经新闻摘要提取](#15-主题建模:财经新闻摘要提取) * [16 词嵌入技术:财报电话会议与美国证券交易委员会文件分析](#16-词嵌入技术:财报电话会议与美国证券交易委员会文件分析) [**第四部分:深度学习与强化学习**](#第四部分:深度学习与强化学习) * [17 深度学习与交易](#17-深度学习与交易) * [18 卷积神经网络:金融时间序列与卫星图像分析](#18-卷积神经网络:金融时间序列与卫星图像分析) * [19 循环神经网络:多变量时间序列与情绪分析](#19-循环神经网络:多变量时间序列与情绪分析) * [20 自编码器:条件风险因子与资产定价](#20-自编码器:条件风险因子与资产定价) * [21 生成对抗网络:合成时间序列数据生成](#21-生成对抗网络:合成时间序列数据生成) * [22 深度强化学习:构建交易智能体](#22-深度强化学习:构建交易智能体) * [23 结论与后续方向](#23-结论与后续方向) * [24 附录:阿尔法因子库](#24-附录:阿尔法因子库) ## 第一部分:从数据到策略开发 本部分为基于机器学习的交易策略开发搭建了完整框架。内容聚焦于驱动机器学习算法与策略的核心数据,阐述了适用于机器学习模型的特征工程与评估方法,以及交易策略执行过程中的投资组合管理与绩效衡量方式。 ### 01 机器学习与交易:从思路到落地 本章(对应目录`01_machine_learning_for_trading`)探讨了推动机器学习成为投资行业竞争优势来源的行业趋势,分析了机器学习在投资流程中助力算法交易策略落地的具体环节。 具体而言,本章涵盖以下内容: - 推动机器学习在投资行业兴起的核心趋势 - 基于机器学习的交易策略设计与执行流程 - 机器学习在交易领域的典型应用场景 ### 02 市场与基本面数据:来源与处理技术 本章(对应目录`02_market_and_fundamental_data`)介绍了市场与基本面数据的处理方法,阐述了这些数据所反映的市场环境的关键特征。例如,熟悉各类订单类型与交易基础设施,不仅有助于解读数据,还能保证回测模拟的准确性。同时,本章演示了如何使用Python获取和处理交易数据与财务报表数据。 实践案例部分展示了如何处理纳斯达克逐笔成交数据与Algoseek分钟级K线数据,这些数据包含丰富的买卖盘供需动态指标,后续将用于构建基于机器学习的日内交易策略。此外,本章还介绍了各类数据供应商的API接口,以及如何从美国证券交易委员会获取财务报表信息。
具体而言,本章涵盖以下内容: - 市场数据如何反映交易环境的结构特征 - 分钟级日内交易与报价数据的处理方法 - 利用纳斯达克ITCH数据从逐笔成交数据中重构**限价订单簿** - 利用多种K线类型对逐笔成交数据进行汇总 - 处理基于可扩展商业报告语言(XBRL)编码的**电子申报文件** - 解析并整合市场数据与基本面数据,构建市盈率序列 - 如何使用Python获取各类市场与基本面数据源 ### 03 金融另类数据:分类与应用场景 本章(对应目录`03_alternative_data`)梳理了另类数据的分类与应用场景,提出了评估日益增多的数据源与供应商的标准,并总结了当前另类数据市场的整体格局。 同时,本章演示了如何通过网页爬取构建另类数据集,例如收集财报电话会议记录,为本书第三部分介绍的自然语言处理与情绪分析算法提供数据支持。 具体而言,本章涵盖以下内容: - 另类数据革命催生了哪些新的信号来源 - 个人、企业与传感器如何产生多元化的另类数据 - 另类数据的主要分类与核心供应商 - 如何评估海量另类数据在交易中的应用价值 - 如何使用Python处理另类数据,例如通过网络爬虫获取数据 ### 04 金融特征工程:阿尔法因子挖掘方法 如果你已经具备机器学习相关知识,就会知道特征工程是实现高效预测的关键要素。在交易领域,这一点同样重要——学术界与行业研究者数十年来一直致力于探索驱动资产市场与价格变动的核心因素,以及能够解释或预测价格走势的有效特征。
本章(对应目录`04_alpha_factor_research`)总结了相关研究的核心结论,为你开展阿尔法因子挖掘工作提供起点。同时,本章介绍了计算与测试阿尔法因子的必备工具,重点展示了NumPy、Pandas与TA-Lib库在数据处理中的应用,并讲解了小波变换、卡尔曼滤波等常用平滑技术,以降低数据中的噪声干扰。通过本章学习,你将掌握以下内容: - 阿尔法因子的分类、有效原理与衡量方法 - 如何使用NumPy、Pandas与TA-Lib构建阿尔法因子 - 如何利用小波变换与卡尔曼滤波对数据进行降噪处理 - 利用Zipline框架测试单个及多个阿尔法因子 - 如何使用Alphalens工具(项目地址:https://github.com/quantopian/alphalens)评估因子的预测性能 ### 05 投资组合优化与绩效评估 阿尔法因子生成的信号会被算法交易策略转化为具体交易指令,进而形成多空头寸。最终投资组合的收益与风险,将决定该策略是否达成投资目标。
投资组合优化有多种方法,包括应用机器学习技术学习资产间的层级关系,并据此将资产视为互补品或替代品,以设计投资组合的风险结构。本章(对应目录`05_strategy_evaluation`)涵盖以下内容: - 投资组合风险与收益的衡量指标 - 利用均值-方差优化及替代方法管理投资组合权重 - 在投资组合配置场景中应用机器学习优化资产配置 - 利用Zipline框架模拟交易,并基于阿尔法因子构建投资组合 - 如何使用Pyfolio工具(项目地址:https://quantopian.github.io/pyfolio/)评估投资组合绩效 ## 第二部分:机器学习与交易基础 本部分介绍了监督学习与无监督学习的核心算法,并演示了这些算法在交易策略中的应用。同时,本章引入了Quantopian平台,你可以借助该平台整合本书所讲的数据与机器学习技术,构建能够在真实市场中执行交易的算法策略。 ### 06 机器学习流程 本章(对应目录`06_machine_learning_process`)开启了本书第二部分的内容,该部分将演示如何将各类监督学习与无监督学习模型应用于交易场景。在通过Python库演示相关应用之前,本章会先讲解每种模型的假设条件与适用场景。 这些模型及其应用存在诸多共通之处,本章将对这些共性内容进行梳理,以便后续章节可以聚焦于模型的具体使用方法。本章系统阐述了机器学习模型预测性能的建模、训练、调优与评估流程,具体内容如下:
- 监督学习与无监督学习的数据学习原理 - 用于回归与分类任务的监督学习模型训练与评估方法 - 偏差-方差权衡对模型预测性能的影响机制 - 过拟合导致预测误差的诊断与解决方法 - 利用交叉验证优化模型超参数,重点关注时间序列数据场景 - 为何金融数据在进行样本外测试时需要额外关注 ### 07 线性模型:从风险因子到收益预测 线性模型是回归与分类场景下用于推理和预测的标准工具。许多广泛应用的资产定价模型均以线性回归为基础。岭回归、Lasso回归等正则化模型,通常能够通过降低过拟合风险提升预测效果。回归模型的典型应用包括识别驱动资产收益的风险因子,以实现风险管理或收益预测;分类模型则可用于预测价格变动方向等任务。
本章(对应目录`07_linear_models`)涵盖以下内容: - 线性回归的工作原理与假设条件 - 线性回归模型的训练与诊断方法 - 利用线性回归预测股票收益 - 利用正则化技术提升模型预测性能 - 逻辑回归的工作原理 - 如何将回归问题转化为分类问题 ### 08 机器学习交易工作流:从模型到策略回测 本章(对应目录`08_ml4t_workflow`)从端到端的视角,介绍了基于机器学习算法的交易策略设计、模拟与评估流程。 本章将详细演示如何使用Python库Backtrader(项目地址:https://www.backtrader.com/)与Zipline(项目地址:https://zipline.ml4trading.io/index.html),在历史市场环境中对机器学习驱动的策略进行回测。 机器学习交易工作流的最终目标,是通过历史数据验证候选策略的有效性,从而辅助决策是否将其部署到真实市场并投入资金。策略的真实模拟需要准确还原证券市场的运行机制与交易执行过程。同时,还需要关注诸多方法论层面的问题,以避免结果偏差与错误结论,防止这些问题导致不良投资决策。
具体而言,通过本章学习,你将能够掌握以下技能: - 规划并实现端到端的策略回测流程 - 理解并规避回测实现过程中的关键陷阱 - 探讨向量式回测与事件驱动型回测引擎的优缺点 - 识别并评估事件驱动型回测系统的核心组件 - 基于分钟级与日频数据源,设计并执行机器学习交易工作流,支持模型独立训练或与回测流程集成 - 利用Zipline与Backtrader框架设计并评估自研策略 ### 09 时间序列模型:波动率预测与统计套利 本章(对应目录`09_time_series_models`)聚焦于从时间序列历史数据中提取信号,以预测该序列未来取值的相关模型。 由于交易数据天然具有时间维度属性,时间序列模型在该领域应用广泛。本章介绍了诊断时间序列平稳性等特征的工具,以及提取潜在有效模式特征的方法;同时引入了单变量与多变量时间序列模型,用于预测宏观经济数据与波动率走势。 最后,本章讲解了如何利用协整关系识别时间序列间的共同趋势,并基于这一核心概念构建配对交易策略。
具体而言,本章涵盖以下内容: - 如何利用时间序列分析辅助建模流程 - 单变量自回归模型与移动平均模型的估计与诊断方法 - 构建自回归条件异方差(ARCH)模型预测波动率 - 多变量向量自回归模型的构建方法 - 利用协整关系开发配对交易策略 ### 10 贝叶斯机器学习:动态夏普比率与配对交易 贝叶斯统计能够量化未来事件的不确定性,并在获取新信息时,以严谨的方式优化参数估计结果。这种动态方法能够很好地适应不断变化的金融市场环境。 贝叶斯机器学习方法能够帮助我们更深入地理解统计指标、参数估计与预测结果的不确定性。其应用场景广泛,从更精细化的风险管理,到结合市场环境变化动态更新预测模型等领域均有涉及。
具体而言,本章(对应目录`10_bayesian_machine_learning`)涵盖以下内容: - 贝叶斯统计在机器学习中的应用原理 - 基于PyMC3的概率编程实践 - 如何使用PyMC3定义并训练机器学习模型 - 如何运用前沿抽样方法进行近似推理 - 贝叶斯机器学习的应用案例:计算动态夏普比率、动态配对交易对冲比率,以及估计随机波动率 ### 11 随机森林:日本股市多空策略实战 本章(对应目录`11_decision_trees_random_forests`)将决策树与随机森林算法应用于交易场景。决策树能够从数据中学习规则,以刻画输入与输出之间的非线性关系。本章演示了如何训练决策树模型,用于回归与分类预测任务;如何可视化并解读模型学习到的规则;以及如何调优模型超参数,以优化偏差-方差权衡,防止过拟合。 本章后半部分介绍了集成学习模型,该类模型通过随机组合多个决策树生成单一预测结果,以降低预测误差。最后,本章展示了一个基于随机森林模型生成的交易信号构建的日本股市多空策略案例。
简而言之,本章涵盖以下内容: - 决策树在回归与分类任务中的应用 - 从决策树中提取洞见,并可视化模型从数据中学到的规则 - 理解集成模型为何往往能取得更优的预测效果 - 利用自助聚合(Bagging)技术解决决策树的过拟合问题 - 随机森林模型的训练、调优与解读方法 - 利用随机森林设计并评估可盈利的交易策略 ### 12 提升算法优化交易策略 梯度提升算法是另一类基于决策树的集成学习算法,其性能通常优于随机森林。两者的核心区别在于,提升算法会根据模型累积的预测误差,调整后续每棵决策树的训练数据。随机森林通过随机抽取数据子集,独立训练多棵决策树;而提升算法则采用序贯训练方式,并对训练数据进行加权处理。 本章(对应目录`12_gradient_boosting_machines`)展示了主流开源库如何实现高性能梯度提升算法,并将该算法应用于日频与高频数据,回测了一个日内交易策略。
具体而言,本章涵盖以下内容: - 提升算法与自助聚合(Bagging)的区别,以及梯度提升算法如何从自适应提升算法演变而来 - 利用Scikit-learn库设计并调优自适应提升与梯度提升模型 - 利用XGBoost、LightGBM与CatBoost等主流框架,在大规模数据集上构建、优化并评估梯度提升模型 - 利用SHAP值(项目地址:https://github.com/slundberg/shap)解读梯度提升模型并提取洞见 - 利用提升算法处理高频数据,设计日内交易策略 ### 13 无监督学习:数据驱动的风险因子与资产配置 无监督学习的主要任务包括降维与聚类: - **降维**:将现有特征转换为维度更低的新特征集,同时最大限度地减少信息损失。降维算法种类繁多,区别在于信息损失的衡量方式、变换的线性/非线性属性,以及对新特征集施加的约束条件等方面 - **聚类**:聚类算法的目标是识别并分组相似的样本或特征,而非生成新特征。不同聚类算法的差异在于样本相似性的定义方式,以及对聚类结果的假设条件
具体而言,本章(对应目录`13_unsupervised_learning`)涵盖以下内容: - 主成分分析(PCA)与独立成分分析(ICA)的线性降维原理 - 利用主成分分析从资产收益中提取数据驱动的风险因子与特征投资组合 - 利用流形学习技术高效可视化非线性高维数据 - 利用T-SNE与UMAP算法探索高维图像数据 - K均值聚类、层次聚类与密度聚类算法的工作原理 - 利用层次聚类构建基于层次风险平价的稳健投资组合 ## 第三部分:自然语言处理与交易 文本数据内容丰富,但格式非结构化,因此需要更多预处理步骤,才能让机器学习算法从中提取潜在信号。核心挑战在于,将文本转换为算法可处理的数值格式,同时保留文本的语义信息。 接下来的三章将介绍多种技术,这些技术能够捕捉人类易于理解的语言特征,使机器学习算法也能对其进行解读。 ### 14 文本数据与交易:情绪分析 文本数据内容丰富,但具有高度非结构化特征,需要更多预处理步骤才能让机器学习算法从中提取有效信息。核心挑战在于,在将文本转换为数值格式的同时,不丢失其语义含义。 本章(对应目录`14_working_with_text_data`)演示了如何通过构建文档-词项矩阵,将文档表示为词频向量,进而将其作为文本分类与情绪分析的输入数据。同时,本章引入了朴素贝叶斯算法,并对比了其与线性模型、树模型的性能表现。 具体而言,本章涵盖以下内容: - 自然语言处理的核心工作流 - 如何利用SpaCy与TextBlob构建多语言特征提取流水线 - 执行词性标注、命名实体识别等自然语言处理任务 - 利用文档-词项矩阵将词项转换为数值 - 利用朴素贝叶斯模型对新闻文本进行分类 - 如何使用不同机器学习算法进行情绪分析 ### 15 主题建模:财经新闻摘要提取 本章(对应目录`15_topic_modeling`)利用无监督学习技术对文档中的潜在主题进行建模,提取隐藏的核心思想。这些主题能够帮助我们从海量金融报告中提炼深度洞见。 主题模型能够自动生成复杂且易于解读的文本特征,进而助力从大规模文本数据中提取交易信号。该技术可加速文档审阅流程、实现相似文档聚类,并为预测建模提供标注信息。 主题模型的应用场景包括:识别公司披露文件、财报电话会议记录或合同中的核心主题,以及基于情绪分析或相关资产收益进行文本标注等。
具体而言,本章涵盖以下内容: - 主题建模的发展历程、实现目标与应用价值 - 利用潜在语义索引(LSI)降低文档-词项矩阵的维度 - 利用概率潜在语义分析(pLSA)提取文本主题 - 潜在狄利克雷分配(LDA)算法如何改进pLSA,成为主流主题模型 - 主题建模结果的可视化与评估方法 - 利用Scikit-learn与Gensim库实现LDA算法 - 如何将主题建模应用于财报电话会议记录与财经新闻文本集 ### 16 词嵌入技术:财报电话会议与美国证券交易委员会文件分析 本章(对应目录`16_word_embeddings`)利用神经网络学习单词、段落等语义单元的向量表示。这些向量为稠密向量,通常包含数百个实数值维度,相比词袋模型生成的高维稀疏向量,具有维度更低的特点。通过这种方式,每个语义单元被嵌入到一个连续的向量空间中。 词嵌入的实现原理是,训练模型将词项与其上下文关联,其优势在于,语义相近的词项在向量空间中具有相似的表示。因此,词嵌入能够通过向量间的相对位置,编码单词间的语义关系等特征。这些特征具有很强的表征能力,将在后续章节中用于深度学习模型。
具体而言,本章涵盖以下内容: - 词嵌入的定义,及其捕捉语义信息的原理 - 如何获取并使用预训练词向量 - 训练Word2Vec模型的高效网络架构 - 如何利用TensorFlow与Gensim训练Word2Vec模型 - 词向量的可视化与质量评估方法 - 基于美国证券交易委员会文件训练Word2Vec模型,预测股票价格走势 - Doc2Vec如何扩展Word2Vec,并助力情绪分析任务 - Transformer模型的注意力机制为何对自然语言处理领域产生深远影响 - 如何基于金融数据微调预训练BERT模型 ## 第四部分:深度学习与强化学习 本部分阐述并演示了如何将深度学习技术应用于算法交易。 深度学习算法在非结构化数据模式识别方面具有强大能力,因此特别适用于图像、文本等另类数据的分析。 书中的应用案例包括:结合文本与价格数据,基于美国证券交易委员会文件预测盈利惊喜;生成合成时间序列数据,扩充训练数据集规模;以及利用深度强化学习训练交易智能体等。 其中多个应用案例复现了近期发表于顶级期刊的研究成果。 ### 17 深度学习与交易 本章(对应目录`17_deep_learning`)介绍了前馈神经网络,并演示了如何利用反向传播算法高效训练大型模型,同时管理过拟合风险。此外,本章还展示了TensorFlow 2.0与PyTorch的使用方法,以及如何优化神经网络架构以生成交易信号。 后续章节将以此为基础,将各类神经网络架构应用于不同投资场景,重点关注另类数据相关任务。这些架构包括:适用于时间序列、自然语言等序列数据的循环神经网络;特别适合处理图像数据的卷积神经网络。同时,本书还将介绍深度无监督学习技术,例如利用生成对抗网络(GAN)生成合成数据;以及强化学习技术,用于训练能够与环境交互学习的智能体。
具体而言,本章涵盖以下内容: - 深度学习如何解决复杂领域的人工智能问题 - 推动深度学习走向普及的关键技术突破 - 前馈神经网络如何从数据中学习特征表示 - 如何在Python中设计并训练深度神经网络 - 利用Keras、TensorFlow与PyTorch实现深度神经网络 - 构建并调优深度神经网络,预测资产收益 - 基于深度神经网络信号设计并回测交易策略 ### 18 卷积神经网络:金融时间序列与卫星图像分析 卷积神经网络架构持续发展演进。本章介绍了成功应用案例中常见的网络组件,演示了如何利用迁移学习加速模型训练,以及如何使用卷积神经网络进行目标检测。 卷积神经网络能够从图像或时间序列数据中生成交易信号。例如,卫星数据可通过农业用地、矿山、交通网络的航拍图像,预测大宗商品趋势;摄像头采集的视频数据可用于预测消费行为。本章展示了如何构建卷积神经网络,对卫星图像中的经济活动进行分类。 通过利用时间序列与图像数据的结构相似性,卷积神经网络也能实现高质量的时间序列分类。本章基于格式转换后的时间序列数据,设计了相应的交易策略。
具体而言,本章(对应目录`18_convolutional_neural_nets`)涵盖以下内容: - 卷积神经网络如何通过多种组件,高效建模网格结构数据 - 利用TensorFlow训练、调优并正则化适用于图像与时间序列数据的卷积神经网络 - 利用迁移学习简化卷积神经网络训练流程,即使在小数据集场景下也能适用 - 基于转换为图像格式的时间序列数据,训练卷积神经网络预测收益,并设计相应交易策略 - 如何基于卫星图像对经济活动进行分类 ### 19 循环神经网络:多变量时间序列与情绪分析 循环神经网络(RNN)的输出由前一时刻的输出与当前输入共同决定,这一特性使其成为具有“记忆”能力的模型,并在更深的计算图中共享参数。长短期记忆网络(LSTM)与门控循环单元(GRU)是两种主流架构,它们能够有效解决长序列依赖的学习难题。 循环神经网络专为序列数据建模设计,可实现单/多输入序列到单/多输出序列的映射,特别适用于自然语言处理任务。同时,该网络也可应用于单变量与多变量时间序列,预测市场或基本面数据。本章将结合第16章介绍的词嵌入技术,展示如何利用循环神经网络对另类文本数据进行建模,实现文档情绪分类。
具体而言,本章涵盖以下内容: - 循环连接如何赋予循环神经网络记忆模式、建模隐藏状态的能力 - 循环神经网络计算图的展开与分析方法 - 门控单元如何从数据中学习调节循环神经网络的记忆状态,以捕获长序列依赖 - 如何在Python中设计并训练适用于单变量与多变量时间序列的循环神经网络 - 如何学习词嵌入,或利用预训练词向量结合循环神经网络进行情绪分析 - 构建双向循环神经网络,基于自定义词嵌入预测股票收益 ### 20 自编码器:条件风险因子与资产定价 本章(对应目录`20_autoencoders_for_conditional_risk_factors`)展示了如何将无监督深度学习技术应用于交易场景。同时,本章介绍了自编码器——一种以重构输入数据为目标的神经网络,其核心是通过隐藏层参数学习数据的新特征表示。自编码器长期以来被用于非线性降维任务,可结合前几章介绍的神经网络架构实现。 本章复现了AQR资本管理公司的一篇近期研究论文,展示了如何基于自编码器构建交易策略。具体而言,本章将利用深度神经网络与自编码器,提取基于股票特征的风险因子,并用于预测股票收益。
具体而言,通过本章学习,你将掌握以下内容: - 具有实用价值的自编码器类型及其工作原理 - 如何在Python中构建并训练自编码器 - 如何利用自编码器提取数据驱动的风险因子,并结合资产特征预测收益 ### 21 生成对抗网络:合成时间序列数据生成 本章介绍了生成对抗网络(GAN)。生成对抗网络通过对抗训练的方式,同时训练生成器与判别器两个网络:生成器学习生成能够欺骗判别器的样本,判别器则学习区分真实样本与生成样本。其目标是训练出一个能够生成与训练数据分布一致的合成样本的生成模型。 生成对抗网络在图像数据领域应用广泛,同时也被用于医疗领域的合成时间序列数据生成。后续针对金融数据的实验探索了其潜力,研究方向包括生成可用于机器学习训练或策略回测的替代价格轨迹。本章复现了2019年神经信息处理系统大会(NeurIPS)上发表的时间序列生成对抗网络相关论文,以演示其实现方法并展示实验结果。
具体而言,通过本章学习,你将掌握以下内容: - 生成对抗网络的工作原理、应用价值及其在交易领域的应用场景 - 如何利用TensorFlow 2设计并训练生成对抗网络 - 生成合成金融数据,扩充机器学习模型训练与策略回测的输入数据 ### 22 深度强化学习:构建交易智能体 强化学习(RL)建模的是智能体与随机环境交互过程中的目标导向学习行为。强化学习通过奖励信号,学习状态与动作的价值,以优化智能体的长期决策目标。其最终目标是学习一个策略,该策略能够编码智能体的行为规则,实现从状态到动作的映射。 本章(对应目录`22_deep_reinforcement_learning`)展示了如何构建并求解强化学习问题。内容涵盖基于模型与无模型的强化学习方法,介绍了OpenAI Gym环境,并将深度学习与强化学习相结合,训练能够在复杂环境中自主决策的智能体。最后,本章演示了如何将强化学习技术适配到算法交易场景,构建一个能够与金融市场交互、优化目标函数的交易智能体。
具体而言,本章涵盖以下内容: - 马尔可夫决策过程(MDP)的定义 - 利用价值迭代与策略迭代求解马尔可夫决策过程 - 在离散状态与动作空间的环境中应用Q学习算法 - 在连续环境中构建并训练深度Q学习智能体 - 利用OpenAI Gym设计自定义市场环境,训练强化学习交易智能体 ### 23 结论与后续方向 在本书的最后一章,我们将对全书介绍的核心工具、应用案例与经验教训进行简要总结,帮助你在掌握大量细节知识后,把握整体知识框架。 同时,本章将指出本书未覆盖的内容方向,你可以基于这些方向,拓展所学的机器学习技术,并将其应用于日常工作。 总而言之,本章将实现以下目标: - 回顾本书的核心要点与经验教训 - 指出拓展本书技术内容的后续研究方向 - 提供将机器学习融入投资流程的实践建议 ### 24 附录:阿尔法因子库 本书始终强调,合理的特征设计——包括恰当的预处理与降噪步骤——是构建高效交易策略的关键。本附录总结了特征工程相关的经验教训,并提供了该领域的补充知识。 具体而言,本附录聚焦于两方面内容:一是TA-Lib库实现的各类技术指标(详见第4章,对应目录`04_alpha_factor_research`);二是WorldQuant公司发表的论文《101个公式化阿尔法因子》(Kakushadze, 2016,论文地址:https://arxiv.org/pdf/1601.00991.pdf)中介绍的因子,这些因子均为实际量化交易中使用的因子,平均持有期为0.6至6.4天。 本附录涵盖以下内容: - 如何利用TA-Lib与NumPy/Pandas计算数十种技术指标 - 复现上述论文中介绍的公式化阿尔法因子 - 利用多种指标评估因子的预测能力,包括秩相关系数、互信息、特征重要性、SHAP值与Alphalens工具 --- 要不要我帮你整理这份文档里的**核心知识点和工具库清单**,做成一个方便查阅的速查表?