Files
Binance_Altcoin_Monitor/README.md
T
2026-05-22 13:24:03 +08:00

106 lines
3.6 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.
# 币安 U本位合约 · 日成交额 Top30 监控
仓库:[Binance_Altcoin_Monitor](https://git.bz121.com/dekun/Binance_Altcoin_Monitor.git)
**北京时间 08:00** 切日,统计 U 本位永续合约成交额 Top30;每日 **08:10** 通过企业微信推送昨日完整周期数据;Web 展示昨日快照与今日实时累计。
> **Linux 生产部署(/opt、Docker、PM2、SOCKS5 代理)请参阅 [DEPLOY.md](./DEPLOY.md)**
## 功能
- 成交额排名 Top30USDT 计价)
- 高亮标记(不改变排名):成交额 ≥ 1000万 USDT、|涨跌幅| ≥ 5%
- 昨日周期:`[D-1 08:00, D 08:00)`
- 今日周期:`[D 08:00, 当前)`,每 5 分钟后台刷新,Web 每 60 秒拉取
## 环境要求
- Python 3.10+
- 可访问 `fapi.binance.com`
- 企业微信群机器人 Webhook(可选,用于推送)
## 快速开始
```bash
# 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 常驻运行
1. **任务计划程序**:触发器「登录时」或「计算机启动时」,操作运行 `pythonw.exe` 完整路径的 `run.py`,起始于项目目录。
2. 或使用云服务器 / VPS 用 `nssm`、pm2 等托管。
## 企业微信配置
1. 企业微信群 → 群设置 → 群机器人 → 添加
2. 复制 Webhook 地址到 `.env``WECOM_WEBHOOK_URL`
3. 启动后访问 `POST http://127.0.0.1:21450/api/push/test` 测试(可用 Postman 或 curl
```bash
curl -X POST http://127.0.0.1:21450/api/push/test
```
## 数据说明
- 使用币安合约 `1h` K 线按时间戳聚合 USDT 成交额(第 7 字段)
- 涨跌幅 = (周期末价 - 周期开盘价) / 开盘价 × 100%
- 今日末价优先使用实时 ticker 价格
## 目录结构
```
币安排名/
├── backend/app/ # 后端逻辑
├── web/ # 前端静态页
├── data/ # SQLite(自动创建)
├── run.py # 启动入口
└── .env # 本地配置(勿提交)
```