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-limit 或 sell-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-limit 或 sell-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,表示因價格與非 RPI 訂單交叉被系統撤單

基於 clientOrderId 查詢

GET /v1/order/orders/getClientOrder

返回欄位新增 time-in-force(值為 rpi 時表示 RPI 訂單)

另新增 canceled-source 枚舉值 rpi,表示因價格與非 RPI 訂單交叉被系統撤單

成交明細

GET /v1/order/orders/{order-id}/matchresults

返回欄位新增 time-in-force(值為 rpi 時表示 RPI 訂單)

另新增 canceled-source 枚舉值 rpi,表示因價格與非 RPI 訂單交叉被系統撤單

搜索歷史訂單

GET /v1/order/orders

返回欄位新增 time-in-force(值為 rpi 時表示 RPI 訂單)

另新增 canceled-source 枚舉值 rpi,表示因價格與非 RPI 訂單交叉被系統撤單

近 48 小時歷史訂單

GET /v1/order/history

返回欄位新增 time-in-force(值為 rpi 時表示 RPI 訂單)

另新增 canceled-source 枚舉值 rpi,表示因價格與非 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,可即時識別因價格交叉觸發的撤單

以上。