Oanda API でFX自動売買のための開発環境を準備する

準備するもの

スポンサーリンク

Oanda API

OANDA APIを使うための条件と簡単な流れ

OANDA APIは、OANDAが提供する外国為替(FX)取引データや取引機能をプログラムから利用できるAPIです。以下では、OANDA APIを利用するための条件と、その基本的な利用手順について解説します。


OANDA APIを使うための条件

APIを使用するためにはアカウントのステータスがゴールドである必要があります。口座残高や取引量を満たすことでゴールドステータスとなります。詳細な条件は以下をご確認ください。

OANDA会員ステータスとは? | OANDA(オアンダ) FX/CFDラボ

APIのキーを入手するために、OANDAサイトへアクセスし、取引ページから > 口座管理 > APIアクセス管理 を選びます。

  1. APIトークンの取得
    • 上記の説明のとおり、OANDAのダッシュボードからAPIトークンを発行します。
    • トークンは認証に使用されるため、第三者に公開しないように注意が必要です。
  2. APIへのアクセス
    • APIのマニュアルは以下のサイトにありますが素のAPIではなくラッパーを使う人のほうが多いのではないかと思います。
    • デモアカウント用とリアルアカウント用でエンドポイントが異なります。
      • デモ環境: https://api-fxpractice.oanda.com
      • リアル環境: https://api-fxtrade.oanda.com
  3. 開発環境
    • APIを操作するために、プログラミング環境が必要です。
    • PythonやJavaScriptなど、HTTPリクエストを送信できる言語であれば利用可能。

OANDA APIの基本的な流れ

1. 環境の準備

  • ライブラリのインストール Pythonを使用する場合、リクエストを簡単に送るために requests ライブラリをインストールします。
pip install requests

2. APIトークンを設定

APIトークンはリクエストヘッダーに設定します。

API_TOKEN = "YOUR_API_TOKEN"
HEADERS = {
    "Authorization": f"Bearer {API_TOKEN}"
}

3. 為替レートの取得

現在の為替レートを取得する例です。

import requests

API_URL = "https://api-fxpractice.oanda.com/v3/instruments/USD_JPY/price"

response = requests.get(API_URL, headers=HEADERS)
if response.status_code == 200:
    data = response.json()
    print(f"Bid: {data['prices'][0]['bid']}, Ask: {data['prices'][0]['ask']}")
else:
    print(f"Error: {response.status_code}, {response.text}")

4. 取引口座情報の確認

自分のアカウント情報や残高を確認できます。

API_URL = "https://api-fxpractice.oanda.com/v3/accounts"

response = requests.get(API_URL, headers=HEADERS)
if response.status_code == 200:
    accounts = response.json()
    print(accounts)
else:
    print(f"Error: {response.status_code}, {response.text}")

5. 注文を出す

新しい取引注文を出す例です。

API_URL = "https://api-fxpractice.oanda.com/v3/accounts/YOUR_ACCOUNT_ID/orders"

order_data = {
    "order": {
        "instrument": "EUR_USD",
        "units": "1000",  # 買い:正の値、売り:負の値
        "type": "MARKET",
        "positionFill": "DEFAULT"
    }
}

response = requests.post(API_URL, headers=HEADERS, json=order_data)
if response.status_code == 201:
    print("Order placed successfully.")
    print(response.json())
else:
    print(f"Error: {response.status_code}, {response.text}")

6. 取引履歴の取得

過去の取引履歴を取得します。

API_URL = "https://api-fxpractice.oanda.com/v3/accounts/YOUR_ACCOUNT_ID/trades"

response = requests.get(API_URL, headers=HEADERS)
if response.status_code == 200:
    trades = response.json()
    print(trades)
else:
    print(f"Error: {response.status_code}, {response.text}")

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