交易工具

币安 API 限速怎么处理 weight 是什么意思

2026-04-23 · 5 分钟阅读

API 限速让大量请求被拒本文讲清 weight order 两套限制和如何优雅退避。

API 限速是量化策略最容易踩的坑。先在 币安官网 创建 API Key,APP 用 币安官方APP(iOS 见 iOS安装教程)。

两套限速

币安 API 有两个独立的限速维度:

1. Weight(权重)

每个接口有 weight 值。每分钟总和不能超过限制。

等级 每分钟 weight
普通 1200
VIP 1 2400
VIP 2 3600
... 一路上去

2. Order(订单数)

下单接口的额外限制:

时间窗 订单数
10 秒 100
1 天 200000

任一超限 = 暂时被禁。

各接口 weight

常用:

接口 weight
行情快照 1
订单簿 5 档 1
订单簿 100 档 5
订单簿 1000 档 50
K 线 1
下单 1
撤单 1
账户信息 10

deep order book 拉一次 50 weight,每分钟最多 24 次。

响应头

每次 API 返回 header 里有:

  • X-MBX-USED-WEIGHT-1M:当前分钟已用 weight
  • X-MBX-ORDER-COUNT-10S:当前 10 秒已下单数

监控这两个值,提前减速。

超限的后果

429 错误:临时禁用,等几秒。 418 错误:再触发 → 永久禁。

418 之后只能等 24 小时甚至几天才解封。不要硬撞

优雅退避

import time

while True:
    try:
        result = api_call()
        weight_used = int(headers.get('X-MBX-USED-WEIGHT-1M', 0))
        if weight_used > 1000:
            time.sleep(10)  # 减速
        return result
    except RateLimitError:
        time.sleep(60)  # 等一分钟

缩减 weight 的技巧

1. 减少深度档位

只要 5 档就别拉 1000 档。weight 5 倍差。

2. WebSocket 替代

价格、订单簿、K 线都可以用 WS 实时推送。WS 不计 weight。

3. 批量接口

/api/v3/batchOrders 一次 5 单。比循环 5 次 5 weight 更便宜。

4. 缓存

不需要每秒都查的数据缓存几秒。

WebSocket 优势

数据 REST weight WS
行情 每次 1 推送,0 weight
订单簿 1-50 推送
K 线 1 推送

策略框架:

  • WS 实时数据流(无 weight 消耗)
  • REST 只在下单 / 撤单时用

跨账户分散

多个 API Key(不同账户)天然分散 weight。

策略:

  • 主号 Key 用于下单
  • 子号 Key 用于查行情
  • weight 池子放大数倍

VIP 提升 weight

VIP 等级越高:

  • 每分钟 weight 上限提升
  • 部分接口对 VIP 加宽
  • 比手续费节省更可观

VIP 1 即让 weight 翻倍。值得。

监控代码

class RateMonitor:
    def __init__(self):
        self.last_weight = 0
        self.alert_threshold = 1000
    
    def update(self, headers):
        used = int(headers.get('X-MBX-USED-WEIGHT-1M', 0))
        if used > self.alert_threshold:
            print(f"WARN: {used} / 1200")
        self.last_weight = used

常见错误

1. 循环里全用 REST

每秒下单同时查持仓 + 查 K 线。weight 飞涨。

改用 WS 推送。

2. 不处理异常

429 出现没 sleep,立刻再请求 → 触发 418 永封。

3. 多 Key 共用 IP

虽然 Key 分开但 IP 限速也存在。同一 IP 多 Key 可能合并计数。

4. 不看 weight 头

闷头请求,撞墙才发现。

实盘前测试

testnet 跑高频测试 → 看是否触发 429 → 调整。

线上挂监控告警 → weight 接近上限提前告警 → 自动降速或停。

常见问题

问:429 多久解封? 答:通常几秒到几分钟。期间不要再请求。

问:418 多久解封? 答:1 小时-24 小时。极端情况 7 天。

问:能申诉吗? 答:可以联系客服。但通常没用。等就完了。

问:weight 在不同接口共享吗? 答:是。所有 weight 加起来 1200/min。

问:Order 限速是单 IP 还是单账户? 答:单账户。多 IP 不能绕开。

延伸阅读

限速不可怕,可怕的是不知道有限速。监控好 weight,永远不会被永封。