03 Jul 2015, 12:39

OANDA APIをつかって Pythonで 為替レートを取得してみた

少し前に mt4をいじってみたが、その先が取っ掛かりがつかめずにいた.

FXは自分は初心者なのだが、FX単体だと、飽きてしまった. 損してでもいいので、統計学とあわせて勉強できないかと道を探していた.

また、mt4のためのMQL言語は、C言語に近い言語で、拡張性がない. できればpythonを利用したいなーと思っていた.

Rest APIのことを調べていたら、Rest APIで 為替情報を取得できるという おもしろいAPIを OANDA 証券が提供しているのを見つけたので、試してみた.

やってみる

今回は、無料で即日利用できるデモ口座を開設して試す.

口座を開設

右上のデモ口座開設をクリックして、手順にしたがって口座開設.

デモ口座にログインして、APIアクセスの管理を選択し、 Personal Access Tokenを発行.

為替レートを取得

APIのドキュメントは以下にある. なんと日本語! 微妙な訳なので自動翻訳?!

Pythonで動かしてみよう. 為替レートを取得するサンプルは以下にある.

access_token, acount_idを自分のもので置き換えて実行.

[tsu-nera]% python2 streaming.py
{"tick":{"instrument":"EUR_USD","time":"2015-07-03T11:55:53.198067Z","bid":1.10999,"ask":1.11004}}
{"tick":{"instrument":"USD_CAD","time":"2015-07-03T11:55:52.634607Z","bid":1.25685,"ask":1.25712}}
{"tick":{"instrument":"USD_CAD","time":"2015-07-03T11:55:54.816590Z","bid":1.2569,"ask":1.25717}}
{"tick":{"instrument":"USD_CAD","time":"2015-07-03T11:55:58.650057Z","bid":1.25691,"ask":1.25716}}
{"tick":{"instrument":"USD_CAD","time":"2015-07-03T11:55:58.807926Z","bid":1.25688,"ask":1.25714}}
{"tick":{"instrument":"USD_CAD","time":"2015-07-03T11:55:59.070828Z","bid":1.25686,"ask":1.25711}}
{"tick":{"instrument":"EUR_USD","time":"2015-07-03T11:55:59.338964Z","bid":1.10997,"ask":1.11002}}
{"tick":{"instrument":"USD_CAD","time":"2015-07-03T11:56:00.915263Z","bid":1.25685,"ask":1.25711}}

これはすごい…

API Wrapperもある

API Wrapperを利用すれば、rest の知識なしに 操作ができる.

Mastering Python for Financeという本に、 oandapyを利用したトレード方法が書いてある.

oandapyを利用した、為替レート取得.

import oandapy
import time

oanda = oandapy.API(environment="practice", access_token=ACCESS_TOKEN)

while(True):
    time.sleep(1)
    response = oanda.get_prices(instruments="EUR_USD")
    prices = response.get("prices")
    print(prices[0])

おわりに

まずは初めの一歩. 次はバックテストをやってみたいところだ.以下が参考になりそう.

また、このサイトの管理人さんは、OANDAを利用して実際にトレードしているようだ.

Metatrader は 古くからある売買方法だが、 OANDA APIを利用した方法を利用している人はほとんどいないので、 ブルーオーシャンかもしれない. しかし、情報がとても少ないというリスクがある.

この海に飛び込んだらPythonがつかえるというモチベーションの炎が消えて しまわないか心配だ.

Special Thanks