使用線性迴歸模型預測黃金ETF價格

方倍工作室發表於2024-07-09

程式碼

# 用於資料處理
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']

生成

相關文章