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

我正在进行一个使用人工神经网络预测股票价格的项目。我使用过去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在每天的收盘时下单,并在下一天的收盘时平仓,它会赚多少钱?当然要考虑到滑点和交易费用……

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

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注