1 Star 6 Fork 4

OpenDocCN / apachecn-ml-zh

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
00.md 21.21 KB
一键复制 编辑 原始数据 按行查看 历史
布客飞龙 提交于 2021-11-11 00:14 . 2021-11-11 00:14:59

零、前言

如果您正在阅读本文,您可能会意识到机器学习ML已经成为许多行业的战略能力,包括投资行业。与 ML 的兴起密切相关的数字数据爆炸对投资产生了特别强大的影响,投资已经有了使用复杂模型处理信息的悠久历史。这些趋势促成了新的量化投资方法,并推动了将数据科学应用于自由裁量和算法交易策略的需求。

跨资产类别的交易范围非常广泛,因为它涵盖了从股票、政府债券到大宗商品和房地产的各种交易。这意味着大量新的备选数据源可能与市场和基础数据相关,而市场和基础数据过去曾是大多数分析工作的中心。

您可能还了解到,ML 或数据科学的成功应用需要在个人或团队层面整合统计知识、计算技能和领域专业知识。换言之,提出正确的问题、识别和理解可能提供答案的数据、部署广泛的工具以获得结果并以正确决策的方式对其进行解释是至关重要的。

因此,本书提供了 ML 在投资和贸易领域应用的综合视角。在本序言中,我们将概述您应该期望的内容,我们如何组织内容以促进实现我们的目标,以及您需要什么来实现您的目标并在过程中获得乐趣。

期待什么

本书旨在为您提供战略视角、概念理解和实用工具,以便在将 ML 应用于交易和投资过程时增加价值。为此,我们将 ML 作为流程中的一个关键元素,而不是一个独立的练习。最重要的是,我们引入了一个端到端的交易用 ML(ML4T)工作流,我们通过相关数据和代码示例将其应用于许多用例。

ML4T 工作流程从产生想法和获取数据开始,并继续提取特征、调整 ML 模型和设计根据模型的预测信号采取行动的交易策略。它还包括使用回溯测试引擎对历史数据模拟策略并评估其性能。

首先也是最重要的是,本书展示了如何从不同的数据源中提取信号,并使用广泛的监督、非监督和强化学习算法为不同的资产类别设计交易策略。此外,它还提供了相关的数学和统计背景,以便于调整算法和解释结果。最后,它包括金融背景,使您能够处理市场和基础数据,提取信息特征,并管理交易策略的表现。

该书强调,投资者至少可以从第三方数据中获得与其他行业相同的价值。因此,它不仅包括如何处理市场和基础数据,还包括如何获取、评估、处理和建模备选数据源,如非结构化文本和图像数据。

这本书没有提供投资建议或现成的交易算法,这并不奇怪。相反,它打算表明,ML 在交易领域面临着许多额外的挑战,从较低的信号内容到较短的时间序列,这往往使其难以实现稳健的结果。事实上,为了避免夸大 ML 的好处或低估获得好主意、获得正确数据、设计巧妙的特性和设计有效策略(具有潜在吸引力的回报)所需的努力,我们已经包括了一些不会产生好结果的示例。

相反,您应该发现这本书对于利用关键的 ML 算法,使用系统化的工作流程来通知交易策略非常有用。为此,我们提供了一个框架,指导您完成以下 ML4T 流程

  1. 为任何投资目标寻找、评估和合并数据
  2. 设计和调整从数据中提取预测信号的 ML 模型
  3. 根据结果制定和评估交易策略

读完这本书,你就可以开始设计和评估你自己的基于 ML 的策略,并且可能想考虑参加竞争或连接到一个在线经纪人的 API,并开始在真实世界中交易。

第二版有什么新内容

第二版强调了端到端的 ML4T 工作流程,反映在关于策略回溯测试的新章节中(第 8 章ML4T 工作流程–从模型到策略回溯测试),描述了 100 多个不同阿尔法因子的新附录,以及许多新的实际应用。为了清晰易读,我们还重写了大部分现有内容。

