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
常見錯誤碼
| 錯誤碼 |
含義 |
|
|
當前帳戶未加入 RPI 白名單,無權提交 RPI 訂單 |
|
|
該交易對不在 RPI 白名單中,不支援提交 RPI 訂單 |
|
|
type 必須為 buy-limit 或 sell-limit |
|
|
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 請求 |
變更說明 |
| 深度數據 |
|
新增可選參數 includeRpi(Boolean,默認 false);設為 true 時非聚合深度(step0)中包含 RPI 掛單,其餘聚合檔位不受影響 |
| 完整深度資料 |
|
同上,新增 includeRpi 參數 |
| 最近市場成交記錄 |
|
返回每筆成交新增 isRpiTrade(Boolean)欄位,true 表示該筆成交由 RPI 訂單產生 |
| 近期交易記錄 |
|
同上,新增 isRpiTrade 欄位 |
| 所有交易對最新 Tickers |
|
不做結構調整,RPI 成交正常納入統計 |
| 聚合行情 Ticker |
|
不做結構調整,RPI 成交正常納入統計 |
| 最近 24 小時行情 |
|
不做結構調整,RPI 成交正常納入統計 |
| K 線數據 |
|
不做結構調整,RPI 成交正常納入統計 |
WebSocket 市場資料流
| 頻道 |
是否包含 RPI 掛單 |
說明 |
|
|
否 |
買一賣一逐筆行情,RPI 掛單不納入計算 |
|
|
否 |
市場深度行情,RPI 掛單不納入推送 |
|
|
是(新增) |
新增推送頻道,統計 RPI 掛單,協議與 depth 頻道一致,供做市商獨立訂閱含 RPI 的完整深度資料 |
|
|
否 |
增量 MBP 深度,RPI 掛單不納入推送 |
|
|
否 |
全量 MBP 快照,RPI 掛單不納入推送 |
下單和查詢訂單介面(REST)
| 介面名稱 |
HTTP 請求 |
變更說明 |
| 現貨下單 |
|
新增 time-in-force 欄位(值為 rpi)即可 |
| 批量下單 |
|
新增 time-in-force 欄位(值為 rpi)即可 |
| 槓桿下單 |
|
新增 time-in-force 欄位(值為 rpi)即可 |
| 查詢當前未成交訂單 |
|
返回欄位新增 time-in-force(值為 rpi 時表示 RPI 訂單) |
| 查詢訂單詳情 |
|
返回欄位新增 time-in-force(值為 rpi 時表示 RPI 訂單) 另新增 canceled-source 枚舉值 rpi,表示因價格與非 RPI 訂單交叉被系統撤單 |
| 基於 clientOrderId 查詢 |
|
返回欄位新增 time-in-force(值為 rpi 時表示 RPI 訂單) 另新增 canceled-source 枚舉值 rpi,表示因價格與非 RPI 訂單交叉被系統撤單 |
| 成交明細 |
|
返回欄位新增 time-in-force(值為 rpi 時表示 RPI 訂單) 另新增 canceled-source 枚舉值 rpi,表示因價格與非 RPI 訂單交叉被系統撤單 |
| 搜索歷史訂單 |
|
返回欄位新增 time-in-force(值為 rpi 時表示 RPI 訂單) 另新增 canceled-source 枚舉值 rpi,表示因價格與非 RPI 訂單交叉被系統撤單 |
| 近 48 小時歷史訂單 |
|
返回欄位新增 time-in-force(值為 rpi 時表示 RPI 訂單) 另新增 canceled-source 枚舉值 rpi,表示因價格與非 RPI 訂單交叉被系統撤單 |
| 當前和歷史成交 |
|
返回欄位新增 time-in-force(值為 rpi 時表示 RPI 訂單) |
訂單推送(WebSocket)
| 頻道 |
說明 |
變更說明 |
|
|
訂單更新推送 |
新增 time-in-force 欄位(值為 rpi)即可 ,可即時區分 RPI 訂單與普通訂單 |
|
|
清算後成交及撤單更新 |
新增 time-in-force 欄位(值為 rpi)即可 ;canceled-source 新增枚舉值 rpi,可即時識別因價格交叉觸發的撤單 |
以上。