让我们使用机器学习回归技术来预测最重要的贵金属之一黄金的价格。 我们将创建一个机器学习线性回归模型,该模型从过去的黄金 ETF (GLD) 价格中获取信息,并返回第二天的黄金价格预测。
步骤如下:
- 导入库并读取黄金 ETF 数据
- 定义解释变量
- 定义因变量
- 将数据拆分为训练数据集和测试数据集
- 创建线性回归模型
- 预测黄金ETF价格
- 绘制累积收益
- 如何使用这个模型来预测每日走势?
导入库并读取黄金 ETF 数据
首先要做的事情是:导入实施此策略所需的所有必要库。
# LinearRegression is a machine learning library for linear regression
from sklearn.linear_model import LinearRegression
# pandas and numpy are used for data manipulation
import pandas as pd
import numpy as np
# matplotlib and seaborn are used for plotting graphs
import matplotlib.pyplot as plt
%matplotlib inline
plt.style.use('seaborn-darkgrid')
# yahoo finance is used to fetch data
import yfinance as yf
然后,我们读取过去 12 年的每日黄金 ETF 价格数据并将其存储在 Df 中。我们删除不相关的列,并使用 dropna() 函数删除 NaN 值。然后,我们绘制黄金 ETF 收盘价。
# Read data
Df = yf.download('GLD', '2008-01-01', '2020-6-22', auto_adjust=True)
# Only keep close columns
Df = Df[['Close']]
# Drop rows with missing values
Df = Df.dropna()
# Plot the closing price of GLD
Df.Close.plot(figsize=(10, 7),color='r')
plt.ylabel("Gold ETF Prices")
plt.title("Gold ETF Price Series")
plt.show()
定义解释变量
解释变量是被操纵以确定第二天黄金 ETF 价格价值的变量。简而言之,它们是我们想要用来预测黄金 ETF 价格的特征。
该策略的解释变量是过去3天和9天的移动平均线。我们使用 dropna() 函数删除 NaN 值并将特征变量存储在 X 中。
但是,您可以向 X 添加更多您认为有助