まずはAPIを取得してください。
OANDAを使用する場合はマイページにログインしてからAPIの管理というページを開いてください。
以下のURLにAPIを取得してデータを弄るためのコードやアイディアがあります。全部試してみましたが、environmentで引っかかりやすいと思います。
デモ口座を使用するのであれば、以下のURLにあるコードをそのまま使えば良いですが、本番講座を使うのであればenvironmentはliveとしてください。
import numpy as np
import oandapyV20
API_KEY = 'APIトークンを入力'
ACCOUNT_ID = 'アカウント情報を入力'
from oandapyV20 import API
import oandapyV20.endpoints.trades as trades
import json
client= API(access_token=API_KEY,environment="live")
r = trades.TradesList(ACCOUNT_ID)
print("REQUEST:{}".format(r))
rv = client.request(r)
print("RESPONSE:\n{}".format(json.dumps(rv, indent=2)))
from oandapyV20.endpoints.pricing import PricingStream
from oandapyV20 import API
これでAPIを取得することができると思います。
# APIトークンの定義
account_id = ACCOUNT_ID
access_token = API_KEY
# パラメータの設定
params = {
"instruments": "USD_JPY"
}
# API用のクラスを定義
client = API(access_token=access_token, environment="live")
# 為替データを取得
r = PricingStream(accountID=account_id, params=params)
client.request(r)
print(r.response)
import oandapyV20.endpoints.instruments as instruments
from oandapyV20 import API
# APIトークンの定義
api_token = API_KEY
# パラメータの設定
params = {
"granularity": "M5", # ローソク足の間隔
"count": 5000, # 取得する足数
"price": "M", # B: Bid, A:Ask, M:Mid
}
# 通貨ペアの設定
instrument = "USD_JPY"
# API用のクラスを定義
client = API(access_token=API_KEY, environment="live")
# 為替データを取得
r = instruments.InstrumentsCandles(instrument=instrument, params=params)
client.request(r)
print(r.response)
dict_trade = r.response
# json形式で出力
with open("M5data","w") as f:
json.dump(dict_trade, f)
import pandas as pd
# 為替データを格納するためのリストを定義
price_data = []
# データを1つずつ取り出してprice_dataに格納する
for row in r.response["candles"]:
# 辞書を定義
data = {}
# dataに格納する
data["datetime"] = row["time"]
data.update(row["mid"])
data["volume"] = row["volume"]
# price_dataに追加する
price_data.append(data)
# DataFrameに変換する
df = pd.DataFrame(price_data)
# カラム名の定義
columns = {
"o": "open",
"h": "high",
"l": "low",
"c": "close"
}
# カラム名の変更
df.rename(columns=columns, inplace=True)
df.head()
上のコードではjson形式でデータを出力したり、pythonで処理しやすいようにデータフレーム形式にすることもできます。
また、ローソク足の時間軸の表記にも作法があるので、上のURLを参照してください。