这些应用程序现在使用的数据来源范围比每日美国股票价格更广,包括国际股票和 ETF,以及分钟频率股票数据,以展示盘中策略。此外,备选数据源的覆盖范围也越来越广,包括用于情感分析和回报预测的 SEC 文件,以及用于土地利用分类的卫星图像。

此外,该书复制了最近在学术论文中发表的几个应用程序。第 18 章用于金融时间序列和卫星图像的 CNN演示了如何将卷积神经网络应用于转换为图像格式的时间序列,以进行收益预测。第 20 章条件风险因子和资产定价自编码器展示了如何使用自编码器提取股票特征条件下的风险因子进行资产定价。第 21 章**合成时间序列数据生成对抗网络研究了如何使用生成对抗网络创建合成训练数据。

所有应用程序现在都使用最新的可用软件版本,如 pandas 1.0 和 TensorFlow 2.2。还有一个定制版的 Zipline,可以在设计交易策略时轻松地包含机器学习模型预测。

谁应该读这本书

如果你是分析师、数据科学家或 ML 工程师,了解金融市场并对交易策略感兴趣,那么你应该会发现这本书内容丰富。作为一名致力于利用 ML 做出更好决策的投资专家,您还应该发现自己的价值。

如果你的背景是软件和 ML,你可以略读或跳过这方面的一些介绍材料。同样,如果您的专业知识是投资方面的,您可能会熟悉我们为不同背景的人提供的部分或全部金融背景。

本书假设您希望继续了解这个非常动态的领域。为此,它包括许多章末学术参考文献和附加资源,这些参考文献与 GitHub 配套存储库中每章的README文件链接。

您应该对使用 Python3 和科学计算库(如 NumPy、pandas 或 SciPy)感到满意,并期待着在此过程中学习其他许多库。学习 ML 和 scikit 的一些经验会有所帮助,但我们将简要介绍基本的工作流程,并参考各种资源来填补空白或深入研究。同样,金融和投资的基本知识将使一些术语更容易理解。

这本书涵盖的内容

本书全面介绍了 ML 如何为交易策略的设计和执行增加价值。它分为四个部分,涵盖数据来源和战略制定过程的不同方面,以及各种 ML 挑战的不同解决方案。

第 1 部分-数据、阿尔法系数和投资组合

第一部分涵盖与利用机器学习的交易策略相关的基本方面。它关注于驱动本书中讨论的 ML 算法和策略的数据,概述了如何设计捕获数据信号内容的功能,并解释了如何优化和评估投资组合的性能。

第 1 章交易机器学习——从构思到执行,总结了 ML 如何以及为何对交易变得重要,描述了投资过程,并概述了 ML 如何增值。

第 2 章**市场和基础数据–来源和技术介绍了如何获取和使用市场数据,包括交易所提供的交易数据和报告的金融数据。它还展示了我们在本书中所依赖的众多开源数据提供商

第 3 章金融备选数据——类别和用例解释了评估来源和提供者爆炸性数量的类别和标准。它还演示了如何通过抓取网站创建可替代的数据集,例如,收集与 Oracle T6 自然语言处理 OLE T7T(OrdT8 NLP Po.T9T)和情感分析一起使用的收入呼叫转录本,我们将在本书的第二部分中进行介绍。

第 4 章**金融特征工程——如何研究阿尔法因子,介绍了创建和评估数据转换的过程,这些数据转换捕获了预测信号,并展示了如何衡量因子表现。它还总结了风险因子研究中的见解,这些风险因子旨在解释金融市场中的阿尔法,否则被认为是有效的。此外,还演示了如何脱机使用 Python 库设计 alpha 因子,并介绍了ZiplineAlphalens库来回溯测试因子并评估其预测能力。

第五章**投资组合优化与表现评估介绍了如何管理、优化和评估因执行战略而产生的投资组合。它展示了风险度量,并展示了如何使用 Zipline 和pyfolio库应用它们。它还介绍了从投资组合风险角度优化策略的方法**。**

**## 第 2 部分–交易的 ML–基本面

第二部分说明了基本的有监督和无监督学习算法如何在端到端工作流程中为交易策略提供信息。

