3.6 KiB
3.6 KiB
币安 U本位合约 · 日成交额 Top30 监控
按 北京时间 08:00 切日,统计 U 本位永续合约成交额 Top30;每日 08:10 通过企业微信推送昨日完整周期数据;Web 展示昨日快照与今日实时累计。
Linux 生产部署(/opt、Docker、PM2、SOCKS5 代理)请参阅 DEPLOY.md
功能
- 成交额排名 Top30(USDT 计价)
- 高亮标记(不改变排名):成交额 ≥ 1000万 USDT、|涨跌幅| ≥ 5%
- 昨日周期:
[D-1 08:00, D 08:00) - 今日周期:
[D 08:00, 当前),每 5 分钟后台刷新,Web 每 60 秒拉取
环境要求
- Python 3.10+
- 可访问
fapi.binance.com - 企业微信群机器人 Webhook(可选,用于推送)
快速开始
# 1. 进入项目目录
cd 币安排名
# 2. 安装依赖
pip install -r backend/requirements.txt
# 3. 配置环境变量
copy .env.example .env
# 编辑 .env,填入 WECOM_WEBHOOK_URL
# 4. 启动服务(需保持进程常驻)
python run.py
浏览器打开:http://127.0.0.1:21450
配置说明(.env)
| 变量 | 说明 | 默认 |
|---|---|---|
WECOM_WEBHOOK_URL |
企业微信机器人地址 | 空(不推送) |
TOP_N |
排名数量 | 30 |
VOLUME_THRESHOLD |
高亮成交额阈值 (USDT) | 10000000 |
CHANGE_THRESHOLD |
高亮涨跌幅阈值 (%) | 5 |
REFRESH_MINUTES |
今日数据刷新间隔 | 5 |
HOST / PORT |
服务监听 | 127.0.0.1:21450 |
PROXY_ENABLED |
是否启用 SOCKS5 代理 | false |
PROXY_URL |
代理地址 | socks5h://192.168.8.4:1081 |
PROXY_FOR |
代理范围 binance/wecom/all | binance |
MAX_CONCURRENCY |
币安 K 线并发数(过大易 418 封禁) | 3 |
CANDIDATE_POOL |
预筛候选合约数(按 24h 成交额) | 150 |
API
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/yesterday/top30 |
昨日周期 Top30 |
| GET | /api/today/top30 |
今日周期 Top30(缓存) |
| POST | /api/push/test |
手动测试企业微信推送 |
| POST | /api/refresh/today |
立即刷新今日数据 |
| POST | /api/refresh/yesterday |
重新计算昨日快照 |
定时任务
| 时间 (北京时间) | 任务 |
|---|---|
| 08:00 | 固化昨日周期数据到 SQLite |
| 08:10 | 企业微信推送昨日 Top30 |
| 每 N 分钟 | 刷新今日周期(N = REFRESH_MINUTES) |
进程重启后:若已过 08:10 且当日尚未推送成功,会自动补推一次。
Windows 常驻运行
- 任务计划程序:触发器「登录时」或「计算机启动时」,操作运行
pythonw.exe完整路径的run.py,起始于项目目录。 - 或使用云服务器 / VPS 用
nssm、pm2 等托管。
企业微信配置
- 企业微信群 → 群设置 → 群机器人 → 添加
- 复制 Webhook 地址到
.env的WECOM_WEBHOOK_URL - 启动后访问
POST http://127.0.0.1:21450/api/push/test测试(可用 Postman 或 curl)
curl -X POST http://127.0.0.1:21450/api/push/test
数据说明
- 使用币安合约
1hK 线按时间戳聚合 USDT 成交额(第 7 字段) - 涨跌幅 = (周期末价 - 周期开盘价) / 开盘价 × 100%
- 今日末价优先使用实时 ticker 价格
目录结构
币安排名/
├── backend/app/ # 后端逻辑
├── web/ # 前端静态页
├── data/ # SQLite(自动创建)
├── run.py # 启动入口
└── .env # 本地配置(勿提交)