跳到主要内容

现货未成交订单计数规则

为确保公平有序的现货市场,我们限制了新订单的下达率。

速率限制适用于在时间间隔内下达的新的、未成交的订单数量。也就是说,部分或全部成交的订单不计入速率限制。

[!NOTE]
未成交的订单速率限制奖励高效的交易者。 只要您的订单成交,您就可以继续交易。 详细信息:已成交订单如何影响速率限制?

当前的速率限制是多少?

您可以使用 "exchange information" 请求查询当前的速率限制。

"rateLimitType": "ORDERS" 表示当前未成交的订单速率限制。

请参考 API 文档:

API请求
FIX APILimitQuery<XLQ>
REST APIGET /api/v3/exchangeInfo
WebSocket APIexchangeInfo

[!IMPORTANT] 下单请求还受到 REST 和 WebSocket API 上的常规请求速率限制以及 FIX API 上的消息限制的影响。 如果您以高速率发送过多的请求,您将会被 API 阻止。

如何运作未成交的 ORDERS 速率限制?

每次成功下单的请求都会增加当前时间间隔内的未成交订单计数。如果在时间间隔内累积了太多未成交的订单,后续的请求将被拒绝。

例如,如果未成交的订单速率限制为每 10 秒 100 个:

{
"rateLimitType": "ORDERS",
"interval": "SECOND",
"intervalNum": 10,
"limit": 100
}

那么,您在 12:34:00 到 12:34:10 之间最多可以下 100 个新订单,然后在 12:34:10 到 12:34:20 之间再下 100 个新订单,依此类推。

[!TIP]
如果新下的订单成交,那么您的未成交订单数量会减少,您可能会在该时间间隔内下更多的订单。 详细信息:已成交订单如何影响速率限制?

当订单因未成交订单速率限制而被系统拒绝时,HTTP 状态代码会被设置为429 Too Many Requests,错误代码为-1015 "Too many new orders"

如果您遇到这些错误,请停止发送订单,直到受影响的速率限制间隔到期。

请参考 API 文档:

API文档
FIX API未成交订单计数
REST API未成交订单计数
WebSocket API未成交订单计数

是否按 IP 地址来统计未成交的订单计数?

未成交订单计数是根据 (子)账户 来统计的。

未成交订单计数在所有 IP 地址、所有 API 密钥和所有 API 之间共享。

已成交的订单如何影响未成交的订单数量?

当订单首次(部分或全部)成交时,在 ORDERS 速率限制的所有时间间隔内,您的未成交订单数量将会减少一个订单。实际上,已成交的订单不计入速率限制,这将允许高效的交易者继续下新订单。

某些订单会提供额外的激励:

  • 未立即成交的订单(即,在 maker 阶段首次成交)。
  • 大批量成交的订单。

在这些情况下,对于每个开始交易的订单,未成交的订单数量可能会减少多个订单。

注意:

  • 这些示例仅给出了相关行为的通用概念。 为了简单起见,请使用 10 秒间隔。实时交易平台上的实际配置可能会有所不同。
  • 在正在执行的订单和未成交订单计数更新之间有短暂的延迟。当您的未成交订单数量接近限制时,请务必小心。
  • 请参考 如何运作未成交的 ORDERS 速率限制? 以了解如何根据 API 来监控未成交订单计数。

例 1 — taker:

时间操作未成交订单数量
00:00:000
00:00:01下订单 A (限价单)1 — 新订单 (+1)
00:00:02下订单 B (限价单)2 — 新订单 (+1)
(订单 B 部分成交)1 — 作为 taker 首次成交 (−1)
00:00:03下订单 C (限价单)2 — 新订单 (+1)
00:00:04(订单 B 部分成交)2
00:00:04(订单 B 已成交)2
00:00:05下订单 D (市价单)3 — 新订单 (+1)
(订单 D 全部成交)2 — 作为 taker 首次成交 (−1)

请注意,对于每个立即交易的 taker 订单,未成交的订单数量稍后会减少,从而允许您继续下单。

例 2 — maker:

时间操作未成交订单数量
00:00:000
00:00:01下订单 A (限价单)1 — 新订单 (+1)
00:00:01下订单 B (限价单)2 — 新订单 (+1)
00:00:02下订单 C (限价单)3 — 新订单 (+1)
00:00:02下订单 D (限价单)4 — 新订单 (+1)
00:00:02下订单 E (限价单)5 — 新订单 (+1)
00:00:03(订单 A 部分成交)0 — 作为 maker 首次成交 (−5)
00:00:04下订单 F (限价单)1 — 新订单 (+1)
00:00:04下订单 G (限价单)2 — 新订单 (+1)
00:00:05(订单 A 部分成交)2
00:00:05(订单 A 已成交)2
00:00:05(订单 B 部分成交)0 — 作为 maker 首次成交 (−5)
00:00:06下订单 H (限价单)1 — 新订单 (+1)

请注意,对于稍后执行的每个 maker 单,未执行的订单数量会减去更高的数量,从而允许您下更多订单。

取消或过期的订单如何影响未成交的订单数量?

取消订单不会更改未成交的订单计数。

过期的订单也不会改变未成交的订单计数。

例:

时间操作未成交订单数量
00:00:000
00:00:01下订单 A (限价单)1 — 新订单 (+1)
00:00:02取消订单 A1
00:00:02下订单 B (限价单)2 — 新订单(+1)
00:00:03下订单 C (限价 FOK 单)3 — 新订单 (+1)
(订单 C 已成交)2 — fill (−1)
00:00:05下订单 D (限价单)3 — 新订单 (+1)
00:00:06下订单 E (限价 FOK 单)4 — 新订单 (+1)
(订单 E 过期且没有成交)4
00:00:07取消订单 D4
00:00:07下订单 F (限价单)5 — 新订单 (+1)

interval:DAY 使用哪个时区?

UTC。

如果我昨天下了订单,但第二天才成交,会发生什么情况?

无论订单是何时成交的,新成交的订单都会减少您当前未成交的订单数量。

例:

时间操作未成交订单数量
2024-01-01 09:00下 5 个订单: 1..55
2024-01-02 00:00(速率间隔重置)0
2024-01-02 09:00下 10 个订单: 6..1510
2024-01-02 12:00(订单 1...5 已成交)5
2024-01-02 13:00(订单 6...10 已成交)0
2024-01-02 14:00下 2 个订单: 16, 172
2024-01-02 15:00(订单 11...15 已成交)0

注意: 您不会因订单的成交而获得信用。也就是说,一旦未成交的订单数量减少到零,额外的成交将不会进一步影响未成交订单计数。新订单将像依旧增加计数。