【Python】mplfinace使ってボリンジャーバンドを表示

Python

Kindleでパンローリング本セールが2月も継続しています。パンローリングの外国の翻訳本は安くても3000円しますのでこの機会に電子書籍版を買っておくことをお勧めします。

今回はボリンジャーバンドをPythonでローソク足と共に表示させます。ボリンジャーバンドは生みの親のジョンAボリンジャーによる下記の本が一番詳しく書かれています。こちらも紙の本だと6380円ですが2月のセールで499円なので買うだけ買って後で読むと良いでしょう。499円はKindleセールのなかでも最安となっています。

日本株の表示については前回の記事を参照。今回は9449GMOインターネットの週足を表示させています。

ボリンジャーバンドを作成する関数です。引数に期間と4本値のデータフレームを入れてボリンジャーバンド1シグマ、2シグマをもつデータフレームを返します。

#ボリンジャーバンドを作成する関数
def bollinger_band(period,df):
    df_=pd.DataFrame()
    
    #移動平均線
    df_['MA'] = df['Close'].rolling(period).mean()
    #標準偏差
    df_['std']=df['Close'].rolling(period).std()
    #+1σ
    df_['upper1']=df_['MA']+df_['std']*1
    df_['lower1']=df_['MA']-df_['std']*1
    #+2σ
    df_['upper2']=df_['MA']+df_['std']*2
    df_['lower2']=df_['MA']-df_['std']*2
    return(df_)

この関数を使ってmplfinaceのローソク足の上にボリンジャーバンドを表示させます。addplotの引数に追加したいデータフレームを入れるだけです。実に簡単。styleはyahooとします。

#期間20
import pandas as pd
import pandas_datareader.data as web
import matplotlib.pyplot as plt
import mplfinance as mpf

period=20

df_bollinger=bollinger_band(period,df)
apd = mpf.make_addplot(df_bollinger[['MA', 'upper1', 'lower1']],linestyle='dashdot',alpha=0.5)
mpf.plot(df, type='candle', addplot=apd, volume=True, style='yahoo')

結果ボリンジャーバンドが表示されます。’upper2′, ‘lower2’とすれば±2σに変更できます。

コメント

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