RPI订单介绍

07/09 00:00:00 (UTC+8)现货指引

RPI订单介绍

RPI(零售价格优化)订单是一种专为获批做市商提供的特殊订单类型,仅与 APP 及网页端的非算法订单撮合,为零售交易者提供更有针对性的市场流动性和更优的执行价格,同时保护做市商流动性挂单不被算法订单抢占,维护整体市场公平与诚信。

一、什么是 RPI 订单?

RPI 订单是仅供白名单做市商通过 OpenAPI 提交的特殊限价单,具备四大核心特点:

  • 定向撮合:仅与 APP 及网页端提交的非算法订单成交,不与 API 订单(含其他 RPI 订单)或网格策略单撮合。
  • 优先级最低:同一价位下,所有非 RPI 订单执行完毕后,RPI 订单才参与撮合。
  • 只做 Maker:被动挂单,始终为订单簿提供流动性,不主动吃单。
  • 可见性差异:APP 及网页端正常显示;API 公共订单簿中不可见。

二、谁可以提交?

获批白名单做市商可通过 OpenAPI 提交,且仅限白名单交易对。

  • 非白名单做市商提交时提示:「RPI 订单仅适用于获批做市商」
  • 非白名单币对提交时提示:「RPI 订单仅适用于特定交易对」

三、如何提交?

RPI 订单仅可通过 OpenAPI 提交,支持 REST 和 WebSocket 两种方式。下单时须将订单类型(type)设为限价单(buy-limitsell-limit),并将 time-in-force 字段设为 rpi,其余参数与普通限价单一致。

REST 方式

现货、批量及杠杆三个下单接口均已支持 RPI 订单(type类型必须为buy-limit和sell-limit),在原有请求参数基础上新增 time-in-force 字段(值为 rpi)即可:

  • 现货下单:POST /v1/order/orders/place
  • 批量下单:POST /v1/order/batch-orders
  • 杠杆下单:POST /v1/order/auto/place

请求示例(以现货 RPI 买单为例):

{
  "account-id": "12345",
  "symbol": "btcusdt",
  "type": "buy-limit",
  "amount": "0.01",
  "price": "50000",
  "time-in-force": "rpi"
}

WebSocket 方式

WebSocket 交易频道同样支持 RPI 下单,参数与 REST 保持一致:

  • 现货下单:频道 create-order
  • 批量下单:频道 create-batchorder
  • 杠杆下单:频道 create-margin-order

常见错误码

错误码 含义
order-rpi-maker-not-allowed 当前账户未加入 RPI 白名单,无权提交 RPI 订单
order-rpi-symbol-not-allowed 该交易对不在 RPI 白名单中,不支持提交 RPI 订单
order-rpi-only-limit-maker type 必须为 buy-limitsell-limit
order-rpi-not-enabled RPI 功能当前已关闭,请联系运营团队确认上线时间

 

哪些币对支持 RPI 订单?

调用获取所有交易对接口 GET /v2/settings/common/symbol,返回数据中每个交易对包含 enable_rpi 字段(boolean)。值为 true 表示该交易对已开启 RPI 支持,值为 false表示不支持。

响应示例(仅展示关键字段):

{
  "status": "ok",
  "data": [
    { "sc": "btcusdt", "dn": "BTC/USDT", "enable_rpi": true },
    { "sc": "ethusdt", "dn": "ETH/USDT", "enable_rpi": false }
  ]
}

如果向不支持 RPI 的交易对提交 RPI 下单请求,系统将返回错误码 order-rpi-symbol-not-allowed

四、撮合范围

可与 RPI 撮合的订单

  • 来源:APP 端 / 网页端
  • 类型:市价单、限价单、高级限价-FOK、高级限价-IOC、止盈止损单、计划委托触发后的市价单/限价单
  • 特殊:带单 / 跟单、冰山单均视同普通单,可正常撮合

不可与 RPI 撮合的订单

  • 所有 API 订单(含其他 RPI 订单、API 渠道触发的计划委托)
  • 网格策略单

五、交易规则

规则项 说明
支持产品 现货(含杠杆)
订单机制 与普通限价单相同(保证金要求、最小 / 最大规模、价格限制均一致)
支持操作 批量下单、修改(价格 / 数量)、撤单、批量撤单、部分成交
不兼容 不可与条件单(止盈止损、计划委托等)组合使用
价格限制 下单时不可与对手盘非RPI订单价格交叉,否则会被撤单

价格限制示例

  • 提交价格 99 的 RPI 买单 → 接受
  • 提交价格 102 的 RPI 买单 → 拒绝,因与卖二价102的普通单价格交叉
等级 价位 数量
卖二价 102 25
卖一价 100(RPI) 15
买一价 99(RPI) 10
买二价 98 20

六、订单可见性

模块 场景 说明
订单簿 APP / 网页端

RPI订单正常展示,无特殊标签;价格交叉时自动隐藏,隐藏后仍在引擎中活跃,符合条件可成交。

OpenAPI 不可见。
个人订单记录 APP / 网页端 做市商可在当前委托及历史记录中查看RPI订单及 “RPI” 标识;普通用户订单无特殊标识。
OpenAPI RPI订单正常展示,可区分RPI 订单和普通订单。

价格交叉隐藏示例:

示例1:两笔 RPI 订单价格交叉(买价 ≥ 卖价)→ 买卖两侧均隐藏

