如何生成API访问令牌
在您可以在OANDA的REST v20 API上访问您的账户之前,您必须首先生成个人访问令牌。为此,请遵循以下步骤:
-
在HUB中登录您的真实账户或模拟账户。
-
在顶部点击Tools(工具),然后点击API。
-
点击Generate(生成)。
-
在“Your key to OANDA’s API”(您的 OANDA API密钥)下方,会出现一个字母和数字的组合
投资者或金融机构持有的金融工具组合。。这就是您的API访问令牌。复制整行文本并用它在REST v20 API应用程序上验证您的账户。 -
如要撤销对当前令牌的访问权限,请点击Revoke(撤销)。如果您已向REST v20 API账户添加了任何其他子账户,则也需要撤销并生成新令牌才能通过REST v20 API访问它们。
“Insufficient authorization to perform request”(权限不足,无法执行请求)错误消息
出现此错误消息的最常见原因是您可能为请求使用了不正确的端点。
如果您使用真实账户,请使用以下端点:https://api-fxtrade.oanda.com。
如果您使用模拟账户,请使用以下端点:https://api-fxpractice.oanda.com。
使用REST-V20 API Java包装器时出现“Insufficient authorization to perform request”(权限不足,无法执行请求)错误消息
当从属库所用的JAR文件已过期时,您可能会在执行Java代码时收到此错误消息。即使您的accountID和令牌仍在使用REST v20 API curl命令,也不影响此错误消息的生成。
解决方案如下:
-
升级所有库
-
删除外部JAR文件
-
从网上重新加载。
以下是您可以参考的当前各库列表:
-
common-logging-1.1.1.jar
-
gson-2.6.2.jar
-
httpclient-4.0-alpha4.jar
-
httpclient-4.3.5.jar
-
httpcore-4.3.2.jar
-
v20-3.0.21.jar
-
JRE系统库
-
Maven从属项(junit-3.8.1.jar)
使用oandapyv20时出现“Insufficient authorization to perform request”(权限不足,无法执行请求)错误消息
oandapyV20是第三方包装器,OANDA不支持。
我们在开发者网站为API客户提供了v20 Python包装器。
您需要确认以下信息是否正确:
-
提供给curl命令的URL是正确的。如果您使用真实账户,请确认您使用的是https://api-fxtrade.oanda.com。
在示例代码中,environment(运行环境)的默认设置为demo(模拟)。您应该确认已将其更改为 live(真实)。您需要编辑以下代码:
客户端 = oandapyV20.API(access_token=access_token,environment="live")
-
确保身份验证令牌有效并且已作为持有者令牌添加到HTTP授权标头中。
“The provided request was forbidden”(所提供的请求被禁)错误消息
出现此错误消息的最常见原因是您在请求中使用了无效的accountID。要找到正确的accountID,请遵循以下步骤:
-
在HUB中登录您的真实账户或模拟账户。
-
在左侧导航栏中点击Accounts(账户)。
-
点击目标账户
-
在v20 Account Number(v20账号)旁边,格式为xxx-xxx-xxxxxxx-xxx的数字是您的accountID。
为什么历史数据与实时数据不同?
OANDA的历史数据与实时数据不同,因为我们提供不同定价段和账户类型。因此,API的实时定价推送可能与从API检索的历史数据不同。
这是因为用于检索历史数据的“K线”端点仅提供基本价格组的K线数据。Price polling(价格轮询)和streaming(流式传输)端点用于检索实时数据,该数据使用您的account_id(账户ID),并根据您的特定定价组提供实时数据。
使用“get - /v3/accounts/{accountID}/orders”返回空订单列表
由于订单
在特定条件下买入或卖出某一工具的指令一旦成交即变为交易
买卖资产的实际执行过程,并最终完成交易。,因此使用get - /v3/accounts/{accountID}/orders可能会返回空订单列表。
即使订单已成交,将orderstatefilter的默认条件更改为all将允许您使用get /v3/accounts/{accountID}/orders。
用于Order State Filter(订单状态筛选器)的值展示在我们的API文档。
为什么我无法使用REST v20 Stream端点构建开盘价-最高价-最低价-收盘价(OHLC) K线?
您无法使用REST v20 Stream端点创建OHLC K线数据,因为不能保证将该周期的开盘价、最高价、最低价和收盘价数据返回到响应数据包。一旦一个柱关闭,工具/K线端点就会探测服务器以接收数据。因此,K线端点可用于创建包含所有柱活动的准确K线数据。
如果您需要技术支持,请发送电子邮件至api@oanda.com,提供:
-
您的完整请求
-
服务器响应日志,以及
-
其他相关信息。