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

Artificial intelligence 用人工神经网络进行长期预测,artificial-intelligence,neural-network,Artificial Intelligence,Neural Network,我正在做一个项目,用人工神经网络预测股票价格。我已经训练了这个系统 使用之前7年的数据,它可以很好地预测一天的数据。现在我想预测未来七天的股价 我的想法是使用第1天预测第2天的数据,使用第2天和第1天的预测数据预测第3天的数据,依此类推。但它不能正常工作 我训练了ANN使用开盘价、一天的最高和最低价格预测收盘价 预测未来七天的数据的想法是什么 Maruf,如果您对未来1天有可靠的ANN预测,请联系我进一步讨论!哈哈 别开玩笑了。神经网络和其他非线性预测器就是这种预测器。你处理的数据(股价数据)很

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

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

我训练了ANN使用开盘价、一天的最高和最低价格预测收盘价


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

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

别开玩笑了。神经网络和其他非线性预测器就是这种预测器。你处理的数据(股价数据)很大程度上是随机的。如果您不相信我,请尝试使用以下psuedo代码生成随机行走,并在屏幕上绘制:

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%以内?如果你的ANN在每天的营业结束时下订单,并在第二天结束时下订单,那么它会赚多少钱?当然要考虑到打滑和交易费用


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

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

  • 您是否确定自己没有过度拟合,例如学习准确复制培训数据的功能?如果你还没试过,我强烈建议你在用其他80%的数据训练后,在20%的数据上测试你的ANN,以确保这一点
  • 您是否也在学习预测绝对价格值或增量?如果是前者,那么你可能只是得到了一个很好的拟合,因为到目前为止,第二天收盘价的最佳预测值是今天的收盘价(因为数据具有如此多的序列相关性)。通过犯这个错误获得99%以上的R平方拟合并不罕见
假设您没有陷入上述陷阱,那么进行多天预测的方法就是为未来的每一天单独设置预测变量。将第二天的预测输入到第二天等方面没有太多附加价值(因为您的输入数据中没有任何新信息),但如果您愿意,您可以尝试(不会造成任何伤害,可能会通过提供有用的功能检测器等加快学习速度)


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

我认为这需要一个水晶球。我之所以这么做是因为“在用其他80%的数据训练后,用20%的数据测试你的ANN,以确保这一点”。我还想说的是,值得使用滑动窗口技术,例如,使用800天的训练数据,提前1天预测,比较预测与实际,然后将训练/预测窗口向右滑动1天,冲洗并重复。从那个里你们可以在一个非常长的窗口内测量预测器的准确度。我会更新我的评论事实上:)谢谢你的快速回复(我与马鲁夫在这个项目)。我们使用前一天的1。第二天。最低价格3。最高价格4。开盘价和5。过渡卷。我们不理解您的“将窗口向右滑动1天”想法。训练800天后,我们应该用第800天的数据(5行)预测第801天。然后需要与原始数据进行比较。那么?你说的“将窗户向右滑动1天”是什么意思?对不起,我的无知。我的意思是:如果你在真实的交易系统中使用这个人工神经网络,你只能访问过去的数据。每晚收盘后,你都会重新训练ANN,并预测明天的收盘价。然后在市场开放时,你将进行交易,在市场关闭时退出交易。第二天晚上,你将重复对过去数据(包括新的一天)的再培训,并为第二天创建预测,在第二天进行交易等等。。。您的测试应该尝试模仿这种行为。如果您创建了一个测试来完成上述操作,然后报告了%的成功/失败交易,那么它有多好?