股票大跌了,只能靠黄金稳住收入了丨用 Python 机器学习预测黄金价格

本文通过机器学习的线性回归模型预测黄金ETF(GLD)价格,利用过去价格的移动平均线作为解释变量。模型在测试集上的R平方达到99.21%,并展示了策略的累积收益和夏普比。

读取黄金 ETF 数据

本文使用机器学习方法来预测最重要的贵金属之一黄金的价格。我们将创建一个线性回归模型,该模型从过去的黄金 ETF (GLD) 价格中获取信息,并返回对第二天黄金 ETF 价格的预测。GLD是直接投资实物黄金的最大ETF。(扫描本文最下方二维码获取全部完整源码和Jupyter Notebook 文件打包下载。)

首先要做的是:导入所有必要库。

# LinearRegression 是一个用于线性回归的机器学习库  
from sklearn.linear_model import LinearRegression  
# pandas 和 numpy 用于数据操作  
import pandas as pd  
import numpy as np  
# matplotlib 和 seaborn 用于绘制图形  
import matplotlib.pyplot as plt  
%matplotlib inline  
plt.style.use('seaborn-darkgrid')  
# yahoo Finance用于获取数据  
import yfinance as yf 

然后,我们读取过去 12 年的每日黄金 ETF 价格数据并将其存储在 Df 中。我们删除不相关的列并使用 dropna() 函数删除 NaN 值。然后,我们绘制黄金 ETF 收盘价。

Df = yf.download('GLD', '2008-01-01', '2020-6-22', auto_adjust=True)  
DfDf = Df[['Close']]  
DfDf = Df.dropna()  
Df.Close.plot(figsize=(10, 7),color='r')  
plt.ylabel("Gold ETF Prices")  
plt.tit
股票市场中,“昨日大跌”通常是指某只股票在前一个交易日的收盘价相比于再前一个交易日的收盘价下跌了较大的幅度。这个“较大”的幅度可以根据不同的需求来定义,例如跌幅超过5%、7%或10%等。 以下是实现这一功能的Matlab代码: ```matlab function isBigDrop = isStockDroppedHeavily(prevClose, currentClose, threshold) % prevClose: 前一日收盘价 % currentClose: 当前日收盘价 % threshold: 定义为“大跌”的百分比阈值(如5%,则输入0.05) % 返回值:isBigDrop - 如果昨日大跌,则返回true,否则返回false dropPercentage = (prevClose - currentClose) / prevClose; if dropPercentage >= threshold isBigDrop = true; else isBigDrop = false; end end % 示例调用 prevClose = 100; % 前一日收盘价 currentClose = 95; % 当前日收盘价 threshold = 0.05; % 大跌定义为5% result = isStockDroppedHeavily(prevClose, currentClose, threshold); disp(result); % 输出true或false ``` ### 解释: 1. **函数定义**:`isStockDroppedHeavily` 是一个函数,它接收三个参数: - `prevClose`:前一天的收盘价。 - `currentClose`:当前天的收盘价。 - `threshold`:定义“大跌”的百分比阈值(如5%对应0.05)。 2. **计算跌幅**:通过 `(prevClose - currentClose) / prevClose` 计算出价格的跌幅百分比。 3. **判断条件**:如果跌幅大于等于设定的阈值,则返回 `true`,表示昨日大跌;否则返回 `false`。 ### 注意事项: - 数据来源需要确保是连续交易日的数据。 - 阈值的选择可以根据具体需求调整,例如行业惯例、个人投资策略等。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值