Brighten up your day !!

【oandapyV20】OandaAPIでオーダブック、ポジションブックを取得する

【oandapyV20】OandaAPIでオーダブック、ポジションブックを取得する

0

この記事ではoandapyV20を使ってオーダブック、ポジションブックを取得する方法について記載します。

oandapyV20では、オーダーブックをとるためにはoandapyV20.endpoints.instrumentsのInstrumentsOrderBookというクラスで/v3/instruments/{instrument}/orderBookをGet通信で叩きます。

ポジションブックの場合は、oandapyV20.endpoints.instrumentsのInstrumentsPositionBookというクラスで/v3/instruments/{instrument}/positionBookをGet通信で叩きます。

いずれの場合もparamsで指定できるパラメータはinstrumentとtimeだけです。instrumentは必須引数ですが、timeは指定しない場合は最新が返されます。timeだUNIXTIMEを文字列型で渡します。最新を取りたい場合は、paramsは{}でいいと思います。

オーダーブックもポジションブックもほとんど同じなので、今回はオーダブックで説明したいと思います。

ドル円の最新のオーダーブックを取得するコードはこちらです。ポジションブックを見たい場合はInstrumentsPositionBookを使ってください。

# -*- coding: utf-8 -*-
import json
from oandapyV20 import API
from oandapyV20.endpoints.pricing import PricingInfo
from oandapyV20.exceptions import V20Error
import oandapyV20.endpoints.instruments as instruments
import datetime
import pandas as pd

def main():
    account_id="XXX-XXX-XXXXXXX-XXX"
    access_token = "***************************************************************"
    api = API(access_token=access_token, environment="practice")#or live

    params ={}
    r = instruments.InstrumentsOrderBook(instrument="EUR_USD",
                                         params=params)
    api.request(r)
    data = (r.response)
    print(data)

if __name__ == "__main__":
    main()

返り値の中身を詳細に見てみます。所期のデータはdata[‘orderBook’][‘buckets’]にリストで返ってきています。

#まずはなんの型が帰ってきているかきます。
(Pdb) type(data)
<class 'dict'>
(Pdb) data.keys()
dict_keys(['orderBook'])

(Pdb) type(data['orderBook'])
<class 'dict'>
(Pdb) data['orderBook'].keys()
dict_keys(['instrument', 'time', 'unixTime', 'price', 'bucketWidth', 'buckets'])

(Pdb) data['orderBook']['instrument']
'EUR_USD'
(Pdb) data['orderBook']['time']
'2020-12-07T12:00:00Z'
(Pdb) data['orderBook']['price']
'1.21131'
(Pdb) data['orderBook']['bucketWidth']
'0.00050'

(Pdb) type(data['orderBook']['buckets'])
<class 'list'>
(Pdb) len(data['orderBook']['buckets'])
5548
(Pdb) data['orderBook']['buckets'][0]
{'price': '0.00000', 'longCountPercent': '0.4861', 'shortCountPercent': '0.3107'}
(Pdb) data['orderBook']['buckets'][1000]
{'price': '1.12050', 'longCountPercent': '0.0351', 'shortCountPercent': '0.0200'}
(Pdb) data['orderBook']['buckets'][3000]
{'price': '7.59750', 'longCountPercent': '0.0000', 'shortCountPercent': '0.0150'}
(Pdb) data['orderBook']['buckets'][5000]
{'price': '107.77800', 'longCountPercent': '0.0025', 'shortCountPercent': '0.0000'}

綺麗な最終結果だけが欲しいならdata[‘orderBook’][‘buckets’]をPandasに変換します。

(Pdb) pd.DataFrame(data['orderBook']['buckets'])
                 price longCountPercent shortCountPercent
0              0.00000           0.4861            0.3107
1              0.00050           0.1428            0.0802
2              0.00100           0.2956            0.0451
3              0.00150           0.0576            0.0251
4              0.00200           0.0401            0.0225
...                ...              ...               ...
5543    34887878.00000           0.0025            0.0000
5544   100000000.00000           0.0025            0.0000
5545  1000000000.00000           0.0000            0.0050
5546  7000000000.00000           0.0000            0.0025
5547  9999999999.00000           0.0025            0.0000

[5548 rows x 3 columns]

参考文献

https://developer.oanda.com/rest-live-v20/instrument-ep/

https://developer.oanda.com/rest-live-v20/instrument-ep/

ローソクを取得したい場合はこちらをご覧ください

現在の価格をリアムタイムに欲しい場合はこちらをご覧ください

0

⭐️Brighten up your day with NP-Systems⭐️


  • GAEでPythonをデプロイする

    更新日時:2021年4月4日 21時17分

    0 2021年はPython37が良さそう.requirements.txtはpip3 listで表示されたものを書く. 0


  • Angular(Ionic)でHTTPリクエスト

    更新日時:2021年3月24日 18時23分

    0 AngularでバックエンドAPIへアクセスしてデータを取得する際、認証情報やクエリパラメータを付与したい時がある。 Post通信 Get通信 0


  • 3月15日AngularでAdsense

    更新日時:2021年3月15日 06時46分

    0 もう3月を中旬ですね。もう春ですね!Yoasobiに最高にハマっています。 昨日ようやくAngular(Ionic)でAdsenseを表示できるようになりました。 http://ocr-app.np-sys.com/…


  • Oandaのデモ口座における改悪について

    更新日時:2021年2月19日 08時06分

    0 2021年2月はじめに突然Oandaからメールがきて多くの改悪を行うということでびっくりしました。今までも一方的な変更が突然起こり辟易して来ましたが、今回の変化は大きすぎます。 【重要】デモ口座の利用期限およびオーダ…


  • 【oandapyV20】OandaAPIでオーダブック、ポジションブックを取得する

    更新日時:2020年12月7日 21時26分

    0 この記事ではoandapyV20を使ってオーダブック、ポジションブックを取得する方法について記載します。 oandapyV20では、オーダーブックをとるためにはoandapyV20.endpoints.instrum…


  • 【oandapyV20】OandaAPIで価格をStreaming配信で取得する

    更新日時:2020年12月8日 21時29分

    0 この記事ではoandapyV20を使ってStreaming配信でリアルタイムに価格を取得する方法について記載します。 Streaming配信は非常に便利であるものの、最大で250msごとのデータしか提供されませんので…


  • 【oandapyV20】OandaAPIでローソクを取得

    更新日時:2020年12月6日 20時46分

    +1 この記事ではoandapyV20を使ってローソクチャートを取得する方法について記載します。ローソクの長さ、取得データの種類、取得期間の指定方法なども含めて記載します。 oandapyV20では、PricingInf…


  • Adsenseの住所確認の日数と手順について

    更新日時:2020年12月4日 21時42分

    0 Google Adsenseでは、収益が1000円程度を超えると住所確認のために郵送でPINコードが発送されます。振り込み準備に向けて、これに印字された6桁の番号をAdsenseのHPで入力し、住所が正しいことを認証…


  • GAEでPythonをデプロイする

    更新日時:2021年4月4日 21時17分

    0 2021年はPython37が良さそう.requirements.txtはpip3 listで表示されたものを書く. 0


  • Angular(Ionic)でHTTPリクエスト

    更新日時:2021年3月24日 18時23分

    0 AngularでバックエンドAPIへアクセスしてデータを取得する際、認証情報やクエリパラメータを付与したい時がある。 Post通信 Get通信 0


this is single-default.php