main
币安 U本位合约 · 日成交额 Top30 监控
按 北京时间 08:00 切日,统计 U 本位永续合约成交额 Top30;每日 08:10 企业微信仅推送 三日 Top30 交集 币种(列表排版,非宽表格);Web 数据统计页可预览同款推送内容。
Linux 生产部署(/opt、Docker、PM2、虚拟环境、SOCKS5 代理)请参阅 DEPLOY.md
功能
- 成交额排名 Top30(USDT 计价)
- 高亮标记(不改变排名):成交额 ≥ 1000万 USDT、|涨跌幅| ≥ 5%
- 昨日 / 前日周期:按 08:00 切日固化快照
- 今日周期:
[D 08:00, 当前),后台每 4 小时自动刷新 + 页脚 手动刷新 - 日 K + 成交量迷你图,点击 全屏查看;K 线优先读服务端 SQLite,浏览器
localStorage缓存约 1 小时 - 资金费率当前值 + 历史迷你曲线
- 数据统计:连续三日均为成交额 Top30 的 交集(涨跌幅 不限)
环境要求
- Python 3.10+(推荐项目内虚拟环境
.venv,PM2 生产亦使用.venv) - 可访问
fapi.binance.com(国内服务器可配 SOCKS5,见 DEPLOY.md) - 企业微信群机器人 Webhook(可选,用于 08:10 推送)
快速开始
Windows / 本机开发
cd 币安排名
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -U pip
pip install -r backend/requirements.txt
copy .env.example .env
# 编辑 .env:WECOM_WEBHOOK_URL 等
python run.py
Linux 本机(与生产一致)
cd /path/to/Binance_Altcoin_Monitor
python3 -m venv .venv
source .venv/bin/activate
pip install -U pip
pip install -r backend/requirements.txt
cp .env.example .env
nano .env
.venv/bin/python run.py
浏览器打开:http://127.0.0.1:21450
生产环境请用 DEPLOY.md 中的 Docker 或 PM2 脚本;PM2 使用
.venv/bin/python,更新代码后执行.venv/bin/pip install -r backend/requirements.txt再重启。
配置说明(.env)
| 变量 | 说明 | 默认 |
|---|---|---|
WECOM_WEBHOOK_URL |
企业微信机器人地址 | 空(不推送) |
TOP_N |
排名数量 | 30 |
VOLUME_THRESHOLD |
高亮成交额阈值 (USDT) | 10000000 |
CHANGE_THRESHOLD |
高亮涨跌幅阈值 (%) | 5 |
REFRESH_MINUTES |
今日自动刷新间隔(分钟);240 = 每 4 小时 |
240 |
HOST / PORT |
服务监听 | 0.0.0.0: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 |
CHART_KLINE_LIMIT |
日 K 存储/展示根数 | 300 |
CHART_CACHE_MINUTES |
服务端日 K 视为新鲜的时间(分钟内不请求币安) | 60 |
完整示例见 .env.example。
API
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/today/top30 |
今日周期 Top30 |
| GET | /api/yesterday/top30 |
昨日周期 Top30 |
| GET | /api/daybefore/top30 |
前日周期 Top30 |
| GET | /api/stats/three-day |
三日 Top30 交集统计 |
| GET | /api/chart/{symbol}/daily |
日 K JSON(SQLite 优先) |
| GET | /api/funding/{symbol}/history |
资金费率历史 |
| GET | /api/push/preview |
预览企微推送(三日交集) |
| POST | /api/push/test |
手动测试企业微信推送(仅交集币种) |
| POST | /api/refresh/today |
立即刷新今日数据 |
| POST | /api/refresh/yesterday |
重新计算昨日快照 |
定时任务
| 时间 (北京时间) | 任务 |
|---|---|
| 08:00 | 固化昨日、前日周期快照到 SQLite |
| 08:10 | 企业微信推送三日 Top30 交集(列表排版) |
| 每 4 小时(整点 0/4/8/12/16/20) | 刷新今日周期(由 REFRESH_MINUTES=240 控制) |
进程重启后:若已过 08:10 且当日尚未推送成功,会自动补推。
Web 界面
| 页签 | 说明 |
|---|---|
| 今日 / 昨日 / 前日 | Top30 表、日 K、资金费率;支持排序与 CSV 导出 |
| 数据统计 | 三日交集列表;可预览 / 测试企微推送 |
今日数据 不会 在浏览器里每 60 秒轮询;请依赖 4 小时后台任务或页脚 「立即刷新今日」。
企业微信配置
- 企业微信群 → 群设置 → 群机器人 → 添加
- 复制 Webhook 地址到
.env的WECOM_WEBHOOK_URL - 启动后访问
POST http://127.0.0.1:21450/api/push/test测试
curl -X POST http://127.0.0.1:21450/api/push/test
数据说明
- 昨日 / 前日:按 08:00 切日,用
1hK 线聚合成交额 - 今日:默认
TODAY_DATA_MODE=ticker24h(单次 API,滚动 24h 口径) - 涨跌幅 = (周期末价 - 周期开盘价) / 开盘价 × 100%
- 日 K:最多 300 根存
daily_klines;浏览器localStorage缓存周期表约 4 小时、K 线约 1 小时
依赖说明
Python 包见 backend/requirements.txt。PM2 使用 .venv/bin/python,依赖须装进 .venv,勿只装系统 Python。
目录结构
币安排名/
├── backend/app/
├── backend/requirements.txt
├── web/
├── data/monitor.db
├── .venv/
├── deploy/
├── run.py
└── .env
Description
Languages
Python
53.4%
JavaScript
33.1%
CSS
6.8%
Shell
3.6%
HTML
2.8%
Other
0.3%