見出し画像

名目金利と実質金利のイールドカーブ

金利を見る時には実質金利名目金利を見るのが良い。特にインフレが懸念される状況だと、尚更、その傾向は強い。また、利上げが見込まれる時には短期長期の金利の動きを併せてイールドカーブを見るのが良いだろう。

という事で、Pythonを使って、米国の名目金利と実質金利のイールドカーブを見てみよう。

1.Googleコラボにアクセス。

Googleコラボにアクセス、リンクはこちら。

画像2

上記の様な画面が開くので「ノートブック新規作成」をクリック。

画像3

次に破線部分に、プログラムのコードを入力する。

2.実行するプログラム

入力欄に下記をコピペして左端の「▶︎」をクリックして実行。

import pandas as pd
import pandas_datareader.data as web
import matplotlib.pyplot as plt
from matplotlib import gridspec
%matplotlib inline

# 対象URLを指定
url='https://www.treasury.gov/resource-center/data-chart-center/interest-rates/pages/TextView.aspx?data=yieldYear&year=2021'
tbl=pd.read_html(url)

# 1個目のテーブルを格納(ズレることがある。)
df = pd.DataFrame(tbl[1])
# 日付をインデックスに指定
df = df.set_index("Date")
# 日付のフォーマットを変換
df.index = pd.to_datetime(df.index, format = '%m/%d/%y').strftime('%Y-%m-%d')

#グラフ作成処理
fig = plt.figure(facecolor='white',figsize=(8,10),tight_layout=True)#
spec = gridspec.GridSpec(ncols=1, nrows=1)
ax1 =  fig.add_subplot(spec[0,0], title='Yield Curve')

##イールドカーブ作成処理####
ax1.plot([10,20,30,60,120,240,360,600,840,1200,2400,3600], df.iloc[-1,[0,1,2,3,4,5,6,7,8,9,10,11]].astype(float), color="red"  ,alpha=1)
ax1.plot([10,20,30,60,120,240,360,600,840,1200,2400,3600], df.iloc[-2,[0,1,2,3,4,5,6,7,8,9,10,11]].astype(float), color="red"  ,alpha=0.5)
ax1.plot([10,20,30,60,120,240,360,600,840,1200,2400,3600], df.iloc[-5,[0,1,2,3,4,5,6,7,8,9,10,11]].astype(float), color="gray"  ,alpha=0.5)
ax1.plot([10,20,30,60,120,240,360,600,840,1200,2400,3600], df.iloc[-20,[0,1,2,3,4,5,6,7,8,9,10,11]].astype(float), color="gray"  ,alpha=0.1)

# 対象URLを指定
url2='https://www.treasury.gov/resource-center/data-chart-center/interest-rates/pages/TextView.aspx?data=realyieldYear&year=2021'
tbl2=pd.read_html(url2)

# 1個目のテーブルを格納(ズレることがある。)
df2 = pd.DataFrame(tbl2[1])
# 日付をインデックスに指定
df2 = df2.set_index("DATE")
# 日付のフォーマットを変換
df2.index = pd.to_datetime(df2.index, format = '%m/%d/%y').strftime('%Y-%m-%d')

##イールドカーブ作成処理####
ax1.plot([600,840,1200,2400,3600], df2.iloc[-1,[0,1,2,3,4]].astype(float), color="red"  ,alpha=1)
ax1.plot([600,840,1200,2400,3600], df2.iloc[-2,[0,1,2,3,4]].astype(float), color="red"  ,alpha=0.5)
ax1.plot([600,840,1200,2400,3600], df2.iloc[-5,[0,1,2,3,4]].astype(float), color="gray"  ,alpha=0.5)
ax1.plot([600,840,1200,2400,3600], df2.iloc[-20,[0,1,2,3,4]].astype(float), color="gray"  ,alpha=0.1)

ax1.text(0.6, 0.05,"hippen_research Ltd.",horizontalalignment='left', verticalalignment='top',transform=ax1.transAxes, fontsize=15,color="gray"  ,alpha=0.5)  
ax1.set_title(label=('Yield Curve (& Yield Curve Real)' +"  "+df2.index[-1]), fontsize=15,color="gray")

##金利の長さ合わせて幅を調整###
ax1.set_xticks([10,20,30,60,120,240,360,600,840,1200,2400,3600])
ax1.set_xticklabels(["","","","","1y","","3y","5y","7y","10y","20y","30y"])
ax1.set_ylim(df2["5 YR"].min()-0.1,df["30 yr"].max()+0.1)
ax1.tick_params(axis='x', labelrotation=45)
plt.show()

3.実行結果

画像1

仕様
 横軸:金利の長さ(※)
 縦軸:金利
 グラフ下:実質金利
 グラフ上:名目金利
 薄い灰色:20日前の金利
 濃い灰色:5日前の金利
 薄い赤色:1日前の金利
 濃い赤色:最新の金利
※:1 Mo 2 Mo 3 Mo 6 Mo 1 Yr 2 Yr 3 Yr 5 Yr 7 Yr 10 Yr 20 Yr 30 Yr

4.解説

20日間の金利の動きを見ると(灰色から赤色への動き)、短期金利の上昇傾向が強い。更に、名目金利と実質金利の動きを見ると(上と下のグラフ)、実質金利の上昇傾向が強い。

そして、1日前からの動きを見ると(薄い赤色と濃い赤色)、金利は少し落ち着いてきている。

まぁ、この先の事は分かりませんが、FRBのパウエル議長の再任が決まったところで、早期利上げを織り込んで、急激に短期金利(と実質金利)が上昇したが、今日時点(2021/11/25)では、少し落ち着いてきた状態の様だ。

5.おまけ

長期金利より短期金利が上がっている状態を、ベア・フラットニングと言う。

「金利が上がると債券価格が下がる」のでベアと言い、
「金利差が縮小する」と傾きが平らになるので、フラットニングというのだけど、

ベア・フラットニングと聞いた時の、私の頭の中のイメージは少し違うので、絵をかいてみた。

画像4

語感から連想される、私の頭の中のイメージは、上図の様な感じである。

このイメージが何かの参考になれば幸いです。

では!

おつかれさん「缶コーヒー1杯ぐらい、ご馳走してあげよう」という太っ腹な方は投げ銭をお願いします!
課金しなくても、参考になったら「ハートボタン、フォロー、リツイート」をお願いします。読まれる可能性があがるので、次の記事を書くやる気が出ます。

ここから先は

0字

¥ 100

この記事が気に入ったらサポートをしてみませんか?