gpt4 book ai didi

python - OANDA 弃用的 REST API

转载 作者:行者123 更新时间:2023-12-04 04:06:18 24 4
gpt4 key购买 nike

作为学习算法交易和 OANDA 基础知识的一种方式, 我找到了 a tutorial关于如何制作一个非常基本的交易算法来“练习”算法交易。唯一的问题是教程使用 OANDA 的 v1 REST API,而现在使用 v20 REST API。

Python 模块 oandapyV20 似乎已经取代了 oandapy,并且似乎有些方法在最新的模块中已被弃用。例如,在教程的第 7 行,它使用了一个名为 get_history 的方法,据我所知,该方法现在似乎已完全弃用。

我的问题是,我可以做什么来替换 get_history 方法,教程中是否有任何其他熟悉 OANDA v20 REST API 的人可能会使用的代码部分看到这也会有问题/需要完全返工吗?

最佳答案

编辑:我找到了一些示例代码 here可能有用:

import oandapyV20
>>> import oandapyV20.endpoints.instruments as instruments
>>> client = oandapyV20.API(access_token=...)
>>> params = ...
>>> r = instruments.InstrumentsCandles(instrument="DE30_EUR",
>>> params=params)
>>> client.request(r)
>>> print r.response

因此我将按如下方式编辑教程:

import oandapyV20
import oandapyV20.endpoints.instruments as instruments
oanda = oandapyV20.API(access_token=...)
params = {'start': '2016-12-08',
'end': '2016-12-10',
'granularity': 'M1'}
data = instruments.InstrumentsCandles(instrument='EUR_USD', params=params)
oanda.request(data)
print(data.response)

由于我没有要测试的 token ,我不确定新 API 需要哪些参数,但希望这对您有所帮助!

编辑#2:所以我了解了这一点,但是本文档使用了我不熟悉的 iPython%matplotlib inline。我不能完全让它工作,但这就是我所处的位置。

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np

import oandapyV20
import oandapyV20.endpoints.pricing as pricing
import seaborn as sns; sns.set()

TOKEN = #<oauth_token>
IDENT = #<accountID>
oanda = oandapyV20.API(access_token=TOKEN)
params = {
'instruments': 'EUR_USD,EUR_JPY',
'since': '2016-12-10',
'granularity': 'M1'
}
data = pricing.PricingInfo(accountID=IDENT, params=params)
oanda.request(data)
df = pd.DataFrame(data.response['prices']).set_index('time')

df['closeoutAsk'].astype(float)

df['returns'] = np.log(float(df['closeoutAsk'][1]) / float(df['closeoutAsk'].shift(1)[1]))

cols = []
for momentum in [15, 30, 60, 120]:
col = f'position_{momentum}'
df[col] = np.sign(df['returns'].rolling(momentum).mean())
cols.append(col)

strats = ['returns']
for col in cols:
strat = f'strategy_{col.split("_")[1]}'
df[strat] = df[col].shift(1) * df['returns']
strats.append(strat)

ts = df[strats]
ts = ts.cumsum()
plt.figure(); ts.plot(); plt.legend(loc='best')

随时试一试。

关于python - OANDA 弃用的 REST API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62418935/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com