Google ColabでTA-Libを使う方法

プログラミング

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

以上で必要なライブラリのインストールは完了です。

実際に使ってみる

 今回は、

  1. yahoo_finance_api2を用いて、Googleの株価を取得
  2. TA-Libを用いて、適当なインジケーターを作成
  3. 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
▲取得したGoogleの株価

株価が取得できたら、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
▲TA-Libを用いてSMA, EMAを作成

最後に、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)
mplfinanceでローソク足を作成
タイトルとURLをコピーしました