Python

【コード解説】Pythonで株価チャートを描く【mplfinance編】

2021年5月27日

【コード解説】Pythonで株価チャートを描く【mplfinance編】

こんにちは。TATです。

今日は久々のPythonコード解説です。

テーマは「Pythonで株価チャートを描く」です。

株価チャートを描くライブラリーとしてmplfinanceをご紹介します。

 

過去記事でも似たようなものをご紹介しましたが、こちらはmpl_finance("_"がつきますw)です。

関連記事
【コード解説】Pythonで株価チャートを描く【mpl_finance編】

続きを見る

 

同じようなものに見えますが、完全別物です。

正確には、mpl_financeがリニューアルされてmplfinanceとなっています。mplfinanceが最新です。

mpl_financeに比べると使い勝手がかなりレベルアップしていて、少ないコードでサクッとローソク足チャートや移動平均線などを描くことができます。

これから学ぶという方はmplfinanceだけ知っておけば十分です。

 

【コード解説】Pythonで株価チャートを描く【mplfinance編】

おさらい:株価を取得する

まずはおさらいとして、チャートを描くための株価を取得します。

Pythonによる株価の取得方法についてはこちらの記事でご紹介済みです。

関連記事
【コード解説】Pythonで株価データを取得する!【3つの方法を解説】

続きを見る

関連記事
【Pythonコード解説】yahoo_finance_api2で日本株の株価データを取得する
【Pythonコード解説】yahoo_finance_api2で日本株の株価データを取得する

続きを見る

 

今回は例としてトヨタ自動車(証券コード: 7203)の株価をチャートに描いてみることにします。

ここでは過去13週分の日足データを取ります。

yahoo_finance_api2を使って株価データを取得します。

 

取得したデータを確認すると、きちんと株価データが取得できていることがわかります。(2021年5月20日20時あたりに取得しました)

まだ当日分のdatetimeが補正されてないですね。

気にせず進みます。

日足のチャート描くので、時間情報はそこまで気にする必要ありません。

 

こちらのデータを使ってチャートを描いていきます。

 

mplfinanceを使いこなす

株価データの準備ができたところで、mplfinanceでチャートを描いていこうと思います。

基本的な使い方はGitHubで紹介されています。

ここでは英語で説明されているので、よく使いそうな部分を日本語化してなおかつ日本株(トヨタ)を例にして解説していこうと思います。

 

下準備

まずはチャートを描くための下準備です。

mplfinanceでチャートを描く際には、引数として渡すDataFrameの形式を、indexをDatetimeとして、列を左から順番にOpen, High, Low, Closeの順番にしておく必要があります。

出来高を追加する場合は、Closeの右隣につけます。

 

ということでデータ整形です。

indexを変えるにはset_index、カラムの並び替えにはlocを使います。

整形されたDataFrameをdf_dailyとします。

一行で完了です。

きちんと整形されていることが確認できます。

 

ローソク足チャートを描く

まずは基本のローソク足チャートを描いてみます。

ローソク足チャートを描くためにはmplfinanceのplot関数を使います。

コードはとってもシンプルで、わずか一行で完了します。

plot関数にDataFrameを引き渡して、グラフのtypeをcandleとすれば完成です。

mpl_financeでは、datetimeの整形とかが必要でコードが長くなりがちでしたが、mplfinanceであればわずか一行で完了してしまいます。

素晴らしいですね。

 

ちなみにこのtypeという引数を変えるとチャートを描き方を変えることができます。

例えば、lineと指定すれば折れ線グラフとなり、renkoと指定すると練行足で表現できます。

 

DataFrameさえ用意してしまえば、わずか一行でローソク足チャートが描けてしまうとは、恐るべき進化です。

 

出来高を追加する

次に出来高を追加してみます。

これはvolume=Trueを追加するだけ完了です。

この場合には、Close列の右隣に出来高のカラムを用意しておく必要があります。

簡単すぎてびびりますね・・・

 

移動平均線を追加する

次にテクニカル分析を追加してみます。

基本となる移動平均線を追加してみます。

かつてのmpl_financeでは、移動平均線を計算してプロットする必要がありましたが、mplfinanceでは計算すら不要です。

移動平均線を描くには、mavという引数を使います。mavはmoving averageから来てると思われます。

 

ここでは5日移動平均線を描いています。

 

複数の移動平均線と描くには、()内に複数の期間を指定すればOKです。

5日と25日移動平均線を描いてみます。

 

このように、mplfinanceを使うと、ローソク足や移動平均線、出来高の表示がわずか一行で描くことができます。

 

応用編:複数のテクニカル分析を組み合わせる

mplfinanceの基本的な使い方がわかったところで、少しレベルアップします。

複数のテクニカル分析を組み合わせて表示させてみましょう。

 

おさらい:テクニカル分析を計算する

まずは、テクニカル分析を計算します。

計算方法についてはこちらの記事で解説しています。

