跳到主要內容

限頻規則

訪問頻率限制主要分為兩個維度。

IP維度是基於使用者的IP出口進行限制的,目前頻率設定較高,使用者一般不會觸發此類限頻規則。

使用者維度的限頻規則是基於使用者的交易帳戶進行限制的,包括短週期限頻長週期限頻,他們的區別如下:

  • 短週期限頻:主帳號和其創建的子帳號都獨立地受到的短週期限頻的約束。這意味著每個帳號都有自己的限制和配額,與其他帳號無關;
  • 長週期限頻:主帳號及其所建立的子帳號共用一個限頻額度。這意味著所有帳號的請求都會影響到這個共享額度,並且所有帳號的請求都會從同一個額度中扣除。

IP維度限頻規則

限頻:400/s

用戶維度限頻規則

使用者維度的限頻分為短週期限頻長週期限頻 兩種模式。

  • 短週期限頻 偏向於控制短期的請求量,防止API 被惡意使用。
  • 長週期限頻 偏向於控制較長時期內請求質量,防止API 資源濫用。
資訊

對於包含確定子請求數量的批次請求,此批次請求消耗的請求餘裕是根據子請求的數量來決定的。舉例如下:

在現貨下批量委託單POST /spot/batch-order 一個批量請求中包含了5 個委託單的下單請求,則該請求會消耗5 的請求餘量,短週期限頻長週期限頻兩個規則都會基於這個數量來進行消耗統計。

目前按子請求進行請求餘裕計算的介面列舉如下:

現貨模組:

  • 下批量委託單POST /spot/batch-order
  • 下批次計畫委託單POST /spot/batch-stop-order
  • 批量取消委託單POST /spot/cancel-batch-order
  • 批量取消計劃委託單POST /spot/cancel-batch-stop-order

合約模組:

  • 下批次委託單POST /futures/batch-order
  • 下批次計畫委託單POST /futures/batch-stop-order
  • 批次取消委託單POST /futures/cancel-batch-order
  • 批量取消計劃委託單POST /futures/cancel-batch-stop-order

目前的限頻規則是基於分組的,分組的對應關係可見以下章節。分組對短週期限頻長週期限頻同時生效。

短週期限頻規則

這個限頻策略是基於請求路徑分組,旨在控制特定路徑上的請求頻率。具體描述如下:

分組:請求路徑被分成多個群組,每個群組包含一組相關的路徑。具有相似功能或特徵的路徑會被分到同一個組別。

請求餘裕:每個分組都有一個共享的請求餘裕,表示在特定時間內該分組允許的請求數量。餘裕是根據限頻頻率動態恢復。

限頻頻率:每個分組會有一個限頻頻率,即每秒最大的請求餘裕恢復量。例如假設請求頻率為20r/s,則表示請求餘裕每秒恢復20 req。

限頻策略:當收到一個請求時,系統首先決定該請求所屬的分組。然後,系統將檢查該分組的請求餘裕是否允許處理該請求。

a. 如果請求餘裕大於零,則允許處理該請求,並將餘裕減少。請求被處理後,系統可以傳回對應的結果。

b. 如果請求餘裕為零,則拒絕處理該請求。系統將傳回一個錯誤碼,表示請求已經超過使用限制。

1.帳戶維度短週期限頻規則(現貨)

  • 主帳號及子帳號分別限頻,互不影響
