APIの使い方

Pythonを使って「REST API」からポジションをクローズする方法について解説


Pythonを使ってREST API(以下、API)で取引をクローズする方法について解説します。

取引中のポジション一覧を取得したり、クローズする前に損益状況を確認したりすることも可能です。

事前準備

PythonでAPIを利用するためには、次の2点が必要です。

  • 1.APIトークンの発行
  • 2.oandapyV20のインストール

詳細についてはこちらの記事で解説しておりますのでご参照ください。

>Pythonで「REST API」を使用するまでの4つの手順について解説

取引中のポジションを取得する

まずは取引中のポジションを取得してみます。

取引中のポジションを取得するためには、oandapyV20.endpoints.tradesを使います。

一覧を取得する

取引中のポジションを一覧で取得するには、oandapyV20.endpoints.trades.TradesListあるいはoandapyV20.endpoints.trades.OpenTradesを使います。

次のコードでは、TradesListを使って取引中のポジション一覧を取得しています。


from oandapyV20.endpoints import trades
from oandapyV20 import API

account_id = "アカウントIDを設定してください"
access_token = "APIトークンを設定してください"

client = API(access_token=access_token, environment="practice")
r = trades.TradesList(accountID=account_id)

client.request(r)


取引中のポジションを一覧で取得する

返り値はJson形式で、’trades’に取引中のポジション一覧が格納されています。

各ポジションの保有数や損益状況などの情報がまとまっています。

特定の取引を取得する

特定の取引のみを取得することも可能です。

これには、oandapyV20.endpoints.trades.TradesDetailを使います。

TradeIDを指定することで、任意の取引の情報を取得することができます。


from oandapyV20.endpoints import trades
from oandapyV20 import API

account_id = "アカウントIDを設定してください"
access_token = "APIトークンを設定してください"

client = API(access_token=access_token, environment="practice")
r = trades.TradeDetails(accountID=account_id, tradeID=163)

client.request(r)


oandapyV20.endpoints.trades.TradesDetailを使を使って特定の取引のみを取得する方法

特定のTradeID(ここでは163)の情報のみが取得できていることが確認できます。

取引をクローズする

次に、APIを介して取引をクローズする方法について解説します。

取引をクローズする方法は2つあります。

  • 1.指値や逆指値等でクローズする
  • 2.成行でクローズする

指値や逆指値でクローズする

指値や逆指値等を利用してクローズするためには、取引中のポジションに追加で発注を入れます。

詳細についてはこちらの記事をご参照ください。

指値、逆指値、トレーリングストップなど、さまざまな注文形式に対応しています。

>Pythonで「REST API」から売買注文を発注する方法を解説

成行でクローズする

成行で取引をクローズするには、oandapyV20.endpoints.trades.TradeCloseを使います。

TradeIDを指定することで、取引をクローズすることができます。


from oandapyV20.endpoints import trades
from oandapyV20 import API

account_id = "アカウントIDを設定してください"
access_token = "APIトークンを設定してください"

client = API(access_token=access_token, environment="practice")
r = trades.TradeClose(accountID=account_id, tradeID=163)

client.request(r)


oandapyV20.endpoints.trades.TradeCloseを使って成行で取引をクローズする方法

返り値は’orderCreateTransaction’と’orderFilledTransaction’から成ります。

‘orderCreateTransaction’では発注内容を確認できます。

typeがMARKET_ORDER(成行)となっています。

‘orderFilledTransaction’では、約定内容を確認できます。

price(約定価格)、pl(損益)などの情報を確認することができます。

このように、oandapyV20.endpoints.tradesを利用すると、取引ポジションを確認したり、取引をクローズすることができます。

本記事の執筆者:TAT

               
本記事の執筆者:TAT 経歴
TAT2016年大学院卒業後、外資系IT企業に入社。
その後は金融情報→不動産テック→アドテク企業で、Pythonを用いたプロセスオートメーション、ダッシュボード開発、データ分析、AI開発などの業務に従事。
プログラミングや株式投資に関する情報を発信する「気ままなブログ」を運営中。

「REST API」をさらに学びたい方へオススメのコンテンツ

API

OANDA証券では、「REST API」に関する記事を豊富に提供しています。
「REST API」を利用するための手順、プログラミング言語の一つPythonを使い「REST API」を使用するまでの手順など、初心者の方向けコンテンツも豊富にあるので、APIを使った取引を始めてみたい方はぜひ参考にしてください。
ただしAPIを利用した取引は、OANDA証券の口座開設+いくつかの条件があります。
事前に確認を行い、ぜひOANDA証券の口座を開設し「REST API」を使った取引をご検討ください。


本ホームページに掲載されている事項は、投資判断の参考となる情報の提供を目的としたものであり、投資の勧誘を目的としたものではありません。投資方針、投資タイミング等は、ご自身の責任において判断してください。本サービスの情報に基づいて行った取引のいかなる損失についても、当社は一切の責を負いかねますのでご了承ください。また、当社は、当該情報の正確性および完全性を保証または約束するものでなく、今後、予告なしに内容を変更または廃止する場合があります。なお、当該情報の欠落・誤謬等につきましてもその責を負いかねますのでご了承ください。

この記事をシェアする

ホーム » APIの使い方 » Pythonを使って「REST API」からポジションをクローズする方法について解説