mplfinanceでよくあるチャートを表示してみます。
3ヶ月で3.5倍になった ロコンド(3358) を例にします。
環境はGoogle Colaboratoryです。
事前準備
stooq で株価データを取得できるメソッドを作成しておきます。
import pandas as pd
import pandas_datareader.data as pdr
import numpy as np
from pandas.testing import assert_frame_equal
def makeDataFrame(code):
df_temp = pdr.DataReader("{}.JP".format(code), "stooq")
df = df_temp.loc[:,['Open','High','Low','Close','Volume']].sort_values('Date')
return df
確認
直近100営業日のデータを取得します。
df = makeDataFrame(3558).tail(100)
df.tail()
mplfinance インストール
ローソク足チャートを表示
typeを指定してplotするだけで表示できます。
import mplfinance as mpf
mpf.plot(df, type='candle')
出来高を表示
volume=True のオプションをつけるだけです。
移動平均線を表示
移動平均線はmavオプションで日付を指定することで表示できます。5, 25, 75日線を表示する例です。
mpf.plot(df, type='candle', mav=(5, 25, 75), volume=True)
ボリンジャーバンドの表示
pytiライブラリのインストール
ボリンジャーバンドを計算するライブラリ pyti をインストールします。
ボリンジャーバンドの計算
基準線20で計算します。
from pyti.bollinger_bands import upper_bollinger_band as bb_up
from pyti.bollinger_bands import middle_bollinger_band as bb_mid
from pyti.bollinger_bands import lower_bollinger_band as bb_low
data = df['Close'].values.tolist()
period = 20
bb_up = bb_up(data,period)
bb_mid = bb_mid(data,period)
bb_low = bb_low(data,period)
df['bb_up'] = bb_up
df['bb_mid'] = bb_mid
df['bb_low'] = bb_low
確認
mplfinanceで表示
mplfinanceはデフォルトでは 'Open','High','Low','Close','Volume' しか認識しません。
追加したい項目はmake_addplotでmplfinanceが認識できるようにします。
表示するときには、addplotのオプションで一緒に表示する項目を指定します。
apd = mpf.make_addplot(df[['bb_up', 'bb_mid', 'bb_low']])
mpf.plot(df, type='candle', addplot=apd, volume=True)