现货未成交订单计数规则
为确保公平有序的现货市场,我们限制了新订单的下达率。
速率限制适用于在时间间隔内下达的新的、未成交的订单数量。也就是说,部分或全部成交的订单不计入速率限制。
[!NOTE]
未成交的订单速率限制奖励高效的交易者。 只要您的订单成交,您就可以继续交易。 详细信息:已成交订单如何影响速率限制?
当前的速率限制是多少?
您可以使用 "exchange information" 请求查询当前的速率限制。
"rateLimitType": "ORDERS"
表示当前未成交的订单速率限制。
请参考 API 文档:
API | 请求 |
---|---|
FIX API | LimitQuery<XLQ> |
REST API | GET /api/v3/exchangeInfo |
WebSocket API | exchangeInfo |
[!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:00 | 0 | |
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:00 | 0 | |
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:00 | 0 | |
00:00:01 | 下订单 A (限价单) | 1 — 新订单 (+1) |
00:00:02 | 取消订单 A | 1 |
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 | 取消订单 D | 4 |
00:00:07 | 下订单 F (限价单) | 5 — 新订单 (+1) |
interval:DAY
使用哪个时区?
UTC。
如果我昨天下了订单,但第二天才成交,会发生什么情况?
无论订单是何时成交的,新成交的订单都会减少您当前未成交的订单数量。
例:
时间 | 操作 | 未成交订单数量 |
---|---|---|
2024-01-01 09:00 | 下 5 个订单: 1..5 | 5 |
2024-01-02 00:00 | (速率间隔重置) | 0 |
2024-01-02 09:00 | 下 10 个订单: 6..15 | 10 |
2024-01-02 12:00 | (订单 1...5 已成交) | 5 |
2024-01-02 13:00 | (订单 6...10 已成交) | 0 |
2024-01-02 14:00 | 下 2 个订单: 16, 17 | 2 |
2024-01-02 15:00 | (订单 11...15 已成交) | 0 |
注意: 您不会因订单的成交而获得信用。也就是说,一旦未成交 的订单数量减少到零,额外的成交将不会进一步影响未成交订单计数。新订单将像依旧增加计数。