5

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

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

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

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

4

2 回答 2

4

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 在每天下班时下订单,并在第二天结束时下单,它会赚多少钱?当然要考虑滑点和交易费用......

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

于 2012-05-29T10:10:42.483 回答
3

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

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

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

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

于 2012-05-29T10:12:14.030 回答