【OANDA API, Python】オープンポジションを確認する方法

どうも、トウヤマ(@tnkicom)です。

OANDA APIをPythonから使って、現在のオープンポジションを取得する方法を紹介します。

前提

環境

まず、私の環境は

  • python 3.8
  • oandapyV20 : 0.6.3

です。

OANDA APIを使うための環境構築

今回はOANDA APIを使います。

OANDA APIを使うためにデモ、もしくは本番口座を作成して、アクセストークンを取得しておく必要があります。以下の記事を参考にしてください。

また、oandapyV20をpipでインストールしておく必要があります。pipで簡単にインストールできます。

pip install oandapyV20

【実装】現在のポジションを確認する

では、現在のポジションを確認していきます。

まずは、必要なモジュールをインポートします。

import oandapyV20
import oandapyV20.endpoints.positions as positions

OANDA APIにアクセスするための設定を行います。
ここで、アクセストークンやアカウントIDなどを使います。

client = oandapyV20.API(
    access_token="**********************************")
account_id = "**********************************"

アクセストークン(access_token)とアカウントID(account_id)はご自分のものに設定してください

先程インポートしたpositionsのOpenPositionsとclientを使ってOANDA APIにリクエストを送ります。

r = positions.OpenPositions(account_id)
result = client.request(r)
print(result["positions"]) 

APIからレスポンスのpositionsの中にポジションのデータが入っています。
上記までのコードを実行すると以下のように現在のポジションの状況を表示します。

[{'commission': '0.0000',
  'dividendAdjustment': '0.0000',
  'financing': '0.0034',
  'guaranteedExecutionFees': '0.0000',
  'instrument': 'USD_JPY',
  'long': {'averagePrice': '106.196',
   'dividendAdjustment': '0.0000',
   'financing': '0.0882',
   'guaranteedExecutionFees': '0.0000',
   'pl': '1036.1530',
   'resettablePL': '1036.1530',
   'tradeIDs': ['167'],
   'units': '1',
   'unrealizedPL': '-0.0020'},
  'marginUsed': '4.2478',
  'pl': '893.5670',
  'resettablePL': '893.5670',
  'short': {'dividendAdjustment': '0.0000',
   'financing': '-0.0848',
   'guaranteedExecutionFees': '0.0000',
   'pl': '-142.5860',
   'resettablePL': '-142.5860',
   'units': '0',
   'unrealizedPL': '0.0000'},
  'unrealizedPL': '-0.0020'}]

上記のようにポジションデータがリスト形式で帰ってきます。

このリストの一要素を見ればわかりますが、各ポジションの情報がdict形式で入っています。
主にlong, short見れば、ポジションの価格やユニット数が確認できると思います。

終わりに

OANDA APIをPythonから使って、現在のオープンポジションを取得する方法を紹介しました。

相変わらずOANDA APIは便利で助かります。

OANDAさんには感謝しかありません。

ちなみに本サイトでは、ニューラルネットワークで為替データの予測するプログラムの作成方法などをも紹介していますので、ぜひ見てみてください

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