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で株価チャートを描く【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に上書きされてしまいます。

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

 

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

 

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

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

 

データの可視化にはPythonが最適です。

以上でmplfinanceで株価チャートを描く方法の解説はおしまいです。

 

Pythonを使うと、データの可視化などの複雑な処理も短いコードで実装することができます。

特にここで紹介したmplfinanceは、複雑なローソク足チャートをわずか数行でかけてしまいます。

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

おすすめ
【いますぐ始められます】データ分析をするならPythonが最適です。【学習方法もご紹介します!】
おすすめ
【人気上昇中】今人気のプログラミング言語「Python」は何ができるのか?できることまとめます【転職でも有利です】

 

また、Pythonは、僕自身も独学で習得できたくらい初心者でも学びやすい言語です。

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

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

続きを見る

 

僕自身の独学の経験をベースに、Python独学ロードマップをまとめたので、もしご興味があればご覧ください。

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

続きを見る

 

僕自身はUdemyでPythonを独学しました。

おすすめ
プログラミングの独学にUdemyをおすすめする理由!【僕はUdemyでPythonを独学しました!】
おすすめ
【目的別】Pythonが学べるUdemyのおすすめコースを紹介します【随時更新】

 

まとめ

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

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

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

 

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

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

 

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

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

関連記事
【まとめ】Pythonで株価データを扱う
【まとめ】Pythonで株価データを扱う

続きを見る

 

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

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

続きを見る

おすすめ
プログラミングの独学にUdemyをおすすめする理由!【僕はUdemyでPythonを独学しました!】
おすすめ
【目的別】Pythonが学べるUdemyのおすすめコースを紹介します【随時更新】

データ販売を始めました


オニールとミネルヴィニの投資手法を日本株に適用するために必要なデータの販売を始めました。

あらゆるデータを集約して、誰でも簡単にスクリーニングできるようにCSV形式でデータを提供します。

オニールとミネルヴィニの投資手法を日本株に適用するために必要なデータを販売します!

続きを見る




Pythonの独学ならUdemyがオススメ!


Udemyなら、セール中だと90%オフとかで買えるのでコスパ最強です。

僕はUdemyでPython独学に成功しました。

関連
【目的別】Pythonが学べるUdemyのおすすめコースを紹介します【随時更新】

続きを見る



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

続きを見る



Udemyを詳しく見る!



プログラミングスクールもオススメ!



プログラミングスクールもオススメの選択肢です。

初心者をしっかりサポートしてくれるシステムが整っているので、挫折する可能性が一気に下がります。

効率よく最速で学ぶならプログラミングスクールが最適です。

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

続きを見る



関連
プログラミング学習は独学とプログラミングスクールどちらにすべきか?【結論、全部試すべし!】

続きを見る



関連
高額なプログラミングスクールを利用する価値はあるのか?【結論、人それぞれですw】

続きを見る




TechAcademy (テックアカデミー)


オンラインに特化したプログラミングスクールで、プログラミングの他に動画編集などの豊富なコースが用意されています。







TechAcademyを詳しく見る!



TECH::CAMP (テックキャンプ)


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







TECH::CAMPを詳しく見る!



 

CodeCamp (コードキャンプ)


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







CodeCampを詳しく見る!


-Python
-, , , , ,

© 2021 気ままなブログ