对冲基金深度学习交易简介
已发表: 2022-03-11在过去的几年里,深度神经网络变得非常流行。 这个新兴的计算机科学领域是围绕生物神经网络的概念创建的,深度学习已经成为当今的流行词。
深度学习科学家和工程师试图用数学方法描述来自生物神经系统的各种模式。 深度学习系统已应用于各种问题:计算机视觉、语音识别、自然语言处理、机器翻译等。 有趣且令人兴奋的是,在某些任务中,深度学习的表现优于人类专家。 今天,我们将看看金融领域的深度学习。
深度学习更有吸引力的应用之一是在对冲基金中。 对冲基金是投资基金,从投资者那里筹集资金并进行管理的金融机构。 他们通常使用时间序列数据并尝试做出一些预测。 有一种特殊类型的深度学习架构适用于时间序列分析:循环神经网络 (RNN),或者更具体地说,是一种特殊类型的循环神经网络:长短期记忆 (LSTM) 网络。
LSTM 能够从时间序列数据中捕获最重要的特征并对其依赖关系进行建模。 股票价格预测模型作为对冲基金如何使用此类系统的说明性案例研究提出。 PyTorch 框架,用 Python 编写,用于训练模型、设计实验和绘制结果。
我们将从一些深度学习基础开始,然后再讨论实际示例:
- 将深度学习作为一个抽象概念引入。
- 介绍 RNN——或者更具体地说,LSTM——以及如何使用它们对时间序列数据进行建模。
- 让读者熟悉适合深度学习的金融数据。
- 说明一个实际的对冲基金如何使用深度学习来预测股票价格。
- 最后,为新的和现有的对冲基金提供可行的建议,说明如何使用/利用深度学习来提高他们的业绩。
展示深度学习交易案例
金融行业最具挑战性和最激动人心的任务之一是预测股票价格未来会上涨还是下跌。 今天,我们知道深度学习算法非常擅长解决复杂的任务,因此值得尝试用深度学习系统来试验,看看它们是否能成功地解决预测未来价格的问题。
作为一个概念,人工神经网络已经存在了很长时间,但硬件还不够好,无法在深度学习中进行快速实验。 十年前,英伟达帮助彻底改变了深度学习网络,因为它开始为特斯拉系列产品中的通用计算提供非常快速的图形处理单元 (GPU)。 高度并行化的 GPU 可以计算其他数据,而不是在游戏和专业设计应用程序中着色多边形,而且在许多情况下,它们远远优于 CPU。
关于在金融领域使用深度学习的科学论文很少,但金融科技公司对深度学习专家的需求很大,因为他们显然认识到了它的潜力。 本文将通过概述金融数据如何用于构建深度学习系统来帮助解释为什么深度学习在金融领域变得越来越流行。 还将介绍一种特殊类型的循环神经网络——LSTM 网络。 我们将概述如何使用循环神经网络解决与金融相关的任务。
本文还通过实验展示了对冲基金如何使用此类系统的说明性案例研究。 我们还将考虑如何改进深度学习系统,以及对冲基金如何招聘人才来构建这些系统,即深度学习人才需要具备什么样的背景。
是什么让对冲基金与众不同
在我们讨论问题的技术方面之前,我们需要解释是什么让对冲基金与众不同。 那么,什么是对冲基金?
对冲基金是一种投资基金——一种从投资者那里筹集资金并将其用于短期和长期投资或不同金融产品的金融机构。 它通常以有限合伙或有限责任公司的形式成立。 对冲基金的目标是最大化回报。 回报是对冲基金在特定时间段内净值的收益或损失。 人们普遍认为,当承担更多风险时,获得更高回报和损失的可能性就更大。
为了获得良好的回报,对冲基金依靠各种投资策略,试图利用市场的低效率来赚钱。 由于普通投资基金所不允许的各种投资策略,对冲基金不注册为基金,即通常不像其他基金那样受国家监管。 他们不需要公布他们的投资策略和业务结果,这会使他们承担很大的风险。 一些对冲基金产生的资金高于市场平均水平,但其中一些是亏损的。 其中一些带来永久的结果,而一些对冲基金的结果是可变的。
通过投资对冲基金,投资者增加了基金的净资产。 不过,并非所有人都可以投资对冲基金。 对冲基金面向少数富有的投资者。 通常,想要参与对冲基金的人需要获得认证。 这意味着它们必须在金融监管法方面具有特殊地位。 对于谁可以拥有这种特殊地位,各国之间存在差异。 通常,投资者的净资产需要非常高——不仅是个人,银行和大公司也可以在对冲基金中运作。 该认证旨在仅允许具有重要投资知识的个人参与,从而保护小型和缺乏经验的投资者免受风险。
本文考虑美国的监管框架,因为美国拥有全球最发达的金融市场。 因此,在美利坚合众国,“合格投资者”一词在美国证券交易委员会 (SEC) 条例 D 规则 501 中定义。
根据该规定,合格投资者可以是:
- 银行
- 私营企业发展公司
- 组织
- 发行或出售证券发行人的董事、执行官和普通合伙人
- 个人净资产或与其配偶的联合净资产超过 1,000,000 美元的自然人
- 在最近两年每年的个人收入超过 200,000 美元或与该人的配偶在这些年份每年的共同收入超过 300,000 美元并且有合理预期在当年达到相同收入水平的自然人
- 总资产超过 5,000,000 美元的信托
- 所有股权所有者均为合格投资者的实体
对冲基金经理管理对冲基金。 对冲基金经理必须找到一种方法来创造竞争优势以取得成功,即创造超越竞争对手的优势和创造更大价值的能力。 这可能是一个非常有吸引力的职业选择,因为如果个人擅长管理基金,它可能会非常有利可图。
另一方面,如果许多对冲基金经理的决策被证明是错误的,他们将不会得到报酬,并且会获得负面声誉。 最好的对冲基金经理构成了所有行业中薪酬最高的职业之一。 对冲基金经理除了管理费外,还从他们为投资者赚取的回报中获得一定比例。 这种补偿方式使对冲基金经理为了获得更大的回报而更加积极地投资,但另一方面,这也导致了投资者风险的增加。
对冲基金简史
第一个对冲基金出现在 1949 年,由前作家和社会学家 Alfred Winslow Jones 创立。 1948 年,他正在为《财富》杂志撰写一篇关于当前投资趋势的文章。
他试图管理这笔钱,并且非常成功。 他利用他的投资创新筹集资金,现在广为人知的是多头/空头股权。 该策略在对冲基金中仍然非常流行。 股票可以买入(买入:做多)或卖出(卖出:做空)。
当股价处于低位且预期股价会走高时,顺理成章地买入(做多)股票,并在达到最高价格时立即卖出(做空)。这正是阿尔弗雷德·温斯洛·琼斯 (Alfred Winslow Jones) 创新的重点——在预期会升值的股票中做多头寸,在预计会下跌的股票中做空头寸。
财务数据和数据集
财务数据属于时间序列数据。 时间序列是按时间索引的一系列数据点。 通常,时间序列是在连续的、等距的时间点获取的序列:离散时间数据序列。 时间序列的示例包括海潮高度、太阳黑子数量和道琼斯工业平均指数的每日收盘价。
这种情况下的历史数据是过去的时间序列数据。 它是推测未来价格的最重要和最有价值的部分之一。 网上有一些公开可用的数据集,但通常这些数据不包含很多特征——通常是 1 天间隔数据、1 小时间隔数据或 1 分钟间隔数据。
具有更丰富特征和更短时间间隔的数据集通常不会公开获得,而且获取成本可能非常高。 更小的间隔意味着在固定时期内有更多的时间序列数据——一年有 365(或 366)天,因此最多有 365(或 366)个数据点可用。 每天有 24 小时,因此一年中有 8,760(或 8,784)个小时数据点可用,每天有 86,400 分钟,因此一年中有 525,600(或 527,040)分钟数据点可用。
有了更多的数据,就有更多的信息可用,有了更多的信息,就有可能对下一个时间段会发生什么做出更好的结论——当然,假设数据包含足够好的特征来很好地概括。 2007-2008 年的股票价格数据,在全球金融危机最严重的时期,是有偏见的,可能与如今的价格预测无关。 时间间隔越小,越容易预测接下来会发生什么,因为在一个固定的时间间隔内有很多数据点。 如果我们在固定的n
年间隔内拥有每纳秒的所有数据点,那么预测下一纳秒会发生什么比如果我们拥有每年的所有n
数据点,明年股市会发生什么更容易。固定的n
年间隔。
然而,这并不意味着,假设一系列快速的短期预测是正确的,那么长期预测也应该是正确的。 每个预测都会引入错误,并且通过链接多个预测,长期预测最终将包含大量错误并且将毫无用处。 以下是从 Yahoo Finance 在线抓取的 Google 股票的 1 天间隔数据示例。
数据集中只有几列:日期、开盘价、最高价、最低价和收盘价——分别是证券在交易所开盘时首次交易的价格,证券在给定交易日达到的最高价格,在给定交易日达到的最低价格,以及当天交易证券的最终价格。
通常,此类数据集中还有两列——调整后的收盘价和成交量,但它们在这里不相关。 调整后的收盘价是对适用的分割和股息分配进行调整后的收盘价,而成交量是给定时间段内市场交易的股票数量。
您可以看到缺少一些日期。 这些是证券交易所不工作的日子,通常是在周末和节假日。 出于我们深度学习算法演示的目的,缺失的天数以之前可用的价格进行补充。 例如,2010 年 1 月 16 日、2010 年 1 月 17 日、2010 年 1 月 18 日的收盘价都将是 288.126007,因为这就是 2010 年 1 月 15 日的收盘价。 对于我们的算法来说,数据没有间隙很重要,所以我们不会混淆它。 深度学习算法可以从这里学习周末和节假日的时间——例如,它会学习到五个工作日后,从上一个工作日开始,必须有两天是平价的。
这是自 2010 年 1 月 4 日以来谷歌股价走势的图表。 请注意,仅使用交易日来绘制图表。
什么是深度学习?
深度学习是机器学习的一部分,它基于学习数据表示。 机器学习检查其功能不是编程而是从数据中学习的算法。 它本质上是一种人工智能方法。
深度学习已应用于各个领域:计算机视觉、语音识别、自然语言处理、机器翻译——在其中一些任务中,它取得了优于人类的性能。
深度神经网络是深度学习的核心。 深度神经网络最简单和最基本的例子是前馈神经网络。 下面是一个简单的前馈神经网络的图像。 它由输入层、输出层和隐藏层组成。
隐藏层是输入层和输出层之间的所有层。 如果一个神经网络有多个隐藏层,我们就说它是深度的。 每层由不同数量的神经元组成。 这个基本前馈神经网络中的层称为线性层——线性层中的神经元仅将一维(或如果数据通过网络分批发送,则为二维)输入值与适当的权重相乘,将乘积相加,然后将最终结果作为一维或二维输出。
激活函数通常应用于前馈网络以引入非线性,因此网络可以模拟更复杂的非线性问题。 在前馈网络中,数据从输入层流向输出层,没有环回。 神经元之间的连接被加权。 需要调整权重,以便神经网络为给定的输入返回正确的输出。 前馈网络将数据从输入空间映射到输出空间。 隐藏层从前一层的特征中提取重要且更抽象的特征。
一般的深度学习管道与机器学习管道相同,包括以下步骤:
- 数据采集。 数据分为三部分——训练数据、验证数据和测试数据。
- 使用训练数据在多个“时期”(每个时期由多个迭代组成)上训练 DNN,并在每个时期之后使用验证数据进行验证。
- 在一系列训练课程和验证之后测试模型(具有固定参数的神经网络的一个实例)。
训练神经网络实际上意味着通过使用反向传播算法结合随机梯度下降来最小化损失函数来调整神经元对之间的权重。 除了通过学习过程确定的权重外,深度学习算法通常需要设置超参数——这些参数不是学习的,而是在学习之前固定的。 超参数是层数、层中神经元的数量、层的类型、神经元的类型和权重初始化。
超参数的设置有硬件限制; 目前,在单个 GPU 上设置一万亿个神经元在物理上是不可能的。 穷举超参数搜索的第二个问题是组合爆炸; 不可能搜索所有可能的超参数组合,因为这将花费无限时间。 正因为如此,超参数是随机设置的,或者使用科学论文中描述的一些启发式方法和众所周知的例子——本文后面将展示的用于金融数据分析的超参数之一是循环神经元的使用,就像科学家和工程师一样已经证明它们可以很好地处理时间序列数据。 通常,查看给定问题的超参数是否良好的最佳方法是通过实验。
训练的重点是使神经网络适合训练数据。 在每个训练步骤之后进行的模型验证和在整个训练过程之后进行的模型测试都是为了查看模型是否可以很好地泛化。 泛化意味着神经网络可以对新的、看不见的数据做出良好的预测。
有两个与模型选择相关的重要术语:过拟合和欠拟合。 如果神经网络对其训练的数据过于复杂——如果它有太多参数(太多层,和/或层中的神经元太多)——神经网络可能会过度拟合数据。 它可以很好地适应训练数据,因为它有足够的容量来拟合所有数据,但是验证和测试集的性能很差。
如果神经网络对其训练的数据过于简单,则神经网络可能会欠拟合数据。 在这种情况下,神经网络在训练、验证和测试集上的性能很差,因为它的容量不足以拟合训练数据和泛化。 在下图中,以图形方式解释了这些术语。 蓝线代表神经网络建模的内容。 第一张图显示了神经网络参数很少,不足以拟合训练数据和泛化的情况。 第二张图展示了存在最优参数个数且神经网络可以很好地泛化未知数据的情况,第三张图展示了神经网络的参数个数过多且神经网络可以完美地泛化的情况拟合训练集中的所有数据,但在验证集和测试集上表现不佳。
递归神经网络
更复杂的神经网络版本是循环神经网络。 在循环神经网络中,与前馈神经网络相反,数据可以向任何方向流动。 他们可以很好地学习时间序列依赖性。 通用循环神经网络的架构如下图所示。
下图显示了一个循环神经元。 它将时间点t
的X_{t}
作为输入,并返回时间t
的隐藏状态h_{t}
作为输出。 隐藏的输出被传播回神经元。 循环神经元可以展开,因为它从右侧显示在同一图像上。 X_{t_0}
是时间段t_{0}
中的点, X_{t_1}
是时间段t_{1}
中的点, X_{t}
是时间段t
中的点。 使用输入X_{t_0}
, X_{t_1}
, ..., X_{t_n}
在时间段t_{0}
, t_{1}
, ..., t_{n}
获得的输出是所谓的隐藏输出: h_{t_0}
, h_{t_1}
, ..., h_{t_n}
,分别。
最好的递归神经网络架构之一是 LSTM 架构。 LSTM 如下图所示:
LSTM 与一般循环神经网络具有相同的一般结构,但循环神经元略有不同,结构更复杂。 从上图中可以看出,很多计算都是在一个 LSTM 单元内完成的。 在这篇文章的上下文中,LSTM 单元可以被视为一个黑盒子,但对于更多好奇的读者来说,这篇很棒的博客文章解释了 LSTM 内部的计算等等。

