莱顿·阿里顿

尽管 LSTM 是一种非常流行的方法,但它本质上是一种估计股票价格的糟糕方法

长短期记忆 (LSTM) 网络是一种非常流行的循环神经网络,主要用于学习序列和顺序依赖。因此,在学习音频、语言,当然还有时间序列数据——任何具有时间维度的东西时,它们通常是一个非常可靠的选择。人们很自然地会尝试在可以说是最流行的时间序列数据上使用这种时间学习能力:股票市场。然而,尽管这种技术可能很受欢迎,但我们会发现它本质上是一种试图预测股市的非常糟糕的方法。

猴子是优秀的理财师

1973 年,普林斯顿经济学家伯顿·戈登·马尔基尔 (Burton Gordon Malkiel) 出版了相当著名的著作《华尔街的随机漫步》,其中他提出:

“一只蒙着眼睛的猴子在报纸的财经版上投掷飞镖,可以选择与专家精心挑选的投资组合一样出色的投资组合。”

Malkiel 将被证明是正确的,因为存在许多对这种情况的模拟——针对专业策划的投资组合的随机选择——确立了他的说法。中详细介绍了一个这样的实验作者从 1,000 只股票中随机选择了 30 只股票。这一过程重复了 100 次,值得注意的是,100 个投资组合中有 96 个的表现平均每年超过基准指数 1.7%。

《华尔街日报》描述了类似的模拟, 记者向报纸股票上市投掷飞镖,然后继续将他们随机挑选的股票与纽约 Sohn 会议上的基金经理进行比较。随机挑选的股票比基金经理高出 22 个百分点——只有 33% 的 Sohn 挑选股票的表现优于标准普尔 500 指数。

事实上,为了将这种说法发挥到极致,1999 年,一只名叫 Raven “Thorogood III”的猴子选择了一个由 10 只股票组成的投资组合,向董事会投掷飞镖。Raven 成为美国第 22 位最成功的基金经理,并以 213% 的收益超越华尔街 6,000 多家专业经纪人。这一成就将很快为瑞文赢得吉尼斯世界纪录的一席之地。

这样的结果现在显然只能归因于股票大多是随机的这一事实。不管一个人可能做多少分析和研究,投资组合的成功很大程度上取决于运气和机会。股票走势基本上是随机的。LSTM,更不用说任何类型的机器学习模型,都无法预测本质上是随机的东西。根据其定义,随机性无法始终如一地预测。

漫无目的地走来走去

股票在很大程度上是随机的信念被称为随机游走理论,它声称股票价格的变化具有相同的分布并且彼此独立。随机游走理论表明,股票走的是一条随机且不可预测的路径,这使得所有一致预测股票价格的方法都徒劳无功。因此,任何以前的股票价格、趋势或信息都不能用来预测未来的走势。然而,重要的是要注意,并不是每个人都真正赞同随机游走理论。

让我们首先熟悉一下究竟什么随机游走。随机游走不是随机数序列,而是前一个随机修改的数字序列。

例如,给定一个值,我们可以随机选择添加 -1 或 1。然后我们取该新值,并在接下来的时间步骤中再次重复相同的随机过程。我们可以对任意数量的时间步重复此操作。这是一次“随机行走”。

将此与前面描述的随机游走理论联系起来,我们将模拟一个虚构的股票作为示例。随机游走理论规定股票价格的变化具有相同的分布并且彼此独立。为简单起见,我们假设我们的虚构股票随机波动,正态分布在 -2.5% 到 2.5% 的每日价格变化之间。简而言之,给定日的股票价格将与前一个价格相比随机增加/减少百分比变化,变化通常分布在 -2.5% 和 2.5% 之间。

我们将从 100 美元开始初始值,并运行一个 Python 脚本,该脚本将模拟和绘制这个虚构股票的 1000 个时间步长。

这些是结果:

正如我们所看到的,我们想象中的股票可能看起来很熟悉,因为它具有相当真实的行为。这是另一个例子:

这些是随机游走。请记住,这些示例完全是我们虚构的股票的虚构代与我们的虚构参数,当然都是基于随机游走理论。它们看起来就像真正的交易,但它们是完全随机的!如果我们要计算其中一个生成的随机游走的百分比变化并将它们绘制为直方图,我们可以观察到以下内容:

正如预期的那样,百分比变化正态分布,平均值为 0,介于 -2.5% 和 2.5% 之间。

