背景・目的
本サイトでは,これまでに株価情報の取得方法としてpandas-datareaderを用いた株価情報の取得方法を解説しています.しかし,pandas-datareaderなどで株価情報の取得ができても可視化ができないと,どのようなデータなのかイメージするのは難しいものです.
そこで,本記事では株価情報の可視化に使えるmplfinanceについて具体例を交えながら使い方を解説したいと思います.他の記事では,移動平均線の入れ方などについて解説していることが多いですが,今回は移動平均線の入れ方などに加えて出力する図のフォーマットを変える方法についても詳しく解説していきます.
mplfinanceを用いた株価情報の可視化
まず,mplfinanceでの可視化を行う前にNasdaq Data Link,J-Quants APIやpandas-datareaderなどを用いた株価情報の取得が必要です.本記事では,pandas-datareaderで日経225の情報を取得して使用します.本サイトでは,S&P500指数の解説記事にてmplfinanceを用いた株価情報の表示方法を解説していますが,本記事ではより詳細な部分について解説していきます.
mplfinanceには,Panels ModeとExternal Axes Modeの2種類の表示方式があります(筆者が調べたなかでは,ModeとMethod両方の表記がありました).Panel Modeは,イメージとして軸(Axes)は1つのみで,パネルと呼ばれる枠の領域を分割して複数のグラフを表示する方法です.一方で,External Axes Modeは,イメージとして軸(Axes)は複数あり,複数のグラフを表示する方法です.これらの表示方法は,互いに似ている部分もありますが,一部の機能が使えないなど完全に同じものではありません.使えない機能については,下のExternal Axes Modeで使えない機能一覧から見られます.
今回は,より自由にグラフが描けるExternal Axes Modeを用いた例を紹介します.External Axes Modeでは,matplotlibで2軸のグラフを描くときのような形で図の構造を作っていきます.下記の例では,上に株価,下に出来高を示しており,スタイルは自身で定義しています.
一方で,mplfinanceでは用意されているスタイルを用いることも可能です.用意されているスタイルの一覧は,以下のコードで取得可能です.outputsは,スタイルの出力結果になります.
import mplfinance as mpf
mpf.available_styles()
outputs:
['binance',
'binancedark',
'blueskies',
'brasil',
'charles',
'checkers',
'classic',
'default',
'ibd',
'kenan',
'mike',
'nightclouds',
'sas',
'starsandstripes',
'tradingview',
'yahoo']
下記のコードにも示してありますが,mplfinanceでの表示の際には,古いデータがはじめに来るようにデータをソートした上で描画をしないと時系列が右から左になってしまいます.
また,チャートの色は16進数表記や色名で指定が可能です.移動平均線は,mavの部分に数字を指定することで表示可能です.なお,細かい部分については,GitHub Gistのコード内にコメントを付与してありますのでご確認いただけますと幸いです.
まとめ
本記事では,mplfinanceについて具体例を交えながら使い方を解説しました.分析結果を示すうえでは,図の見映え(図の見やすさ)が重要になってきます.本記事の内容をもとに見映えの良い図ができることを祈っております.
より詳しい情報をしっているよ!という方がいればコメントなどしていただけますと幸いです.
参考文献やサイトなど
- mplfinance. https://github.com/matplotlib/mplfinance, accessed on 2 Apr. 2024.
- hachisue. 2022. [MplFinance] 複数グラフを表示させるのに2つの方法. http://hachisue.blog65.fc2.com/blog-entry-467.html, accessed on 2 Apr. 2024.
- kotabook. 2022. mplfinanceで作成するローソク足チャートのチートシート. https://qiita.com/kotabook/items/a9d62e0e1bbe1f45d64a, accessed on 2 Apr. 2024.