什麼是到期自動撤單 (Kill-Switch)?
到期自動撤單是指在網絡連接不通暢的時候,通過自動撤單的方法保護做市商的功能。
請注意,在幣安幣本位合約上,有一種類似的功能,稱為“倒計時撤銷全部訂單”
此功能僅適用於期權做市商,使他們能夠提供更小的買賣價差、更大的報價規模,並在市場上停留更多時間。所有這些行為都將有利於提高幣安期權產品的流動性。
到期自動撤單是如何運行的?
當檢測到網絡斷開時,自動撤單功能將撤銷所有未成交訂單,包括做市商保護 (MMP) 和非 MMP 訂單。當做市商為每個標的期權設置倒計時時間段時,此功能將激活。一旦計時器結束,如果服務器沒有收到心跳消息,它將自動取消該交易對的所有未成交訂單。
一旦系統收到來自做市商的心跳消息,它將重置倒計時。在沒有心跳消息的情況下,系統會理解為與服務器斷開連接。
1. 做市商輸入底層交易對(例如 ETHUSDT)和以毫秒為單位的倒計時時間參數(例如:120000 代表 120 秒)
2. 做市商將以特定時間間隔(例如每 30 秒)調用接口(指定底層交易對)向服務器發送“心跳”消息。
3. 服務器將響應一個心跳確認消息,指定倒計時時間已重置的交易對。
4. 系統將按照以下規則來取消或者保留做市商的未成交訂單:
2. 做市商將以特定時間間隔(例如每 30 秒)調用接口(指定底層交易對)向服務器發送“心跳”消息。
3. 服務器將響應一個心跳確認消息,指定倒計時時間已重置的交易對。
4. 系統將按照以下規則來取消或者保留做市商的未成交訂單:
- 當前時間 - 心跳時間戳 > 倒計時時間: 撤銷所有訂單;
- 當前時間 - 心跳時間戳 <= 倒計時時間: 保留所有訂單。
到期自動撤單和MMP的區別
自動撤單(Kill-Switch)功能與幣安期權上現有的做市商保護(MMP)功能相輔相成。主要區別在於:
- MMP 將僅撤銷執行時的 MMP 訂單(即 MMP 由訂單執行觸發,訂單將一直保留在訂單簿中,直到出現突破 qtyLimit 或 deltaLimit 的執行)並且可以自動重置。
- 自動撤單(Kill-Switch)將在斷開連接時撤銷所有訂單(即,Kill-Switch 將根據連接成功與否從訂單簿中刪除訂單)
API 信息
共計三個API接口,請前往API文檔來獲取詳細自動撤單(Kill-Switch)功能信息。
1. 設置自動撤單參數接口(Kill-Switch) (POST)
POST /eapi/v1/countdownCancelAll (HMAC SHA256)
此接口用於設置倒計時取消所有訂單(包括做市商保護訂單與普通訂單)配置,即在倒計時結束前心跳沒有更新,特定標的資產的所有訂單會被取消。若倒計時結束前心跳沒有更新,所有的訂單將會被取消,同時新訂單會返回錯誤代碼-2010。可以通過設置countdownTime為0取消此功能。
weight: 1
參數:
Name | Type | Mandatory | Description |
underlying | STRING | YES | 底層期權交易對 (e.g. ETHUSDT,BTCUSDT) |
countdownTime | LONG | YES | 以毫秒計量倒計時長 (1000代表1秒)。設為0時關閉倒計時。最小設為5000(負值無效) |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
Response:
{
"underlying": "ETHUSDT",
"countdownTime": 100000
}
- 本接口用於配置網絡中斷情況下自動取消已有訂單。
- 使用樣例:對特定的標的資產調用本接口(使用參數countdownTime = 10000,10秒)打開自動取消所有訂單功能。如果功能開啟後任意10秒內沒有對該標的資產調用countdownCancelAllHeartBeat接口,則該標的資產上所有訂單被去取消。如果調用接口時傳參countdownTime = 0,倒計時自動取消訂單功能關閉。
- 請注意,系統每隔1000ms(1s)倒計時是否結束,使用此功能時應考慮足夠的時間冗餘。我們不建議將倒計時時間設置得太精確或太小。
2. 獲得倒計時自動取消所有訂單配置(Kill-Switch) (GET)
GET /eapi/v1/countdownCancelAll (HMAC SHA256)
本接口用於獲得倒計時自動取消所有訂單配置。接口僅返回有效的自動取消參數,如果標的資產的countdownTime設置為0,該標的資產對應的參數不會被返回。
Weight: 1
Parameters:
Name | Type | Mandatory | Description |
underlying | STRING | YES | 底層期權交易對 (e.g. ETHUSDT, BTCUSDT) |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
Response:
{
"underlying": "ETHUSDT",
"countdownTime": 100000
}
- 當countdownTime = 0時倒計時取消所有訂單功能關閉
3. 通知服務器連接正常的接口 (POST)
POST /eapi/v1/countdownCancelAllHeartBeat (HMAC SHA256)
本接口用戶更新倒計時取消所有訂單心跳。本接口需要作為心跳更新被頻繁調用。將多個標的資產以list形式傳入underlyings可以同時更新多個標的資產的心跳。
Weight: 10
Parameters:
Name | Type | Mandatory | Description |
underlyings | LIST | YES | 底層期權交易對 (e.g. ETHUSDT, BTCUSDT) |
recvWindow | LONG | NO | |
timestamp | LONG | YES |
Response:
{
"underlyings":["BTCUSDT","ETHUSDT"]
}
- 響應僅包含心跳已被更新的標的資產
請注意,您可以在一個“心跳”消息中指定交易對列表,以幫助減少發送到服務器的消息。