接口类型限频包含的接口路径
现货下单&改单30r/1sPOST /spot/order *下委托单
POST /spot/stop-order *下计划委托单
POST /spot/modify-order *修改委托单
POST /spot/modify-stop-order *修改计划委托单
POST /spot/batch-order *下批量委托单
POST /spot/batch-stop-order *下批量计划委托单
现货撤单60r/1sPOST /spot/cancel-order *取消委托单
POST /spot/cancel-stop-order *取消计划委托单
POST /spot/cancel-batch-order *批量取消委托单
POST /spot/cancel-batch-stop-order *批量取消计划委托单
现货批量撤单40r/1sPOST /spot/cancel-all-order *取消全部委托单
POST /spot/cancel-order-by-client-id *通过 client_id 取消委托单
POST /spot/cancel-stop-order-by-client-id *通过 client_id 取消计划委托单
现货查询订单50r/1sGET /spot/order-status *查询订单状态
GET /spot/batch-order-status *批量查询订单状态
GET /spot/pending-order *获取未完成委托单
GET /spot/pending-stop-order *获取未完成计划委托单
现货查询订单历史10r/1sGET /spot/order-deals *获取用户订单成交
GET /spot/user-deals *获取用户成交
GET /spot/finished-order *获取已完成委托单
GET /spot/finished-stop-order *获取已完成计划委托单
现货账户改动10r/1sPOST /account/settings *修改账户设置
POST /assets/margin/borrow *杠杆借币
POST /assets/margin/repay *杠杆还币
POST /assets/transfer *资产划转
POST /account/subs *创建子账号
POST /account/subs/frozen *禁用子账号
POST /account/subs/unfrozen *取消禁用子账号
POST /account/subs/api *创建子账号 APIKEY
POST /account/subs/edit-api *编辑子账号 APIKEY
POST /account/subs/delete-api *删除子账号 APIKEY
POST /account/subs/transfer *子账号间资产划转
POST /assets/renewal-deposit-address *更新充值地址
POST /assets/withdraw *申请提现
POST /assets/cancel-withdraw *取消申请提现
POST /assets/amm/add-liquidity *添加 AMM 账户流动性
POST /assets/amm/remove-liquidity *减少 AMM 账户流动性
现货账户查询10r/1sGET /assets/spot/balance *获取现货账户余额
GET /account/trade-fee-rate *获取账户交易费率
GET /assets/amm/liquidity *获取 AMM 账户流动性
GET /assets/financial/balance *获取理财账户余额
GET /assets/margin/balance *获取杠杆账户余额
GET /assets/credit/info *获取授信账户信息
GET /account/subs *获取子账号列表
GET /account/subs/api *获取子账号 APIKEY 列表
GET /account/subs/api-detail *获取子账号 APIKEY 详情
GET /account/subs/spot-balance *获取子账号现货余额
GET /account/subs/info *获取子账号信息
GET /assets/deposit-address *获取充值地址
GET /assets/deposit-withdraw-config *获取充提配置
现货账户历史数据查询10r/1sGET /assets/withdraw *获取提现记录
GET /assets/deposit-history *获取充值记录
GET /assets/statement *获取用户流水
GET /assets/transfer-history *获取资产划转记录
GET /assets/margin/borrow-history *获取杠杆账户借币记录
GET /assets/margin/interest-limit *获取借币限额
GET /account/subs/transfer-history *获取子账号间划转记录

2.帳戶維度短週期限頻規則(合約)

  • 主帳號及子帳號分別限頻,互不影響
