使用人工神经网络进行长期预测

时间:2012-05-29 10:00:22

标签: artificial-intelligence neural-network

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

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

我已经培训人工神经网络,使用开盘价,一天的最高价和最低价预测收盘价。

预测未来七天的数据有什么想法?

2 个答案:

答案 0 :(得分:3)

Maruf,如果您有1天可靠的ANN预测因子,请与我联系进一步讨论! LOL

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

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周预测:用每周的库存数据代替以上所有。

修改

其次,您正在做什么来测试预测变量的准确性?为了增加迈克拉的答案,我建议采取如下的策略。

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

如果你在剩下的200天内继续这样做,那么结果的比例是多少?(向上,向下)?结果的百分比在实际预测收盘价的10%以内?如果您的人工神经网络在每天营业结束时下订单并在第二天结束时关闭它们,它会赚多少钱?当然要考虑滑点和交易费用......

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

答案 1 :(得分:2)

如果您能够有效地提前一天预测,那么您已经做得很好 - 通常的问题是:

  • 您确定不会过度拟合,例如:学会准确复制训练数据的功能?如果您还没有尝试过,那么我强烈建议您在对其他80%的数据进行培训后对20%的数据进行人工神经网络测试,以确保安全。
  • 您还在学习预测绝对价格或增量吗?如果是前者,那么你可能只是得到了一个合适的事实,即到目前为止,第二天收盘价的最佳预测因素是今天的收盘价(因为数据有如此多的序列相关性)。通过犯这个错误来获得99%+ R平方的情况并不罕见....

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

此外,您可能会预期进一步预测的不确定性/变化会更大(因为从现在到现在之间存在更多不确定的股票价格变动日)。由于这个原因,值得尝试预测统计数据的差异以及均值。