/ 价位 数量 可见
卖四价 1,005 20
卖三价 1,003 (RPI) 15
卖二价 1,001 (RPI) 10
卖一价 999 (RPI) 5
买一价 1,002 (RPI) 10
买二价 1,000 (RPI) 20
买三价 998 25
买四价 997 (RPI) 30

示例2:RPI 订单与 API 订单或网格单价格交叉 → 隐藏 RPI 订单,对手方正常显示

/ 价位 数量 可见
卖四价 1,005 20
卖三价 1,003 (RPI) 15
卖二价 1,001 (RPI) 10
卖一价 999 (RPI) 5
买一价 1,002 (网格策略单) 10
买二价 1,000 (API) 20
买三价 998 25
买四价 997 (RPI) 30

七、费率说明

RPI 订单适用专属 RPI Maker 费率,替代做市商原 Maker 费率;非 RPI 订单仍按原费率执行。

RPI 专属费率可通过接口 GET /v2/reference/transact-fee-rate 查询,返回参数中新增 rpiFeeRate 字段即为当前有效的 RPI Maker 费率;也可直接咨询 HTX 做市商运营团队。

 

 

八、API 端点和数据流更新

为支持 RPI 订单机制,现有接口按以下规则调整。

REST 市场数据

接口名称 HTTP 请求 变更说明
深度数据 GET /market/depth 新增可选参数 includeRpi(Boolean,默认 false);设为 true 时非聚合深度(step0)中包含 RPI 挂单,其余聚合档位不受影响
完整深度数据 GET /market/fullMbp 同上,新增 includeRpi 参数
最近市场成交记录 GET /market/trade 返回每笔成交新增 isRpiTrade(Boolean)字段,true 表示该笔成交由 RPI 订单产生
近期交易记录 GET /market/history/trade 同上,新增 isRpiTrade 字段
所有交易对最新 Tickers GET /market/tickers 不做结构调整,RPI 成交正常纳入统计
聚合行情 Ticker GET /market/detail/merged 不做结构调整,RPI 成交正常纳入统计
最近 24 小时行情 GET /market/detail 不做结构调整,RPI 成交正常纳入统计
K 线数据 GET /market/history/kline 不做结构调整,RPI 成交正常纳入统计

WebSocket 市场数据流

频道 是否包含 RPI 挂单 说明
market.$symbol.bbo 买一卖一逐笔行情,RPI 挂单不纳入计算
market.$symbol.depth.$type 市场深度行情,RPI 挂单不纳入推送
market.$symbol.fullDepth.$type 是(新增) 新增推送频道,统计 RPI 挂单,协议与 depth 频道一致,供做市商独立订阅含 RPI 的完整深度数据
market.$symbol.mbp.$levels 增量 MBP 深度,RPI 挂单不纳入推送
market.$symbol.mbp.refresh.$levels 全量 MBP 快照,RPI 挂单不纳入推送

下单和查询订单接口(REST)

接口名称 HTTP 请求 变更说明
现货下单 POST /v1/order/orders/place 新增 time-in-force 字段(值为 rpi)即可
批量下单 POST /v1/order/batch-orders 新增 time-in-force 字段(值为 rpi)即可
杠杆下单 POST /v1/order/auto/place 新增 time-in-force 字段(值为 rpi)即可
查询当前未成交订单 GET /v1/order/openOrders 返回字段新增 time-in-force(值为 rpi 时表示 RPI 订单)
查询订单详情 GET /v1/order/orders/{order-id}

返回字段新增 time-in-force(值为 rpi 时表示 RPI 订单)

另新增 canceled-source 枚举值 rpi_cancel,表示因价格与非 RPI 订单交叉被系统撤单

基于 clientOrderId 查询 GET /v1/order/orders/getClientOrder

返回字段新增 time-in-force(值为 rpi 时表示 RPI 订单)

另新增 canceled-source 枚举值 rpi_cancel,表示因价格与非 RPI 订单交叉被系统撤单

成交明细 GET /v1/order/orders/{order-id}/matchresults

返回字段新增 time-in-force(值为 rpi 时表示 RPI 订单)

另新增 canceled-source 枚举值 rpi_cancel,表示因价格与非 RPI 订单交叉被系统撤单

搜索历史订单 GET /v1/order/orders

返回字段新增 time-in-force(值为 rpi 时表示 RPI 订单)

另新增 canceled-source 枚举值 rpi_cancel,表示因价格与非 RPI 订单交叉被系统撤单

近 48 小时历史订单 GET /v1/order/history

返回字段新增 time-in-force(值为 rpi 时表示 RPI 订单)

另新增 canceled-source 枚举值 rpi_cancel,表示因价格与非 RPI 订单交叉被系统撤单

当前和历史成交 GET /v1/order/matchresults 返回字段新增 time-in-force(值为 rpi 时表示 RPI 订单)

订单推送(WebSocket)

频道 说明 变更说明
orders#${symbol} 订单更新推送 新增 time-in-force 字段(值为 rpi)即可 ,可实时区分 RPI 订单与普通订单
trade.clearing#${symbol}#${mode} 清算后成交及撤单更新 新增 time-in-force 字段(值为 rpi)即可 ;canceled-source 新增枚举值 rpi_cancel,可实时识别因价格交叉触发的撤单

以上。