質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

0回答

752閲覧

oandaデモ口座のapiを使用してPositionBookの情報を取得するプログラムの作成

totyan

総合スコア6

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2020/09/05 12:23

前提・実現したいこと

oanda デモ口座のapiを使用してPositionBookの情報を取得するプログラムを作成しています。

下記の作成したソースコードを実行すると、得たいPositionBookの情報が返ってくる時もあれば、下記に記載しているエラーメッセージが返ってくる時もあり安定して動作しない状況になっています。
これをいつ実行してもエラーが出ずにPositionBookの情報を得られるようにしたいです。

ご教示のほど、宜しくお願いいたします。

発生している問題・エラーメッセージ

Traceback (most recent call last): File "/Users/user1/oanda_test.py", line 22, in <module> api.request(io) File "/Users/user1/opt/anaconda3/lib/python3.7/site-packages/oandapyV20/oandapyV20.py", line 306, in request request_args, headers=headers) File "/Users/user1/opt/anaconda3/lib/python3.7/site-packages/oandapyV20/oandapyV20.py", line 243, in __request response.content.decode('utf-8')) oandapyV20.exceptions.V20Error: {"errorMessage":"The snapshot for USD_JPY does not exist at the given time 2020-09-05T12:00:00Z."}

該当のソースコード

Python

1# coding: utf-8 2import oandapyV20 3from oandapyV20 import API 4from oandapyV20.exceptions import V20Error 5from oandapyV20.endpoints.pricing import PricingStream 6import oandapyV20.endpoints.orders as orders 7import oandapyV20.endpoints.instruments as instruments 8import oandapyV20.endpoints.accounts as accounts 9import datetime 10from pytz import timezone 11import pandas as pd 12 13#oandaデモ口座アカウント情報(ID,TOKENは個人情報のため伏せてあります) 14ID = 'MY ID' 15token = 'MY TOKEN' 16 17#デモ口座のためenvironmentは'practice' 18api = API(access_token=token, environment='practice') 19 20#position Book 21io = instruments.InstrumentsPositionBook(instrument='USD_JPY') 22api.request(io) 23df = pd.DataFrame(io.response["positionBook"]["buckets"]) 24print(df.head())

試したこと

OrderBookの情報を取得するコードにした場合はいつでも情報は取得できてエラーは出ないので、口座に接続はできています。

補足情報(FW/ツールのバージョンなど)

  • macOS Catalina 10.15.6
  • Python3.7.6 64bit(anaconda)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問