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で株価データを扱う記事については記事が散在しているのでこちらにまとめました!

株価データの取得方法やテクニカル分析の計算方法やその他の可視化方法についてはこちらからどうぞ。

関連記事
【まとめ】Pythonで株価データを扱う
Pythonで株価データを扱う方法まとめ【データの取得・分析・可視化等、なんでもできます】

続きを見る

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

続きを見る

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

続きを見る

 

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

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

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

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

関連記事
【コード解説】Pythonで株価データを取得する!【ライブラリやスクレイピングを活用】

続きを見る

関連記事
【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で株価データから主要なテクニカル分析を計算して可視化する【移動平均線、MACD、RSI】

続きを見る

 

今回は、上記の記事に基づいて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に上書きされてしまいます。

こんな感じです。ご注意ください。

 

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

 

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

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

 

データの分析・可視化にはPythonが最適!

本記事で紹介したコードは、全てPythonを使って書いています。

 

Pythonデータの分析や可視化を得意とするプログラミング言語で、さらにAI関連のライブラリーも豊富で昨今のAIブームで需要が急拡大しています。

【いますぐ始められます】データ分析をするならPythonが最適です。

 

また、Python比較的学びやすい言語でもあります。

実際、僕は社会人になってからPythonを独学で習得して転職にも成功し、Python独学をきっかけに人生が大きく変わりました。

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

 

Python学習方法についてはいろいろな方法があります。

僕はUdemyを選びましたが、書籍プログラミングスクールも選択肢になります。

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

【まとめ】Pythonが学べるおすすめプログラミングスクール

プログラミングの独学にUdemyをおすすめする理由!【僕はUdemyでPythonを独学しました!】

 

\30日返金保証/

Udemyを詳しく見る

セール中なら90%オフとかで購入可能です!

 

まとめ

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

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

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

 

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

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

 

Pythonで株価データを扱う記事については記事が散在しているのでこちらにまとめています。

株価データの取得方法やテクニカル分析の計算方法やその他の可視化方法についてはこちらからどうぞ。

関連記事
【まとめ】Pythonで株価データを扱う
Pythonで株価データを扱う方法まとめ【データの取得・分析・可視化等、なんでもできます】

続きを見る

 

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

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

続きを見る

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

続きを見る


データ分析するならPythonがおすすめです!

データ分析に興味があるならPythonがおすすめです。

データの収集から整形、分析、可視化、さらに機械学習やAIの実装など、あらゆる用途に活用できます。

昨今のAIブームでPythonの需要は拡大しており、習得しておくと転職市場でも有利です。

【いますぐ始められます】データ分析をするならPythonが最適です。【学習方法もご紹介します!】

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



おすすめのPython学習法!

独学ロードマップを作りました!

これからPythonを学びたい方、あるいは学び始めたばかりの方に向けて、独学ロードマップを作りました。

僕自身、Pythonは社会人になってから独学で習得したので、その経験を踏まえてまとめています。

Python習得までの道のりがステップバイステップでわかるようになっています。

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


独学ならUdemyがおすすめ!

Pythonを独学するならUdemyがおすすめです。

動画教材なので、書籍などに比べて圧倒的にわかりやすいです。

セール中なら90%オフとかで購入可能で、30日の返金保証もついています。

僕は社会人になってからUdemyでPythonを独学して転職にも成功しました。

プログラミングの独学にUdemyをおすすめする理由!【僕はUdemyでPythonを独学しました!】

Udemyのセールはいつ行われるのか?期間は?対象コースは?

Udemyを見る


プログラミングスクールもあり

独学に自信がない方、独学で挫折した方は、プログラミングスクールも検討の余地があります。

いつでも講師に質問できる環境が整っていたり、オリジナルの教材が利用できたり、たくさんのメリットを享受することができます。

ただし、料金は安くないので、無料体験レッスンなどを受けたうえで判断するのがおすすめです。

【まとめ】Pythonが学べるおすすめプログラミングスクール


-Python
-, , , , ,

© 2022 気ままなブログ