Python 投資

Pythonのmplfinanceでローソク足チャートを描く方法

2022年12月20日

パイソンエムピイエルファイナンス

過去記事でPythonで株価チャートを描けると紹介しました。

あわせて読みたい
Python出来ること
【初心者でも大丈夫】Pythonで出来ること5選【簡単に使える】

最近、Pythonと言うプログラム言語が流行っているらしいけど、『そもそもPythonってどんな言語?何が出来るんだろう?プログラムに触れたことがなくても大丈夫かな?効率よく学べるか心配・・・』 これ ...

続きを見る

でも、プログラムでチャートを表示するのは難しいのでは?
チャートだけでなく移動平均や出来高、トレンド系やオシレータ系といった
テクニカル分析はできるの?

毎日、日経平均やGAFAMの株価チャートをPythonで出力して
ツイートしている僕がそんな疑問に答えていきます。

mplfinanceを使ってローソク足チャートを描く

まずは全体のコードと出力結果を紹介します。

まだPyhtonをインストールしてなければ、下の記事を参考にしてください。

あわせて読みたい
パイソンインストール
【すぐに使える】AnacondaでPythonをインストールする方法

『Pythonに興味がある』、『業務を自動化したい』でも、どうやってインストールするの? 東証プライム上場企業のメーカ開発職で、業務やツイッター運用などで約2年ほどPythonを使用した僕がPytho ...

続きを見る

import mplfinance as mpf
import datetime
import pandas_datareader.data as pdr
import yfinance as yf
yf.pdr_override()

# 期間
start="2021-10-01"
end = datetime.datetime.today()

# 銘柄(トヨタ自動車)
ticker="7203" + ".T"

# データ取得
df=pdr.get_data_yahoo(ticker,start,end)
df.sort_index(ascending=True,inplace=True)

# チャート描写
mpf.plot(df, type='candle',style='yahoo',tight_layout=True,title=str(7203),figsize=(6,3))
ローソク足チャート

たった9行のコードで上のようなチャートが簡単なに描けます。

コードの流れ

  • ①必要なモジュールを記述
  • ②取得したい期間を指定
  • ③銘柄の指定
  • ④get_data_yahooを使ってデータ取得
  • ⑤mplfinanceを使ってチャートを描写

となります。

手順1:必要なモジュールを記述

コードの内容ですが、
最初にチャート描写に必要なモジュールをインストールします。

mplfinance→ローソク足チャート描写。
datetime→日付や時刻を取得。
pandas_datareader.data→Webs上のいいろいろな情報を取得。

『エディタ画面』で

pip install mplfinance

と記述して実行します。

もしdatetimepandas_datareader.dataがインストールしていなければ
同様にpip installでモジュールを取得しましょう。

import mplfinance as mpf
import datetime
import pandas_datareader.data as pdr
import yfinance as yf
yf.pdr_override()

mplfinanceと名前が長いときは『as』+別名で短い名前に変更できます。
今回はmpfとリネームします。

同様にpandas_datareader.datatoと名前が長いので
pdrとリネームします。

import yfinance as yf
yf.pdr_override()

※2023年1月16日追記
 上2行のコードがなくても問題なく動いていましたがエラーがでるので、
 以下のサイトを参考に追記しました。
 参考サイト

手順2:取得したい期間を指定

次に取得する株価の期間を入力します。

# 期間
start="2021-10-01"
end = datetime.datetime.today()

end = datetime.datetime.today() と記述するとプログラムを実行した日時を取得します。
※もちろんend=で特定の日時を指もできます。

手順3:銘柄の指定

次は銘柄ですが、トヨタ自動車を選んでみました。
日本株は"証券コード"+ ".T"と記述します。
トヨタ自動車だとticker="7203" + ".T"と記載します。
米国株はティッカーのみ記載します。

※ティッカーとは
 日本株の証券コードのように個々の銘柄を識別するために付けられた記号です。
 例:アップル→AAPL

手順4:get_data_yahooを使ってデータ取得

取得期間と銘柄を指定すれば次はデータを取得します。

# データ取得
df=pdr.get_data_yahoo(ticker,start,end)
df.sort_index(ascending=True,inplace=True)


df=pdr.get_data_yahoo(ticker,start,end)
ウェブ上の色々な情報を取得するモジュールpandas_datareader.datapdrでリネームし、
ヤフーから指定した期間の銘柄情報を取得し、値をdfとします。
カッコ内は銘柄と取得期間を記載します。

df.sort_index(ascending=True,inplace=True)ascending=True
取得したデータ列を昇順に並べ替えし、inplace=Trueは並べ替え結果を保存します。

手順5:mplfinanceを使ってチャートを描写