为了进一步探索,我们将以一些真实世界的 IBM 股票数据为例进行一些实验。

以下是 IBM 股票过去一年的收盘价:

它已经看起来很像随机游走。让我们计算每天的百分比变化并将它们排列成直方图:

坦率地说,这再完美不过了。IBM 股票价格的日常变化几乎是完全正态分布的,平均值为 0,大约在 -10% 到 10% 之间。这只股票实际上是随机游走。

诚然,并不是每一只现存的股票都可能这么漂亮。但是,通常只需要进行少量数据转换即可得出类似的结论。随机游走理论也不要求分布特别漂亮,重要的是每天的价格变化具有相同的分布。

随机游走理论绝对有强有力的证据,其中过去的价格和趋势与未来的价格无关,因为它们都是完全随机的。事实上,在尝试预测股票价格时,常有这样的说法:

“对明天股票价格的最佳预测,就是今天的价格”

使用过去股票价格来学习预测未来股票价格的 LSTM 从定义上讲是不可能的,因此,从广义上讲,它是无用的。

真的没那么简单

如果我们完全无视随机游走理论,并假设确实存在某种可能的模型来一致地预测股票价格,那么 LSTM 仍然不合适。

这是因为如果要对股票市场进行建模,它肯定会是一个比以前价格值之间的某种关系复杂得多的模型。股市走势至少会受到各种现实世界变量的影响。公司的业绩、新产品的推出或产品召回、员工裁员——甚至是 CEO 的推文都会对股价和未来走势产生巨大影响。

股票价格受所有可用信息影响的信念是有效市场假说的一种形式。有效市场假说有 3 个不同版本:

  • 弱形式:弱形式表明今天的股票价格反映了过去价格的所有数据,没有任何形式的技术分析可以有效地帮助投资者做出交易决策。
  • 半强形式:半强形式表明,由于所有公开信息都用于计算股票的当前价格,因此投资者不能利用技术或基本面分析来获得更高的市场回报。
  • 强形式:强形式版本表明,所有信息,包括私人信息,都完全计入当前股价,没有任何类型的信息可以让投资者在市场上获得优势。

假设先前的股价是未来股价的主要影响因素是荒谬的!通常,当 LSTM 在某些股票数据上进行训练时,问题的建立使得 LSTM 试图仅在股票价格中找到对先前值的顺序依赖性。这是一个粗略的假设,因为它根本不足以正确构建任何类型的股票市场模型,只要这样的东西甚至可以存在。股票市场是一个极其复杂、精密和错综复杂的系统,它依赖于整个世界——股票价格无法预测股票价格。

结论性想法

尽管尝试使用 LSTM 预测股票价格的方法非常流行,但不幸的是,这样的事情完全是神话。

股票价格本质上是随机游走的,随后的每个未来价格都独立于上一个。并不是说 LSTM 是一个没有足够预测能力的弱模型——它们可以是非常强大的时间序列和序列数据预测器——而是事实上,从一开始就没有什么是可预测的就其定义而言,随机性无法可靠地预测。因此,试图学习对本身没有顺序依赖的数据的顺序依赖显然是不可能的。

无论如何,仅以前的价格本身并不能提供足够的信息。股票市场极其复杂和错综复杂,任何受现实世界中数百个变量影响的偶然非随机变化都无法通过将预测问题设置为仅使用之前的收盘价来解释。

坦率地说,使用 LSTM 进行股票价格预测可能完全是徒劳的,但是仍然应该仅仅因为这种练习提供的教育价值而鼓励它。该项目通常在初学者中很受欢迎,并且在教育背景下,它无疑是了解更多关于 LSTM 和一般时间序列数据的好方法。

然而,如果你追求的是经济上的成功,那么你最好还是玩一场飞镖游戏。

