内容
# 工具列表
## 概述
**Bollinger Grid 交易引擎,具有自动入场、ATR 自适应止损/止盈、跟踪止损、DCA、自我学习和交易后聚类分析。MCP 服务器用于 AI 代理。Telegram/ntfy 警报。**
[](./CHANGELOG.md) [](https://python.org) [](./LICENSE) [](./test_smoke.py) [](./AGENTS.md)
---
## 模块架构(v7.3)
```
┌─────────────────── 主循环(async, 30s) ───────────────────┐
│ main_async.py — 主循环(asyncio) │
│ │
│ 每个循环: │
| • state_db.py — SQLite SSOT(WAL,11 个表) |
│ • auto_sl.py — ATR 自适应止损 v2(±k×ATR,2% 底线)│
│ • trailing_sl.py — 拖拽止损(LONG + SHORT) │
│ • auto_tp.py — 基于 ATR 的止盈(1.0×/2.0×/3.0× ATR) │
│ • time_exit.py — 时间退出(6 小时/48 小时) │
│ • 风险管理 — 电路中断器,BlackSwan 3 级 │
│ │
│ 每 10 个循环(HEAVY,~5 分钟): │
│ • auto_entry.py — 自动 LONG(MTF+OB+Volume+Judge) │
│ • auto_short.py — 自动 SHORT + Dry Spell Throttle │
│ • pump_detect.py — 泵检测(24 小时/周) │
│ • correlation.py — 相关性矩阵 │
│ • dca.py — DCA 加仓 │
│ │
│ 每天(2880 个循环): │
│ • post_trade.py — 聚类分析(WR<40% → 阻塞) │
│ • journal/self_learn.py — 自我学习 + 金丝雀 v3 │
│ │
│ 历史导入(每个循环): │
│ • Bybit closed-pnl → trades.jsonl │
│ • → post_trade_features.jsonl(自 30.06) │
│ │
└───────────────────────────────────────────────────────────────┘
│
▼ RPC(端口 8766)+ WS push(端口 8768)
• rpc.py — JSON-RPC,/metrics Prometheus
• push_notifier.py — ntfy + Telegram 警报
```
### 完整引擎文件列表
| 文件 | 目的 |
|------|-----------|
| `state_db.py` | SQLite(WAL,8 个表)— trade_history,cooldowns,alert_dedup |
| `main.py` | 主循环,RPC 服务器,模块编排 |
| `api.py` | Bybit REST API:仓位,订单,止损/止盈,BB 数据 |
| `config.py` | 配置:8 种策略,风险管理,层级 |
| `position_sizing.py` | 动态仓位调整(存款百分比 × 积分 × 乘数) |
| `auto_short.py` | 自动 SHORT:Tier A/B(普通)+ JUNK C/D(泵短无止损) |
| `auto_entry.py` | 自动 LONG:BB < 阈值,积分 ≥ 最小值 |
| `auto_tp.py` | 自动止盈:20% 在 Middle BB + 80% 在 Upper BB(LONG + SHORT) |
| `auto_sl.py` | 自动止损:检查和修复止损(LONG + SHORT,基于层级) |
| `trailing_sl.py` | 跟踪止损:LONG(BB>75%)+ SHORT(BB<25%),PnL>15% |
| **`junk_trail.py`** | JUNK 短线跟踪止盈:70% 固定 +15%,85% 固定 +30% |
| `pump_detect.py` | 泵检测:24 小时 ≥80%,周 ≥230% |
| `dca.py` | DCA 加仓:LONG -5/-10/-15% 入场 |
| `correlation.py` | 相关性矩阵:阻塞 >80% 相关性 |
| `health.py` | 监控:清算,BB 挤压,资金占用,日跌幅 |
| `overbought.py` | 过买轮换观察列表 |
| `rsi.py` | RSI 背离 |
| `squeeze.py` | BB 挤压检测器 |
| `reporting.py` | 总结,合规审计(LONG + SHORT),覆盖率总结 |
| `cleanup.py` | 过期/旧订单清理 |
| `cost_tracker.py` | 交易费用跟踪 |
| `recycle.py` | 止盈 → 重新入场 |
| `metrics.py` | 指标记录(警报,自动入场) |
| `alerts.py` | Telegram 警报,去重 |
| `snapshot.py` | 仓位/订单快照,变化检测 |
| `rpc.py` | HTTP-RPC 服务器(:8766)— 直接 api.bybit() 调用 |
---
## 工作模式
### LONG(Bollinger Grid)
- **触发器**:BB Daily < 阈值(Tier A:<15%,B:<25%,C:<40%,D:<65%)
- **杠杆**:3 倍
- **保证金**:动态(存款 × 20% / 最大仓位 × 积分乘数)
- **止损**:-7% 下 Lower BB(交易止损)
- **止盈**:20% 在 Middle BB + 80% 在 Upper BB(限价 reduceOnly)
- **跟踪止损**:BB Weekly >75% 且利润 >15% → 拖拽止损
- **DCA**:-5/-10/-15% 入场,加仓 2 次
- **最大仓位**:12
### SHORT(对冲)
- **触发器**:BB Daily > 85%,Tier A/B/C/D 硬币
- **杠杆**:3 倍
- **止损**:+5%(Tier A/B),+7%(Tier C/D)
- **跟踪止损**:BB Weekly < 25% + PnL > 15% → 拖拽止损
- **止盈**:Middle BB
- **最大仓位**:3(与 JUNK 共享)
### SHORT JUNK Tier C/D(泵短线) 🆕
- **触发器**:24 小时增长 ≥ 80% + BB Daily > 70%
- **杠杆**:3 倍
- **止损**:**无**(JUNK 太波动 — 止损只吃保证金)
- **保护**:最大损失 -15% 保证金(硬性市场关闭),最大持有 48 小时(自动关闭)
- **入场**:限价单 Sell 在 +2% 上方(等待反弹)
- **止盈 #1**:Middle BB(限价 reduceOnly Buy,入场时设置)
- **止盈 #2(跟踪)**:利润 >15% → 拖拽止盈,固定 70% 利润
- **止盈 #3(跟踪)**:利润 >30% → 拖拽至 85% 利润
- **DCA 阶梯**:限价单 Sell 在 +100% 和 +120% 入场
- **最大仓位**:3(与 Tier A/B 共享)
### JUNK 短线:完整生命周期
```
1. pump_detect.py → 泵 +80% 24 小时
2. auto_short.py → 限价单 Sell +2%,止盈 Middle BB,DCA +100%/+120%
3. check_junk_dca() → 检查 max_loss/max_hold/DCA 级别
4. junk_trail.py → 利润 >15%:止盈拖拽(固定 70%)
5. junk_trail.py → 利润 >30%:止盈拖拽(固定 85%)
6. 止盈触发 → 仓位关闭,获得利润
```
### SL 重新入场
- SL 触发后 → 阶梯重新入场(price / 1.05, price / 1.10, price / 1.15)
- 每次最多 3 次尝试
### x10 策略(高风险)
| 策略 | 时间框架 | 触发器 | 止损 | 止盈 | 最大仓位 |
|-----------|-----|---------|-----|-----|---------|
| Scalp M5 | M5 | BB + RSI 触碰 | -3% | Middle | 3 |
| Mean Revert | D | BB <5% 或 >95% | -5% | Middle | 5 |
| Funding Momentum | D | 资金 ±0.1% + BB + 趋势 | -4% | Middle | 3 |
⚠️ **x10 杠杆 — 清算时 ~10% 波动。**
---
## 通知格式
```
🔴 SHORT JUNK HMSTR:入场 $0.000373 限价 $0.000380 ×664190(3 倍)| 泵 +120% | 止盈 $0.000112 | DCA:+100% @ $0.000746,+120% @ $0.000821
🔴 SHORT MOVE:入场 $0.0143 限价 $0.0146 ×700(3 倍)| BB=92% | 止损 $0.0150 (+5%) | 止盈 $0.0120
🔴 DCA JUNK HMSTR:+100% @ $0.000746 ×664190 | 入场 $0.000373 → 现在 $0.000750
🔒 JUNK Trail TP HMSTR:利润 70% 固定 +22.5% | 入场 $0.000373 → 止盈 $0.000210(原 $0.000112)
🛑 STOP JUNK HMSTR:损失 -16.2% > 限制 15% | 入场 $0.000373 → 退出 $0.000433 | PnL $-12.40
⏰ TIMEOUT JUNK HMSTR:49 小时 > 48 小时限制 | 退出 $0.000380 | PnL $-1.20
```
---
## 风险管理
| 机制 | 详情 |
|----------|--------|
| 动态仓位调整 | 存款 × 风险 % / 最大仓位 × 积分乘数 |
| 存款回撤 | 警报 + 可选紧急关闭 -3% 日跌 / -15% 总回撤(可配置)|
| 日损限额 | 交易停止时 - $50/日 |
| 相关性阻塞 | ≥2 个仓位相关性 >0.8 阻塞 |
| x10 保护 | 最多 3 次 x10 亏损交易 → 24 小时冷却 |
| 层级保护 | 市场关闭如果价格在 2 倍更接近清算比止损 |
| 黑名单 | 配置驱动,永久 |
| JUNK 保护 | 最大损失 -15% 保证金,最大持有 48 小时,无止损 |
| **BlackSwan 多层级** 🆕 | 层级 1:BTC -3%/15 分钟 → 50% | 层级 2:BTC -5%/30 分钟 → 80% | 层级 3:BTC -8%/1 小时 → 100% |
| **金丝雀模式** 🆕 | 10% 入场使用新的自我学习参数,自动回滚失败 |
---
## 接口
### REST API(端口 8766)
```bash
curl http://localhost:8766/health # 状态
curl http://localhost:8766/positions # 仓位(读)
curl http://localhost:8766/scan?mode=short # 市场扫描
curl -H "Authorization: Bearer $TOKEN" \
-X POST http://localhost:8766/enter # 入场(写,需要认证)
```
### MCP Server
```python
# AI 代理(Claude Code, Codex, Cursor, Hermes)直接连接
mcp_bybit_ws_get_positions() # 仓位 + PnL + 止损
mcp_bybit_ws_scan_market() # BB 信号 LONG/SHORT
mcp_bybit_ws_get_metrics() # 日统计
mcp_bybit_ws_vpn_status() # VPN + 流量
```
### Python SDK
```python
from bybit_ws_sdk import Monitor
m = Monitor("http://localhost:8766", token="your-token")
# 市场扫描
signals = m.scan(mode="short", limit=5)
for s in signals["signals"]:
preview = m.enter(s["symbol"], "Sell", s["qty"], confirm=False)
print(f"Preview {s['symbol']": sell {preview['qty']} @ market")
m.enter(s["symbol"], "Sell", s["qty"], confirm=True)
# 仓位和指标
positions = m.positions() # 所有仓位 + PnL + 止损
metrics = m.metrics() # 日统计(SL/TP/entries)
pnl = sum(p["upnl"] for p in positions["positions"]) # 总 PnL
# 管理
m.set_sl("DOGEUSDT", 0.075) # 设置止损
m.close("APTUSDT") # 市场关闭仓位
m.cancel_all() # 取消所有订单
```
---
## 快速开始
### 安装
```bash
git clone https://github.com/poliakarmai/bybit-ws.git
cd bybit-ws
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
cp config.example.yaml ~/.config/bybit-ws/config.yaml
cp .env.example ~/.config/bybit-ws/.env
nano ~/.config/bybit-ws/.env # BYBIT_API_KEY, 400₽)或 ~2 TON
**付款:** Telegram Stars + TON(CryptoBot)。
机器人: [@Gridbolbot](https://t.me/Gridbolbot)
代码:`~/.local/bin/gridsignal-bot.py`
---
## 文档文件
| 文件 | 内容 |
|------|-----------|
| [`docs/README.md`](docs/README.md) | **完整文档:** 安装,操作,功能,错误,日志,检查 |
| [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md) | 架构:组件,数据流,数据模型,Mermaid 图表 |
| [`docs/API.md`](docs/API.md) | API 参考:20 个 RPC 接口,6 个 MCP 工具,curl 示例 |
| [`docs/SECURITY.md`](docs/SECURITY.md) | 安全:机密,威胁模型,事件,审计 |
| [`docs/TROUBLESHOOTING.md`](docs/TROUBLESHOOTING.md) | 问题解决:13 类别,60+ 原因 |
| [`DESIGN-STRATEGIES.md`](DESIGN-STRATEGIES.md) | 策略设计:Bollinger Grid,评分,风险管理 |
| [`AGENTS.md`](AGENTS.md) | AI 代理导航,自动路径发现 |
| [`CHANGELOG.md`](CHANGELOG.md) | 版本历史(Keep a Changelog) |
| [`config.example.yaml`](config.example.yaml) | 完整配置和注释 |
---
## 免责声明
**此软件交易期货,使用最高 10 倍杠杆。可能损失全部存款。** 作者不承担任何财务损失的责任。从 testnet 开始。
---
## 许可证
MIT
---
*Built for AI agents. Ready for yours. 联系方式 [@Poliakarm](https://t.me/Poliakarm).*