OANDA API V20を使ってみる(デモ口座開設編)

2018年6月27日

使っているFX会社はどこ?
テクニカル分析用(チャートが使いやすい) → DMM FX
Python API用(FX APIはここしかない) → OANDA ジャパン
デイトレ用(スプレッドがとにかく狭い) → SBI FXトレード

こんばんは、新米データサイエンティスト(@algon_fx)です。今日もしっかりジムで走れたのは良かったのですが、その直後に急な用事が発生して思ったより勉強が出来ませんでした。。

本当は米国雇用統計の予測モデルを作るべく、特徴量として使えそうなデータを漁ろうかと考えたのですが、それをやるほど時間がなさそうでしたので、今日は別件のリサーチをしました。

すでにFX機械学習をやっている方であれば、おそらく一度は触ったことがあるかと思いますが、今日はOANDA(オアンダ)のAPIについてまとめたいと思います。

【人気記事】

私の機械学習の開発環境&トレード環境を解説

更新:2018年5月2日 – OANDA v20ですが日本の電話番号でも米国OANDAでデモ口座解説できるとのことです。内容を更新しました。

OANDA API V1の終了のお知らせ

さて、そもそもなんで、このタイミングでOANDAのAPI?ってお話なんですが…以前にOANDA JAPANのAPIを使ったトレードシステムの記事を書きましたが、為替レート関連の直近の生データはOANDA APIで十分と考えていました。

ところが…

なんと、OANDA API v1が2018年5月を持って終了と出ているではないですが。誤解のないように言うと、こちらですが、米国OANDAの話ですので、兼ねてから独自路線を突き進んでいるOANDA JAPANの話ではありません。

ですので、OANDA JAPANが提供しているAPI v1が2018年5月に終わるという話ではありません。ただ…そもそも開発が海外主体のOANDAさんな訳でして、これは日本でもいずれはAPI v1が終わってしまうのではないか?と心配になった訳です。

そこでOANDA API v20へ移行したい

しつこいようだが、日本のOANDA API v1は終了の予定は現段階ではありません。ただ、今まさにFX機械学習を頑張っている私にとって、開発の主体であるグローバルOANDAで終了と聞くと不安な訳です。

それ以外にもいくつか、OANDA API v1からv20へ移行したい理由があります。

  1. 現時点でv1のAPIを使っている海外勢はほとんどおらず、参考になるチュートリアルや記事がv20で書かれているため、v1へ転換する手間がかかる
  2. v1とv20の仕様の違いはさほどありませんが、APIをPythonで扱う外部パーティーの便利そうなラッパーやライブラリがv20しかサポートしていない
  3. 何よりv1が終了する可能性が高い(日本でも)

主に海外のサイトや掲示板などで勉強をしている私にとって、特に1の理由はでかい訳です。現時点でOANDA API v1を使っている人なんてほとんど皆無な訳で…v20で書かれたコードを紐解いてv1に転換する手間が結構かかる。

ただ、v1からv20へ移行するにあたり一つ大きな問題がある。それは…日本のOANDA JAPANがAPI V20を未だにサポートしていないのだ。全世界、OANDA API v20へ移管してv1は終了なのに対して、OANDA JAPANはv20が使えない。困る。

でも、この流れを加味すればOANDA JAPANがv20を解禁するのは近いようにも感じる訳です。ってことで、一足早いですが、公式サポートが出る前にv20で個人的には移管したい。

ご覧の通りAPI v1とv20では注文方法でも対して大きな仕様の差はありません。

API v20を使うためにデモ口座開設

今まで慣れしたんで来たAPI v1ですが、今後のことも考えるとやはりv20に移管しておきたいところ。そこで、調べて見たところ…OANDA API v20を使うには米国のOANDAにて口座開設が必要。

幸い、アメリカでも住所と電話番号を持っているので、とりあえず、OANDA API v20を使うためにデモ口座を開いてみました。

oanda.comの新規口座開設からfxTrader Practice(デモ口座開設)。

上記の「fxTrade Practice」をクリックすると下のデモ口座の新規開設フォームへ移動します。こちらですが、「coutry(国)」と「Phone(電話番号)」の入力が必要です。試しに日本の電話番号で登録してみようと試みましたが、日本の情報ではNGでした。

コメントにてさいきさんからご指摘いただきました!米国OANDAのデモ口座ですが、日本の携帯番号でも、国番を日本+81を選んで、最初の0を抜いて90-1111-2222と入力すれば、問題なくデモ口座開設行けるようです。訂正します。

上記のデモ口座新規開設フォームを入力すると、すぐにアカウントへのログインが可能です。デモ口座(fxTrade Practice)の申し込みが完了してログインしたら、下記の赤枠の「Manage API Access」をクリック。

「Manage API Access」のページへ移ると、OANDA API v20が利用できるAPIキーの発行が可能です。下記の赤線部分のように発行ボタンをクリックするとAPIキーの発行が行われます。

APIキーが発行されれば、あとは残すところ一つ。OANDA v20 APIを叩くのに、キーと口座IDが必要となります。キーはすぐに発見できたのですが、口座IDがなかなか見つかりませんでした。

ログイン後のページから「Transaction History(取引履歴)」のページを見てみると、今回開設したデモ口座のIDが表示されていました。(下記、赤線の部分)

これでAPIを叩くのに必要なキーと口座IDの取得が完了です。口座IDを探すのに少し時間はかかりましたが、思ったよりもスムーズにできました。

OANDA API v20を触ってみよう

デモ口座も作って、APIキーも取得できましたので、念願のAPI v20を触ってみましょう。とりあえず、軽く触ってみたいので、OANDA API v20のPythonのラッパーを使ってみることに。

こちらですが、pipでインストールが可能です。

難なくエラーなしにコンプリートしてくれました。では、実際にOANDA API V20をインポートしてみましょう。JSON形式で吐き出すのでJSONも合わせてインポートします。

次にAPI接続に必要な口座IDとAPIキー(トークン)を設定してあげます。下記はダミーですので、各自のIDとトークンに変更して実行してあげましょう。

次はAPIへの接続をしてあげましょう。

実際にOANDA API V20で為替レートが引っ張れるか試して見ましょう。とりあえずドル円のレートを引っ張って見ます。

{
“type”: “PRICE”,
“time”: “2018-04-17T14:11:32.183153942Z”,
“bids”: [
{
“price”: “107.130”,
“liquidity”: 10000000
}
],
“asks”: [
{
“price”: “107.142”,
“liquidity”: 10000000
}
],
“closeoutBid”: “107.115”,
“closeoutAsk”: “107.157”,
“status”: “tradeable”,
“tradeable”: true,
“instrument”: “USD_JPY”
}

大丈夫そうですね!これで、取り急ぎは念願のOANDA API V20が使えることになりました!

まとめと次の課題

今回は今まで使っていたOANDA API v1から最新のv20への移管を念頭に置いて、米国OANDAでデモ口座を開設して実際にAPI v20への接続をしてドル円のレートを引っ張ってみました。

次の課題は…山ほどありますね笑。

このOANDA API v20はシリーズ化しそうなので、また後日、まとめのページを作って、より詳しい使い方を勉強していきたいと思います。

ブログ読んでいただきありがとうございます!Twitterでも色々と発信しているので、是非フォローお願いします!

2018年6月27日FX トレード

Posted by algon