強化学習、マルチエージェント強化学習、その他機械学習全般

機械学習関連のことをまとめていきます。強化学習関連が多いかもしれません

【oandapy,fx】oandapyで為替データを取得する方法

oanda apipythonから利用できるようにしたライブラリoandapyを 用いて為替データを取得します。

とりあえずデータを取得してみる

日足のドル円のデータを取得してみます。

以下のコードでドル円の日足の情報を1つ取得できます。

import oandapy

oa = oandapy.API(environment="live",access_token="<<access_token>>")

data = oa.get_history(instrument="USD_JPY",granularity="D",count=1)

dataの中身を見てみます。
dict形式で結果が返ってきて、基本的には"candles"の中身が日足データになります。

print(data)
# =>
{'candles': [{'closeAsk': 110.003,
   'closeBid': 109.903,
   'complete': True,
   'highAsk': 110.056,
   'highBid': 110.044,
   'lowAsk': 109.497,
   'lowBid': 109.449,
   'openAsk': 109.81,
   'openBid': 109.728,
   'time': '2019-05-09T21:00:00.000000Z',
   'volume': 105440}],
 'granularity': 'D',
 'instrument': 'USD_JPY'}

candlesの中に、為替データの基本的な値が入っています。
各要素は単語を見ればわかると思うので省略します。
終値とか保存してあります。

get_historyメソッドの主な引数についての補足説明

先程為替データを取得するときに用いたget_historyメソッドについて補足の説明をします。

instrument

instrumentでみたいレートの種類を選択できます。
米ドルならUSD_JPY、
ユーロドルならEUR_USDのように記述します。

以下のサイトから、レートの種類を確認できます。 https://www1.oanda.com/lang/ja/forex-trading/markets/live

granularity

分足、日足などの設定ができます。

1分足ならM1、日足ならDのように設定できます。

http://developer.oanda.com/rest-live/rates/

count

取得するデータの個数を設定できます

endtime

endtimeで設定した時刻からさかのぼって、データを取得できます。

ちょっと試してみます。
米ドルの分足で2019-05-09T21:00:00から2個のデータを取得します。

data = oa.get_history(instrument="USD_JPY",granularity="M1",count=2,endtime="2019-05-09T21:00:00.000000Z")
print(data)
# => 以下出力
{'candles': [{'closeAsk': 109.996,
   'closeBid': 109.929,
   'complete': True,
   'highAsk': 109.999,
   'highBid': 109.954,
   'lowAsk': 109.993,
   'lowBid': 109.929,
   'openAsk': 109.999,
   'openBid': 109.944,
   'time': '2019-05-10T20:58:00.000000Z',
   'volume': 5},
  {'closeAsk': 110.003,
   'closeBid': 109.903,
   'complete': True,
   'highAsk': 110.003,
   'highBid': 109.922,
   'lowAsk': 109.988,
   'lowBid': 109.898,
   'openAsk': 109.995,
   'openBid': 109.922,
   'time': '2019-05-10T20:59:00.000000Z',
   'volume': 7}],
 'granularity': 'M1',
 'instrument': 'USD_JPY'}

candlesに2019-05-09T21:00:00から2分間分遡ったデータが取得できていることがわかります。