yfinanceを使ってS&P500のグラフを書いてみた

プログラミング

外国株式の株価データを触ってみたいなぁとおもい、やってみたので記録に残します。

知人が使っているのをみかけ、yfinanceのパッケージをいれてみました。

参考ページは

Yahoo FinanceAPIを使用したPythonの無料株式データ
Yahoo Finance APIとは何ですか?Yahoo Financeは、財務ニュース、株価に関するデータ、プレスリリース、財務レポートを提供するメディアプラットフォームです。また、YahooFinanceが提供するすべてのデータは無料です。
yfinance
Download market data from Yahoo! Finance API

とりあえず、pipでインストール

$pip install yfinance

公式ドキュメントを見ながら、以下で簡単にデータが取ってこれるらしい。

import yfinance as yf
data = yf.download("SPY AAPL", start="2017-01-01", end="2017-04-30")

私は、S&P500のデータがほしいので、銘柄を書き換えて、period optionも変えて、以下とした。

import yfinance as yf

data = yf.download("^GSPC", period='1d', start='1990-01-01', end='2020-11-30')

すると、以下のDataframeが得られる。

このDataframeをmatplotlibで図表にプロットしていく。

流れは

・終値でグラフを作成するので、終値だけのSeriesを抽出する

・グラフ描写

コードは以下の通り。

#グラフ用にSeriesを抽出
sp500 = data['Close'].rename('GSPC')

#グラフ描写
import matplotlib
import matplotlib.pyplot as plt

fig = plt.figure()
ax = plt.subplot(111)

ax.plot(sp500, label='GSPC')

ax.set_yscale('log')
ax.legend()

fig.show()

最終的にきれいにしたのが、以下の通り。

import yfinance as yf
import matplotlib
import matplotlib.pyplot as plt

#データダウンロード
data = yf.download("^GSPC", period='1d', start='1990-01-01', end='2020-11-30')

#グラフ用にSeriesを抽出
sp500 = data['Close'].rename('GSPC')

#グラフ描写
fig = plt.figure()
ax = plt.subplot(111)

ax.plot(sp500, label='GSPC')

ax.set_yscale('log')
 #ここでは片対数にしている。
ax.legend()

fig.show()

以下のようなグラフを作成できた。

コメント

タイトルとURLをコピーしました