FXのテクニカル指標を提供してくれるような、 便利なPythonのライブラリはないかなと探していたら、ありました.

TA-LIBとは、経済データに対するテクニカル分析をするための関数がまとまっ たライブラリ. さっそく試す.

インストール

https://mrjbq7.github.io/ta-lib/install.html

tarをダウンロードして、ビルドする方法もあるけど、 easy_install で入れることができる.

easy_install ta-lib

およそ、100以上の関数が用意されている. 各関数の使い方は github参照.

つかってみる

単純移動平均の関数 SMAを利用して、 為替データでバックテストもどきをしてみる.

  • 5日移動平均が25日移動平均を上回ったら(ゴールデンクロス) 買い
  • 5日移動平均が25日移動平均を下回ったら(デッドクロス) 売り

データは、 MT4のヒストリカルデータより、1分足データをエクスポートした.

import numpy as np
import talib as ta

data = np.loadtxt('150703.csv', delimiter=",", usecols=(2, 3, 4, 5))

tanki = ta.SMA(data[:, 3], timeperiod=5)
tyuki = ta.SMA(data[:, 3], timeperiod=25)

total = 100000
units = 1000

for i in range(len(data)-1):
    if ((tanki[i] < tyuki[i]) and (tanki[i+1] > tyuki[i+1])):
        print("Golden Closs!!")
        total = total - 1000*data[i,3]

    elif ((tanki[i] > tyuki[i]) and (tanki[i+1] < tyuki[i+1])):
        print("Dead Closs!!")
        total = total + 1000*data[i,3]

print(total)

所感

Pythonだと、パラメータ(ここでは、移動平均の5と25)の調整がモンテカルロ法で できそう. パラメータの最適化がしやすいという点は metatraderに比べてメリットだ.

しかし、まだまだ、バックテストのしにくさは Metatraderに比べると大きい. 使えるレベルにするには、そうとうの努力が必要そうだ.