內容目錄
當兩年期美國公債減十年期美國公債利差為正,我們稱之為殖利率曲線倒掛。
通常天期越長的債券需要較高的風險溢酬,而發生倒掛時伴隨而來的是關於景氣衰退的疑慮,而本文將以尋找每個發生倒掛的時點,接著繪出一年之前與兩年後的總經數據以提供觀察。
本文使用 Window10 並以 Spyder(anaconda31) 作為編輯器
#######################3 from datetime import datetime, timedelta import pandas as pd import numpy as np import matplotlib.pyplot as plt #########################3 import tejapi import plotly.graph_objects as go import plotly.io as pio ################## pio.renderers.default = 'browser' ##PLOT IN WEB
總體經濟資料: 總體經濟 資料庫代碼 (GLOBAL/ANMAR),
總體經濟資料: 總體經濟說明 資料庫代碼 (GLOBAL/ABMAR)
TEJ PRO 總體經濟資料庫
本文的公債取自TEJ PRO資料庫,所以在本機端讀取
df=pd.read_excel("C:\Users/user/Desktop/Tej/美國公債殖利率.xlsx")
資料裡面有na值,我們要將她刪除 並且重設index
df.dropna(inplace=True)
df.reset_index(drop=True,inplace=True)
df["dif2Y"]=df.US10Y-df.US2Y df["invertkeepday"]=df["dif2Y"].apply(lambda x : 1 if x < 0 else 0 )
df["cross"]=np.nan df["notcross"]=np.nan
startday=[] endday =[] keep = 0 df=df.copy() for i in range(len(df)): if df["invertkeepday"][i] >0 : if keep == 0: df["cross"][i]=df["US10Y"][i] startday.append(df["日期"][i]) keep = 1 elif keep == 1 : df["notcross"][i]=df["US10Y"][i]
if df["invertkeepday"][i] < 1 : endday.append(df["日期"][i]) keep = 0
我們用程式來看有多少資料
for start , end in zip(startday,endday):
print(start , end, end-start)
inverted=pd.DataFrame(endday,startday) inverted.reset_index(inplace=True) inverted["year"]=inverted["index"].dt.year datetime=inverted.groupby('year') datetime=list(datetime) getstart=[] getend =[] for i in datetime : i[1].reset_index(drop=True,inplace=True) start = i[1]["index"][0] end = i[1][ 0][len(i[1])-1] getstart.append(start) getend.append(end) for start , end in zip(getstart,getend): print(start , end, end-start)
1990 , 1998 ,2000 ,2005~2007 , 2019, 2022 ,一共發生六次
df.set_index("日期",inplace=True)
plt.figure(figsize=(12.2,4.5)) plt.scatter(df.index,df['cross'],color='red', label='cross!',marker='x',alpha=1) plt.scatter(df.index,df['notcross'],color='green', label='Notcross',marker='o',alpha=1) plt.plot(df["US2Y"], label='2Y', alpha=0.35) plt.plot(df["US10Y"], label='10Y', alpha=0.35) plt.plot(df["dif2Y"], label='dif', alpha=0.35)
plt.title('Close Price Buy & Sell Signals') plt.xticks(rotation=45) plt.xlabel('Date') plt.ylabel('Price') plt.legend() plt.grid()
df[df["US2Y"]==0]
df.drop(index="2017-04-14",axis=1,inplace=True)
##因為資料有0 影響畫圖
接下來我們擁有倒掛發生的時間後,使用他為輸入繪出近兩年的經濟數據,包含PMI ,失業率,經濟成長率,消費者信心等
從各方面的經濟數據來看可能代表著景氣已過高峰,因此對未來景氣產生疑慮,售出短天期的債券,而偏好更長期的債券,才導致殖利率發生倒掛,雖然每次發生倒掛後,會伴隨著經濟衰退,但這五次發生倒掛後,有兩次美國經濟並未在兩年內發生經濟衰退,2000年因為遇上網路泡沫,而2019年倒掛後也是因為遇上疫情後才產生經濟衰退。
而現在呢?
目前美國的經濟數據高峰雖已過,但仍維持在很高的水準,也因為依然強勁的經濟表現,使美國聯準會進入了升息循環,雖然每次的倒掛隨後都會衰退,但這個指標為非常領先的指標了,過去五次兩年期與十年期發生倒掛,平均還要18個月才會發生衰退,或許倒掛是想告訴我們
嘿! 該注意風險了。
電子報訂閱