見出し画像

Pythonで株価をチャートに描画する ~mplfinance編~

Pythonで株価をチャートに描くために、いくつかのライブラリがありますが、ここではmplfinanceを使います。
mplfinanceはMatplotlibを使用して金融データをチャート表示するライブラリです。

私はチャートを描く時やデータを分析する時には場合に応じてライブラリを使い分けていますが、mplfinanceはローソク足を確認する目的で使っています。

ソースコードと実行結果

import mplfinance as mpf

mpf.plot(OHLCV_N225.tail(60), type='candle', mav=(5,20), volume=True)

すると、次のようなチャートが描画されます。

画像出力する場合には、次のように記述します。

mpf.plot(OHLCV_N225.tail(60), type='candle', mav=(5,20), volume=True, savefig=r'(フルパスの画像ファイル名、~.png)')

独自に算出したテクニカル指標を追加するには、次のように記述します。
calcSMAは以前にこちらの記事で紹介した関数です。

VOL_MA20 = calcSMA(data=OHLCV_N225['Volume'], period=20)

indicator  = [
    mpf.make_addplot(VOL_MA20.tail(60), panel=1, color='magenta'),
]

mpf.plot(OHLCV_N225.tail(60), type='candle', mav=(5,20), volume=True, addplot=indicator, savefig=r'(フルパスの画像ファイル名、~.png)')

ソースコードの解説

OHLCV_N225はpandas.DataFrame形式の株価データです。
mplfinanceライブラリで取り扱うためには

  • 列名が['Open', 'High', 'Low', 'Close', 'Volume']であること

  • インデックスがDatetimeIndexであること

が必要です。

typeが未指定の場合はバーチャート、'line'は直線、'renko'は練行足、'pnf'はポイント&フィギュアを表示します。

mavに数値を与えると指定した期間の単純移動平均線を表示します。与えたデータから算出するため数値に満たない期間は表示されません。

volumeにTrueを指定すると出来高を表示します。

addplotに追加で描画する指標を指定します。panelには表示領域を上から順に0開始で指定します。

参考

mplfinanceのリファレンス
https://github.com/matplotlib/mplfinance

いいなと思ったら応援しよう!