断クリプト日記(n日ぶりm回目)

暗号通貨ガチホしつつbotトレード極めます

TA-Libをwin64bit環境にインストールする方法をまとめてみた

どうもみなさん、ガチホしていますか?

私はトレードbotの実装・テスト・運用が順調すぎて、 気づいたら1分足のチャートしかみておらず
ガチホしている暗号通貨はずるずると購入額からFiat建てで下がっていました。

でも、気にしません! 特に価格が下がることに対して興味がないからです。

さて、先日寄稿させていただきました"ビットコインのトレードbotを書いてみた"の中で
windows10の64bit環境にTA-Libのライブラリをインストールするのに2日間かかったということを
強調していましたので、本日はその方法をまとめておきます。

GitHubに書いてあるんですが、英語だと抵抗ある人もいると思うので私なりにまとめます。
github.com
f:id:cryptocurrency_chudoku:20180401140231p:plain

インストール手順

1 ラッパーを手に入れよう

Qiitaを見ていると"TA-Lib"というテクニカルインディケーターの計算をやってくれる便利なライブラリがあるということで、コマンドプロンプトにて、"pip install TA-Lib"を実行してみるが入らない。。。
Google先生に聞いてみると下記のサイトからラッパーの準備が必要ということで、
まずはDownLoadしましょう。

ta-lib.org
"ta-lib-0.4.0-msvc.zip"を自分のローカルの"C:\"の直下にzip形式を解凍したしたうえで、
配置してください。

ラッパーってなんだYo!っていう人は個別に調べてください。

2 VisualStudioもしくはVisualStudioのビルドツールをインストールしよう

気を取り直してコマンドプロンプトにて、"pip install TA-Lib"を実行してみるが入らない。。。
コマンドプロンプトの内容を見るとC++のビルドツールがないので、怒られた。むりぽ(´・ω・`)

WindowsにはデフォルトでC++のビルドツールが入っていないので、
DownLoadしたラッパーを導入できない
コマンドプロンプトにも出ますが、下記URLにアクセスし対象のファイルをインストール。
landinghub.visualstudio.com
私はeclipseというIDEをつかっていますので"Build Tools for Visual Studio 2017 "(※2018/3時点)という
ツールのみインストールしましたが、VisualStudioをIDEとして使う場合はそのままインストールすれば
ビルドできるのだと思います。


3 VS2017用x64NativeToolsのコマンドプロンプトでビルドしよう

気を取り直してコマンドプロンプトにて、"pip install TA-Lib"を実行してみるが入らない。。。(3回目)
このあたりの時系列はあいまいなので、正確性に欠けますが、以下の方法で対応していたと思います。

Gitにも書いてありますが、32bit専用のラッパーということで/(^o^)\オワタ状態でしたが、
64bit専用コマンドプロンプトで実行すればよいとのこと

下図が対象ツールです。(赤枠)
f:id:cryptocurrency_chudoku:20180401133152p:plain

コマンドプロンプトが起動したらcdコマンドで"C:\ta-lib\c\make\cdr\win32\msvc"の
ディレクトリに移動します。
移動したら"nmake"とコマンドを打って終わりです。
このあとに再度、通常のコマンドプロンプトで"pip install TA-Lib"を実行したか覚えていないのですが、
再実行しても"already install"と出るような気がするので問題ないと思います。やったね!

4 その他に困ったら

1 ビルドしてもpipのバージョンが古くて変なエラーが出る問題

どうやったら再現できるのか忘れてしまいましたが、
ログをはきだすpyモジュールの型が合わなくて、ビルドが最後まで通らなかった気がしたので
Gitのpull requestどおりにコメントアウトするか、最新のpipにアップグレードしたほうがよさそうです。
※確かpython3.7系以降は大丈夫だったかな?

2 VS2017用x64NativeTools以外でビルドしてしまった・・・

上記の画像でも示しているようにコマンドプロンプトの種類が複数あってわかりにくいのですが
違うコマンドプロンプトで実行すると動きません。
"pip uninstall TA-Lib"を実行して、"C:\ta-lib"のファイルを再度新しいもので置きなおしてからやります。

3 それでもできない(涙目)

なんと裏技があります。笑
すでにコンパイル済みのソースを配置して使えるそうです。
下記ブログに書いてあったので、どうしても無理な方はこちらへどうぞ。

yasumonoe.hateblo.jp

4 eclipseでエラーでるんだけど?

いざ、TA-Libのライブラリをインストールしてpythonモジュールでfunctionを呼び出すと
importモジュールがない、みたいなエラーが出ます。
ただし、ラッパーを使っているのでおそらくpathが通っていないとかそのあたりの問題だと思います。
エラーが出たままでも動くので問題ありません。



さて、第2回目の記事はいかがでしたでしょうか。
1回目の記事を書いた時点で燃え尽きていたのですが、同じような悩みをもった人を見かけたので
やる気を振り絞って記事を書いてみました。
それではまた!