如何使用LSTM Keras预测未来股票走势

6
首先,我必须说,我对这些AI技术是个新手。我参考了大部分有关股票市场预测的教程,它们几乎都是相同的。这些教程使用数据集并将其分成两组。第一组是训练集,第二组是测试集。他们使用股票的收盘价进行训练和建模。从该模型中,他们插入包含收盘价的测试数据集,并展示两个图表。然后他们说实际和预测的图表几乎相同。
教程的github存储库- https://github.com/surajr/Stock-Predictor-using-LSTM/blob/master/Stock-Predictor-using-LSTM.ipynb 这是我的问题: 1. 为什么所有这些教程在测试集中也放置收盘价?他们只需要插入日期对吧?因为我们要预测收盘价。这很困惑。请解释一下。 2. 没有人告诉我如何预测未来7天的值。所以如果我们有一个模型,如何获取接下来7天的收盘价?
请帮助我澄清这一点。非常感谢。

只是好奇:收盘价是在固定时间的价值,还是包括盘后交易? - Marichyasana
4个回答

1

非常感谢,ASH!非常有用。这个链接里有对 LSTM 的很好的解释。 - harp1814
祝你好运。这些东西真的很有效!去年我通过遵循LSTM策略和其他一些投资策略,在市场上赚了50多万美元。 - ASH

0

为什么所有这些教程都把收盘价放在测试集中呢?

最终目标是预测股票的涨跌,即收盘价减去开盘价。最终模型应该能够计算测试数据集中的涨幅非常接近实际涨幅。涨幅是模型试图解决的主要问题,并且是在计算训练模型的准确性时的参考点。

他们只需要插入日期,对吧?因为我们正在预测收盘价

该模型基于给定因素预测增长。对于一家公司,每天都有很多量化因素。我怀疑你所做的教程使用了从一个特定日期和不同股票中提取的测试集。例如提取所有公司的所有参数,但仅在1月10日进行检查,以查看训练模型的准确性。另一方面,训练集大多数情况下包含超过一天的股票。

没有人告诉我如何预测未来7天的值。那么如果我们有一个模型,如何获得未来7天的收盘价?

为了相对准确地预测股票价格,您需要一个训练良好的模型。为此,您需要基于许多因素来训练模型。同一模型不能预测不同国家的股票。一个模型可能适用于预测科技股票(AAPL),但不适用于其他领域。
总体而言,这是一个复杂的主题。金融顾问支付巨额费用仅用于使用可靠的模型。他们中的大多数人使用基于客户投资组合的多个模型。这些教程向您介绍主题并教授主要概念。在我看来,下一步应该是学习,然后参加Kaggle竞赛。

0
在训练集中,收盘价被包括作为输入,因为它与“明天”的价格或“X天后”的价格(对于预测超过1天的价格变动的模型)有关。
请注意,在训练数据中,通常未来价格(今天+1天)是目标值(train_Y)。
在测试数据中,收盘数据被包括在内,因为测试数据正在预测“未来价格”。
在确定模型的准确性时,将(今天+X天)的价格预测与未来值(test_Y)进行比较,以确定预测的有效性。就像人类股票交易员一样,如果您猜测/预测未来价格将是Y(即上涨/下跌),那么您将可以访问当天的收盘价……这就是为什么它是相关的输入。显然,在现实世界的模型中,只有在X天过去之后才能知道预测的准确性。在训练和测试模型时,通常使用历史数据,因此用于准确度确定的样本外值(如今天+X天的价格),尽管未来值绝对不应该是一个输入。

-1
为什么所有这些教程都把收盘价放在测试集中呢? ->易于理解,收盘价是一种输入变量,需要用来计算股票价格。
我看代码时,似乎使用了22天历史数据来预测股票价格
X_train (1173, 22, 3) y_train (1173,) X_test (130, 22, 3) y_test (130,)
我认为你应该重新训练,以(~~~,7,3)来预测今天之后7天的价格。

所以,我可以理解收盘价对于预测未来价格是有帮助的。我的问题是,为什么我们也要在测试集中使用它?在训练集中使用是可以的,但是在测试集中使用它的目的是什么?我们不是应该使用测试数据集来预测收盘价吗? - Pasindu Dineth Peiris

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接