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

OANDAのAPIがV20となりました!
V20用の記事は以下になります。

OANDA API V20とPythonを使って為替データを取得する

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

OANDAとは

OANDAはアメリカのfx会社です。
OANDA Japan

pythonから使えるapiを提供しているので、
pythonでfx関連のことをしようとする人はよく使うと思います。
今回はoandaからデータを取得して、ローソク足チャートをプロットするので
oandaの口座を持っている人前提の記事になります。

apiを使うためにはoandaで口座を作る必要があります。
口座を作るだけなら無料できます。以下のリンクからoandaのページにいき口座を作成してから以下をお読みください。

https://www.oanda.jp/

oandapyとは

oandapyはOANDA APIをpythonから簡単に利用できるようにしたライブラリです。

https://github.com/oanda/oandapy

本記事ではoandapyを使って実装していきます。

インストール方法はシンプルで

pip install git+https://github.com/oanda/oandapy.git

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

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

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

import oandapy

oa = oandapy.API(environment="live",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分間分遡ったデータが取得できていることがわかります。


コメント

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