104 lines
3.5 KiB
Markdown
104 lines
3.5 KiB
Markdown
# 币安 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)**
|
||
## 功能
|
||
|
||
- 成交额排名 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(可选,用于推送)
|
||
|
||
## 快速开始
|
||
|
||
```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:8000
|
||
|
||
## 配置说明(.env)
|
||
|
||
| 变量 | 说明 | 默认 |
|
||
|------|------|------|
|
||
| `WECOM_WEBHOOK_URL` | 企业微信机器人地址 | 空(不推送) |
|
||
| `TOP_N` | 排名数量 | 30 |
|
||
| `VOLUME_THRESHOLD` | 高亮成交额阈值 (USDT) | 10000000 |
|
||
| `CHANGE_THRESHOLD` | 高亮涨跌幅阈值 (%) | 5 |
|
||
| `REFRESH_MINUTES` | 今日数据刷新间隔 | 5 |
|
||
| `HOST` / `PORT` | 服务监听 | 127.0.0.1:8000 |
|
||
| `PROXY_ENABLED` | 是否启用 SOCKS5 代理 | false |
|
||
| `PROXY_URL` | 代理地址 | socks5h://192.168.8.4:1081 |
|
||
| `PROXY_FOR` | 代理范围 binance/wecom/all | binance |
|
||
## 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:8000/api/push/test` 测试(可用 Postman 或 curl)
|
||
|
||
```bash
|
||
curl -X POST http://127.0.0.1:8000/api/push/test
|
||
```
|
||
|
||
## 数据说明
|
||
|
||
- 使用币安合约 `1h` K 线按时间戳聚合 USDT 成交额(第 7 字段)
|
||
- 涨跌幅 = (周期末价 - 周期开盘价) / 开盘价 × 100%
|
||
- 今日末价优先使用实时 ticker 价格
|
||
|
||
## 目录结构
|
||
|
||
```
|
||
币安排名/
|
||
├── backend/app/ # 后端逻辑
|
||
├── web/ # 前端静态页
|
||
├── data/ # SQLite(自动创建)
|
||
├── run.py # 启动入口
|
||
└── .env # 本地配置(勿提交)
|
||
```
|