tushare实战分析美元黄金与美债收益率、利率的关系

本文通过tushare获取2000-2021年美国国债收益率、利率及美元黄金的历史数据,进行数据处理后,分析黄金价格与美债收益率、利率的关联性。结果显示,黄金与美债收益率、利率存在反向变动关系,为投资策略提供了理论依据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

tushare实战分析美元黄金与美债收益率、利率的关系

提示:如果还不知道tushare的小伙伴,我悄悄告诉你们tushare网址



数据获取

目标数据: 2000-2021美国国债收益率与利率 、 2000-2021美元黄金的历史数据、大宗商品品类代码

获取大宗商品数据

本来我是只想找黄金数据的, 奈何找了一圈只有大宗商品里面有黄金数据, 所以就先获取黄金数据的代码

经典操作, 不过多解释, 上代码!!!

# 导入tushare
import tushare as ts
# 初始化pro接口
pro = ts.pro_api('你的神秘代码')

# 拉取数据 获取大宗商品数据
df = pro.fx_obasic(**{
    "exchange": "FXCM",
    "classify": "COMMODITY",
    "ts_code": "",
    "limit": "",
    "offset": ""
}, fields=[
    "ts_code",
    "name",
    "classify",
    "exchange",
    "min_unit",
    "max_unit",
    "pip",
    "pip_cost",
    "traget_spread",
    "min_stop_distance",
    "trading_hours",
    "break_time"
])
# 数据储存方便使用
df.to_csv('大宗商品数据代码.csv')
# XAUUSD.FXCM  黄金美元

然后数据集中的XAUUSD.FXCM 代表黄金美元
注意: 你的神秘代码在tushare的个人主页 – 接口token中获取

获取黄金日线数据

官方说单次导入上限是1000条, 所以我分了4次导入, 但是用过才发现, 超过1000条也是可以的;

导入完后,将数据表纵向合并, 保存下次使用;

代码如下:

# 导入tushare
import tushare as ts
# 初始化pro接口
pro = ts.pro_api('你的神秘代码')

df1 = pro.fx_daily(**{
    "ts_code": "XAUUSD.FXCM",
    "trade_date": "",
    "start_date": 20000101,
    "end_date": 20050101,
    "exchange": "FXCM",
    "limit": "",
    "offset": ""
}, fields=[
    "ts_code",
    "trade_date",
    "bid_open",
    "bid_close",
    "bid_high",
    "bid_low",
    "ask_open",
    "ask_close",
    "ask_high",
    "ask_low",
    "tick_qty"
])
df2 = pro.fx_daily(**{
    "ts_code": "XAUUSD.FXCM",
    "trade_date": "",
    "start_date": 20050101,
    "end_date": 20100101,
    "exchange": "FXCM",
    "limit": "",
    "offset": ""
}, fields=[
    "ts_code",
    "trade_date",
    "bid_open",
    "bid_close",
    "bid_high",
    "bid_low",
    "ask_open",
    "ask_close",
    "ask_high",
    "ask_low",
    "tick_qty"
])
df3 = pro.fx_daily(**{
    "ts_code": "XAUUSD.FXCM",
    "trade_date": "",
    "start_date": 20100101,
    "end_date": 20150101,
    "exchange": "FXCM",
    "limit": "",
    "offset": ""
}, fields=[
    "ts_code",
    "trade_date",
    "bid_open",
    "bid_close",
    "bid_high",
    "bid_low",
    "ask_open",
    "ask_close",
    "ask_high",
    "ask_low",
    "tick_qty"
])
df4 = pro.fx_daily(**{
    "ts_code": "XAUUSD.FXCM",
    "trade_date": "",
    "start_date": 20150101,
    "end_date": 20210101,
    "exchange": "FXCM",
    "limit": "",
    "offset": ""
}, fields=[
    "ts_code",
    "trade_date",
    "bid_open",
    "bid_close",
    "bid_high",
    "bid_low",
    "ask_open",
    "ask_close",
    "ask_high",
    "ask_low",
    "tick_qty"
])
data = pd.concat([df4, df3, df2, df1], axis=0)
data.to_csv('美元黄金日线数据.csv') # 储存数据方便以后调用

获取2000-2021美国国债收益率与利率的数据

书接上文, 导入上次获取的2000-2021美国国债收益率与利率的数据;

如果没看过我上篇文章的请快去 tushare实战分析上证综指与美债收益率的关系

代码如下:

# 导入美债利率
american_bond = pd.read_csv('2000-2021美债收益率及货币量变化(月).csv')

数据处理

将黄金的日线数据转化为月度数据

# 导入tushare
#%% 数据处理
data = pd.read_csv('美元黄金日线数据.csv')
# 将日期调成月度
data['trade_date'] = data['trade_date'].apply(lambda x:int(str(x)[0:6]))
# 根据月度数据来汇总信息
data_month = data.groupby('trade_date').mean()
# 将数据储存方便以后再用
data_month.to_csv('美元黄金(月)数据.csv')

将美债数据与美元黄金数据合并

# 导入美债利率
american_bond = pd.read_csv('2000-2021美债收益率及货币量变化(月).csv')
# 将date设置为索引
american_bond.set_index('date', inplace=True)

# 将美债数据与美元黄金数据合并
data = pd.concat([american_bond, data_month], axis=1)
# 发现有缺失值, 缺失值主要在黄金的前期数据, 将有缺失值的那些行都删掉
data.dropna(axis=0, inplace=True)

绘图查看黄金价格与美债收益率的关系

将上证综指的指数变换与美债收益率的变化画在同一幅图中

注意

  • 不同y轴刻度画在同一幅图中, 关键是twinx()
  • 设置年份的x轴, 关键是xticks

总体上画图的思路, 同上文

话不多说, 上代码!!!

#%% 绘图查看黄金价格与美债收益率的关系
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

fig, ax1 = plt.subplots()
month = [12*i for i in range(20)]
year = [i for i in range(2001, 2021)]
plt.xticks(month, year, rotation=45)
ax1.plot(range(len(data)), data.ask_close, '-r', label='黄金价格')
ax1.set_xlabel("年份")
ax1.set_ylabel("黄金价格")
ax2 = ax1.twinx()
ax2.plot(range(len(data)), data.y30, 'y', label='美国国债收益率')
ax2.set_ylabel("美国国债收益率")
fig.legend()
plt.show()

结果如下:
黄金价格与美债收益率的关系


绘图查看黄金价格与利率m1的关系

基本同上;

#%% 绘图查看黄金价格与利率m1的关系
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

fig, ax1 = plt.subplots()
month = [12*i for i in range(20)]
year = [i for i in range(2001, 2021)]
plt.xticks(month, year, rotation=45)
ax1.plot(range(len(data)), data.ask_close, '-r', label='黄金价格')
ax1.set_xlabel("年份")
ax1.set_ylabel("黄金价格")
ax2 = ax1.twinx()
ax2.plot(range(len(data)), data.m1, 'y', label='利率')
ax2.set_ylabel("利率")
fig.legend()
plt.show()

结果如下:
黄金价格与利率m1的关系


结果分析

  • 从上图可以看出黄金与债市基本是反向变动. 所以给我们的投资组合中的股债对冲形成了理论依据;

  • 从上图可以看出黄金价格与利率大致是反向变动,这与强弱周期的关系非常密切, 但具体是否是反向变动关系, 有待后续分析

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PD我是你的真爱粉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值