灰色模型预测股票python
时间: 2023-07-25 08:25:15 浏览: 36
灰色预测模型是一种基于经验数据建立的非参数预测方法,可以用于预测时间序列数据。在预测股票价格方面,可以将历史数据作为输入,通过建立灰色预测模型来预测未来的股票价格变化趋势。下面是一个简单的用Python实现灰色预测模型预测股票价格的示例代码:
```python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 读取股票价格数据
df = pd.read_csv('stock_price.csv', index_col=0, parse_dates=True)
# 提取股票价格序列
data = df['close'].values
# 灰色预测模型
def GM11(x0):
x1 = np.cumsum(x0)
z1 = (x1[:len(x1) - 1] + x1[1:]) / 2.0
z1 = z1.reshape((len(z1), 1))
B = np.append(-z1, np.ones_like(z1), axis=1)
Y = x0[1:].reshape((len(x0) - 1, 1))
[[a], [b]] = np.dot(np.dot(np.linalg.inv(np.dot(B.T, B)), B.T), Y)
result = np.zeros_like(x0)
result[0] = x0[0]
for i in range(1, len(x0)):
result[i] = (x0[0] - b / a) * np.exp(-a * (i)) - (x0[0] - b / a) * np.exp(-a * (i - 1))
return result, a, b
# 预测未来股票价格
n = 30 # 预测未来n天的股票价格
x0 = data[:len(data) - n]
forecast, a, b = GM11(x0)
forecast = np.append(data[:len(data) - n], forecast)
# 绘制股票价格预测图
plt.plot(df.index, data, color='blue', label='actual')
plt.plot(df.index, forecast, color='red', label='forecast')
plt.legend(loc='upper left')
plt.xlabel('Date')
plt.ylabel('Stock Price')
plt.show()
```
该示例代码中使用的是一种简单的灰色预测模型,具体实现方法可以参考相关文献。需要注意的是,灰色预测模型的预测结果可能存在较大的误差,建议在实际应用中结合其他预测方法进行综合预测。