Quantcast
Channel: 初心者タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 21093

【python】DataReaderで経済データを取得する

$
0
0

twitterで下記チャートを紹介しました。
VIX_SP500rtn.png
このチャートは、

横軸はVIX(恐怖指数)、縦軸はその後100日(約半年)騰落率。VIXの水準とその後の騰落率には正の相関がありランダムウォークではない。今のVIXが40程度なので、過去ケースから見ると半年後のリターンがマイナスになることはなさそう(投資は自己責任!)

ということを意味しています。

このチャートは、Pythonのpandas_datareaderを使ってセントルイス連銀ウェブサイトからVIX(恐怖指数)とS&P500株価指数を取得して作りました。

ここにそのコードを保存しておきます。

まずライブラリの読み込み。

importpandasaspdimportnumpyasnpimportpandas_datareader.dataaswebimportdatetimeimportmatplotlib.pyplotaspltimportseabornassnssns.set()frompandas.plottingimportregister_matplotlib_convertersregister_matplotlib_converters()

1.DataReaderでデータを取得

#取得するデータの開始日と最終日を指定
start=datetime.datetime(2010,1,1)end=datetime.datetime(2020,5,1)#S&P500のデータを取得
# 'SP500'がS&P500のティッカーシンボル。
# 'fred'が、データソースとしてセントルイス連銀を指定する。
#あとは開始日と最終日。
eq=web.DataReader('SP500','fred',start,end)#VIXのデータを取得
# 'VIXCLS'がVIXのティッカーシンボル。
vix=web.DataReader('VIXCLS','fred',start,end)#取得したデータを1つのデータフレームにまとめる
df=pd.DataFrame(index=eq.index)df['Equity']=eqdf['VIX']=vixdf.dropna(inplace=True)

セントルイス連銀からは様々な経済・金融データを取得できます。
セントルイス連銀ウェブサイト各データのURLの、一番最後がシンボルティッカーです。

例:VIXの場合は下記アドレスの最後、VIXCLSとなります。
https://fred.stlouisfed.org/series/VIXCLS

2. グラフを作成

#グラフを作る関数
defchart(days):dfd=df.copy()dfd['Return']=(dfd['Equity'].shift(-days)/dfd['Equity']-1)dfd.dropna(inplace=True)plt.figure(figsize=(8,4))plt.scatter(x=dfd['VIX'],y=dfd['Return'],alpha=0.6,c=dfd['VIX'])plt.xlabel('VIX')plt.ylabel(str(days)+' days Return')plt.title('VIX and S&P500 '+str(days)+' days Returns (USD base)')plt.savefig('VIX_SP500rtn',bbox_inches="tight")#何日間のリターンを計算するかを指定して関数実行
chart(100)

↓このグラフが作られます。

VIX_SP500rtn.png

plt.scatter(x = dfd['VIX'], y = dfd['Return'], alpha = 0.6, c = dfd['VIX'])
↑このコードのc = dfd['VIX']によって、VIXの値に応じてグラフ内の点の色を変えて、グラデーション効果を出しています。

おまけ1:VIXチャート

df['VIX'].plot(title='VIX',figsize=(8,4))

VIX.png

おまけ2:SP500チャート

df['Equity'].plot(title='S&P500',figsize=(8,4))

VIX.png

おわりに

DataReaderでは、セントルイス連銀の経済データだけでなく、株価や為替など、様々なデータを取得することができます。詳しくはDataReaderのドキュメントをご参照ください。


Viewing all articles
Browse latest Browse all 21093

Trending Articles