【Python】日本株の週足チャートを表示させる

Python

日本株の週足チャートですが前回紹介したcsvを保存する方法ではなくAPIを使って表示できるので紹介します。移動平均線と出来高も表示させています。

早速コードです。今回は2914JTのチャートを使います。

目次

ローソク足表示

import pandas as pd
import pandas_datareader.data as web
import matplotlib.pyplot as plt
import mplfinance as mpf
import datetime

#ティッカー
ticker="2914.JP"

#期間
end = datetime.datetime.today()
start='2015-01-01'

#データ取得
df=web.DataReader(ticker, "stooq",start,end).dropna()
df.sort_index(ascending=True,inplace=True)

#ダウンサンプリング
df=df.resample('W').agg({'Open': 'first', 'High': 'max', 'Low': 'min', 'Close': 'last','Volume':'sum'})

#グラフ表示
mpf.plot(df, type='candle', volume=True, mav=(5,13,26), style='charles')

datareaderの引数でsqootにしてティッカーに銘柄コード.JPとすれば表示できます。sqootではザラ場が終わる当日の15時になっても当日のデータが取得できないことでしょうか。

ダウンサンプリングではresample()をMやQに変えることで月足や四半期足に変えることができます。日足の場合はダウンサンプリングが必要ないのでdf=df.resample(‘W’).agg({‘Open’: ‘first’, ‘High’: ‘max’, ‘Low’: ‘min’, ‘Close’: ‘last’,’Volume’:’sum’})を削除してください。

2015年から見事なまでに右肩下がりですね。高配当ってだけで無闇に投資するとひどい目に遭うということを説明するのにはこのチャートを使うとすぐにわかってもらえるでしょう。最近ようやく底を打ったような動きをしていますが果たしてどうなるんでしょうか。


Pythonによるファイナンス 第2版 ―データ駆動型アプローチに向けて (オライリー・ジャパン)

このライブラリ簡易でかなり充実しているのでその他の機能を見ていきます。

type:バーチャート(OHLC)表示

欧米で主流なバーチャート表示です。日本ではほとんど使われていないので馴染みがないですがデフォルトではこちらが設定されています。

#バーチャート表示
mpf.plot(df)

type:ライン表示

シンプルにラインだけで表示させます。ちなみにチャートを保存させる場合はsavefigを引数に入れてください。

#ライン表示 チャート保存
save = dict(fname='2914_line.jpg',dpi=100,pad_inches=0.25)
mpf.plot(df,type='line',savefig=save)

type:練行足表示

練行足を表示します。細かすぎると表示できないみたいなのでstart=’2020-07-01’として日足で練行足を表示します。白黒では味気ないのでstyleはyahooとします。

#ティッカー
ticker="2914.JP"

#日付取得
end = datetime.datetime.today()  # 今日の日付
start='2020-07-01'

#データ取得
df=web.DataReader(ticker, "stooq",start,end).dropna()
df.sort_index(ascending=True,inplace=True)

#連行足
mpf.plot(df,type='renko',style='yahoo')

type:ポイントアンドフィギュア表示

続いてポイントアンドフュギュアです。typeをpnfに指定すればOKです。

#ポイントアンドフィギュア表示
mpf.plot(df,type='pnf',style='yahoo')
ポイントアンドフィギュア

style:classic, 取引なしの日を空白で表示

標準では土日や祝日は詰めて表示されますが引数show_nontrading=Trueとすることで取引ない日を空欄にできます。volume=Trueにして出来高も出せます。

#ローソク足表示/クラシック/取引なし日表示あり
mpf.plot(df,type='candle',style='classic',volume=True,show_nontrading=True)

type:mike

ここからはスタイルだけを何パターンか変えてみます。

mpf.plot(df,type='candle',style='mike',volume=True,show_nontrading=True)

type:blueskies

この辺はそんなに見易くはないので使うことはないでしょう。

#ローソク足表示/blueskies
mpf.plot(df,type='candle',style='blueskies',volume=True,show_nontrading=True)

style:starsandstripes

赤と青ではっきりしているので使いやすいです。

#ローソク足表示/starsandstripes
mpf.plot(df,type='candle',style='starsandstripes',volume=True,show_nontrading=True)

オリジナルのローソク足チャート

色を指定することができます。

mc = mpf.make_marketcolors(up='b',down='r',
                           edge='black',
                           wick={'up':'green','down':'gray'},
                           volume='gray',
                           ohlc='black')
s  = mpf.make_mpf_style(marketcolors=mc)
mpf.plot(df,type='candle',volume=True,style=s)
オリジナルカラーのチャート

ちなみに使用可能のスタイルはmpf.available_styles()で一覧表示できます。

['binance',
 'blueskies',
 'brasil',
 'charles',
 'checkers',
 'classic',
 'default',
 'mike',
 'nightclouds',
 'sas',
 'starsandstripes',
 'yahoo']

株とPython─自作プログラムでお金儲けを目指す本 (技術の泉シリーズ(NextPublishing))

コメント

  1. tak より:

    突然のコメント失礼します。
    resample()をD(日足?)にするとチャートは表示されますが、移動平均線が表示されません。
    改善策があればご教示をよろしくお願いします。

    • MNF より:

      質問ありがとうございます。
      日足で見たいのでしたらダウンサンプリングが必要ないのでdf=df.resample….の行を削除していただければOKです。

タイトルとURLをコピーしました