第 6 章**机器学习过程通过概述如何系统地制定、训练、调整和评估 ML 模型的预测性能来设置阶段。它还解决了特定领域的问题,例如使用金融时间序列的交叉验证在备选 ML 模型中进行选择。

第 7 章**线性模型——从风险因子到回报预测,展示了如何使用线性回归和逻辑回归进行推断和预测,以及如何使用正则化来管理过度拟合的风险。它演示了如何预测美国股票收益或其未来走势的方向,以及如何使用 Alphalens 评估这些预测的信号内容。

第 8 章**ML4T 工作流-从模型到策略回溯测试集成了迄今为止单独讨论的 ML4T 工作流的各个构建块。它从端到端的角度介绍了由 ML 算法驱动的交易策略的设计、模拟和评估过程。为此,它演示了如何使用 Python 库 backtrader 和 Zipline 在历史市场环境中对 ML 驱动的策略进行回溯测试。

第 9 章**波动性预测和统计套利时间序列模型涵盖了单变量和多变量时间序列诊断和模型,包括用于波动性预测的向量自回归模型以及 ARCH/GARCH 模型。它还介绍了协整,并展示了如何使用不同的交易所交易基金(ETF)将协整用于对交易策略。

第 10 章**贝叶斯 ML–动态夏普比率和成对交易介绍了概率模型以及马尔可夫链蒙特卡罗MCMC采样和变分贝叶斯如何促进近似推断。它还说明了如何使用PyMC3进行概率规划,以深入了解参数和模型不确定性,例如,在评估投资组合表现时。

第 11 章随机森林——日本股票的长-短策略,展示了如何构建、训练和调整基于非线性树的洞察和预测模型。它介绍了基于树的集成,并展示了随机林如何使用引导聚合来克服决策树的一些弱点。然后,我们继续为日本股票制定并回溯测试多空策略。

第 12 章**提升交易策略介绍了梯度提升,并演示了如何使用 XGBoost、LightBGM 和 CatBoost 库进行高性能培训和预测。在构建和评估基于 LightGBM 回报预测的美股交易策略之前,本章回顾了如何调整众多超参数,并使用SHapley 加法解释SHAP值)解释模型。

第 13 章**数据驱动的风险因子和无监督学习的资产配置展示了如何使用降维和聚类进行算法交易。它使用主成分和独立成分分析提取数据驱动的风险因子,并生成特征投资组合。本文介绍了几种聚类技术,并演示了分层聚类在资产分配中的应用。

第 3 部分-自然语言处理

第 3 部分侧重于文本数据,并介绍了最先进的无监督学习技术,以从这一关键的备选数据源中提取高质量的信号。

第 14 章**交易文本数据–情感分析演示了如何将文本数据转换为数字格式,并将第 2 部分情感分析的分类算法应用于大型数据集。

第 15 章**主题建模——总结财经新闻使用无监督学习来提取总结大量文档的主题,并提供更有效的方法来探索文本数据或使用主题作为分类模型的特征。它演示了如何将该技术应用于来源于 TeleT4 的收益调用转录本第 3 章 AutoT5 和提交给证券交易委员会的 TythT7(7 月 8 日)。

第 16 章盈利电话和 SEC 文件的单词嵌入,使用神经网络以词向量的形式学习最先进的语言特征,比传统文本特征更好地捕捉语义上下文,是从文本数据中提取交易信号的一种非常有前景的途径。

第 4 部分-深入和强化学习

第四部分介绍了深度学习和强化学习。

第 17 章**交易深度学习介绍了最流行的深度学习框架 TensorFlow 2 和 PyTorch,我们将在第 4 部分中使用它们。它介绍了训练和调整的技术,包括正则化。它还为美国股票建立并评估交易策略。

第 18 章**针对金融时间序列和卫星图像的 CNN涵盖了卷积神经网络CNN,对于大规模非结构化数据的分类任务非常强大。我们将介绍成功的建筑设计,培训 CNN 卫星数据(例如,预测经济活动),并使用转移学习加快培训。我们还将复制一个最新的想法将金融时间序列转换为二维图像格式,以利用 CNN 的内置假设。

