This article is available in: English
はじめに
TA-Libを使うことで、株価やFX、仮想通貨でテクニカル分析を行う際のインジケーターの作成が簡単にできます。
この記事ではそんなTA-Libを、google coalbで使用する方法を述べます。株価データはyahoo_finance_api2を、データのプロットはmplfinanceを用いることにします。
なお、本記事のコードはこちらで試すことができます。
Google Colab
TA-Libと必要なライブラリのインストール
TA-Libのインストール
TA-Libはpipインストールではなく、https://sourceforge.net/projects/ta-lib/ から必要なパッケージをダウンロードすることで導入します。具体的には、google colabで下記のコマンドを実行するとTA-Libのインストールが完了します。
!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
yahoo_finance_api2のインストール
yahoo_finance_api2は、Yahooファイナンスから株価を取得できるライブラリです。こちらはpipインストールで導入をおこないます。
!pip install yahoo_finance_api2
mplfinance
最後にmplfinanceのインストールです。こちらは、ローソク足の描写を簡単におこなえるライブラリになっています。
!pip install mplfinance
以上で必要なライブラリのインストールは完了です。
実際に使ってみる
今回は、
- yahoo_finance_api2を用いて、Googleの株価を取得
- TA-Libを用いて、適当なインジケーターを作成
- mplfinanceを用いて、データをプロット
をおこないます。まずは必要なライブラリをimportします。
import talib
from yahoo_finance_api2 import share
import pandas as pd
import mplfinance as mpf
では、まずはyahoo_finance_api2を用いて株価を取得してみます。
# Googleの株価を取得
my_share = share.Share('GOOG')
ohlcv = my_share.get_historical(
share.PERIOD_TYPE_YEAR, 1,
share.FREQUENCY_TYPE_DAY, 1)
df = pd.DataFrame(ohlcv)
# unix時間をtimestampに変換
df['timestamp'] = pd.to_datetime(df['timestamp'].astype(int), unit='ms')
df.set_index("timestamp", inplace=True)
df
株価が取得できたら、TA-Libを用いて適当なインジケーターを作成します。今回は、SMAとEMAを作成しました。
ほかに作成できるインジケーター一覧はこちらに記載されています。
df['SMA'] = talib.SMA(df['close'], timeperiod=5)
df['EMA'] = talib.EMA(df['close'], timeperiod=5)
df.dropna(inplace=True)
df
最後に、mplfinanceを用いて、データのプロットをおこないます。
term = -50
indicators = [
mpf.make_addplot(df['SMA'][term:], color='skyblue', width=2.5),
mpf.make_addplot(df['EMA'][term:], color='pink', width=2.5),
]
mpf.plot(df[term:], figratio=(12,4), type='candle', style="yahoo", volume=True, addplot=indicators)
リンク