プログラミング

OANDA シストレ(oandapyV20) の始め方 【関数編1】

投稿日:2020年10月25日 更新日:

OANDAで、シストレ/APIを利用する際にお世話になる関数の紹介です。情報は、基本的に公式ドキュメント (英語) から引っ張ってきています。

OANDA シストレ(oandapyV20) の始め方 記事一覧

もくじ

  • 実現損益 / 未実現損益
  • 取引可能な通貨ペア一覧
  • 口座内の残金
  • 通貨ごとのスプレッド
  • ローソク足
  • 現在の売値・買値

実現損益 / 未実現損益

AccountDetailsクラスから取れます。ここでは書きませんが、ポジションごとの損益情報も取れます。

import oandapyV20.endpoints.accounts as accounts
r = accounts.AccountDetails(accountID)
api.request(r)

print('実現損益 (日本円):', r.response['account']['pl'])
print('未実現損益 (日本円):', r.response['account']['unrealizedPL'])
# 出力
実現損益 (日本円): -171030.5141
未実現損益 (日本円): 0.0000

取引可能な通貨ペア一覧

AccountInstrumentsクラスから取れます。通貨ごとの最大/最小取引可能数も、このクラスで取得できます。

import oandapyV20.endpoints.accounts as accounts
r = accounts.AccountInstruments(accountID=accountID)
api.request(r)
for i, inst in enumerate(r.response['instruments']):
    print(i, inst['name'])
# 出力
0 AUD_CHF
1 CAD_SGD
2 USD_INR
3 GBP_SGD
4 USD_SEK
5 NZD_HKD
6 EUR_SEK
7 USD_SGD
8 SGD_CHF
9 EUR_CHF
10 TRY_JPY
11 USD_JPY
12 EUR_TRY
13 USD_HUF
14 AUD_SGD
15 AUD_CAD
16 CAD_HKD
17 NZD_SGD
18 USD_CZK
19 AUD_NZD
20 SGD_JPY
21 SGD_HKD
22 HKD_JPY
23 CHF_ZAR
24 NZD_USD
25 EUR_USD
26 USD_DKK
27 USD_PLN
28 GBP_AUD
29 USD_MXN
30 GBP_USD
31 CHF_HKD
32 NZD_CAD
33 GBP_CHF
34 USD_THB
35 USD_NOK
36 USD_TRY
37 GBP_JPY
38 USD_CHF
39 EUR_NOK
40 EUR_ZAR
41 EUR_CAD
42 USD_HKD
43 NZD_CHF
44 EUR_DKK
45 EUR_PLN
46 EUR_NZD
47 GBP_PLN
48 ZAR_JPY
49 EUR_HKD
50 CAD_CHF
51 CHF_JPY
52 USD_CNH
53 GBP_ZAR
54 EUR_SGD
55 AUD_USD
56 CAD_JPY
58 NZD_JPY
59 EUR_CZK
60 EUR_AUD
61 AUD_JPY
62 GBP_NZD
63 GBP_HKD
64 GBP_CAD
65 USD_SAR
66 AUD_HKD
67 EUR_HUF
68 USD_CAD
69 EUR_JPY
70 EUR_GBP

口座内の残金

AccountSummaryクラスから取れます。現在のレバレッジ率等も、このクラスから取得できます。

import oandapyV20.endpoints.accounts as accounts
r = accounts.AccountSummary(accountID)
api.request(r)
print(r.response['account']['balance'])
# 出力
0.2808

通貨ごとのスプレッド

Spreadsクラスから取れます。期間等の設定が結構面倒なので、詳細はオフィシャルのドキュメントも参照しながら。。。

import oandapyV20.endpoints.forexlabs as labs
params = {
          "instrument": "EUR_USD",
          "period": 604800 
         }
r = labs.Spreads(params=params)
api.request(r)
res = r.response
print('avg', sum([array[1] for array in res['avg']])/len(res['avg']))
print('max', sum([array[1] for array in res['max']])/len(res['max']))
print('min', sum([array[1] for array in res['min']])/len(res['min']))
# 出力
avg 1.462701854166668
max 2.302122015915118
min 1.8941176470588232

ローソク足

