Pythonでテクニカル指標を算出できるライブラリ「Ta-Lib」。インストール方法や便利な機能のまとめ。

2018年6月27日

使っているFX会社はどこ?
テクニカル分析用(チャートが使いやすい) → DMM FX
Python API用(FX APIはここしかない) → OANDA ジャパン
デイトレ用(スプレッドがとにかく狭い) → SBI FXトレード

みなさん、こんばんは。新米データサイエンティスト(@algon_fx)です。昨日は久しぶりに飲み会に参加してきました。質の悪い焼酎でウーロンハイを飲み続けると…とんでもなく悪酔い&二日酔いするのですね。

さて、今回の記事は「テクニカル指標をPythonでお手軽に算出できるライブラリTa-Lib」について、書いていきたいと思います。前回の記事にも書きましたが、これから機械学習で為替レートをこねくり回すのに、テクニカル指標の知識は必須だと考えています。

テクニカル指標について調べてみると、Pythonでとっても簡単に算出できる「Ta-Lib」なるライブラリが存在する事がわかりました。

将来的には特徴量エンジニアリングの為にも、各テクニカル指標の計算を生データから行えるようになる必要があると考えていますが、とりあえず今日はTa-Libの概要を調べて、明日はこの便利なライブラリを触ってみようかと。

【人気記事】

私の機械学習の開発環境&トレード環境を解説

Ta-Libとは?

公式のサイト(英語)はこちらです。オープンソースでGitに公開されています。読み方はそのままで「タリブ」です。

Ta-Libとは、複数の言語で使用可能なマーケット情報の分析ツールです。C/C++、Java、.NET、Perl、Pythonで利用が可能です。PythonとPerlはラッパーが用意されています。

冒頭でも書きましたが、何が便利かというと、テクニカル指標が非常に簡単に生成する事が可能です。また公式ドキュメントを読んでみましたが、対応している指標の数は200を超えており、メジャーなストキャスティックスやMACDなども作る事が可能なんです。

これは便利!!

Ta-LibをMacにインストールしてみよう

って事で、早速私のMac Book Airさんにインストールしてみました。今まで聞いた事がないライブありだったので、インストールも面倒そうだなと思ったのですが・・

なんとMacはHomebrewとpip経由でインストールが可能です!

もしくは公式からソースコードを落としてsetup.pyでインストールも可能のようです。

Windowsでのインストールはエラーがよく起きるようです。特に32-bitのTa-Libを64bitのPythonの環境で動かそうとしてしまう際のエラーが頻繁に出るみたいです。Windowsマシンでの利用の際は気をつけなくてはですね。

対応しているテクニカル指標

さて、実際にTa-Libを動かすのは明日にするとして、今日はこのTa-Libで出来ることをまとめていきたいと思います。まずは一番重要な生成できるテクニカル指標の種類の一部をご紹介。カッコ内はTa-Libの関数名。

オーバーラップ系

  • ボリンジャーバンド(BBNADS)
  • 2重指数移動平均(DEMA)
  • 指数平滑移動平均線(EMA)
  • 適応型移動平均(KAMA)
  • 移動平均線(MA)
  • MESA 適応型移動平均(MAMA)
  • パラボリック SAR(SAR)
  • 3重指数移動平均(T3)
  • 重み付き移動平均(WMA)

モメンタム系

  • 平均方向性指数(ADX)
  • アブソリュートプライス オシレーター(APO)
  • MACD(MACD)
  • マネーフローインデックス(MFI)
  • ストキャスティックRSIオシレーター(STOCHRSI)

価格操作系

  • 平均根 – (当日始値 + 当日高値 + 当日安値 + 当日終値) ÷ 4(AVGPRICE)
  • 中央値価格 -(当日高値 + 当日安値 + 当日終値) ÷ 3(MEDPRICE)
  • 加重終値 – (当日高値 + 当日安値 + 当日終値 × 2) ÷ 4(WCLPRICE)

先述しましたが、これらは主要な指標で、他にも多数の指標あり。テクニカル指標系はTa-Libだけで、本当に事足りそうですね。

ロウソク足のパターン認識もある!

上記のテクニカル指標だけでも十分に役に立つというのに、さらにローソク足のパターン認識(Candle Stick Pattern Recognition)も搭載されている。

ちなみに、ロウソク足のパターン認識ですが、軽く調べたらてMT4でも搭載されているようです。こちらもかなりの数のパターンが使えるようですが、ひとまずメジャーどころを紹介。

  • 被せ線・切り込み線(CDLDARKCLOUDCOVER)
  • 行き違い線(CDLKICKING)
  • あて首線(CDLONNECK)
  • 入り首線(CDLINNECK)
  • 差し込み線(CDLTHRUSTING

他にも多数あり。ロウソク足のパターン認識ですが、機械学習で良い特徴量になりそうな予感。ひとまず、下記の図を参考にしながら、全てのパターンを把握しなきゃですね。(勉強量半端ないw)

まとめと今後の予定

これは本当に良いライブラリに出会えました。必要と考えていた全てのテクニカル指標が簡単に搭載していますし、さらに別腹で考えていたローソク足パターン認識までもある。もはや、神ライブラリーと言っても過言ではないですね。

ひとまずは明日の記事では、実際にTa-Libにデータを渡して基本的な動作をやってみたいと思います。またMatplotlib(Pythonのグラフ描写ライブラリ)と併せてプロッティングもしてみます。

今後の予定としては、上記にリストしたテクニカル指標をライブラリに依存せずになるべく書く、さらに各テクニカル指標の意味合いや一般的な使い方も勉強していきます。

余談ではありますが、機械学習FX予測進捗表でも書きましたが、Ta-Lib + Matpotlibを使えば、とっても簡単に様々なテクニカル指標を含む時系列のチャート画像が作れそうですね。色々な期間、色々な指標使って、早くモデルの構築してみたいです。

ブログを読んでいただいてありがとうございます!毎度ですが、Twitterでも絶賛配信しているので、フォローをお願いします!

*追記 4月3日*

Talibを使ってボリンジャーバンドと5日単純移動平均をローソク足に描写してみました。

2018年6月27日FX 機械学習

Posted by algon