使用线性回归模型预测黄金ETF价格

代码

# 用于数据处理
import numpy as np
import pandas as pd
# 用于获取数据
import akshare as ak
# 导入线性回归模型
from sklearn.linear_model import LinearRegression
# 导入画图库、设置主题和中文显示
import matplotlib.pyplot as plt


import re

plt.style.use('seaborn-darkgrid')
plt.style.use('seaborn-v0_8-darkgrid')
plt.rcParams['font.sans-serif'] = ['SimHei'] # 中文显示
plt.rcParams['axes.unicode_minus'] = False   # 负数显示
# 设置忽略警告
import warnings
warnings.filterwarnings('ignore')
from datetime import datetime


# 获取黄金ETF的历史行情数据
etf_data = ak.fund_etf_hist_em(symbol='518880', period='daily', start_date='20130801', end_date='20240517')
# 只需要收盘价序列
Df = etf_data[['收盘']].rename(columns={'收盘':'Close'})
# 将Index设置为datetime格式的日期
Df.index = pd.to_datetime(etf_data['日期']).tolist()
# 去除空值
Df = Df.dropna()
# 画出黄金ETF的价格走势图
Df.Close.plot(figsize=(15, 8), color='red')
plt.ylabel('黄金ETF价格')
plt.title('黄金ETF价格序列')
plt.show()


# 计算均线因子
Df['S1'] = Df['Close'].rolling(window=55).mean()
Df['S2'] = Df['Close'].rolling(window=60).mean()
# 第二天的收盘价
Df['next_day_price'] = Df['Close'].shift(-1)
Df = Df.dropna()

# 定义解释变量
X = Df[['S1', 'S2']]
# 定义因变量
y = Df['next_day_price']

 

生成

 

posted @ 2024-07-09 19:09  方倍工作室  阅读(21)  评论(0编辑  收藏  举报