从在线API中提取股票价格数据,使用配备有TensorFlow.js框架的递归神经网络和长期短期记忆(LSTM)执行预测。
机器学习近年来深受欢迎,越来越多的人把它当作一个能够预测未来时间和特定事件的神奇水晶球。该实验使用人工神经网络揭示股市走势,揭示了使用过去的历史数据来预测未来股票价格的能力,即时间序列预测能力。
注意!!!由于多重因素,股票市场波动不断变化且不可预测。该实验完全基于教学目的,切不可当作交易预测的工具。
项目演练
该项目演练分为4个部分:
1. 从在线API提取股票数据
2. 计算给定时间窗口的简单移动平均值
3. 训练LSTM神经网络
4. 预测并比较预测值与实际值
获取股票数据
在训练神经网络并进行预测之前,首先需要数据。查找的数据类型按照时间序列,即按时间顺序排列的数字序列。可以从alphavantage.co上获取数据。API能够按照时间顺序检索过去20年中特定公司股票价格的数据。
API会生成以下字段:
- 开放价格
- 当天的最高价
- 当天的最低价
- 收盘价(仅限本项目)
- 交易量
为准备神经网络的训练数据集,将使用收盘股票价格。这也意味着本次的目标是预测未来的收盘价。
此图显示了20年以来Microsoft Corporation每周收盘价。
简单移动平均线
本次实验将使用监督学习,这意味着将数据输送到神经网络,并通过把输入数据映射到输出标签来进行学习。准备训练数据集的一种方法是从该时间序列数据中提取移动平均值。
简单移动平均线(SMA):该方法可以通过查看该时间窗内所有值的平均值识别特定时间段的趋势方向。该时间窗口的价格数量根据实验需要进行选择。
例如,假设过去5天的收盘价是13,15,14,16,17,SMA将是(13 + 15 + 14 + 16 + 17)/ 5 = 15.所以输入的训练数据集即为单个时间窗口内的价格集,其标签值为这些价格的计算移动平均值。
计算一下微软公司每周收盘价数据的SMA,窗口大小为50。
functionComputeSMA(data,window_size){ let r_avgs = [], avg_prev = 0; for (let i = 0; i
师傅很专业,对这个问题非常熟悉,很快处理好了,收费又合理
上门速度很快速,快速帮我弄好了,非常及时
困扰我好久的问题了,这个师傅很靠谱帮我解决了难题