👏

[Numerai] 金融データの収集にpandas-datareaderとFredが簡単そう

2022/01/23に公開

まとめ

米国株予測に際し、10年債や2年債の利回りを取れないものか…と考えた結果、下記の2つのサイトから欲しいものを手に入れることができました。Fredとpandas_datareaderがすごい。

https://qiita.com/innovation1005/items/edcf78cbf89477b3b0a7#イールドカーブアプローチ

https://dev.classmethod.jp/articles/pandas_datareader-python/


ソースコード

米国の2年、5年、10年金利利回りを取得し、傾きをプロットしてみます。

import numpy as np
import pandas as pd
import datetime as dt
import pandas_datareader.data as web

s = dt.date(2002, 1, 1)
e = dt.date(2021, 1, 20)
df_2 = web.DataReader("DGS2", "fred", s, e)
df_5 = web.DataReader("DGS5", "fred", s, e)
df_10 = web.DataReader("DGS10", "fred", s, e)

df = pd.concat([df_2, df_5, df_10], axis=1)
df.plot() # とりあえず金利プロット

yield_curves = []
for row in df.iterrows():
  if row[1].isnull().any():
    yield_curves.append(np.nan)
  else:
    x = [2, 5, 10]
    y = row[1].values
    yield_curves.append(np.polyfit(x, y, 1)[0])

df["YC"] = yield_curves
df["YC"].plot()
  • 結果

Discussion