「Ta-Libライブラリ」を用いた、頻繁に使用されているテクニカル分析の実装方法を、ご紹介します。
本記事の対象者は
- Python初心者を想定しています。
- (Pandasの知識が少しでもあると、なおGood)
「Ta-Lib」って何???
という方でも、大丈夫な内容になっています。
テクニカル分析は、以下の6種類を紹介しました。
- SMA ( 単純移動平均 )
- EMA ( 指数平滑移動平均 )
- MACD
- RSI
- BB ( ボリンジャーバンド )
- ATR
ライブラリ「Ta-Lib」の紹介とインストール方法
「Ta-Lib」とは?
Ta-Libは、テクニカル分析を算出するための、ライブラリです。
特徴としては
- C++ で作られているので、算出時間が爆速ですが、
- Pythonで使うには、設定が少し面倒くさい
といったものが挙げられます。
Ta-Libを使うのと、Pythonのみのコードに比べ、処理時間が10倍ほど速くなります。
処理時間の比較は、こちらのサイトが参考になると思います。
「Ta-Lib」のインストール手順
インストールは、以下の手順になります。
- 各OSに「Ta-Lib」本体をインストールしてから
- Pythonから使えるようにする
各OS別に、順番にインストール方法を解説していきます。
各OS別、インストール方法
Mac への「Ta-Lib」インストール方法
brewでインストールできます。
# ① 「Ta-Lib」 本体のインストール
brew install ta-lib
# ② Pythonから使えるようにする
pip install TA-Lib
Linux への「Ta-Lib」インストール方法
サイトより、ta-lib-0.4.0-src.tar.gz をDLしてくる。
# ① 「Ta-Lib」 本体のインストール
tar -zxvf ta-lib-0.4.0-src.tar.gz
cd ta-lib
./configure --prefix=/usr
make
sudo make install
# ② Pythonから使えるようにする
pip install TA-Lib
Windows への「Ta-Lib」インストール方法
WIndowsの場合は、手順①と②が同時に行えます。
自分のPython、Windowsのバージョンにあった、ファイルをこちらのサイトよりDLしてくる。
Pythonが3.10でWindosが32bitの場合:
- TA_Lib‑0.4.23‑cp310‑cp310‑win32.whl
Pythonが3.10でWindosが64bitの場合:
- TA_Lib‑0.4.23‑cp310‑cp310‑win64.whl
をDLしてきます。
次に DLしてきたwhlファイルを、インストールする事で完了です。
# pip install whlファイル名
# 下記は 1例です。 バージョンを適したファイルをインストールして下さい。
pip install TA_Lib‑0.4.23‑cp310‑cp310‑win32.whl
株価データの準備
ここではdf[‘Close’]に、下記のように、株価データが入っているとします。
print(df['Close'])
# ⬆︎ 出力結果
Date
2021-01-07 379.100006
2021-01-08 381.260010
2021-01-11 378.690002
2021-01-12 378.769989
2021-01-13 379.790009
... ...
株価データの収集方法に関しては、下記記事が参考になります。
各テクニカル分析の算出コード
下記コードを実行する前に、下記をimportして下さい。
import talib
import numpy as np
下記コードの、各テクニカル分析結果は、「Numpyのndarray」型で取得できます。
SMA ( 単純移動平均 ) 算出コード
period = 10 # 任意の値を設定
sma_value = talib.SMA(np.array(df['Close']), period)
EMA ( 指数平滑移動平均 ) 算出コード
period = 10 # 任意の値を設定
ema_value = talib.EMA(np.array(df['Close']), period)
MACD 算出コード
fast_period = 8 # 任意の値を設定
slow_period = 18 # 任意の値を設定
signal_period = 6 # 任意の値を設定
macd, macd_signal, macd_hist = talib.MACD(np.array(df['Close']), fast_period,
slow_period, signal_period)
RSI 算出コード
period = 10 # 任意の値を設定
rsi_values = talib.RSI(np.array(df['Close']), period)
BB 算出コード
period = 10 # 任意の値を設定
sigma = 2 # 任意の値を設定
# 下記は移動平均の種類
# 0:単純移動平均
moving_average_type = 0
bb_up, bb_middle, bb_down = talib.BBANDS(np.array(df['Close']),
period, sigma, sigma, moving_average_type)
talib.BBANDS(real[, timeperiod=?, nbdevup=?, nbdevdn=?, matype=?])の引数に関して
- real: 株価データ
- timeperiod: 期間
- nbdevup: upper-band導出のための標準偏差
- nvdeddn: down-band導出のための標準偏差
- matype: 移動平均の種類を指定
ATR 算出コード
period = 3 # 任意の値を設定
atr_value = talib.ATR(np.array(df['High']), np.array(df['Low']), np.array(df['Close']), timeperiod=period)
まとめ
テクニカル分析を算出するための、Pythonコードをご紹介しました。
ご紹介した通り、talibライブラリを使用すると、数行で簡単に実装する事ができます。
これらの分析は、株やビットコインの自動売買にも活用できます。
ビットコインの自動取引システムに興味がありましたら、下記記事が参考になります。
自動取引に必要な、Pythonコードを、具体的に紹介しております。
それでは、またです!