Yahoo Financeから株価を取得してローソク足チャートを表示する

はじめに

現在、株式投資をしていますが、色々とデータ分析をしてみたくて株価の取得方法を調べてみたので、
簡単ですが記事にしておきます。

株価データの取得

株価データはYahoo Financeから取得します。取得自体は非常に簡単でpandasのdatareaderで
取得したい銘柄と取得時期を指定するだけです。今回は省いていますが終了時期も指定可能。
今回の取得銘柄は高配当で有名なブリティッシュ・アメリカン・タバコ (BTI)を指定しました。

%matplotlib inline 
import matplotlib.pyplot as plt
import pandas_datareader.data as data
stock = data.DataReader("BTI","yahoo","2018/1/1").dropna()
stock.loc[:,'Adj Close'].tail(100).plot()

Jupyter Notebookでグラフ表示させると下記のようになります。
これでもいいですが、もっと分かりやすくローソク足チャートを表示してみます。
f:id:oki-lab:20191130165541p:plain

ローソク足チャートの表示

ローソク足チャートもOpenCVなどを使って、矩形を描画して…などという必要はなく、
Matplotlibの中にそのものズバリな関数があるので、それを使います。

from matplotlib.finance import candlestick2_ohlc
fig = plt.figure()
ax = plt.subplot()

candlestick2_ohlc(ax, stock["Open"].tail(20), stock["High"].tail(20), stock["Low"].tail(20), stock["Adj Close"].tail(20) ,width=0.8, colorup="g", colordown="r")
fig.savefig("figure.png")

引数は解説の必要もないくらいそのまんまです。
チャートを画像として保存したのが以下のものです。
ラベルは特に指定していませんが、ちゃんとしたローソク足チャートになっています。
f:id:oki-lab:20191130170130p:plain