スポンサーリンク

python3系 talibを使う 未知の金融系関数の使い方

スポンサーリンク
スポンサーリンク

仮想通貨のFX取引 BOT制作の備忘録

このページではビットコインなどの仮想通貨において、各種インジケーターを用いた 自動取引プログラムの作成について書いています。

未知の金融系インジケーターの情報を得る

自動取引BOTを作成するためには以下の内容が必要です。

  1. 対象となる取引所のAPI情報
  2. 取引を判定する情報
  3. 取引を始める条件設定

ここでは取引を判定する情報としてインジケーターを使います。まずはインジケーターをボットで作動させるのですが、これをプログラムに書くためには引数を知る必要があります。

pythonですでに書かれている関数を利用します。いろいろなライブラリが存在しているのですが、ここでは talib を使います。

以下は例です。

>>> from talib import ADOSC
>>> help(ADOSC)
Help on built-in function ADOSC in module talib.func:

ADOSC(…)
ADOSC(high, low, close, volume[, fastperiod=?, slowperiod=?])

Chaikin A/D Oscillator (Volume Indicators)

Inputs:
prices: [‘high’, ‘low’, ‘close’, ‘volume’]
Parameters:
fastperiod: 3
slowperiod: 10
Outputs:
real

こんなふうに出てきました。ついでにもう一つやってみます。

>>> from talib import MACD
>>> help(MACD)
Help on built-in function MACD in module talib.func:

MACD(…)
MACD(real[, fastperiod=?, slowperiod=?, signalperiod=?])

Moving Average Convergence/Divergence (Momentum Indicators)

Inputs:
real: (any ndarray)
Parameters:
fastperiod: 12
slowperiod: 26
signalperiod: 9
Outputs:
macd
macdsignal
macdhistgram

大体みんな同じ感じです。

上の例では help を使って情報を得ています。他にもやり方はいろいろあると思いますが、これが一番簡単かもしれません。

なぜインジケーター情報を調べる必要があるのか?

関数というのは引数を与えれば勝手に計算して答えを返してくれるのですが、肝心の引数が分からないと、何を与えればいいのかが分かりません。だから調べています。

引数を変数として宣言しなければ機能しませんから。INPUTの項目がその引数リストということになると思います。

パラメーターは必要に応じて調整することになる。こうして自分だけのインジケーターを関数としてボットに取り込めるようになります。

ここまでは計算の部分です。対象となる取引所から各時間足の価格情報を取得、そしてインジケーターで計算するということです。

自動取引の肝となる部分は次の 取引を始める条件設定 となります。

仮想通貨FX 自動取引の条件設定

自動取引で使う情報は計算の出力情報です。これに条件を付けて実際のオーダーを出すわけです。

「~の値がどうなったら~する」 というようなことをイコールやら不等式を使ってプログラミングします。

いわゆる売買ロジックというやつですね。一口で説明するのは難しいですし、スタイルもやる人によってまちまちなので何とも言えませんが、自分のスタイルに合うものをじっくり見つけていくしかないです。

「こうしたら上手くいくんじゃないか?」というようなことを自分なりに仮説を立てて検証するしか方法はありません。

 

コメント