Bitget 零售價格優化(RPI)訂單
【預計閱讀時間:5 分鐘】
RPI(Retail Price Improvement,零售價格優化)訂單,是統一帳戶模式下的一種特殊訂單類型,只能和非演算法訂單(也就是非 OpenAPI 委託訂單)撮合,目的是提高流動性。該訂單類型為符合條件的零售訂單提供更優的成交價格,實現價格改善(Price Improvement),降低滑點。
RPI 訂單核心機制
1. RPI 訂單只和非演算法訂單相撮合,不會和透過 OpenAPI 提交的訂單進行交易。
2. 所有 RPI 訂單均為被動委託訂單,屬於掛單(Maker)訂單,只能和吃單(Taker)訂單成交,可為訂單簿增加流動性。
3. 在相同價格檔位,無論時間先後,RPI 訂單相較於非 RPI 訂單成交優先順序更低,只有在相同價位的非 RPI 訂單全部執行完畢後,才會執行 RPI 訂單。
RPI 訂單如何下單
1. RPI 訂單可透過 REST API 或 WebSocket API 提交,需將訂單設置為 limit 且 timeInForce = rpi。
2. 只有特定造市商合作夥伴可以下達 RPI 訂單。如未經授權的造市商嘗試下單,將會收到以下錯誤提醒:「帳號不支援委託該品項的 RPI 訂單」。
RPI 訂單交易規則
1. RPI 訂單支援統一帳戶逐倉保證金、全倉保證金模式;支援交易合約、現貨和槓桿業務線
2. 盤前交易不支援 RPI 訂單,只有集合競價後可以下達,否則訂單會被拒絕。
3. RPI 訂單校驗邏輯同普通限價單,保證金要求、最小和最大訂單規模、OI 限倉等和普通限價單相同
4. RPI 訂單限價規則
a. 對合約:
• 買單:標記價格 * 110% ≥ RPI 訂單委託價 ≥ 標記價格 * 50%
• 賣單:標記價格 * 150% ≥ RPI 訂單委託價 ≥ 標記價格 * 90%
b. 對槓桿、現貨:
• 買單:最新成交價格 * 110% ≥ RPI 訂單委託價 ≥ 最新成交價格 * 70%
• 賣單:最新成交價格 * 130% ≥ RPI 訂單委託價 ≥ 最新成交價格 * 90%
備註:以上 50%、90% 和 110%、150% 均為參考閾值,每個交易對可單獨設定,平台有權根據市場情況進行調整
5. RPI 訂單支援批次下單、訂單修改(包括價格和數量)和取消操作。
6. RPI 訂單無法和策略訂單(包括止損、止盈或止損限價單)結合使用。
7. RPI 訂單不能和另一方的非 RPI 訂單交叉。當另一方只有 RPI 訂單時,允許交叉,但彼此間不會撮合成交。
RPI 訂單顯示
1. API 訂單簿:RPI 訂單會顯示在 API 訂單簿中。
2. 交易頁面訂單簿:RPI 訂單會在交易介面顯示,無任何特殊標籤。
為使訂單簿井然有序,買入價高於賣出價的交叉 RPI 訂單將被隱藏。關於交叉 RPI 訂單的更多詳情,請參考下述範例:
範例 1
訂單簿如下所示:
|
|
價格
|
數量
|
|
賣二價
|
1,002
|
200
|
|
賣一價
|
1,000(RPI)
|
100
|
|
買一價
|
999(RPI)
|
90
|
|
買二價
|
998
|
120
|
• 提交價格為 1,000 的新 RPI 買單,被接受。
• 提交價格為 1,001 的新 RPI 買單,被接受。
• 提交價格為 1,002 的新 RPI 買單,被拒絕,因為賣二價位存在非 RPI 訂單。
交易頁面上的訂單簿:
當出現觸價時:
• 觸價的 RPI 訂單在交易頁面的訂單簿中處於隱藏狀態,但仍會在撮合引擎中保持有效,並可根據規則執行。
• 未觸價的 RPI 訂單正常顯示,無特殊標籤。
範例 2
訂單簿如下所示。觸價的 RPI 訂單處於隱藏狀態,且不會相互撮合。
|
|
價格
|
數量
|
是否可見
|
|
賣四價
|
1,004
|
200
|
是
|
|
賣三價
|
1,003(RPI)
|
150
|
是
|
|
賣二價
|
1,001 (RPI)
|
100
|
否
|
|
賣一價
|
999(RPI)
|
50
|
否
|
|
買一價
|
1,002(RPI)
|
100
|
否
|
|
買二價
|
1,000(RPI)
|
200
|
否
|
|
買三價
|
999
|
200
|
是
|
|
買四價
|
996(RPI)
|
300
|
是
|
在 API 的訂單簿數據或數據流中,所有 RPI 訂單均被排除在外。
OpenAPI 和數據深度
1. RPI 深度
1.1 REST
• GET /api/v3/market/rpi-orderbook
• 限頻: 10 次/s
|
參數名稱
|
參數類型
|
請求回應
|
是否必填
|
參數說明
|
|
category
|
String
|
請求參數
|
是
|
業務線
spot 現貨
usdt-futures U 本位合約
coin-futures 幣本位合約
usdc-futures USDC 合約
|
|
symbol
|
String
|
請求參數
|
是
|
交易對名稱
|
|
limit
|
String
|
請求參數
|
否
|
深度檔位
spot 最大值為 200,預設值為 5
usdt-futures,coin-futures,usdc-futures 最大值為 200,預設值為 5
|
|
a
|
Array
|
回應參數
|
/
|
賣方深度
• 按價格升序排序
|
|
> Index 0
|
String
|
回應參數
|
/
|
賣方價格
|
|
> Index 1
|
String
|
回應參數
|
/
|
賣方非 RPI 數量
|
|
> Index 2
|
String
|
回應參數
|
/
|
賣方 RPI 數量
|
|
b.
|
Array
|
回應參數
|
/
|
買方深度
• 按價格降序排序
|
|
> Index 0
|
String
|
回應參數
|
/
|
買方價格
|
|
> Index 1
|
String
|
回應參數
|
/
|
買方非 RPI 數量
|
|
> Index 2
|
String
|
回應參數
|
/
|
買方 RPI 數量
|
|
ts
|
String
|
回應參數
|
/
|
系統生成數據的時間戳
• Unix 時間戳,毫秒
|
1.2 WebSocket
1.2.1 請求參數
|
參數名稱
|
類型
|
是否必傳
|
說明
|
|
op
|
String
|
是
|
操作
subscribe 訂閱
unsubscribe 退訂
|
|
args
|
List<Object>
|
是
|
請求訂閱的頻道列表
|
|
> instType
|
String
|
|
產品線類型
spot 現貨交易
usdt-futures USDT 合約
coin-futures 幣本位合約
usdc-futures USDC 合約
|
|
> topic
|
String
|
是
|
頻道名稱
rpi-books 全部檔位頻道
rpi-books1 一檔頻道
rpi-books5 五檔頻道
rpi-books50 五十檔頻道
|
|
> symbol
|
String
|
是
|
交易對名稱
例如 BTCUSDT
|
1.2.2 返回參數
|
參數
|
類型
|
描述
|
|
event
|
String
|
事件
subscribe 訂閱
unsubscribe 退訂
error 參數錯誤
|
|
arg
|
Object
|
訂閱的頻道
|
|
> instType
|
String
|
產品線類型
spot 現貨交易
usdt-futures USDT 合約
coin-futures 幣本位合約
usdc-futures USDC 合約
|
|
> topic
|
String
|
頻道名稱
rpi-books 全部檔位頻道
rpi-books1 一檔頻道
rpi-books5 五檔頻道
rpi-books50 五十檔頻道
|
|
code
|
String
|
錯誤碼
|
|
msg
|
String
|
錯誤訊息
|
1.2.3 推送參數
|
參數
|
類型
|
描述
|
|
arg
|
Object
|
訂閱頻道
|
|
> instType
|
String
|
產品線類型
spot 現貨交易
usdt-futures USDT 合約
coin-futures 幣本位合約
usdc-futures USDC 合約
|
|
> symbol
|
String
|
交易對名稱
|
|
> topic
|
String
|
頻道名稱
|
|
action
|
String
|
推送數據動作
snapshot 全量
update 增量
|
|
data
|
List<Object>
|
訂閱數據
|
|
> a
|
String
|
賣方深度
|
|
>> a[0]
|
String
|
賣方價格
|
|
>> a[1]
|
String
|
賣方非 RPI 數量
|
|
>> a[2]
|
String
|
賣方 RPI 數量
|
|
> b
|
String
|
買方深度
|
|
>> b[0]
|
String
|
買方價格
|
|
>> b[1]
|
String
|
買方非 RPI 數量
|
|
>> b[2]
|
String
|
買方 RPI 數量
|
|
> ts
|
String
|
撮合時間戳
|
|
> seq
|
String
|
序列號碼
|
|
> previousSeq
|
String
|
上次推送序列號碼
|
2. 成交資訊
平台成交介面,以及頻道新增 RPI 類型標識
• 獲取平台近期成交數據 /api/v3/market/fills
• 獲取成交明細 /api/v3/trade/fills
• 公共成交頻道 topic=publicTrade
• 私有成交頻道 topic=fill
|
參數名稱
|
參數類型
|
請求回應
|
是否必填
|
參數說明
|
|
isRPI
|
String
|
回應參數
|
/
|
是否為 RPI 類型成交
yes 是
no 否
|
3. 下單 & 批次下單
下單和批次下單介面的訂單執行策略新增 rpi 類型
• 下單 POST /api/v3/trade/place-order
• 批次下單 POST /api/v3/trade/place-batch
• 下單頻道 topic=place-order
• 批次下單頻道 topic=batch-place
|
參數名稱
|
參數類型
|
請求回應
|
是否必填
|
參數說明
|
|
timeInForce
|
String
|
請求參數
|
是
|
訂單執行策略
ioc 無法立即成交的部分就撤銷
fok 無法全部立即成交就撤銷
gtc 普通訂單,訂單會一直有效,直到成交或者取消
post_only 只做 maker
rpi 零售價格優化訂單
訂單類型為限價單 limit 時必填,若省略則預設為 gtc
|
4. 訂單資訊 & 目前委託 & 歷史委託
• 訂單資訊 GET /api/v3/trade/order-info
• 目前委託 GET /api/v3/trade/unfilled-orders
• 歷史委託 GET /api/v3/trade/history-orders
• 訂單頻道 topic=order
|
參數名稱
|
參數類型
|
請求回應
|
是否必填
|
參數說明
|
|
timeInForce
|
String
|
回應參數
|
是
|
訂單執行策略
ioc 無法立即成交的部分就撤銷
fok 無法全部立即成交就撤銷
gtc 普通訂單,訂單會一直有效,直到成交或者取消
post_only 只做 maker
rpi 零售價格優化訂單
|
常見問題
1. 什麼是零售價格優化(RPI)訂單
RPI 訂單是統一帳戶模式下的一種特殊訂單類型,只能和非演算法訂單(即非 OpenAPI 委託訂單)撮合,目的是提高流動性。該訂單類型為符合條件的零售訂單提供更優的成交價格,實現價格改善,降低滑點。
2. RPI 訂單屬於掛單(Maker)還是吃單(Taker)?
所有 RPI 訂單均為被動委託訂單,屬於掛單(Maker)訂單,只能和吃單(Taker)訂單成交,可為訂單簿增加流動性。
3. RPI 訂單在相同價格檔位的成交優先順序如何?
在相同價格檔位,無論時間先後,RPI 訂單相較於非 RPI 訂單成交優先順序更低,只有在相同價位的非 RPI 訂單全部執行完畢後,才會執行 RPI 訂單。
4. RPI 訂單支援哪些業務線和保證金模式?
RPI 訂單支援統一帳戶逐倉保證金、全倉保證金模式;支援交易合約、現貨和槓桿業務線。盤前交易不支援 RPI 訂單,只有集合競價後可以下達,否則訂單會被拒絕。
5. RPI 訂單的校驗邏輯是否和普通限價單相同?
RPI 訂單校驗邏輯同普通限價單,保證金要求、最小和最大訂單規模、OI 限倉等與普通限價單相同。