引言
欧易在推出统一账户交易系统的同时,亦把 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 API | V3 API |
Currency (币种) | ccy | currency |
Instrument ID (产品 ID) | instId | instrument_id |
Underlying (合约标的指数) | uly | underlying |
Unrealized PnL (未实现盈亏) | upl | unrealized_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 的很类似(即传送登陆请求),只是在格式上改为键值对:
其他产品类型:
设置 USDT、EOS 和 LTC 的请求 body 也很类似,不在此一一列举。
下一步就是设置 BTC-USD-210319、BTC-USD-210326 和 BTC-USD-210625 的杠杆倍数。因为这三个产品都有共同的标的指数(即 BTC-USD),我们只需在这三个产品中选其一设置杠杆倍数。
在发送了以上共 6 个 API REST 请求后,这 8 个产品杠杆倍数的设置便完成了。
总结
运用以上的技巧和诀窍,我们应该能够使用新的 API 设置子账户,亦能设置各种账户配置如持仓模式和杠杆倍数等,配合您的交易风格。
在下一部分,我们会讲解一些在使用 V5 API 交易时的技巧和诀窍,如使用 WebSocket 下单和订单成交推送与持仓的对账。
由于 欧易 会持续不断地改进统一账户交易系统,上文提到的这些想法均会随之发生变动。请查阅 V5 API 文档以得知最新的规范:做市商申请