では、早速、oanda APIを使って、決済機能をPythonで実装していきましょう。


※ API Tokenの発行がまだ出来ていない方は、こちらを参考にして、発行してください。


from oandapyV20 import API
from oandapyV20.endpoints import positions


def close_processing(account_id: str, access_token: str, trade_mode: str, instrument: str, order_type: str) -> None:
    data = {}
    close_type = ""
    if order_type == 'long':
        close_type = "longOrderFillTransaction"
        data = {"longUnits": "ALL"}

    if order_type == 'short':
        close_type = "shortOrderFillTransaction"
        data = {"shortUnits": "ALL"}

    r = positions.PositionClose(accountID=account_id, data=data, instrument=instrument)
    api = API(access_token=access_token, environment=trade_mode)
    close_info = api.request(r)

    pl = float(close_info[close_type]["tradesClosed"][0]["realizedPL"])
    balance = float(close_info[close_type]["accountBalance"])

    print(f'[PL] {pl} yen. Balance is {balance}')


if __name__ == '__main__':
    close_processing(
        account_id='自分のAccount ID',
        access_token='自分のpersonal access token',
        trade_mode='practice',
        instrument='GBP_JPY',
        order_type='short'
    )

実行して、エラーが出なかったら、成功です!