【FX】oanda APIを使って今月の損益と今日の損益を計算する

では、早速、oanda APIを使って、「 今月の損益 」「 今日の損益 」を計算していきます。


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



from datetime import datetime

import oandapyV20
import oandapyV20.endpoints.transactions as trans
from oandapyV20.endpoints import accounts


def calc_daily_PL():
    account_id = '自分のAccount ID'
    access_token = '自分のPersonal access Token'

    client = oandapyV20.API(access_token=access_token)
    r = trans.TransactionList(account_id)
    client.request(r)
    trade_num = r.response['count']

    this_month_pl = 0
    today_pl = 0
    for i in range(trade_num, 0, -1):
        r = trans.TransactionDetails(accountID=account_id, transactionID=i)
        client.request(r)
        if r.response['transaction']['type'] == 'ORDER_FILL':
            close_date = datetime.strptime(r.response['transaction']['time'][:10], '%Y-%m-%d')
            if close_date.month == datetime.today().month:
                this_month_pl += float(r.response['transaction']['pl'])
                if close_date.day == datetime.today().day:
                    today_pl += float(r.response['transaction']['pl'])
            else:
                break

    r = accounts.AccountDetails(account_id)
    client.request(r)
    total = r.response['account']['balance']

    print(f'Total: {total}円\n'
          f'This Month PL: {this_month_pl}円\n'
          f'Today PL: {today_pl}円\n')


if __name__ == '__main__':
    calc_daily_PL()

今は、標準出力させているだけですが、出力先をslackへの通知に変えたり、tweetに変えると情報発信もできて良いでしょう。 ぜひ、チャレンジしてみてください!

投稿者:

kmatsuoka

software engineer

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中