无前端,纯后端 WebSocket 事件驱动服务。
- 监控指定地址的仓位变化:开仓、加仓、减仓、反手、清仓
- 每次信号推送钉钉:币种、方向、全仓/逐仓、杠杆、开单本金、本金占总余额比例
- 使用 Hyperliquid API 进行市价跟单(IOC 模拟市价)
- 通过 Hyperliquid WebSocket 订阅 leader 账户事件,低延迟触发跟单
- 跟单固定本金:单币种每次按
20U(可配置)本金执行 - 跟随 leader 的杠杆和保证金模式(全仓/逐仓)
- leader 清仓时,follower 无条件清仓并推送平仓盈亏(若可查询到)
- 事件去抖 + 去重,避免短时间重复触发导致重复下单
- 风控拦截:最大持仓币种数、总本金上限、最小下单面额、是否允许做空
- 系统启动通知与周期心跳通知
- 高并发保护:事件处理重入时自动合并为下一次 tick
- 统一账户余额口径:账户净值 = 合约净值 + 现货余额(稳定币)
cd /home/yyf/hyperbot
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtcp .env.example .env编辑 .env:
LEADER_ADDRESS: 被监控地址FOLLOWER_PRIVATE_KEY: API 钱包私钥(用于签名下单)FOLLOWER_ADDRESS: Hyper 主地址(资金和仓位所在账户地址,不是 API 钱包地址)DINGTALK_WEBHOOK: 钉钉自定义机器人 webhookFIXED_MARGIN_USD: 固定跟单本金,默认20WS_RECONNECT_SECONDS: WebSocket 断线重连间隔秒数EVENT_DEBOUNCE_SECONDS: 同币种事件最小处理间隔DUPLICATE_TTL_SECONDS: 相同事件去重窗口MAX_OPEN_COINS: 最大持仓币种数MAX_TOTAL_PRINCIPAL_USD: 总本金上限MIN_NOTIONAL_USD: 最小下单面额ALLOW_SHORT: 是否允许空单HEARTBEAT_SECONDS: 心跳推送间隔(<=0 关闭)DRY_RUN: 建议先true联调,确认无误后改false
地址填写规则(务必确认):
- Hyper 主地址:有资产和仓位的主账户地址,用于查询净值和持仓
- API 钱包地址:代理钱包地址,通常不承载资产
- API 钱包私钥:仅用于交易签名
对应到配置:
FOLLOWER_PRIVATE_KEY填 API 钱包私钥FOLLOWER_ADDRESS填 Hyper 主地址
常见错误:
- 如果把
FOLLOWER_ADDRESS误填成 API 钱包地址,系统可能显示余额为0 - 程序启动时已内置该错误的自动告警(控制台 + 钉钉)
python3 main.py后台长期运行(推荐):
nohup python3 main.py > 1.txt 2>&1 &说明:
2>&1表示将错误输出合并到日志文件- 若不需要日志可用:
nohup python3 main.py > /dev/null 2>&1 &
常用命令:
# 实时查看日志
tail -f 1.txt
# 查进程(任选其一)
pgrep -fa "python3 main.py"
ps -ef | grep "python3 main.py" | grep -v grep
# 停止进程(先查 PID 再 kill)
kill <PID>启动后会立刻推送一条钉钉"系统启动"快照(ActionCard 格式,附"查看 Leader 仓位"按钮),用于重启自检:
- 监控地址与跟单地址
- 两个地址的合约净值
- 两个地址的现货余额
- 两个地址的账户净值(统一账户 = 合约 + 现货)
- 两个地址的已用本金(估算)
- 两个地址的持仓币种数
- 两个地址的逐币种仓位明细(方向、全仓/逐仓、杠杆、面额、本金、本金占比、当前盈亏、爆仓价)
- 当前运行模式(DRY_RUN/LIVE)
统一账户说明:
- 当跟单地址“合约净值”为
0但“现货余额”大于0,表示资金在现货侧,未作为合约保证金使用 - 系统展示的“账户净值(统一账户)”会将这两部分合并显示
消息类型说明:
- 监控信号 / 跟单结果 / 风控拦截 / 系统错误 → Markdown 类型(支持标题、加粗、分隔线、引用块、链接)
- 系统启动 / 心跳 → ActionCard 类型(含"查看 Leader 仓位"按钮)
监控信号(Markdown):
## 📈 监控信号 · 开仓
---
**BTC** 🔴 做空 `全仓 20x` _13:40:00_
> 本金 **750.74 U** | 面额 15014.85 U
> 本金占比 31.48% | 浮盈 **-12.3400 U**
> 爆仓价 103245.1200
跟单结果(Markdown):
## ✅ 跟单结果 · 开仓
---
**BTC** 🔴 做空 `全仓 20x` 🔴 **LIVE** _13:40:01_
> 本金 **20.00 U** | 面额 400.00 U
平仓结果(Markdown):
## ✅ 跟单结果 · 清仓
---
**BTC** 🔴 做空 `全仓 20x` 🔴 **LIVE** _15:12:08_
> 本金 **20.00 U** | 面额 398.23 U
> 平仓盈亏 **+3.1200 U**
- 开仓/加仓:按
固定本金 * 当前杠杆计算下单面额 - 减仓:按
固定本金 * 当前杠杆做 reduce-only 市价减仓(不超过当前仓位) - 清仓:对该币种 follower 当前仓位做 reduce-only 市价全平
- 反手:先平旧方向,再按新方向开仓
- 首次务必
DRY_RUN=true观察钉钉消息和行为 - 使用专用小资金跟单地址,避免与主账户混用
- 根据网络和流动性适当调整
MARKET_SLIPPAGE - 实盘建议设置
MAX_TOTAL_PRINCIPAL_USD,避免突发连续信号导致风险敞口过高 - 若只做多,设置
ALLOW_SHORT=false