bot開発

第7回 TA-Libライブラリで簡単にテクニカル分析!サルでも分かる仮想通貨botの作り方!

投稿日:

TA-Libライブラリtop

こんばんは。

なおき(@naoki_finance)です。

前回は、移動平均線の値を自動で計算する関数を作成しました。

自分でインジケータの値を算出する関数を作るとそのインジケータの理解も深まりますし、より有用な使い方もできるようになるので勉強にはとても良いです。

しかし、作るための時間もかかりますし、もしかするとバグが発生する恐れもあります。

そこで今回は、代表的なインジケータの値を算出するライブラリであるTA-Libをご紹介します。

スポンサーリンク

アドセンス




TA-Libとは?

TA-Libとは、Technical Analysis Libraryの略で様々なテクニカル指標などの関数がまとまっているライブラリです。

具体的にはこのようなインジケータを算出できます。

・移動平均線(SMA、WMA、EMA)

・MACD

・ADX

・RSI

・ボリンジャーバンド

・CCI(コモディティチャネルインデックス)

などここでは紹介しきれませんが、他にもたくさんのインジケータを使うことが可能です。

また、インジケータだけでなく、チャートのパターン認識も行うことができるる優れものです。

準備

TA-Libを使用するためにTA-Libのインストールを行います。

TA-Libのインストールはこれまでのものより少し厄介ですが、ここさえ乗り切ればbotで複雑なテクニカル分析も可能になりますので頑張りましょう。

インストールされているPythonのバージョンを確認する

TA-Libは、Python 3.6.X系ではうまくインストールできないようです。

コマンドプロンプトを開き、pythonと入力してみた際にこのような表示になった場合は、python 3.4.X系の仮想環境を作る必要があります。

talib pythonバージョン確認

Pythonのバージョンを確認したらexit()で抜けておきましょう。

Python 3.4.X系の仮想環境を作成する

コマンドプロンプトを立ち上げ、こちらのコマンドを入力し、仮想環境を作ります。


conda create -yn talibtest python=3.4

※talibtestは、任意に変更可能です。

このコマンド一つで仮想環境の構築は完了です。

Python 3.4.X系の環境への切り替えを行う。

作成した3.4.X系への切り替えを行います。


activate talibtest

※talibtestは先ほどご自身で付けた名前です。

切り替えるとコマンドプロンプトの先頭に(talibtest)のような文字が出ると思います。

そこで再度pythonと入力するとPythonのバージョンが切り替わっているのが分かります。

talib Python環境切り替え

TA-Libのインストールを行う。

いよいよここまで来たら今回のメインであるTA-Libのインストールです。

Python 3.4.X系に切り替えたままこちらのコマンドを実行してください。


conda install -c quantopian ta-lib 

インストールが成功しているかどうかはpythonのコマンドラインに入り、import talibでエラーが出なければ(何も出なければ)OKです。

TA-Libインストール確認

CCXTのインストールを行う。

Python 3.6.X系でCCXTをインストールしてあった場合でも再度CCXTのインストールを行う必要があります。


pip install ccxt

CCXTがインストールできたかどうかは最初の環境構築の記事に記載していますのでそちらをご覧ください。

 

これでTA-Libのインストールは完了です。

スポンサーリンク

アドセンス




プログラミング

では実際にTA-Libを使用してプログラミングをしてみたいと思います。

今回は、売買オーダーはせず、TA-Libを用いて前回と同様に単純移動平均の値を算出したいと思います。

# talibtest.py
# -*- coding: utf-8 -*-
import ccxt
import MA
import talib
import numpy as np
from time import sleep

# bitMEX使用宣言
bitmex = ccxt.bitmex({
        "apiKey": "XXXXXXXXXXXXXXXXXXX",
        "secret": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
        })

# テストネット使用宣言
bitmex.urls["api"] = bitmex.urls["test"]


