使用 欧易 V5 API 的技巧和诀窍(1)

引言

欧易在推出统一账户交易系统的同时,亦把 API 由 V3 升级到了 V5,带来了更多和更完善的功能。本文旨在讲解 V5 API 相对于 V3 API 有什么改动,亦会提出在交易前设置账户时,有哪些技巧和诀窍。

V5 API 的改动

产品共用统一 API

V5 API 其中一个改动就是所有产品共用统一 API,无论是下单还是查看持仓信息,都不再像 V3 API 那样以产品划分。

举个例子,我们下单的时候,只需要连接到以下 URL,并在请求 body 中列明产品类型:

POST /api/v5/trade/order

任何产品类型,在同一个 API 都会使用同样的请求和返回结果格式。换言之,您无需再特别为每个产品创建相应 API 的模型。

更短的命名规则

V5 API 的字段改为驼峰式大小写,并会用上缩写,更能节省带宽和内存开销。

示例:

字段V5 APIV3 API
Currency (币种)ccycurrency
Instrument ID (产品 ID)instIdinstrument_id
Underlying (合约标的指数)ulyunderlying
Unrealized PnL (未实现盈亏)uplunrealized_pnl

标准 WebSocket 数据压缩

V5 API 使用标准的 WebSocket 压缩扩展“Per-Message Deflate”,收到 WebSocket 信息后无需再以 V3 API 的方式手动解压缩数据。

要使用 WebSocket 数据压缩,请检查客户端是否已启用相关的扩展,启用后发送的请求头应包含“permessage-deflate”。

公共和私有 WebSocket

WebSocket 频道现分为两类:公共频道(如行情、K 线)和私有频道(如账户、持仓)。

两类频道各需要连接的 URL 并不相同。连接公共频道的 WebSocket 时不用传送登陆请求,否则订阅会失败。

使用 WebSocket 下单

除 REST 之外,V5 API 新增了 WebSocket 下单/改单/撤单。详情请查阅 API 文档或本文章的第 2 部分。

登陆

V5 API 的 REST 登陆和 V3 API 的一样(即在 REST 请求头上加上签名)。

V5 API 的 WebSocket 登陆也和 V3 API 的很类似(即传送登陆请求),只是在格式上改为键值对:

创建子账户的 API Key

在使用母账户(即主账户)时,现在我们可以透过 V5 API 进行子账户 API Key 的 CRUD 操作(创建、查询、更新、删除)。

创建POST /api/v5/users/subaccount/apikey
查询GET /api/v5/users/subaccount/apikey
更新POST /api/v5/users/subaccount/modify-apikey
删除POST /api/v5/users/subaccount/delete-apikey

我们强烈建议您为 API Key 绑定 IP 地址,加强账户安全。

配置账户

完成创建子账户和 API Key 后,还有一步就是配置每一个账户。

账户配置

我们可以通过以下的 REST API 查看当前账户/子账户的配置:

GET /api/v5/account/config

API 会返回 (1) 账户模式、(2) 持仓模式、(3) 自动借币设置、(4) 期权希腊值 PA/BS 的配置。

账户模式

欧易 统一账户交易系统提供多个账户模式:(i) 简单交易模式、(ii) 单币种保证金模式、(iii) 跨币种保证金模式。

由于更改账户模式需要用户的操作,仅限于在网页上更改。

持仓模式

欧易 统一账户交易系统新增了单向持仓模式(买卖模式),亦保留了原有的双向持仓模式(开平仓模式):

单向持仓模式只可持有多头或空头仓位。交易所会根据您所指定的持仓数量自动开/平仓
双向持仓模式可同时持有多头仓位和空头仓位

我们可以通过以下的 REST API 设置持仓模式(设置前需平掉所有仓位):

POST /api/v5/account/set-position-mode

自动借币

自动借币是跨币种保证金模式下的功能,只限于在网页上更改。

期权希腊值 PA/BS

和 V3 API 相似,我们可以通过以下的 REST API 设置期权希腊值 PA/BS:

POST /api/v5/account/set-greeks

全仓/逐仓保证金模式

欧易 统一账户交易系统的全仓/逐仓设置更为弹性,我们可以同时以全仓和逐仓交易同一产品。

因此,V5 API 并没有设置合约标的指数保证金模式的 API。取而代之,我们需要在下单时指定该订单的保证金模式(交易模式)。详情请查阅 API 文档或本文章的第 2 部分。

杠杆倍数

获取杠杆倍数

我们可以通过以下的 REST API 获取杠杆倍数:

GET /api/v5/account/leverage-info

目前杠杆倍数没有全局设置,同一产品可以有几种杠杆倍数的设置场景。

币币杠杆:

其他产品类型:

设置杠杆倍数

在获取杠杆倍数之后,可根据您的需要设置杠杆倍数:

POST /api/v5/account/set-leverage

我们可以运用上述两个 API 编写程序,在交易前预先设置每个产品的杠杆倍数。

示例:

假设我们有以下的设置和需求:

  • 账户模式:跨币种保证金
  • 持仓模式:单向持仓
  • 需要设置杠杆倍数为 3.0 的产品:
    • BTC-USD-210319、BTC-USD-210326、BTC-USD-210625
    • BTC-USD-SWAP
  • 以上产品只使用全仓保证金模式

币币/币币杠杆的设置层面为币种,我们可以截取币种去逐一设置,即 BTC、USDT、EOS 和 LTC。

设置 BTC 币种杠杆倍数为 3.0 的请求 body 示例(适用于卖出 BTC-USDT 和买入 LTC-BTC):

设置 USDT、EOS 和 LTC 的请求 body 也很类似,不在此一一列举。

下一步就是设置 BTC-USD-210319、BTC-USD-210326 和 BTC-USD-210625 的杠杆倍数。因为这三个产品都有共同的标的指数(即 BTC-USD),我们只需在这三个产品中选其一设置杠杆倍数。

最后,我们需要设置 BTC-USD-SWAP 的杠杆倍数。虽然标的指数和以上的交割一样为 BTC-USD,但交割和永续的杠杆倍数设置是分开独立的,我们仍需要发送以下请求 body 去设置:

在发送了以上共 6 个 API REST 请求后,这 8 个产品杠杆倍数的设置便完成了。

总结

运用以上的技巧和诀窍,我们应该能够使用新的 API 设置子账户,亦能设置各种账户配置如持仓模式和杠杆倍数等,配合您的交易风格。

在下一部分,我们会讲解一些在使用 V5 API 交易时的技巧和诀窍,如使用 WebSocket 下单和订单成交推送与持仓的对账。

由于 欧易 会持续不断地改进统一账户交易系统,上文提到的这些想法均会随之发生变动。请查阅 V5 API 文档以得知最新的规范:做市商申请

点击查看《使用 欧易 V5 API 的技巧和诀窍(2)》

相关推荐
查看更多
查看更多