LSTM 无法预测股票价格相关推荐

  1. 使用长短期记忆模型(LSTM)预测股票价格

    重要声明:该文章只是技术分享,如有投资盈亏,概不负责!切记投资需谨慎! 1. LSTM 模型简介 长短期记忆是一种时间循环神经网络,论文首次发表于1997年.由于独特的设计结构,LSTM适合于处理和预 ...

  2. 【深度学习】LSTM预测股票价格--单因素--多步--输出单回归特征

    入行深度学习1年多了,该还的还得还,没接触过LSTM的预测项目,这就来活了. 文章目录 前言 1. 开工 1.1 引入必须的库 1.2 数据初探 1.3 划分数据集 1.4 数据归一化 1.5 数据分 ...

  3. python预测股票 keras_使用LSTM模型预测股价基于Keras

    本期作者:Derrick Mwiti 本期翻译:HUDPinkPig 未经授权,严禁转载 编者按:本文介绍了如何使用LSTM模型进行时间序列预测.股票市场的数据由于格式规整和非常容易获得,是作为研究的 ...

  4. 使用机器学习来预测股票价格

    机器学习和深度学习已经在金融机构中找到了自己的位置,因为它们能够以高精度预测时间序列数据,并且工程师们仍在继续研究以使模型更好.这篇文章是我使用机器学习来预测股票价格的入门项目. 它基于我的项目Alp ...

  5. 时序预测 | MATLAB实现贝叶斯优化CNN-LSTM时间序列预测(股票价格预测)

    时序预测 | MATLAB实现贝叶斯优化CNN-LSTM时间序列预测(股票价格预测) 目录 时序预测 | MATLAB实现贝叶斯优化CNN-LSTM时间序列预测(股票价格预测) 效果一览 基本介绍 模 ...

  6. 使用Pytorch实现简单的LSTM股票预测框架

    1.数据获取 使用TuShare获取数据(需要在tushare网站申请账号,获取token号) 取1-4月数据作为训练集,5月数据作为测试集(测试集数据提取代码同训练集) ts.set_token(' ...

  7. 大数据毕业设计 LSTM时间序列预测算法 - 股票预测 天气预测 房价预测

    文章目录 0 简介 1 基于 Keras 用 LSTM 网络做时间序列预测 2 长短记忆网络 3 LSTM 网络结构和原理 3.1 LSTM核心思想 3.2 遗忘门 3.3 输入门 3.4 输出门 4 ...

  8. 毕业设计 LSTM的预测算法 - 股票预测 天气预测 房价预测

    文章目录 0 简介 1 基于 Keras 用 LSTM 网络做时间序列预测 2 长短记忆网络 3 LSTM 网络结构和原理 3.1 LSTM核心思想 3.2 遗忘门 3.3 输入门 3.4 输出门 4 ...

  9. 使用机器学习和深度学习技术(使用Python代码)预测股票价格

    Introduction 预测股市将如何表现是最困难的事情之一. 预测中涉及的因素很多 - 物理因素与生理因素,理性行为和非理性行为等有关.所有这些因素共同导致股价波动,很难以高精度预测. 我们可以将 ...

最新文章

  1. python 办公自动化-用python进行办公自动化都需要学习什么知识呢?
  2. 2015-10-11 Sunday 晴 ARM学习
  3. 一个用WPF做的简单计算器源代码
  4. 深入浅出浏览器渲染原理
  5. springboot整合hibernate_峰哥说技术系列-17 .Spring Boot 整合 Spring Data JPA
  6. boost::mp11::mp_set_push_back相关用法的测试程序
  7. boost::filesystem::path::stem的用法测试程序
  8. 具有关联映射的Hibernate Composite ID
  9. python实例化对象做实参_如何在Python中记住类实例化?
  10. 地磅称重软件源码_【漯河衡器】导致地磅称重不准原因及处理措施
  11. Dictionary 索引超出数组界限
  12. 【CUDA编程】nsight compute和nsight system的使用
  13. snmpwalk 获取端口流量_通过snmpwalk命令计算接口速率
  14. PS和AE、PR的区别是什么?
  15. 5G+如何改变社会--读书有感
  16. JavaScript中栈内存与堆内存分别是什么?
  17. [益智]:谁是机械师
  18. 基于web的老年保健品销售系统/保健品销售系统
  19. PHP中exit()与die()的区别
  20. 自媒体视频剪辑中的那些素材到哪里找?

热门文章

  1. 微信公众号之微信支付
  2. 九阴真经Ambari——1.熟悉Hortonworks官网结构并找到Ambari下载地址
  3. XMLHttpRequest和referer
  4. java 读取excel模板_java如何读取excel表格的信息,java读取excel模板
  5. STM32Cube和HAL库使用初体验-第5季第2部分-朱有鹏-专题视频课程
  6. 仿QQ空间评论随软键盘弹出和收回一个输入布局
  7. 奋斗吧,程序员——第三十七章.雄关漫道真如铁,而今迈步从头越
  8. Jmeter学习-BeanShell 内置变量vars、props、prev
  9. 大数据架构及行业大数据应用
  10. 《你的孤独,虽败犹荣》阅读笔记