python で債権利回りの表示

python で債権利回りの表示

債権は

https://investpy.readthedocs.io/_api/bonds.html
で取得できそう

ただし、債権利回りがでてないので検索

債権利回りコードは
https://stackoverflow.com/questions/65063436/pulling-yields-data-from-investpy-package
を参考に

import investpy
data = investpy.bonds.get_bond_historical_data(bond='South Africa 2Y',
                                               from_date='01/01/2019',
                                               to_date='31/12/2019')
data

で南アフリカ2年債の利回りを表示可能

米国債の2年債の利回りなら

data = investpy.bonds.get_bond_historical_data(bond='U.S. 2Y',
                                               from_date='01/01/2019',
                                               to_date='31/12/2019')

data

でOK

債権の国コードや種類については
https://za.investing.com/rates-bonds/world-government-bonds?maturity_from=10&maturity_to=310
で調べることができる

Find Government Bonds

Country of Listing で国を選べば
チャートの下のほうに債権の種類が表示されるので
これをもとに
米国債2年なら
U.S. 2Y
となる

altair で表示するなら
商品市場でWTI、金価格のときにやったのと同じように
行う

今回は日付を date で取得し
年始から今日までの米国債2年債の利回りチャートを表示

from datetime import datetime, date, timedelta
from dateutil.relativedelta import relativedelta

today = datetime.today().strftime('%d/%m/%Y')
today

で今日の日付を取得

US2Y = investpy.bonds.get_bond_historical_data(bond='U.S. 2Y',
                                               from_date='01/01/2021',
                                               to_date=today)
US2Y

で年始から今日までの利回りを取得

US2Y.index = US2Y.index.strftime('%Y/%m/%d')

で日付フォーマット変更

US2Y = US2Y.T
US2Y = US2Y.T.reset_index()


Date カラムを移動

chart =(
    alt.Chart(US2Y)
    .mark_line(opacity=0.8,clip=True)
    .encode(
        x="Date:T",
        y=alt.Y("Close:Q",stack=None)
    )
)
chart

で債権利回りをチャートで表示できる

同様に10年債も表示

US10Y = investpy.bonds.get_bond_historical_data(bond='U.S. 10Y',
                                               from_date='01/01/2019',
                                               to_date=today)
US10Y.index = US10Y.index.strftime('%Y/%m/%d')
US10Y = US10Y.T
US10Y = US10Y.T.reset_index()

us10 =(
    alt.Chart(US10Y)
    .mark_line(opacity=0.8,clip=True,color='Yellow')
    .encode(
        x="Date:T",
        y=alt.Y("Close:Q",stack=None)
    )
)

あとはチャートを重ねて表示するので

alt.layer(chart,us10).resolve_scale(
    y = 'independent'
)

とすると
2年債と10年債の2つのチャートが表示されるようになる

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です