让我们将神经网络的输入称为“特征向量”。 它是一个n
维向量,其元素是特征: f_{0}
, f_{1}
, f_{2}
..., f_{n}
。
\vv{X} = [f_{0}, f_{1}, f_{2}, …, f_{n}]
现在,让我们解释一下如何将循环神经网络应用于金融相关任务。 循环神经网络的输入是[X_{t_0}, X_{t_1}, X_{t_2}, …, X_{t_n}]
。 假设n = 5
。 我们在 2010 年 1 月 4 日和 2010 年 1 月 8 日之间连续五天(参见上面的开盘/高/低/收盘数据表)取 5 个 Google 收盘价,即[[311.35], [309.98], [302.16], [295.13], [299.06]]
。 本例中的特征向量是一维的。 时间序列由五个这样的特征向量组成。 递归神经网络的输出是隐藏特征[h_{t_0}, h_{t_1}, h_{t_2}, …, h_{t_n}]
。 这些特征比输入特征[X_{t_0}, X_{t_1}, X_{t_2}, …, X_{t_n}]
更抽象——LSTM 应该学习输入特征的重要部分并将它们投影到隐藏的特征空间。 那些隐藏的、抽象的特征可以在下一个 LSTM 单元中传播,这将给出下一组隐藏的、更抽象的特征,然后可以再次传播到下一个 LSTM,依此类推。 在链式 LSTM 序列之后,神经网络的最后一个组件是线性层(上一节中解释的简单前馈网络的构建部分),它将隐藏的特征从最后一个 LSTM 映射到一维空间中的点,并且该点是网络的最终输出——时间段X_{t+1}
中的预测收盘价。 此示例中X_{t+1}
的基本事实是298.61
。
注意: LSTM 也可以少至一个——设置 LSTM 的数量是一个超参数,通常可以根据经验找到,尽管我们可以使用一些启发式方法。 如果数据不是那么复杂,我们会使用不太复杂的架构,这样模型就不会过度拟合数据。 如果数据很复杂,我们会使用复杂模型,这样模型就不会欠拟合数据。
在训练阶段,将预测收盘价与真实价格进行比较,并使用反向传播算法和梯度下降优化算法(或其一种形式——具体而言,在此博客,所谓的“亚当”版本的梯度下降优化算法被使用)通过改变神经网络的权重。
在训练和测试之后,在未来,用户只需将输入数据提供给神经网络,它就会返回预测价格(希望未来的价格非常接近真实价格)。
这里要提到的另一件事是,通常,成批的数据通过网络发送,无论是在测试阶段的训练中,网络都可以在一次通过中计算多个输出。
下面是本博客中用于实验的架构图像。 它由两个堆叠的 LSTM 和一个线性层组成。
对冲基金算法的实验
尝试使用简单的算法交易策略,如下:如果算法预测价格将在第二天上涨,则买入n
(本例中n = 1
)公司的股票(多头),否则卖出公司的所有股票公司(简称)。 投资组合的初始价值(现金和股票的总价值)设置为 100,000 美元。 每个多头或空头操作将分别购买一家公司的n
股(在本例中为谷歌)或出售一家公司的所有股份。 一开始,系统拥有给定公司的0股。
永远记住,这是一个非常基本和简单的示例,并不适合在现实世界中使用,因为需要更多的研发工作来调整模型以使其在实践中运行良好。 这里忽略了一些应该在现实世界场景中考虑的事情; 例如,模型中没有包含交易费用。 假设系统可以每天在同一时间进行交易,并且假设每天,即使是周末或节假日,都是一个交易日。
对于测试,使用回测方法。 回溯测试方法使用历史数据来重建过去使用开发策略定义的规则可能发生的交易。 数据集分为两部分——第一部分是训练集(过去),第二部分是测试集(未来)。 该模型在训练集上进行训练,训练后,我们在数据集的第二部分模拟未来,以查看经过训练的模型在未接受训练的情况下未来会如何表现。
评估交易策略的指标是夏普比率(其年化版本,假设一年中的所有天都是交易日,并且一年有 365 天: sqrt(365)*mean(returns)/std(returns))
,其中回报定义为p_{t}/p_{t-1} - 1
,而p_{t}
是时间段t
的价格。 夏普比率显示了回报与产生的额外风险之间的比率,因此夏普比率越大越好。 通常情况下,大于1的比率是投资者可以接受的,2是很好的,3是优秀的。
仅使用来自 Yahoo Finance 数据集的 Google 历史价格的每日收盘价作为特征。 更多特性会有所帮助,但测试数据集中的哪些其他特性(Open、High、Low)是重要的超出了本博客的范围。 表中未包含的其他一些特征也可能会有所帮助——例如,特定分钟内新闻的情绪或特定日期的重要事件。 然而,有时很难做出对神经网络输入有用的数据表示并将它们与现有特征相结合。 例如,很容易扩展特征向量并在每个给定时间段放置一个表示新闻情绪或特朗普的推文情绪的数字( -1
非常负面, 0
中性, +1
非常正面等),但它不是很容易将特定事件驱动的时刻(苏伊士运河的海盗,德克萨斯州炼油厂的炸弹)放入特征向量中,因为对于每个特定时刻,我们需要在特征向量中添加一个额外的元素来放入1
如果事件发生或0
否则,这将导致所有可能的时刻有无限数量的元素。
对于那些更困难的数据,我们可以定义一些类别,并在每个时刻确定它属于哪个类别。 我们还可以为系统添加其他公司股票的特征,以了解不同公司股价之间的相关性。 此外,还有一种专门用于计算机视觉的神经网络——卷积神经网络——将其与循环层相结合并了解视觉特征如何与某些公司的价格相关联会很有趣。 也许我们可以使用来自拥挤火车站的摄像头信息作为特征,并将该信息附加到神经网络,看看神经网络所看到的是否与某些公司的股价相关——即使在其中也可能存在一些隐藏的知识平庸而荒谬的例子。
下图显示了平均训练损失如何随时间减少,这意味着神经网络有足够的容量来拟合训练数据。 重要的是要对数据进行归一化,这样深度学习算法才能收敛。
下图显示了平均测试损失如何随着时间的推移而减少,这意味着神经网络有能力对看不见的数据进行泛化。
算法是贪心的; 如果它预测第二天价格会上涨,那么算法立即购买n=1
家公司的股票(如果投资组合中有足够的现金),否则,它会卖出该公司的所有股票(如果它有任何)。 投资期限是固定的,需要 300 天。 300 天后,所有股票都被出售。 经过一些训练后,对看不见的数据的模拟如下所示。 它显示了投资组合价值如何通过每天的多头/空头(或什么都不做)操作随时间增加。
上述模拟的夏普比率为 1.48。 300 天后的最终投资组合价值为 100,263.79 美元。 如果我们只是在第一天买入股票并在 300 天后卖出,那么投资组合价值 99,988.41 美元。
下图是神经网络训练不好,在固定的 300 天后亏钱的情况。
夏普比率为-0.94。 300 天后的最终投资组合价值为 99,868.36 美元。
这是一个有趣的例子——上面的算法是贪婪的,只是预测第二天的价格,仅根据该预测采取行动。 可以链接多个预测并在未来接下来的几个步骤中预测价格。 例如,第一个输入是[X_ground_truth_{t0}, X_ground_truth_{t1}, X_ground_truth_{t2}, X_ground_truth_{t3}, X_ground_truth_{t4}]
和第一个输出是[X_predicted_{t5}]
,我们可以输入具有该预测的神经网络,因此下一个输入是[X_ground_truth_{t1}, X_ground_truth_{t2}, X_ground_truth_{t3}, X_ground_truth_{t4}, X_predicted_{t5}]
并且输出是[X_predicted_{t6}]
。 下一个输入是[X_ground_truth_{t2}, X_ground_truth_{t3}, X_ground_truth_{t4}, X_predicted_{t5}, X_predicted_{t6}]
导致[X_predicted_{t7}]
等等。 这里的问题是,我们引入了一个预测误差,该误差随着每一步的增加而增加,最终导致非常糟糕的长期结果,如下图所示。 一开始的预测遵循基本事实下降趋势,然后随着时间的推移停滞不前并变得越来越差。
对谷歌股价进行了非常简单的深度学习分析,但它可以包含几乎任何一组财务数据,只要数据量足够大且质量好。 数据必须具有区分性,并且必须很好地描述和代表问题。
包起来
如果它在广泛的测试中运行良好并且推广良好,那么该系统可以允许对冲基金经理使用深度学习并依赖算法交易策略来推测公司股票的未来价格。
对冲基金经理可以给系统一笔钱,让系统每天自动交易。 但是,让自动交易算法在没有任何监督的情况下进行交易将是非常糟糕的。 对冲基金经理应该具备一些深度学习技能,或者聘请具有必要技能的人来监督系统并确定系统何时失去了泛化和良好交易的能力。
If the system lost the ability to generalize, then it would be necessary to retrain it from the beginning and test it again (maybe by introducing more discriminative features or new knowledge—using new data from the past that didn't exist when the model was first trained).
Sometimes, the data is simply not good enough for the deep learning system to be trained and generalize well and, in that case, an experienced deep learning engineer should be able to detect and rectify such a situation. To build a deep learning trading system, you need hedge funds data scientists, machine learning/deep learning experts (both scientists and engineers), R&D engineers familiar with machine learning/deep learning, etc. No matter which part of an application of machine learning they are familiar with, whether it's computer vision or speech recognition, seasoned professionals will be able to put their experience to good use in the financial sector. At its root, deep learning has the same basics regardless of application or industry, and it should be easy for someone experienced to switch from theme to theme.
The system we presented is very basic and, to be applied in the real world, more R&D should be done in order to increase the returns. Possible improvements of the system could be in developing better trading strategies. Collecting more data for training, which is usually very expensive, will help. A smaller time interval between the points is better. Improvements can also surface in using more features (eg, news sentiments or important happenings corresponding to each point in the dataset, despite being hard to code for a neural network) and extensive grid search for hyperparameters and RNN architecture discovery.
Also, more computing power (powerful GPUs are a must) is needed to make a lot of extensive experiments in parallel and to process a large amount of data, provided that a large amount of data is collected.
参考:
- https://www.datacamp.com/community/tutorials/finance-python-trading
- http://colah.github.io/posts/2015-08-Understanding-LSTMs/
- https://en.wikipedia.org
- https://www.investopedia.com/
- https://finance.yahoo.com/
- http://pytorch.org/
Author's Note: I would like to thank Ivan Capalija and Matej Paradzik for the constructive conversations and advice about deep learning in finance, which helped me in writing this blog.