【问题标题】:Long term prediction using Artificial Neural Network使用人工神经网络的长期预测
【发布时间】:2012-06-03 13:02:27
【问题描述】:

我正在做一个使用 ANN 预测股票价格的项目。我已经训练了系统 使用前 7 年的数据,它可以很好地预测一天的数据。现在我想预测未来 7 天的股价。

我的想法是使用第 1 天预测第 2 天数据,使用第 2 天和第 1 天的预测数据预测第 3 天数据,依此类推。但它不能正常工作。

我已经训练 ANN 使用一天的开盘价、最高价和最低价来预测收盘价。

预测未来 7 天数据的想法是什么?

【问题讨论】:

  • 我觉得这需要一个水晶球

标签: artificial-intelligence neural-network


【解决方案1】:

Maruf,如果您提前 1 天有可靠的 ANN 预测器,请联系我进一步讨论!哈哈

一边开玩笑。神经网络和其他非线性预测器就是这样 - 预测器。您正在处理的数据(股票价格数据)在很大程度上是随机的。如果您不相信我,请尝试使用以下伪代码生成随机游走并将其绘制在屏幕上:

let min = -0.5
let max = +0.5
let bias = 0.01
let random = rand(min, max)
y[i] = y[i-1] + random + bias

稍微调整偏差(从 -0.01 到 0.01),你最终得到的系列看起来很像趋势股票价格。其原因是在任何潜在趋势中,有些人做出的决定并不比抛硬币好。您知道普通交易者在 55% 的时间里是对的吗?这就是他所需要的……

现在,如果数据在很大程度上是随机的,那么就很难预测了。您正在寻找大量噪声中的信号。每天你试图预测你的预测变得不那么准确。

请问 - 您在 ANN 中输入了哪些信息来获得提前 1 天的预测?例如,如果您使用每日股票价格加上其他衍生因素(例如变化率、交易量、背离等...)来获得准确的 1 天预测,您可能会发现您可以通过以下方式获得准确的 1 周预测用每周库存数据代替以上所有内容。

编辑:

其次,您在做什么来测试预测器的准确性?为了增加 mikera 的答案,我建议采用如下策略。

给定 1000 天的数据窗口,取其中的 800 天并训练您的 ANN。现在预测未来的某一天。将预测方向(向上、向下)与预测收盘价(百分比差异)进行比较,以衡量该结果的准确性。现在将窗口向右滑动 1 天。重新训练 ANN 并执行 1 天的预测,注意结果。

如果你在剩下的 200 天内继续这样做,有多少比例的结果得到了正确的方向(向上、向下)?有多少比例的结果在实际预测收盘价的 10% 以内?如果您的 ANN 在每天营业结束时下订单并在第二天结束时关闭订单,它会赚多少钱?当然要考虑滑点和交易费用...

这将使您了解系统的准确性和价值。

【讨论】:

  • 感谢您的快速回复(我在这个项目中与 maruf 合作)。我们使用前一天的 1. 日 2. 最低价 3. 最高价 4. 开盘价和 5. 过渡成交量。我们不明白您的“向右滑动窗口 1 天”的想法。训练 800 天后,我们应该用第 800 天的数据(5 行)预测第 801 天。然后需要与原始数据进行比较。然后? “向右滑动窗口 1 天”是什么意思?对不起我的无知。
  • 我的意思是:如果您在真实交易系统中使用此人工神经网络,您将只能访问过去的数据。每天晚上收市后,您都会重新训练 ANN 并预测明天的收盘价。然后在开市时进行交易,并在收市时退出交易。第二天晚上,您将对过去的数据(包括新的一天)重复重新训练并创建第二天的预测,在第二天进行交易等......您的测试应该尝试模仿这种行为。如果您创建了一个执行上述操作的测试,然后报告了赢/输交易的百分比,它有多好?
【解决方案2】:

如果你能有效地预测甚至提前一天,你已经做得很好了——通常的问题是:

  • 你确定你没有过拟合吗,例如学习准确地复制训练数据的特征?如果您还没有尝试过,那么我强烈建议您在使用其他 80% 的数据进行训练后,在 20% 的数据上测试您的 ANN,以确保这一点。
  • 您还在学习预测绝对价格值或增量吗?如果是前者,那么您可能只是从以下事实中得到了很好的拟合:到目前为止,第二天收盘价的最佳预测指标是今天的收盘价(因为数据具有如此多的序列相关性)。通过犯这个错误获得 99% 以上的 R 平方拟合并不少见....

假设您没有落入上述陷阱之一,那么进行多天预测的方法是简单地为未来的每一天独立地单独预测变量。将第二天的预测输入到第二天等并没有太多附加价值(因为您的输入数据中没有任何新信息),但如果您愿意,您可以尝试(不会造成任何伤害) ,可以通过提供有用的特征检测器等来加速学习)。

此外,您预计未来预测的不确定性/变化会更大(因为从现在到那时,股票价格走势不确定的天数更多)。因此,值得尝试预测统计数据的方差以及平均值。

【讨论】:

  • 我为此 +1 了,因为“在用其他 80% 的数据进行训练后,在 20% 的数据上测试你的 ANN 以确保这一点”。另外我要提到的是值得做一个滑动窗口技术,例如使用 800 天的训练数据,提前 1 天预测,比较预测与实际,然后将训练/预测窗口向右滑动 1 天,冲洗并重复。由此,您可以在一个极长的窗口内衡量预测器的准确性。事实上,我会更新我的评论:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-19
  • 1970-01-01
  • 2021-03-29
  • 1970-01-01
相关资源
最近更新 更多