株価の指標を求める

# はじめに

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

- [TA-Lib : Technical Analysis Library](http://mrjbq7.github.io/ta-lib/)
- [Python wrapper for TA-Lib](http://mrjbq7.github.io/ta-lib/)

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

ソースは[GitHub](https://github.com/mahoutsukaino-deshi/stock_indicator)に置いてます。

# TA-Libのインストール

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

```sh
$ brew install ta-lib
```

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

```sh
$ pip install TA-Lib
```

# 基本的な使い方

## 株価の取得

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

```python
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をインポートします。

```python
import talib
```

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

```python
sma = talib.SMA(df['Close'], timeperiod=30)
```
これだけです。楽です。

# 指標のグラフ

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

## BBANDS - Bollinger Bands

![01_bbands.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1106967/024b1f8c-b2a4-bf68-f869-1160bf560eaf.png)

## DEMA - Double Exponential Moving Average

![02_dema.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1106967/7617786c-b70c-0d19-41aa-e4bcd61d3eb2.png)

## EMA - Exponential Moving Average

![03_ema.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1106967/d6e55e08-82fe-24ec-ed0f-27eea0abb1dd.png)

## HT_TRENDLINE - Hilbert Transform - Instantaneous Trendline

![04_ht_trendline.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1106967/306cb714-509e-d2dc-1899-19ca4d4bdd3d.png)

## KAMA - Kaufman Adaptive Moving Average

![05_kama.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1106967/00ecb931-5142-8eaf-f920-4072aa8775c6.png)

## MA - Moving average

![06_ma.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1106967/e2f1047a-7b46-814a-0bfc-f1fd8c831406.png)

## 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

![09_midpoint.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1106967/87edd8d0-1fb4-a5de-cdcb-f42e52546840.png)

## MIDPRICE - Midpoint Price over period

![10_midprice.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1106967/e5f31923-e5f8-304b-60c5-e7d4724778c6.png)

## SAR - Parabolic SAR

![11_sar.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1106967/64aaeebf-a930-c997-03ab-3513c0ef6687.png)

## SAREXT - Parabolic SAR - Extended

![12_sarext.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1106967/1c2e31a5-58e5-4054-87be-65cd92fcb1b4.png)

## SMA - Simple Moving Average

![13_sma.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1106967/61adbc27-5205-4ec0-d751-f6b275f5b193.png)

## T3 - Triple Exponential Moving Average (T3)

![14_t3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1106967/8ffc1b2d-a8d4-2125-3d24-85aa7e2aec94.png)

## TEMA - Triple Exponential Moving Average

![15_tema.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1106967/8fc2f602-629f-32f1-3610-8fb43713a407.png)

## TRIMA - Triangular Moving Average

![16_trima.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1106967/d8c0ef1d-0815-8f0d-fb94-f2b25a591fae.png)

## WMA - Weighted Moving Average

![17_wma.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1106967/52935769-2beb-3353-cfbb-c851c0a76661.png)

## RSI - Relative Strength Index

![18_rsi.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1106967/690c1802-cc8b-1a4d-4f90-c6455c7b6238.png)

## STOCH - Stochastic

![19_stoch.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1106967/f370c475-6fc0-fdf8-04e6-a40b02ba18ab.png)

## STOCHRSI - Stochastic Relative Strength Index

![20_stochrsi.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1106967/823a7a0e-fcb2-f58e-4ef7-9f4b563caf18.png)

## MACD - Moving Average Convergence/Divergence

![21_macd.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1106967/859ea7b2-c467-f1ef-9c99-8c25642dff99.png)

## ADX - Average Directional Movement Index

![22_adx.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1106967/67a208ac-2633-5deb-32bb-a91003607734.png)

## WILLR - Williams' %R

![23_willr.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1106967/0418e8a8-89db-a48e-a29b-b04b8f20fb35.png)

## CCI - Commodity Channel Index

![24_cci.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1106967/1e4d0bf0-8f15-5686-f7a2-78966ea9f3c8.png)

## ATR - Average True Range

![25_atr.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1106967/ba0d9dbd-cd41-5c06-1eae-d81be62843fb.png)

## ULTOSC - Ultimate Oscillator

![26_ultosc.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1106967/ef508f9a-14f1-08af-ee4e-88540424c2cb.png)

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

![27_roc.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1106967/e2ac8912-d958-b0c5-0180-ffb08d56b24b.png)

# おわりに

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