我正在进行一个使用人工神经网络预测股票价格的项目。我使用过去7年的数据训练了系统,预测一天的数据效果很好。现在我想预测接下来七天的股票价格。
我的想法是使用第一天的数据预测第二天的数据,使用第一天和预测的第二天的数据预测第三天的数据,依此类推。但这种方法效果并不理想。
我已经训练了ANN,使用一天的开盘价、最高价和最低价来预测收盘价。
如何预测接下来七天的数据呢?
回答:
Maruf,如果你有一个可靠的一天预测的ANN,请联系我进一步讨论!哈哈
玩笑归玩笑。神经网络和其他非线性预测器只是预测工具。你处理的数据(股票价格数据)在很大程度上是随机的。如果你不相信我,试着使用以下伪代码生成一个随机游走并在屏幕上绘制它:
let min = -0.5let max = +0.5let bias = 0.01let random = rand(min, max)y[i] = y[i-1] + random + bias
稍微调整偏差(从-0.01到0.01),你会得到一个看起来非常像趋势股票价格的序列。原因是任何潜在趋势中都有像抛硬币一样做决策的人。你知道吗,平均交易者的正确率是55%?这就是他所需要的……
现在,如果数据在很大程度上是随机的,那么预测就变得非常困难。你是在大量噪音中寻找信号。你尝试预测的每一天,你的预测都会变得越来越不准确。
我可以问一下——你输入ANN的用于一天预测的输入是什么?例如,如果你使用每日股票价格加上其他衍生因素(如变化率、成交量、背离等)来获得准确的一天预测,你可能会发现通过用每周股票数据替换上述所有数据,可以获得准确的一周预测。
编辑:
其次,你是如何测试预测器的准确性的?我建议补充mikera的回答,采用以下策略。
给定一个1000天的数据窗口,取其中的800天来训练你的ANN。现在预测未来一天。将预测的方向(上升,下降)与预测的收盘价(百分比差异)进行比较,以评估该结果的准确性。现在将窗口向右滑动一天。重新训练ANN并进行一天的预测,记录结果。
如果你继续这样做剩下的200天,有多少比例的结果预测了正确的方向(上升,下降)?有多少比例的结果在实际预测的收盘价的10%以内?如果你的ANN在每天的收盘时下单,并在下一天的收盘时平仓,它会赚多少钱?当然要考虑到滑点和交易费用……
这将让你了解系统的准确性和价值。