株価の指標を求める


はじめに

株価を分析する際にいろいろな指標が使われます。
いざ自分で計算しようと思うと、難しいだけでなく調べるだけでも大変です。
そんな折、TA-Libという便利なライブラリを見つけました。

本記事ではTA-Libを使用していろいろな指標を計算させ、グラフ化してみます。
また、計算した指標は後で再利用できるようにCSVで保存しておきます。
たくさんのグラフを作成してみましたが、私が知っているのはごく一部だけでした。
ほとんどの指標は意味もわからず、名前さえ知りませんでした。

ソースはGitHubに置いてます。

TA-Libのインストール

Macであればbrewでインストールできます。

$ brew install ta-lib

Pythonから使えるようにラッパーをインストールします。

$ pip install TA-Lib

基本的な使い方

株価の取得

株価はpandas_datareaderを使用してYahoo Financeから取得しました。
取得したのは日経平均株価です。

import datetime
import pandas_datareader

start_date = datetime.date(2020, 1, 1)
end_date = datetime.date(2020, 12, 31)
ticker = '^N225'
df = pandas_datareader.data.DataReader(ticker, "yahoo", start_date, end_date)

TA-Libの使い方

TA-Libをインポートします。

import talib

そして、指標を求めます。

sma = talib.SMA(df['Close'], timeperiod=30)

これだけです。楽です。

指標のグラフ

ここからは指標のグラフだけ載せます。

BBANDS - Bollinger Bands

DEMA - Double Exponential Moving Average

EMA - Exponential Moving Average

HT_TRENDLINE - Hilbert Transform - Instantaneous Trendline

KAMA - Kaufman Adaptive Moving Average

MA - Moving average

MAMA - MESA Adaptive Moving Average

使い方が悪いのか、ライブラリが古いのか、エラーとなります。
深追いはせず次に進みます。

Error occured: Exception: TA_MAMA function failed with error code 2: Bad Parameter (TA_BAD_PARAM)

MAVP - Moving average with variable period

periodsに何を指定すればよいかわからなかったのであきらめました。

MIDPOINT - MidPoint over period

MIDPRICE - Midpoint Price over period

SAR - Parabolic SAR

SAREXT - Parabolic SAR - Extended

SMA - Simple Moving Average

T3 - Triple Exponential Moving Average (T3)

TEMA - Triple Exponential Moving Average

TRIMA - Triangular Moving Average

WMA - Weighted Moving Average

RSI - Relative Strength Index

STOCH - Stochastic

STOCHRSI - Stochastic Relative Strength Index

MACD - Moving Average Convergence/Divergence

ADX - Average Directional Movement Index

WILLR - Williams' %R

CCI - Commodity Channel Index

ATR - Average True Range

ULTOSC - Ultimate Oscillator

ROC - Rate of change : ((price/prevPrice)-1)*100

おわりに

今回の目的は株価指標の収集です。
また、視覚化してこんな感じなのかなということが何となくわかりました。
この収集したデータをどのように料理するか。これからの課題です。