第 19 章**多变量时间序列和情感分析 RNNs展示了递归神经网络****RNNs如何用于序列到序列建模,包括单变量和多变量时间序列的预测。它展示了 RNN 如何利用第 16 章中介绍的单词嵌入来根据 SEC 文件中表达的情感预测回报,从而在更长的时间内捕捉非线性模式。

第 20 章**条件风险因子和资产定价自编码器介绍了用于高维数据非线性压缩的自编码器。它实现了最近的一篇论文,该论文使用深度自编码器从数据中学习风险因子回报和因子负载,同时根据资产特征调整后者。我们将创建一个包含元数据的大型美国股票数据集,并生成预测信号。

第 21 章**合成时间序列数据生成对抗网络展示了深度学习中最令人兴奋的进展之一。生成性对抗网络GANs)能够学习复制目标数据类型的合成副本,例如名人的图像。除图像外,GANs 还应用于时间序列数据。本章复制了一种生成合成股票价格数据的新方法,可用于训练 ML 模型或对策略进行回溯测试,并评估其质量。

第 22 章**深度强化学习–构建交易智能体,介绍了强化学习RL如何允许智能体设计和培训,学习根据环境随时间优化决策。您将看到如何创建自定义交易环境,并使用 OpenAI Gym 构建响应市场信号的智能体。

第 23 章结论和下一步总结了经验教训,并概述了您可以采取的几个步骤,以继续学习和建立自己的交易策略。

附录**阿尔法因子库列出了近 200 种流行的金融特征,解释了它们的原理,并展示了如何计算它们。它还评估和比较了他们在预测每日股票收益方面的表现。

充分利用这本书

除了上一节总结的内容外,本书的实践性质还包括托管在 GitHub 上的 160 多台 Jupyter 笔记本电脑,这些笔记本电脑演示了如何在广泛的数据源上实际使用 ML 进行交易。本节介绍如何使用 GitHub 存储库,获取众多示例中使用的数据,并设置运行代码的环境。

GitHub 存储库

本书围绕 ML 算法在交易中的应用展开。在 GitHub 上托管的 Jupyter 笔记本中介绍了实际操作方面,这些笔记本更详细地说明了许多概念和模型。虽然这些章节的目标是自包含的,但代码示例和结果通常占用了太多的空间,无法包含在完整的形式中。因此,在阅读本章时查看包含重要附加内容的笔记本非常重要,即使您不打算自己运行代码。

存储库的组织方式是,每个章节都有自己的目录,其中包含相关笔记本和一个README文件,其中包含所需的单独说明,以及特定于章节内容的参考和资源。如有必要,相关笔记本在每章中均有标识。存储库还包含有关如何安装必要库和获取数据的说明。

您可以在以下位置找到代码文件:https://github.com/PacktPublishing/Machine-Learning-for-Algorithmic-Trading-Second-Edition

数据源

我们将使用来自市场、基本面和其他来源的免费历史数据。第 2 章第 3 章涵盖了这些数据源的特征和访问,并介绍了我们将在本书中使用的关键提供者。刚才描述的配套 GitHub 存储库包含关于如何获取或创建我们将在整个过程中使用的一些数据集的说明,并包括一些较小的数据集。

我们将寻找和使用的一些样本数据源包括但不限于:

  • 纳斯达克瘙痒订单数据
  • 电子数据收集、分析和检索(EDGAR)SEC 文件
  • 财报电话会议记录来自寻求阿尔法
  • 超过 3000 只美国股票的 Quandl 每日价格和其他数据点
  • 来自 Stooq 和使用 yfinance 库的国际股票数据
  • 美联储提供的各种宏观基本面和基准数据
  • 大型 Yelp 商业评论和 Twitter 数据集
  • 欧洲卫星图像数据

有些数据很大(几 GB),比如纳斯达克和 SEC 的文件。笔记本上显示了这种情况发生的时间。

有关说明,请参阅 GitHub 存储库根文件夹中的数据目录。

