#はじめに
TAlibについて、国内での記事もそこそこありますが、完全にOut of Dateなものも結構出てきます。
さらに言えば、古い情報も新しい情報も、バージョン情報とか書いてないものが多いです。
そのため、個人的にいったんまとめてみることにしました。
テクニカル分析などは自分で関数作ってもいいのですが、巨人の肩に立つのが一番の近道かなと。
ただ、このパッケージ自体のDocumentationはクソちゃんとまとまってないので、参照しづらいです。
現在の環境は、Windows10 64bit、Python 3.8、TAlib 0.4.19です。
(Python 3.9はnumpyが投稿日現在使用できないので使用していません)
#TAlibとは
Documentation
Technical Analysis Libraryの略で、その名の通りテクニカル分析ができるパッケージです。
これ自体はC/C++用のTA-libのラッパーです。
元のDocumentationもクソ。
やりとりできるデータ型はnumpyのarrayです。
(python3.9でも使えるならlistでもいいのでは…?)
各関数はオプション引数を持っていますが、Documentationにも大した内容が書いていないので自力で調べる必要があります。
今のところ使用できた関数は以下の通りです(追記予定)。
関数名 | 実行内容 |
---|---|
abstract.SMA | 単純移動平均を計算 |
abstract.BBANDS | ボリンジャーバンドの基準線および上下線 |
#インストール
ここではあらかじめビルドされたパッケージを使用しています(参考元)。
ダウンロード元より、自分の環境に合ったファイルをダウンロードします。
バージョンの読み方は次の通りです。
TA_Lib‑0.4.19‑cp39‑cp39‑win32.whl
→TAlib 0.4.19、python3.9、windows 32bit用
TA_Lib‑0.4.19‑cp38‑cp38‑win_amd64.whl
→TAlib 0.4.19、python3.8、windows 64bit用
その後、Promptにてダウンロード先のフォルダに移動し、インストールします。
pip install TA_Lib‑0.4.19‑cp38‑cp38‑win_amd64.whl
condaではインストール不可なのであしからず。
依存しているパッケージはないみたいです~~(だってDocumentationにそう書いてあるんだもん)~~。
#基本の使い方
from talib import abstract
sma = abstract.SMA(hoge, huga)
import talib
で書いてる記事が多いですが、現在はモジュール化してあるのでinportできません。
使用できる関数の一覧はimport talib; talib.get_functions()
で取得できます。
が、モジュールが不明なので手さぐりで探すことになります。
#各指標紹介
ここでは次のようなPandas.Dataframe型の変数historical_data
(極洋 1301.Tの株価)から各指標を計算する方法を説明します。
記載されている方法だとnumpy.array型で指標を取得できます。
Open High Low Close Volume Currency
Date
1991-01-04 7780.0 8000.0 7770.0 7990.0 10000 JPY
1991-01-07 7990.0 8000.0 7750.0 7800.0 8000 JPY
1991-01-08 7700.0 7700.0 7400.0 7450.0 14200 JPY
1991-01-09 7350.0 7750.0 7350.0 7750.0 9500 JPY
1991-01-10 7450.0 7750.0 7450.0 7750.0 14300 JPY
... ... ... ... ... ... ...
2021-01-28 3035.0 3080.0 3030.0 3080.0 39100 JPY
2021-01-29 3080.0 3080.0 3020.0 3030.0 21300 JPY
2021-02-01 3025.0 3030.0 3005.0 3020.0 17400 JPY
2021-02-02 3020.0 3040.0 3010.0 3025.0 15900 JPY
2021-02-03 3030.0 3070.0 3030.0 3055.0 13600 JPY
####SMA 単純移動平均
from talib import abstract
import numpy as np
data = np.array(historical_data['Close']
#timeperiod:単純移動平均をとる期間(ここでは20日)
sma = abstract.SMA(data, timeperiod=20)
####BBANDS ボリンジャーバンド
from talib import abstract
import numpy as np
data = np.array(historical_data['Close']
#upper_band, middle_band, lower_band:アッパーバンド、基準線、ロワーバンド
#timeperiod:移動平均をとる期間(ここでは20日)
#nbdevup, nbdevdn:σのn倍をアッパーバンド、ロワーバンドとするかのn
# nbdevupがアッパーバンド、nbdevdnがロワーバンド
upper_band, middle_band, lower_band = abstract.BBANDS(row_data, timeperiod=20, nbdevup=float(2), nbdevdn=float(2))
#Q&A
####インストールできないんだけど
ダウンロードファイルをきちんと確認してください。
私が一回やらかしたときは、
pip install TA_Lib‑0.4.19‑cp39‑cp39‑win_amd64.whl
を実行して、3.9用のwhlは対応してないよ!って言われました。