Pythonを使い「REST API」から通貨ペア別の損益状況を確認する方法について解説
Pythonを使ってREST API(以下、API)で通貨ペア別の損益状況を確認する方法について解説します。
同通貨ペアの複数ポジションをまとめて損益状況を確認することができます。
特定の通貨ペアのポジションを一括でクローズすることも可能です。
事前準備
PythonでAPIを利用するためには、次の2点が必要です。
- 1.APIトークンの発行
- 2.oandapyV20のインストール
詳細についてはこちらの記事で解説しておりますのでご参照ください。
>Pythonで「REST API」を使用するまでの4つの手順について解説
通貨ペア別の損益状況を確認する
APIで通貨ペア別の損益状況を確認するためには、oandapyV20.endpoints.positionsを利用します。
全通貨ペアの損益状況を確認する
全通貨ペアの保有状況を確認するためには、oandapyV20.endpoints.positionsのOpenPositionsあるいはPositionListを使います。
次のコードでは、OpenPositionsを使って全通貨ペアのデータを取得しています。
from oandapyV20.endpoints import positions
from oandapyV20 import API
account_id = "アカウントIDを設定してください"
access_token = "APIトークンを設定してください"
client = API(access_token=access_token, environment="practice")
r = positions.OpenPositions(accountID=account_id)
client.request(r)
返り値はJson形式です。
上記コードを走らせた時は、ドル円をロングで200通貨、ユーロドルをショートで100通貨保有していました。
‘positions’に各通貨ペアの保有状況がリスト形式で格納されています。
リストを見ると、各通貨ごとにデータが格納されています。
instrumentsから、1つ目がUSD_JPY(ドル円)、2つ目はEUR_USD(ユーロドル)であることが確認できます。
それぞれの通貨でロングとショートそれぞれの保有状況と通貨ペア全体の損益情報などがまとめられています。
特定の通貨ペアの損益状況を確認する
特定の通貨ペアの損益状況を確認するためには、oandapyV20.endpoints.positions.PositionDetailsを使います。
次のコードでは、ドル円のデータを取得しています。
from oandapyV20.endpoints import positions
from oandapyV20 import API
account_id = "アカウントIDを設定してください"
access_token = "APIトークンを設定してください"
client = API(access_token=access_token, environment="practice")
r = positions.PositionDetails(accountID=account_id, instrument="USD_JPY", )
client.request(r)
ドル円の情報のみが取得できていることが確認できます。
アカウント全体の損益状況を見るには?
oandapyV20.endpoints.positionsのOpenPositionsあるいはPositionListでは、通貨ペア別の損益状況のみを確認することができます。
アカウント全体の損益状況を確認する場合には、oandapyV20.endpoints.accountsを使用します。
>Pythonを使い「REST API」からアカウント情報を取得する方法について解説
特定の通貨ペアのポジションを一括でクローズする
oandapyV20.endpoints.positionsのPositionCloseを使えば、特定の通貨ペアのポジションを一括でクローズすることができます。
次のコードでは、ドル円のロングポジションをまとめてクローズしています。
from oandapyV20.endpoints import positions
from oandapyV20 import API
account_id = "アカウントIDを設定してください"
access_token = "APIトークンを設定してください"
data = {
"longUnits": "ALL"
}
client = API(access_token=access_token, environment="practice")
r = positions.PositionClose(accountID=account_id, instrument="USD_JPY", data=data)
client.request(r)
PositionCloseのポイントは、複数のポジションをまとめてクローズできる点です。
従って、特殊要因で通貨が大きく変動したり、重要な経済指標発表前など、緊急時などの場面で保有ポジションをまとめて素早く手仕舞うことができます。
特定のポジションのみをクローズする場合にはoandapyV20.endpoints.tradesを利用します。
>Pythonを使って「REST API」からポジションをクローズする方法について解説
このように、oandapyV20.endpoints.positionsを利用すると、通貨ペア別の損益状況を確認できたり、保有ポジションを一括でクローズすることができます。
本記事の執筆者:TAT
本記事の執筆者:TAT | 経歴 |
---|---|
2016年大学院卒業後、外資系IT企業に入社。 その後は金融情報→不動産テック→アドテク企業で、Pythonを用いたプロセスオートメーション、ダッシュボード開発、データ分析、AI開発などの業務に従事。 プログラミングや株式投資に関する情報を発信する「気ままなブログ」を運営中。 |
「REST API」をさらに学びたい方へオススメのコンテンツ
OANDA証券では、「REST API」に関する記事を豊富に提供しています。
「REST API」を利用するための手順、プログラミング言語の一つPythonを使い「REST API」を使用するまでの手順など、初心者の方向けコンテンツも豊富にあるので、APIを使った取引を始めてみたい方はぜひ参考にしてください。
ただしAPIを利用した取引は、OANDA証券の口座開設+いくつかの条件があります。
事前に確認を行い、ぜひOANDA証券の口座を開設し「REST API」を使った取引をご検討ください。
本ホームページに掲載されている事項は、投資判断の参考となる情報の提供を目的としたものであり、投資の勧誘を目的としたものではありません。投資方針、投資タイミング等は、ご自身の責任において判断してください。本サービスの情報に基づいて行った取引のいかなる損失についても、当社は一切の責を負いかねますのでご了承ください。また、当社は、当該情報の正確性および完全性を保証または約束するものでなく、今後、予告なしに内容を変更または廃止する場合があります。なお、当該情報の欠落・誤謬等につきましてもその責を負いかねますのでご了承ください。