ひよこエンジニア

ひよこエンジニア

エンジニアになりたての25歳です。【電気回路】・【プログラミング×株】について記録を残してきます。

ローソク足チャートを描いてみた!

今回は株価チャートをpythonで描いていきます! 投資経験のある方は必ず見るであろうローソク足ですが、実はpythonのモジュールを使えば簡単に出力できるんです。

これは余談ですが、僕の祖父も株式投資をしています。祖父の凄いところは、自分が注視している銘柄を、何年も追い、手書きで方眼用紙に日足チャートを描いているのです!!!そこにテクニカル分析を書き込んでいつも睨めっこしています。僕が小さかった頃はナニしてるんだろーってくらいで大した関心もなかったんですけど、今考えるとめちゃめちゃ努力してる投資家で憧れます!

ネットで開示しているよりも過去のデータを持つことで、その銘柄の傾向を知ることができるなど、テクニカル分析で1%でも優位に立てるのではないかと考えます。そのため、株価チャートをローソク足表記でグラフ化し、保存する事を目的として行いました。

ローソク足

このブログではとりあえず日足のローソク足で説明します。 下の図にローソク足の構成要素である陽線陰線を示します。色に関しては、証券会社の表示方法によって異なりますのでご注意ください。 ローソク足チャートのメリットは、チャートを見る事で大まかに株価の動きがわかる事です。 陽線、陰線ではそれぞれ始値終値が逆転します。長方形になっている部分は、始値終値の中間価格帯になっており、長方形から上下に出ている髭のような線は、中間価格帯からはみ出た株価を示します。ローソク足の右側に適当に1日の株価の推移を描きましたが、これがローソク足と一致します。

f:id:shota_elec_py:20201015193159p:plain
ローソク足(左:陽線 右:陰線)

Pythonローソク足チャート作成

では本題に入りましょう。コードを下に載せました。まずはモジュールのインポートから始めます。

モジュール

モジュールはpandas、matplotlib、mpl_finance、numpyです。mpl_financeは古いモジュールのようで実行すると古いという警告が出ますが無視して使います。

from pandas_datareader import data 
import matplotlib.pyplot as plt
import mpl_finance as mpf
import numpy as np
from matplotlib.dates import date2num

株価取得

株価は、pandasを使って取得します。取得するためにはデータソースが必要なので、ここでは無料で使用できるstooqという世界各国の株価を掲載しているサイトを使用しました。取得する価格は終値です。今回は最近私がお世話になっていたワタベウェディングを例にやっていきます。

stockname='ワタベウェディング'
df=data.DataReader('4696.JP','stooq')
df=df.sort_index()
date=df.index

グラフ化

最後にグラフ化していきます。ローソク足を描くためにはmpl_financeのcandlestickを使います。 横軸はdate2numをつかうことで日付にし、縦軸はdf.indexにより株価をローソク足としてプロットします。

xdate=[x for x in df.index]
ohlc=np.vstack((date2num(xdate),df.values.T)).T
fig=plt.figure()
ax=plt.subplot()
mpf.candlestick_ohlc(ax,ohlc,width=0.7,colorup='r',colordown='b')
ax.grid()
ax.set_xlim(df.index[-100].date(),df.index[-1].date())
fig.autofmt_xdate()
plt.ylim(200,500)
plt.ylabel('Stock Price[yen]')
plt.show()

結果

上記プログラムを実行した結果を以下に示します。こんな感じで簡単に株価をローソク足で表すことができました!! 長期間の日足を見たいとき、証券会社(スマホ版?)によっては昔のものは見れない事がありますよね。そんな時はこのプログラムを実行して保存しちゃいましょう。グラフを描くのではなく、csvファイルで生データを保存する手もありですね!

f:id:shota_elec_py:20201015230333p:plain
ワタベウェディングの株価

まとめ

今回はローソク足チャートを描いてみました。それにしてもpython有能過ぎでしょって思っちゃいますよね(笑) 今後も自分がやりたいことをプログラミングで実現していきたいです!