InstrumentsCandlesクラスから取れます。古いものが先で、新しいものが後になります。最新のローソク足については、まだ更新中の可能性がある点に注意が必要です。取得するローソク足のサイズ(=期間)についてはgranularityで変更可能で、選択可能なものについてはこちらを参照。5秒足から月足までが指定可能。

import oandapyV20.endpoints.instruments as instruments
params = {
    "count": 5,
    "granularity": "M5"
}
r = instruments.InstrumentsCandles(instrument="DE30_EUR", params=params)
api.request(r)
res = r.response
for c in res['candles']:
    print(c['time'].split('.')[0], c['mid']['o'], c['mid']['h'], c['mid']['l'], c['mid']['c'], c['volume'])
# 出力
2020-10-23T19:35:00 12650.4 12653.8 12648.8 12650.4 281
2020-10-23T19:40:00 12650.4 12657.6 12650.3 12656.6 341
2020-10-23T19:45:00 12656.6 12658.0 12653.0 12654.9 415
2020-10-23T19:50:00 12654.8 12660.8 12652.1 12660.8 507
2020-10-23T19:55:00 12660.8 12668.6 12658.8 12663.9 333

現在の売値・買値

PricingInfoクラスから取れます。paramsの中で通過ペアを複数指定するときはカンマ区切りで、スペースを挟んではいけません。

import oandapyV20.endpoints.pricing as pricing
params = {
    "instruments": "EUR_USD,USD_JPY"
}
r = pricing.PricingInfo(accountID=accountID, params=params)
rv = api.request(r)
for price in rv['prices']:
    print(price['instrument'])
    print('asks', price['asks'])
    print('bids', price['bids'])
# 出力
EUR_USD
asks [{'price': '1.18653', 'liquidity': 3000000}]
bids [{'price': '1.18569', 'liquidity': 3000000}]
USD_JPY
asks [{'price': '104.752', 'liquidity': 3000000}]
bids [{'price': '104.666', 'liquidity': 3000000}]


-プログラミング
-, , , , ,

執筆者:


  1. […] 単位期間等のパラメータを指定します。指定可能な通貨ペアについては、こちらの過去記事です。 […]

comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です



関連記事

no image

OANDA シストレ(oandapyV20) の始め方 【関数編3】

OANDAで、シストレ/APIを利用する際にお世話になる関数の紹介です。 OANDA シストレ(oandapyV20) の始め方 記事一覧 導入編関数編1関数編2関数編3 ←本記事Pandas編(作成 …

no image

OANDA シストレ(oandapyV20) の始め方 【導入編】

OANDAを Cloud9 (AWS) + OandapyV20 (Python) 環境で始めるための、クイックスタート記事です。 OANDA シストレ(oandapyV20) の始め方 記事一覧 導 …

no image

OANDA シストレ(oandapyV20) の始め方 【関数編2】

OANDAで、シストレ/APIを利用する際にお世話になる関数の紹介です。情報は、基本的に公式ドキュメント (英語) から引っ張ってきています。 OANDA シストレ(oandapyV20) の始め方 …

OANDA シストレ(oandapyV20) の始め方 【BOT編】

OANDA (oandapyV20)で、ゴールデンクロスで買い、デッドクロスで売るBOTを作ってみます。 下記の要素は、プログラム中で指定できるようにします。 単位期間 (年月日等)移動平均を取る期間 …

no image

Twitter API 使い方 PHP クイックスタート

Twitter API (PHP) の、クイックスタート記事です。 前提条件 Twitterアカウントは所有済みXserverを利用WordPress環境独自ドメイン設定済みPHPからTwitter …

プロフィール

タクマ
−−−−−−−−

東南アジア(ミャンマー&フィリピン)でNW系システムインテグレーターとして6年ほど駐在していました。本を1500冊以上読んだり、プログラミングをしたりしています。嫁さんはタイ人で、タイ在住です。
ーー
「〇〇を分かりやすく解説!」系のスカスカな記事を見ていると頭が悪くなりそうなので、対抗して、少し骨のある記事を書こうと考えています。
ーー
Twitter (@tkm_nkmr)
ーー
Twitterまとめのまとめ
YouTube Find!
SNS Trends

−−−−−−−−