株のシステムトレードをしよう - 1から始める株自動取引システムの作り方

株式をコンピュータに売買させる仕組みを少しずつ作っていきます。できあがってから公開ではなく、書いたら途中でも記事として即掲載して、後から固定ページにして体裁を整える方式で進めていきます。

J-Quants APIで取得した値をローソク足でグラフにプロットする

下記のように、2日続けてグラフ描画シリーズをやってきた。ここで、より一歩進んで、ローソク足やテクニカル分析で良く使用される移動平均、ボリンジャーバンド、取引高を描画してみよう。

how-to-make-stock-trading-system.dogwood008.com

how-to-make-stock-trading-system.dogwood008.com

指数平滑移動平均線(EMA) と 単純移動平均線(SMA) をそれぞれtimeperiod=5 で描画した。また、ボリンジャーバンドも細線で付けた。ソースコードより先に、できあがりを見てもらうことにする。

1点注意が必要なのは、ローソク足の緑と赤の線(陰線陽線)は世界基準のもの、すなわち日本株のものとは反対になっているので間違えないよう。

7974: 任天堂の2022年の調整後終値を使用した値動き
7974: 任天堂の2022年の調整後終値を使用した値動き

このソースコードは下記のようになる。移動平均やボリンジャーバンドの算出のため、TA-Libというライブラリを使用している。下記のものをそのままコピペすれば、Google Colabでも動くので試してみて欲しい。

!curl -L http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz -O && tar xzvf ta-lib-0.4.0-src.tar.gz
!cd ta-lib && ./configure --prefix=/usr && make && make install && cd - && pip install ta-lib
!pip install mplfinance jquants-api-client
import mplfinance as mpf
import talib

from datetime import datetime
from dateutil import tz
import jquantsapi
%matplotlib inline


cli = jquantsapi.Client(refresh_token=my_refresh_token)
stock_code: str = '7974'
df = cli.get_prices_daily_quotes(f'{stock_code}0')


ddf = df.loc[df.Date.between('2022-01-01', '2022-12-31', 'both')]
# ddf.SMA = talib.SMA(ddf.AdjustmentClose, timeperiod=5) BBで描画されるので不要
ddf.EMA = talib.EMA(ddf.AdjustmentClose, timeperiod=5)
ddf.UPPER, ddf.MIDDLE, ddf.LOWER = talib.BBANDS(ddf.AdjustmentClose, matype=MA_Type.SMA)

indicators = [
    # mpf.make_addplot(ddf.SMA, color='skyblue', width=2.5),
    mpf.make_addplot(ddf.EMA, color='pink', width=2.5),
    mpf.make_addplot(ddf.UPPER, color='purple', width=.5),
    mpf.make_addplot(ddf.MIDDLE, color='skyblue', width=2.5),
    mpf.make_addplot(ddf.LOWER, color='purple', width=.5),
]
columns = ('AdjustmentOpen', 'AdjustmentHigh', 'AdjustmentLow', 'AdjustmentClose', 'AdjustmentVolume')

mpf.plot(ddf, figratio=(12,4), type='candle', style="yahoo",
         volume=True, addplot=indicators, columns=columns)

参考

laid-back-scientist.com

qiita.com

mrjbq7.github.io

github.com

note.nkmk.me

(C) 2020 dogwood008 禁無断転載 不許複製 Reprinting, reproducing are prohibited.