いよいよチャートの描写です。

# チャート描写
mpf.plot(df, type='candle',style='yahoo',tight_layout=True,title=str(7203),figsize=(6,3))

mpfmplfinanceをリネームでしたね。
mpf.plotで今まで取得したデータdfを使ってローソク足を出力します。

typeでローソク足以外を指定する。

type='candle'でローソク足チャートを描写できますが、
他にも以下の内容を選択できます。

typeの種類

  • ohlc(4本値: default設定)
  • line(折れ線グラフ)
  • renko(練行足チャート)
  • pnf(PnFチャート)
4本値: default設定
ohlc(4本値: default設定)
折れ線グラフ
line(折れ線グラフ)
練行足チャート
renko(練行足チャート)
PnFチャート
pnf(PnFチャート)

typeを指定するだけで簡単に変更できるので、普段使い慣れたチャートを使用してください。

styleでチャートの見た目を変更する

typeを選択したら次はチャートの見た目を変更するstyleを指定します。

指定できるのは以下の通りです。

styleの種類

  • classic
  • charles
  • mike
  • blueskies
  • starsandstripes
  • brasil
  • binance
クラシックチャート
classic
チャールズチャート
charles
マイクチャート
mike
ブルースカイチャート
blueskies
ストライプチャート
starsandstripes
ブラジルチャート
brasil
バイナンスチャート
binance

好みのstyleを選択しましょう。
※ちなみに僕はyahooが一番好きです。

株価データやチャートを保存する

ここまでひととおりデータを取得し、ローソク足が描写できたので、
データとローソク足のグラフを保存してみます。

株価データをCSVファイルで保存する

# チャート描写
mpf.plot(df, type='candle',style='yahoo',tight_layout=True,title=str(7203),figsize=(6,3))

# CSVファイルに保存
directry='C:/Document/メカタナブログ/'
df.to_csv(directry+'7203'+'.csv')

取得したデータをCSVファイルで保存するには
どこに保管するかdirectryで指示します。
directry='C:/Document/メカタナブログ/'と記載していますが、
 保存したい場所に変更して下さい。

df.to_csv(directry+'7203'+'.csv')directry'7203'というファイル名で
CSVファイル形式で保存するコードとなります。

チャートを画像として保存する

# チャート描写 + グラフ保存
directry='C:/Document/メカタナブログ/'
mpf.plot(df, type='candle',style='binance',tight_layout=True,title=str(7203),figsize=(6,3),
         savefig=directry+str(7203)+".jpeg")

チャートを画像として保存するにはmpf.plotのカッコ内に
savefig=directry+str(7203)+".jpeg"と追記します。

directryにファイル名7203としてjpegで保存します。
※jpegをpngにするとPNG形式で保存できます。

株価を分析する

チャート分析

チャートを出力し、データやグラフを保存したら株価分析する必要があります。

移動平均、ポリンジャーバンド、一目均衡表・・・・・などを使って現在の株価が安いのか?
または高いのか?を判断する必要がありますが、
Pythonを使用すれば簡単に上記のグラフを出力できるので判断材料になります。

下の記事を参考にしてください。

あわせて読みたい
移動平均
テクニカル分析に役立つ!Pythonで移動平均計算と実装方法

時系列データの分析には移動平均が不可欠です。 また、移動平均には複数の種類があり、それぞれに特徴があるのでどれを使うかはデータの性質によって異なります。 Pythonを使えば簡単に移動平均を計算し、デ ...

続きを見る

あわせて読みたい
ボリンジャーバンド
【ボリンジャーバンド】Pythonでの実装方法とコードを紹介

ボリンジャーバンドという名前を聞いたことがありますか? ボリンジャーバンドはトレンドの強さやトレンドやボラティリティを分析するためのテクニカル指標で相場の変動幅に応じて上下に動くバンドで表され、相場の ...

続きを見る

あわせて読みたい
Pythonで学ぶMACDの使い方
Pythonで学ぶMACDの使い方

『MACDって聞いたことはあるが、どう使えばいいかわからない。』こんな悩みはありませんか? MACDとは何か?さらにPythonを使って基本的な使い方を初心者でもわかりやすく解説します。 毎日、日経平 ...

続きを見る

おすすめのテクニカル分析とPython関連の書籍も紹介しておきます。

今回は以上です。

  • この記事を書いた人

メカタナ

副業ブロガー【経歴】関西出身▶︎理系国立大学院▶︎東証プライム上場企業メーカー開発職▶︎妻と息子1人と暮らしています。▶︎メカタナブログを開設⇒仕事や日常で役立つPythonプログラムを紹介していきます!

-Python, 投資