接口类型限频包含的接口路径
合约下单&改单&调整仓位20r/1sPOST /futures/order *下委托单
POST /futures/stop-order *下计划委托单
POST /futures/close-position *市价全部平仓
POST /futures/adjust-position-margin *调整仓位保证金
POST /futures/adjust-position-leverage *调整仓位杠杆
POST /futures/set-position-stop-loss *设置仓位止损
POST /futures/set-position-take-profit *设置仓位止盈
POST /futures/modify-order *修改委托单
POST /futures/modify-stop-order *修改计划委托单
POST /futures/batch-order *下批量委托单
POST /futures/batch-stop-order *下批量计划委托单
合约撤单40r/1sPOST /futures/cancel-order *取消委托单
POST /futures/cancel-stop-order *取消计划委托单
POST /futures/cancel-batch-order *批量取消委托单
POST /futures/cancel-batch-stop-order *批量取消计划委托单
合约批量撤单20r/1sPOST /futures/cancel-all-order *取消全部委托单
POST /futures/cancel-order-by-client-id *通过 client_id 取消委托单
POST /futures/cancel-stop-order-by-client-id *通过 client_id 取消计划委托单
合约查询订单50r/1sGET /futures/pending-order *获取未完成委托单
GET /futures/pending-stop-order *获取未完成计划委托单
GET /futures/order-status *查询订单状态
GET /futures/batch-order-status *批量查询订单状态
合约查询订单历史10r/1sGET /futures/finished-order *获取已完成委托单
GET /futures/finished-stop-order *获取已完成计划委托单
GET /futures/finished-position *获取历史持仓
GET /futures/user-deals *获取用户成交
GET /futures/order-deals *获取用户订单成交
合约账户查询10r/1sGET /assets/futures/balance *获取合约账户余额
GET /futures/position-funding-history *获取仓位资金费率历史记录
GET /futures/pending-position *获取当前持仓
GET /futures/position-adl-history *获取仓位自动减仓历史记录
GET /futures/position-margin-history *获取仓位保证金变化历史记录
GET /futures/position-settle-history *获取仓位自动结算历史记录
資訊

存取會觸發限頻的介面時,會在HTTP回應頭裡回傳如下兩個Header

  • X-RateLimit-Limit。該值表示該介面所屬的群組每秒最多允許的存取次數。
  • X-RateLimit-Remaining。該值表示該介面所屬的群組目前剩餘的存取次數。
  • X-RateLimit-LongPeriod-{period}-Remaining。該值表示接口所屬的組當前配置長周期剩余的訪問次數,period 表示限制周期,例如 1H、4H、8H 或 24H。

長週期限頻規則

長週期限頻主要會評估使用者的請求量請求品質兩個維度,來決定是否限制使用者在較長的週期內的請求總量。其中請求品質主要包含有效成交率訂單平均存活時間等其他一些參考指標。

其中,以上提到的概念分別解釋如下:

  • 週期。不同於短週期限頻,這裡的週期是較長的統計週期,例如1h、4h、8h 或24h 等
  • 請求量。在一個週期內,某一個分組中的所有請求量總和
  • 請求品質。主要包含有效成交率訂單存活時間等其他一些參考指標
  • 有效成交率。在一個週期內的有效成交率=有效訂單數(有成交的已完成訂單)/總訂單數
  • 訂單平均存活時間。在一個週期內,訂單的平均存活時間(從創建時間到完成時間的差值即為存活時間)

只有同時在請求量請求品質兩類指標都超過了限制,才會被長週期限頻所影響。

長週期限頻會在一個週期結束後重置,週期的統計是按照整點來進行的,也就是假設長週期限頻的周期為8h,那麼一天會有三個統計週期,分別是0~8h , 8~16h, 16~24h

在觸發了長週期限頻後,api 請求會被至於低速模式 下,在這個模式中,每個分組的允許速率將會被大量的降低,但並不會限制使用者進行撤單。

資訊

訪問會觸發長周期限頻限頻的接口時,會在HTTP響應頭裏返回如下一個Header

  • X-RateLimit-LongPeriod-{period}-Remaining。該值表示接口所屬的組當前配置長周期剩余的訪問次數,period 表示限制周期,例如 1H、4H、8H 或 24H。例如:X-RateLimit-LongPeriod-24H-Remaining。另外,有可能同時存在多條生效的長周期限頻規則,即會同時返回多個不同周期的 Header。

3.觸發限頻後常見錯誤碼及處理方式

常見錯誤碼建議處理方式
3008服務間歇繁忙,請稍後重試
4001服務暫時無法使用,請稍後重試
4213觸發限頻,建議調整策略,降低請求頻率

4.其他錯誤處理

如果遇到其他錯誤,可以參考錯誤處理來解決。