OANDAPYV20を使ってオーダーブックを取得する

どうも、トウヤマ(@tnkicom)です。

OANDA APIを使えば、オーダーブックのデータを簡単に取得できます。

今回はそのオーダーブックの取得の仕方を紹介します。

前提

環境

まず、私の環境は

  • python 3.8
  • oandapyV20 : 0.6.3

です。

OANDA APIを使うための環境構築

今回はOANDA APIを使います。

OANDA APIを使うためにデモ、もしくは本番口座を作成して、アクセストークンを取得しておく必要があります。以下の記事を参考にしてください。

また、oandapyV20をpipでインストールしておく必要があります。pipで簡単にインストールできます。

pip install oandapyV20

サンプルコード

では、早速オーダーブックを取得してみます。

まず、今回使うモジュールをimportします。

import pandas as pd
from oandapyV20 import API
import oandapyV20.endpoints.instruments as instruments

oanda apiへ接続します。

api = API(
    access_token="*****************",  # あなたのアクセストークン
    environment="practice")

access_tokenはあなたのアクセストークンに変更してください。
environmentはデモ口座ならpractice、本番口座ならliveにしてください。

次にオーダーブックを取得します。
instruments.InstrumentsOrderBookを用います。

r = instruments.InstrumentsOrderBook(instrument="USD_JPY")
api.request(r)

instrumentに通貨ペアを設定します。今回はドル円のオーダーブックを取得したいので、USD_JPYとします。

あとはrequestを送ります。

受け取った結果r.responseの中のorderbookのbucketsの中にオーダーブックの情報が格納されています。

df = pd.DataFrame(r.response["orderBook"]["buckets"])
df.head()

ここまでのコードを書いて実行すると以下のように出力されると思います。

   price longCountPercent shortCountPercent
0  0.000           0.6436            0.0265
1  0.050           0.0133            0.0133
2  0.100           0.0265            0.0332
3  0.150           0.0133            0.0000
4  0.200           0.0464            0.0133

priceが価格、longCountPercentはロングポジションのパーセント、shortCountPercentはショートポジションのパーセントです。

ちょっと今は上から適当にデータを取得しているので、現在の価格からかなり異なる値となっていますが、もっと下を見ていくと今の価格が見つかります。

最後に全コードを以下に示します。

import pandas as pd
from oandapyV20 import API
import oandapyV20.endpoints.instruments as instruments


api = API(
    access_token="**************************************",
    environment="practice")

r = instruments.InstrumentsOrderBook(instrument="USD_JPY")
api.request(r)

df = pd.DataFrame(r.response["orderBook"]["buckets"])
print(df.head())

終わりに

今回はOANDA APIをPythonから使って、オーダーブックを取得する方法を紹介しました。

相変わらずOANDA APIは便利で助かります。

OANDAさんには感謝しかありません。

ちなみに本サイトでは、ニューラルネットワークで為替データの予測するプログラムの作成方法などをも紹介していますので、ぜひ見てみてください

タイトルとURLをコピーしました