预测股票走势
案例背景
数据集 SH50 给出了上证 50 指数从 2005 年 1 月 1 日至 2019 年 5 月10 日的股价数据,包括日期(date)、开盘价(open)、最高价(high)、最低价(low)、收盘价(close)、成交量(vol)。请建立模型对指数未来 5 日走势进行预测,如果未来五天平均价格变化 ≥ 1.5%,则记为“看涨”;未来五天股票平均价格变化 ≤-1.5%,记为“看跌”;其余情况记为“震荡”。根据历史数据预测未来五天股票价格的走势
数据预处理
导入基本库
import pandas as pd
import numpy as np
import os
import matplotlib.pyplot as plt
读取数据
df=pd.read_csv('sh50.csv')
- 将每天的收盘价进行可视化
close=list(df.close)
plt.plot(close)
构造label
- 构造依据
原始数据中没有看涨或者看跌这样的数据的,需要自己根据历史数据构造,若未来五日的股票的平均价格是当前价格的1.015倍,那么标为看涨股票。若未来五日的股票的平均价格是当前价格的0.985倍,那当前标为看跌。其他情况视为震荡。 - 定义函数
def make_label(*x):
labels=[]
for i in range(len(x)-5):
if (sum(x[i+1:i+6])/5.0)/x[i] - 1 > 0.015:
labels.append('看涨')
elif (sum(x[i+1:i+6])/5.0)/x[i] - 1 < -0.015:
labels.append('看跌')
else:
labels.append('震荡')
return labels
- 将构造的标签添加到原始数据中
labels=make_label(*close)
df=df.iloc[:-5,:]
df['label']=labels
因