【Python, OANDAPYV20】Oanda API を使って成り行き注文をして決済してみる

OANDAPYV20を使って成り行き注文をして決済をしてみます。

環境や前提

バージョン等

  • Python 3.6.0
  • oandapyV20 0.6.3

前提条件

OANDA APIのアクセストークンの取得

OANDA APIを使うためOANDA APIのアクセストークンを取得する必要があります。

アクセストークンを取得するためにデモ口座か本番口座を作る必要があります。 OANDA Japanからデモ口座か本番口座を作ってから読んでください。

アクセストークンについては前の記事を参考にしてもらえればと思います。

PythonからOANDA APIを使いやすくするライブラリのインストール

pipで簡単にインストールできます。

pip install oandapyv20

実装

成り行き注文

単にUSD/JPYを成り行き注文を行うコードを書いていきます。

まずモジュールをimportしてAPIに接続します。

import oandapyV20
import oandapyV20.endpoints.orders as orders
client = oandapyV20.API(access_token="******")

APIへのリクエストのパラメータを作成します。

data = {
  "order": {
    "instrument": "USD_JPY",
    "units": "-1000",
    "type": "MARKET",
  }
}

instrumentが通貨ペア、unitsで発注量を決めます。10000で1万通貨になります。+で買い、-で売りになります

次に以下のコードでオーダーを作成し、リクエストを送ります。

account_id = "*************"
r = orders.OrderCreate(account_id, data=data)
client.request(r)

これで、成り行き注文を行うことができます。

決済

次に今あるポジションを決済するコードを書いていきます。

まずは決済に必要なモジュールをimportします。

import oandapyV20.endpoints.positions as positions

次にリクエストを作成します。

data = {"shortUnits":"ALL"}

shortUnitsで売りポジションの決済できます。逆にlongUnitsで買いポジションの決済ができます。ALLは文字通りすべてのポジションを決済します。

あとは、以下のコードでAPIにリクエストを行います。

r = positions.PositionClose(accountID=account_id, instrument="USD_JPY", data=data)

client.request(r)

終わりに

今回はとりあえず売り注文を入れて、ポジションを決済する方法を紹介しました。

まだまだわからないことだらけなので調べて紹介していきます。

参考文献

https://oanda-api-v20.readthedocs.io/en/latest/endpoints/positions/positionclose.html
タイトルとURLをコピーしました