欧易V5 API交易操作与账户管理全攻略

·

引言

欧易交易所的统一账户交易系统将API从V3版本升级至V5版本,带来了更丰富和完善的功能。本文作为系列教程的第二部分,将重点介绍V5 API在交易执行、账户管理与持仓监控中的实用技巧,帮助开发者提升交易系统的效率和可靠性。

交易操作详解

交易模式设置

在统一账户系统中,全仓与逐仓设置更加灵活,允许用户同时以两种模式交易同一产品。因此,下单时必须通过tdMode字段明确指定交易模式。

常见情景下的tdMode取值规则:

实战下单示例

假设配置如下:

根据规则,tdMode应设置为cross。同时强烈建议设置客户自定义订单ID(clOrdId字段),格式要求:

例如可将clOrdId设为testBTC0123

订单频道订阅策略

下单前必须通过WebSocket订阅订单频道,才能实时监控订单状态变化(如等待成交、完全成交等)。V5 API提供多种维度的订阅方式:

重要提示:订单频道不提供首次订阅的全量数据推送,仅在订单状态变更时推送更新。如需获取订阅前的未完成订单,需调用REST API:

GET /api/v5/trade/orders-pending

订单执行方式

REST API下单

使用以下端点提交订单:

POST /api/v5/trade/order

服务器返回订单ID(ordId字段)仅表示请求已被接收,并不保证订单立即生效,需进一步确认订单状态。

WebSocket下单

通过私有WebSocket连接发送操作请求,设置"op": "order"。异步通信机制要求提供唯一信息ID(id字段)用于匹配响应。

👉 获取实时交易接口文档

订单状态监控

成功下单后,订单频道将推送状态为live的信息。当订单完全成交时,会收到状态为filled的更新,并包含成交ID(tradeId字段),该字段是后续持仓对账的关键标识。

订单修改与撤销

V5 API支持所有产品类型的订单修改,可调整价格(newPx字段)和数量(newSz字段)。特色功能:

撤单操作类似:

批量操作功能

支持批量下单、改单和撤单,单次最多处理20个订单。统一API允许同一批次包含不同产品类型:

操作类型REST端点WebSocket操作
批量下单POST /api/v5/trade/batch-orders"op": "batch-orders"
批量改单POST /api/v5/trade/amend-batch-orders"op": "batch-amend-orders"
批量撤单POST /api/v5/trade/cancel-batch-orders"op": "batch-cancel-orders"

批量操作允许部分成功,需检查返回结果中每个订单的sCodesMsg字段确认执行状态。

账户与持仓管理

统一账户体系

欧易统一账户系统将所有产品类型整合到单一账户中,不再区分币币、杠杆、合约等独立账户。

WebSocket账户订阅

建议通过WebSocket订阅账户频道获取实时更新。可选用ccy参数筛选特定币种:

首次订阅将推送全量数据,包含所有资产不为0的币种信息(总权益、可用保证金、可用余额任一不为0)。后续推送分两种类型:

REST账户查询

通过以下端点查询账户余额:

GET /api/v5/account/balance

支持单币种或多币种查询(最多20个),无论资产是否为0都会返回数据,这与WebSocket推送逻辑不同。

最大可用数量查询

跨币种保证金模式下,启用自动借币功能后可超过余额进行交易。通过以下API获取最大可用数量:

GET /api/v5/account/max-avail-size

返回结果包含:

持仓监控策略

WebSocket持仓订阅

持仓频道提供多种订阅维度,支持按产品类型或产品ID订阅,也可设置instTypeANY订阅所有类型。

首次订阅推送持仓数量不为0的全量数据(pos字段大于或小于0)。后续推送机制:

持仓ID体系

每项持仓都有唯一标识(posId),由mgnMode + posSide + instId + ccy字段生成。该标识不随平仓和再开仓变化,可用于REST API查询:

GET /api/v5/account/positions

支持按产品类型、产品ID或多个持仓ID查询。

订单与持仓对账方法

利用成交ID(tradeId字段)可实现订单成交与持仓变动的对账。注意事项:

准确对账需综合比较:

  1. 成交ID的数字大小(新的成交ID值更大)
  2. 持仓数量变化
  3. 持仓更新时间(uTime字段)

👉 查看进阶对账策略

常见问题

V5 API与V3的主要区别是什么?

V5 API主要改进包括:统一账户支持、更灵活的订阅维度、全量数据推送机制、增强的批量操作功能,以及更完善的订单修改支持。

如何选择REST还是WebSocket下单?

WebSocket下单延迟更低且节省资源,适合高频交易场景;REST API更简单易用,适合普通交易频率。两者功能完全一致。

为什么订阅订单频道后收不到历史订单数据?

订单频道设计为仅推送状态变更,不提供历史数据。需要获取初始状态需调用GET /api/v5/trade/orders-pending接口。

最大可用数量查询包含借币额度吗?

是的,在启用自动借币的跨币种保证金模式下,最大可用数量查询结果包含可用余额加上交易所的最大可借额度。

持仓ID会重复使用吗?

不会。持仓ID在账户内唯一标识一个持仓位置,即使平仓后重新开仓,也会生成新的持仓ID。

如何正确处理定时推送和事件推送?

定时推送用于保证数据一致性,事件推送用于实时更新。系统应同时处理两种推送类型,以事件推送为主,定时推送作为冗余校验。

总结

本文详细介绍了欧易V5 API的交易操作流程、账户管理方法和持仓监控技巧。关键要点包括:正确设置交易模式、实时订阅订单频道、灵活运用批量操作、有效管理统一账户资产,以及精准实现订单持仓对账。

通过掌握这些进阶技巧,开发者能够构建更稳定高效的交易系统,在欧易统一账户环境中获得更优越的交易体验。建议持续关注官方API文档更新,以获取最新功能规范和技术细节。