関連記事
【コード解説】Pythonで株式投資に必要なテクニカル分析を計算する

続きを見る

 

今回は、上記の記事に基づいてMACDRSIを計算しました。

 

計算した結果はこんな感じです。

こちらをグラフにしていきます。

 

グラフを追加するにはaddplotを使う

グラフにテクニカル分析データを追加するにはaddplotという引数で指定します。

まずはMACDを追加してみます。

 

add_plotという変数を定義して、ここにリスト形式で追加したいデータを指定します。

カラムを指定して、線の色(rはred, gはgreen)、panelは何個目の枠に描くかを指定します。

最後にy軸を別軸にするかを指定するsecondary_yをセットすればOKです。

panelについては、1がローソク足チャートの次になります。以降2、3、4・・・と追加できます。

 

次にRSIを描いてみます。

 

このように、移動平均線以外のテクニカルチャートも簡単に描くことができます。

 

例:トヨタ自動車のグラフを描く

最後に総まとめとして、これまでご紹介してきたものを一気に描いてみます。

ローソク足には5日と25日移動平均線を追加して、さらに別枠でMACDとRSI、最後に出来高も表示します。

複数のpanelを追加する場合には、追加でvolume_panelを指定する必要があります。

 

MACDはpanel=1として、RSIをpanel=2とします。

さらにpanel3に出来高を表示するためにはvolume_panel=3と指定します。

 

このvolume_panelを付け忘れてしまうと、RSIに上書きされてしまいます。

こんな感じです。

 

よってpanel2以上を使う場合にはvolume_panelを設定する必要があります。

 

以上で、複数のテクニカルチャートをグラフに描くことができました。

mpl_financeを利用して時に比べて、コードの量が激減しました。

関連記事
【コード解説】Pythonで株価チャートを描く【mpl_finance編】

続きを見る

 

まとめ

いかがでしたでしょうか。

今回は、mplfinanceでPythonで株価チャートを描く方法について解説しました。

前回ご紹介したmpl_financeに比べて、はるかに少ないコードで複雑なグラフを作成することができます。

 

Pythonを使えば株価データを取得することも用意で、なおかつテクニカル分析の計算も簡単に行うことができます。

本記事で紹介したように可視化も簡単にできるので、株式投資やFXの分析にPythonは最適と言えます。

僕自身も、Pythonを使って株式投資に必要な情報を集めて、「投資でニート生活」というサイトで管理しています。

 

ここまで読んでくださってありがとうございました。

関連記事
【コード解説】Pythonで株価チャートを描く【mpl_finance編】

続きを見る

関連記事
【Pythonコード解説】yahoo_finance_api2で日本株の株価データを取得する
【Pythonコード解説】yahoo_finance_api2で日本株の株価データを取得する

続きを見る

関連記事
【コード解説】Pythonで株式投資に必要なテクニカル分析を計算する

続きを見る

note始めました


noteでは、株式投資やプログラミングにのノウハウなどについて発信しています。

特にオニールやミネルヴィニの投資手法に基づいてスクリーニングした銘柄を発表しています。

投資でニート生活で管理している監視銘柄をさらに細かくスクリーニングした銘柄を発表していきます。

TATのnoteを見る


Pythonは世界中で人気上昇中の言語です!


需要が上昇しています


Pythonの需要はここ最近で急拡大しています。

特にAIやデータ分析を得意とする言語なので、データサイエンス分野で需要が爆発しています。

おすすめ
【人気上昇中】今人気のプログラミング言語「Python」は何ができるのか?できることまとめます【転職でも有利です】



初心者も学びやすい


Pythonは初心者にも学びやすい言語です。

僕自身も社会人になってからPythonを独学して習得しました。

おすすめ
【決定版】Python独学ロードマップ【完全初心者からでもOKです】
【決定版】Python独学ロードマップ【完全初心者からでもOKです】

おすすめ
【Python独学法】初心者におすすめのPython勉強法まとめ
【Python独学法】初心者におすすめのPython勉強法まとめ


転職の武器になる!


Pythonは転職する際の武器にもなります。

僕はPythonを独学して転職に成功しました。

おかげさまで年収も大きく上がりました。

おすすめ
【実体験】ゼロからのPython独学を決意してから転職を掴み取るまでのお話。
【実体験】ゼロからのPython独学を決意してから転職を掴み取るまでのお話。

おすすめ
【副業は神です】2度の転職において副業が内定の決め手になったお話。



おすすめのプログラミング学習方法


Udemy


圧倒的な安さ(セール時)で上質な動画学習素材が手に入る!







Udemyを詳しく見る!



 

TECH::CAMP


いつでも講師に質問できるチャットシステムが最強です!







TECH::CAMPを詳しく見る!



 

CodeCamp


講師とのマンツーマンレッスンで挫折しない!







CodeCampを詳しく見る!



 

-Python
-, , , , ,

© 2021 気ままなブログ