ランダムの森

20代エンジニアです。プログラミングについて主に書いてます。

pythonのpandasで株価情報を取得してplotlyでローソクチャートを描く方法

pythonを使って株価取得からローソクチャート図作成までのメモ。
超簡単なのですぐにできるはず。
今回はplotlyを使って書いて見た。が、ドキュメントが古いらしく最新の説明が少なかったのであとでmatplotlibで書き直す予定。
plotlyのドキュメント→Python Candlestick Charts | plotly

まずは必要なライブラリーをインポート。

import pandas as pd
from pandas import Series, DataFrame
import numpy as np
%matplotlib inline

pandasのdatareaderを使って株価のデータフレームを作る。
今回は株価取得のAPIとしてIEXを使ったがなんでもいいと思う。yahooやらgoogleやらは株価取得のAPIが使えなくなってる?的な記事をちらほら見た。datareaderの書き方はこちらにあるが、下のコードを真似すればいいと思う。今回はアップルの株価を取得しているが、銘柄の名前を入れれば(米国株ならなんでも出てくる。ちなみに最長取得期間は5年なので長期的な株価分析には使えないだろう。

import pandas_datareader.data as web
from datetime import datetime
start = datetime(2018, 11, 9)
end = datetime(2019, 1, 5)
f = web.DataReader('AAPL', 'iex', start, end)
f = f.reset_index()

作ったデータフレームからろうそくチャートを作成。
plotlyの情報少なくて下のコードの書き方しか分からなかったが、一応目的は達成した。

# plotly モジュール
from plotly.offline import init_notebook_mode, iplot
from plotly import figure_factory as FF

# Jupyter notebook用設定
init_notebook_mode(connected=True) 

# ローソクチャートの設定
fig = FF.create_candlestick(f.open, f.high, f.low, f.close, dates=f.date)
iplot(fig)

output>
f:id:doreikaiho:20190106204954p:plain

資産運用に興味あるエンジニア必見↓
dorei-kaiho.hatenablog.com