水蟒和码头工人图片

本书要求 Python 3.7 或更高版本,并使用 Anaconda 发行版。本书在四个部分中使用了各种 conda 环境,涵盖了广泛的库,同时限制了依赖性和冲突。

GitHub 存储库中的安装目录包含详细说明。您可以使用提供的 Docker 映像创建具有必要环境的容器,也可以使用.yml文件在本地创建容器。

下载示例代码文件

您可以从您的帐户下载本书的示例代码文件 http://www.packtpub.com 。如果您在其他地方购买了本书,您可以访问http://www.packtpub.com/support 并注册,将文件直接通过电子邮件发送给您。

您可以通过以下步骤下载代码文件:

  1. 登录或注册 http://www.packtpub.com
  2. 选择支持选项卡。
  3. 点击代码下载&勘误表
  4. 搜索框中输入图书名称,并按照屏幕上的说明进行操作。

下载文件后,请确保使用最新版本的首选压缩工具解压或解压缩文件夹:

  • WinRAR 或 7-Zip for Windows
  • 适用于 Mac 的 Zipeg、iZip 或 UnRarX
  • 适用于 Linux 的 7-Zip 或 PeaZip

该书的代码包也托管在 GitHub 上的https://github.com/PacktPublishing/Machine-Learning-for-Algorithmic-Trading-Second-Edition 。我们在上还提供了丰富的书籍和视频目录中的其他代码包 https://github.com/PacktPublishing/ 。看看他们!

下载彩色图像

我们还提供了一个 PDF 文件,其中包含本书中使用的屏幕截图/图表的彩色图像。您可以在这里下载:https://static.packt-cdn.com/downloads/9781839217715_ColorImages.pdf

使用的惯例

本书中使用了许多文本约定。

CodeInText:表示文本中的码字、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟 URL、用户输入和 Twitter 句柄。例如,compute_factors()方法创建MeanReversion因子实例,并创建长、短和排序管道列

代码块设置如下:

from pykalman import KalmanFilter
kf = KalmanFilter(transition_matrices = [1],
                  observation_matrices = [1],
                  initial_state_mean = 0,
                  initial_state_covariance = 1,
                  observation_covariance=1,
                  transition_covariance=.01) 

粗体:表示一个新术语、一个重要单词或您在屏幕上看到的单词,例如在菜单或对话框中,也会出现在文本中,如下所示。例如,Python 算法交易库PyAlgoTrade)专注于回溯测试,并为纸面交易和实时交易提供支持

信息注释如下所示。

联系

我们欢迎读者的反馈。

一般反馈:发送电子邮件feedback@packtpub.com,并在邮件主题中提及书名。如果您对本书的任何方面有疑问,请发送电子邮件至questions@packtpub.com

勘误表:尽管我们已尽一切努力确保内容的准确性,但还是会出现错误。如果您在本书中发现错误,如果您能向我们报告,我们将不胜感激。请访问http://www.packtpub.com/submit-errata ,选择您的书籍,点击勘误表提交表单链接,然后输入详细信息。

盗版:如果您在互联网上发现我们作品的任何形式的非法复制品,请您提供我们的位置地址或网站名称,我们将不胜感激。请通过copyright@packtpub.com与我们联系,并提供该材料的链接。

如果您有兴趣成为一名作家:如果您对某个主题有专业知识,并且您有兴趣撰写或贡献一本书,请访问http://authors.packtpub.com

评论

请留下评论。一旦你阅读并使用了这本书,为什么不在你购买它的网站上留下评论呢?然后,潜在读者可以看到并使用您的无偏见意见做出购买决定,我们 Packt 可以了解您对我们产品的看法,我们的作者可以看到您对他们书籍的反馈。非常感谢。

有关 Packt 的更多信息,请访问 packtpub.com。**

1
https://gitee.com/OpenDocCN/apachecn-ml-zh.git
git@gitee.com:OpenDocCN/apachecn-ml-zh.git
OpenDocCN
apachecn-ml-zh
apachecn-ml-zh
master

搜索帮助