# 基于循环神经网络预测股价
## 一、数据获取
### 1.1 训练过程中所有的股票日K数据均来自`tushare`
```$xslt
import tushare
pro = ts.pro_api(token)
df = pro.daily(ts_code, start_date, end_date)
df.to_csv(filename)
```
## 二、 数据预处理
### 2.1 获取到的数据格式如图所示
![csv](image/csv.png)
### 2.2 特征选取
我选取了股票交易数据中几个有用的特征
|特征|说明|
|-|-|
|open|开盘价|
|high|最高价|
|low|最低价|
|close|收盘价|
|pre_close|昨日收盘价|
|chagne|涨跌额|
|pct_chg|涨跌幅|
|vol|成交量(手)|
|amount|成交额(千元)|
### 2.3 数据标准化或归一化
去除特征量纲,加速模型收敛,这里采用标准化处理。
![standard](image/standard.png)
### 2.4 生成时间序列
这里选取`30`天为一个时间序列,来预估低`31`天的`开盘价`、`收盘价`、`最高价`和`最低价`
```
def series_data(df, n):
"""
将数据组装成时间序列
:param df: DataFrame对像
:param n: 时间序列长度
:return: data, label 数据和标签的numpy数组对象
"""
data = []
label = []
for i in range(len(df) - n):
d = df[i:n + i].values
l = df[n + i:n + i + 1][["open", "high", "low", "close"]].values
data.append(d)
label.append(l)
return np.array(data), np.array(label)
```
## 三、神经网络结构
### 3.1 简单起见,这里采用一层循环的`LSTM` + 全连接的输出层。
![LSTM](image/lstm.png)
### 3.2 神经网络定义
```
class RNN(torch.nn.Module):
def __init__(self, input_size):
"""
循环神经网络实现,采用LSTM
:param input_size: 输入的特征维度
"""
super(RNN, self).__init__()
self.rnn = torch.nn.LSTM(
input_size=input_size,
hidden_size=64,
num_layers=1,
batch_first=True
)
self.out = torch.nn.Sequential(
torch.nn.Linear(64, 4)
)
def forward(self, x):
"""
前向传播
:param x: 输入数据
:return:
"""
r_out, (h_n, h_c) = self.rnn(x, None)
out = self.out(r_out)
return out
```
### 3.3 输入输出维度
#### 输入
格式:(batch_size, series_length, input_dim)
实际取值
|维度|说明|大小|
|-|-|-|
|batch_size|批大小|10|
|series_length|序列长度|30|
|input_dim|特征维度|9|
#### 输出
格式:(batch_size, series_length, output_dim)
实际取值
|维度|说明|大小|
|-|-|-|
|batch_size|批大小|10|
|series_length|序列长度|30|
|output_dim|输出维度|4|
>实际取最后一个序列的输出与`label`进行损失计算
## 四、训练网络
略
## 五、验证
![predict](image/predict.png)
选取最高价的局部大图看一下
![high](image/detail.png)
可以看到不管是训练集还是测试集都拟合完美,具体效果如何等待验证,个人感觉中长线趋势还是挺准的,短线偶尔也有一定的误差。
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
基于递归神经网络预测股票价格(开盘、收盘、最高、最低).zip (9个子文件)
基于循环神经网络预测股价(开盘,收盘,最高,最低)_stock
项目内附说明
如果解压失败请用ara软件解压.txt 42B
stock-master
image
lstm.png 202KB
csv.png 70KB
detail.png 42KB
predict.png 220KB
standard.png 773B
stock.py 10KB
.gitignore 2KB
README.md 3KB
共 9 条
- 1
资源评论
好家伙VCC
- 粉丝: 2178
- 资源: 9145
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C语言核心知识点详解-数据类型、运算符、数组与指针综合应用
- 基于 SpringBoot 开发 BS 架构宠物健康咨询系统:从需求调研到上线运营全纪实
- 快乐星球0000000
- C#ASP.NET企业年终员工抽奖系统源码数据库 Access源码类型 WinForm
- 用 Fluent 进行飞机模拟
- C#ASP.NET程序软件销售网站源码数据库 SQL2008源码类型 WebForm
- 浅谈食盐与人体健康.docx
- jsppspsppspspspspspsps
- Python毕业设计基于知识图谱和生成式AI的智能食谱推荐系统源码.zip
- 基于 SpringBoot 开发网上蛋糕售卖店管理系统:从需求剖析到上线运营全解析
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功