while( True ):
    # 1分足10本移動平均値取得
    data = MA.getMA( "1m", 10 )  # TA-Libの結果データと比較するため。
    print(str(data))  # TA-Libの結果データと比較するため。

    # タイムスタンプ取得
    time = bitmex.fetch_ticker(symbol="BTC/USD")["timestamp"]
    msec = 60 * 1000
    time = time - 10 * msec
    
    # ローソク足のデータ取得
    candles = bitmex.fetch_ohlcv(symbol="BTC/USD", timeframe = "1m", since = time)

    # 終値取得
    tmp = []
    for candle in candles:
        tmp.append( candle[4] )

    data = talib.SMA(np.array(tmp,dtype='f8'), timeperiod=10) # TA-Libにて単純移動平均を算出
    print( data )
    sleep( 60 )

前回の単純移動平均を計算する関数getMAも同様にコールすることにより、TA-Libと答え合わせしています。

タイミングによっては多少値がずれることもあるでしょうが、基本的に同じ結果となると思います。

せっかくなのでボリンジャーバンドも出力してみましょう。

さきほどのtalib.SMAを置き換えるだけです。

    upper,middle,lower=talib.BBANDS(np.array(tmp,dtype='f8'),matype=talib.MA_Type.SMA)
    print( str(upper))
    print( str(middle))
    print( str(lower))
    sleep( 60 )

このように関数にデータを渡すだけで簡単に計算を行うことが可能です。

関数に渡すパラメータは公式HPを見ていただくと分かりますのでご覧になってみてください。

注意点としましては、プログラムを実行する際、Python 3.4.Xに切り替えたのち、実行する必要があります。

python talibtest.py

スポンサーリンク

アドセンス




まとめ

TA-Libは、公式のドキュメントがあまりないので使いこなすまでは戸惑う部分もあるかもしれませんが、いろいろ試行錯誤していけばとても重宝するライブラリですのでぜひご活用ください。

今回は、SMAとボリンジャーバンドしかご紹介できませんでしたが、今後も有用な使い方をご紹介できればと思います。

 

近頃、数件お問い合わせをいただきました。

私なりに分かりやすく記述しているつもりですが、まだまだ不明確な部分も多いことに気づけました。

不明点などありましたらお気軽にお問合せください。

 

ではまた。

 

前回の記事はこちら↓

移動平均botアイキャッチ
第6回 移動平均線のGC/DCで売り買いするbot開発方法を解説!サルでも分かる仮想通貨botの作り方!

こんばんは。 なおき(@naoki_finance)です。 今回から相場の状況を判断して売買を行うbotを作っていきます。 5分足10本分の移動平均を算出し、現在値がそれを上回ったらロング、下回ったら ...

続きを見る

アドセンス




アドセンス




  • この記事を書いた人
なおき

なおき

2017年7月から仮想通貨投資を行っている兼業トレーダーのなおきと申します。 仮想通貨投資の前はFX(為替)をやっていました。 FXで得た知識を生かして悠々自適な生活を目標としています。 まずは億り人になり、脱サラを目指します!! このブログでは、仮想通貨投資で実際に稼ぐことができるのか、私の投資状況など生の声をお届けしていきます! 私の投資経験などの詳しいプロフィールはこちらTwitterもやっていますのでぜひフォローしてください!

おすすめ記事

1

こんばんは。 なおき(@naoki_finance)です。 先日の記事でYouTubeで仮想通貨botプログラミングチャンネルを始めますよという告知をさせていただきました。 そのプログラミングチャンネ ...

2

こんばんは。 なおき(@naoki_finance)です。 この記事をご覧いただいている方は仮想通貨投資で一財築きたい!と考えている方だと思います。 ただ、一口に仮想通貨投資といってもいろいろな投資ス ...

3

こんばんは。 なおき(@naoki_finance)です。 これまでもBANKERAの配当(レベニューシェア)報告をさせていただいていましたが、毎週同じような記事ができてしまうので、これからはこの記事 ...

-bot開発
-, , , , ,

Copyright© 5 万円で始めた仮想通貨トレード、ほんとに稼げる? , 2018 All Rights Reserved.