auto_trade_sys/BINANCE_IP_BAN_1003.md
薇薇安 4a69b42392 1
2026-02-14 12:14:54 +08:00

40 lines
1.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 币安 API -1003 限频/封禁说明
## 错误含义
- **APIError(code=-1003)**: `Way too many requests; IP ... banned until 1771041059726`
- 表示当前 IP 请求过于频繁,被**临时封禁**,直到指定时间戳(毫秒)后自动解除。
## 如何查看「还要等多久」
时间戳 `1771041059726` 是**毫秒**,表示封禁**解除时间**Unix 时间戳,毫秒)。
在项目根目录执行:
```bash
python3 -c "
from datetime import datetime, timezone
ts_ms = 1771041059726 # 替换成你日志里的时间戳
utc = datetime.fromtimestamp(ts_ms/1000, tz=timezone.utc)
now = datetime.now(timezone.utc)
delta = utc - now
print('解封时间(UTC):', utc.strftime('%Y-%m-%d %H:%M:%S'))
print('当前时间(UTC):', now.strftime('%Y-%m-%d %H:%M:%S'))
if delta.total_seconds() > 0:
print('还需等待:', delta.days, '天', delta.seconds//3600, '小时', (delta.seconds%3600)//60, '分钟')
else:
print('已过解封时间,可重试;若仍报错可等几分钟或换网络。')
"
```
把上面脚本里的 `1771041059726` 换成你实际日志中的 `banned until` 后面的数字即可。
## 如何减少再次被限/封禁
1. **拉大扫描间隔**:全局配置里把 `SCAN_INTERVAL` 调大(如 900 → 1200 或 1800降低整体请求频率。
2. **缩小扫描范围**:适当减小 `MAX_SCAN_SYMBOLS`、`TOP_N_SYMBOLS`,减少单次扫描的 API 调用量。
3. **并发已做限制**`market_scanner` 已用信号量限制并发(如 3避免同时打爆若仍触限可再减小并发或增加批次间延迟。
4. **错误提示**日志里「分析超时10秒」多是因为当时已被限频/封禁导致请求挂起或失败,解封后一般会恢复。
解封后若仍偶发 -1003可先等 12 分钟再跑,或临时增大 `SCAN_INTERVAL` 再观察。