Tagebuch von Spargel

最近zennに移行しましたhttps://zenn.dev/spargel

pythonでmplfinanceを使用して株価のチャートを作成する

目的

株価チャートを手元で作成します. mplfinanceを使用します. 基本的には以下にすべて記載されているが,株価のチャートの作成に絞って本記事に記載しています.末尾にすべてまとめたコードを載せています.

github.com

必要なもの

  • pandas
  • mplfinance
  • matplotlib.pyplot

mplfinanceのインストール

以下をコマンドプロンプトなどに記入

pip install --upgrade mplfinance

株価チャートの作成

モジュールのインポート

import pandas as pd
import mplfinance as mpf

株価の取得と読み込み

株価のデータを取得する.取得方法はググってください.スクレイピングが禁止されているサイトもあるので注意してください. 例として,以下のサイトで取得した豊田自動織機の2019年度csvファイルを使用します.(更新2019年で止まってしまっていますが)

6201 (株)豊田自動織機 2019年度の株価データ・株価データ、CSVダウンロード | 株式投資メモ・株価データベース

ファイル名は「6201_2019.csv」となっています.以下のコードで読み込みます. 一行目に余分な情報があるため,header = 1として読み飛ばしています engine="python"は文字コードエラーが表示されたので入力しています.

data = pd.read_csv('6201_2019.csv',header = 1,engine="python")

以下のように読み込まれます. f:id:Spargel:20200306234733p:plain

株価のデータ整形

データ整形を行います.mplfinanceを使用するためにはcolumn名の「始値,高値,安値,終値出来高」を英語で「"Open,High,Low,Close,Volume」とし,indexに日付を指定する必要があります. カラム名はこのまま記入してください.これが重要です. 以下のコードで上記の処理を行います.

#カラム名を英語に変更
data.columns = ["date","Open","High","Low","Close","Volume",""]
#必要なカラムのみ取り出し
data = data[["date","Open","High","Low","Close","Volume"]]
#dateをdatetime型に変更
data["date"] = pd.to_datetime(data["date"])
#dateをindex名に
data = data.set_index('date')

グラフ化

ローソクチャートは以下のコードで表記できます.

mpf.plot(data)

下のようなグラフが作成されます. f:id:Spargel:20200307000103p:plain

拡大するとちゃんとローソク足になっています. f:id:Spargel:20200307000148p:plain

売買株高の追加

plotのオプションでvolume=Trueを追加するだけです.

mpf.plot(data,volume = True,type = 'candle')

f:id:Spargel:20200307000304p:plain

移動平均線の追加

mav = (5,20,50)というように移動平均を取る期間を指定すれば良いです.

mpf.plot(data,volume = True,type = 'candle',mav = (5,20,50))

f:id:Spargel:20200307000524p:plain

以上で株価チャートの作成が終わりました.

ソースコード

以下においています.

github.com