BB 双向套利策略:加密合约 10x 杠杆布林带均值回归。布林带收窄=横盘→在下轨买、上轨卖;三重过滤器(1h趋势/RSI/BB甜区)确认碗平放,轨对轨止盈(RR 2:1~4:1)。含实时WebSocket模拟盘(paper)、历史回测(simulate/backtest_daily)、币安永续实盘CLI(trade_exec)。触发:'bb套利'、'布林带'、'bollinger'、'横盘策略'、'NEAR'、'回测'、'模拟盘'、'paper trading'。
Scanned 9/5/2026
Install to Claude Code
npx -y skills add aAAaqwq/AGI-Super-Skills --skill bb-scalper --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Bb Scalper?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/aaaaqwq-bb-scalper)More formats (shields.io, HTML) on the badges page.
---
name: bb-scalper
description: "BB 双向套利策略:加密合约 10x 杠杆布林带均值回归。布林带收窄=横盘→在下轨买、上轨卖;三重过滤器(1h趋势/RSI/BB甜区)确认碗平放,轨对轨止盈(RR 2:1~4:1)。含实时WebSocket模拟盘(paper)、历史回测(simulate/backtest_daily)、币安永续实盘CLI(trade_exec)。触发:'bb套利'、'布林带'、'bollinger'、'横盘策略'、'NEAR'、'回测'、'模拟盘'、'paper trading'。"
author: Daniel Li
---
# 🎯 BB 双向套利策略 — 完整策略文档
> **版本**: v2.0 三重过滤 | **更新**: 2026-08-11
> **定位**: 加密合约 10x 杠杆双向套利 Skill
> **适配币种**: USDT 永续合约(主流优先)
---
## 零、一句话说清楚
> **布林带收窄 = 横盘震荡 → 在下轨买、上轨卖;在上轨卖、下轨买。
> 不赌方向,只吃区间振荡的统计优势。**
---
## 一、策略直觉:硬币在碗里滚
想象一个碗——左边是下轨、右边是上轨。硬币在里面滚来滚去:
```
上轨 ═══════════ 🔴 做空入场 ────
│ │
│ 价格在碗里来回弹 │
│ │
下轨 ═══════════ 🟢 做多入场 ─────
```
**做多逻辑**:硬币滚到碗左边(%B < 0.15)→ 大概率弹回去 → 买入,等它滚到右边再卖
**做空逻辑**:硬币滚到碗右边(%B > 0.85)→ 大概率弹回去 → 卖出,等它滚到左边再买
但市场的碗会变形——有时变窄(没空间赚)、有时倾斜(趋势中不能做)。所以需要**三重过滤器**确认碗是稳定平的。
---
## 二、核心数学:为什么「轨对轨」是唯一解
### ❌ 错误方案:止盈放中轨(我们踩的第一个坑)
```
做多: 入场=下轨 → 止盈=中轨 → 收益=1σ
止损=下轨下面 → 风险=1σ + 缓冲
RR = 1σ / (1σ + 0.15%) < 1 ← 永远亏多赚少!
```
**扫了 20 个币,15 个在震荡,RR 没一个超过 1.1。** 数学死结,不是参数问题。
### ✅ 正确方案:轨对轨(解法一)
```
做多: 入场=下轨 → 止盈=上轨 → 收益=2σ
止损=下轨外 0.15% → 风险 ≈ 1σ + 0.15%
RR = 2σ / (1σ + 0.15%) ≈ 2:1 到 4:1 ✅
```
**一句话**:止盈必须放到对侧轨道——吃整个区间,而不是只吃到中轨。
---
## 三、三重过滤器(v2.0 核心)
### 🔴 过滤器一:趋势过滤
**检查**:1h K 线的布林带中轨斜率
```
做多: 1h 中轨不能明显下行(斜率 > -0.06%)
做空: 1h 中轨不能明显上行(斜率 < +0.06%)
斜率 < 0.03% = 走平 ✅ 最优
斜率 0.03%-0.06% = 弱趋势,顺方向可以做
斜率 > 0.06% = 明确趋势,禁止逆势
```
**为什么**:碗底在下陷 → 硬币碰到底不会弹 → 假突破扫止损。趋势过滤就是确认碗是平放的。
**实际效果**:刚才扫码,ETH/SOL/BTC/INJ 四个币做空信号全被「1h 中轨上行」拦下——这些恰好是 v1.0 里连续止损 6-8 根的元凶。
---
### 🟡 过滤器二:RSI 确认
**检查**:价格是否已经超买/超卖
```
做多: RSI < 55 才做(不在高位接盘)
RSI 30-45 加分(超卖反弹概率大)
做空: RSI > 45 才做(不在低位砸盘)
RSI 55-70 加分(超买回落概率大)
```
**直觉**:下轨 + RSI 70 = 趋势刚启动、还会继续跌,买就是接飞刀。
---
### 🟢 过滤器三:BB 甜区
**检查**:布林带宽度是否合适
```
< 0.8%: 太窄 → 10x 利润不够覆盖滑点+手续费 → 跳过
0.8-2.5%: 甜区 → 可以做
> 2.5%: 太宽 → 不是真横盘,是波动行情 → 跳过
```
**各币宽度速查**:
| 宽度 | 币种例子 | 判断 |
|------|---------|------|
| 0.71% | XRP | ❌ 太窄 |
| 0.87% | BTC | ⚠️ 刚够线 |
| 0.88% | AVAX | ✅ 甜区 |
| 1.13% | NEAR | ✅ 甜区中心 |
| 2.75% | ATOM | ❌ 太宽 |
| 47.5% | TUT | ❌ 崩溃行情 |
---
## 四、动态宽度适配(🎯 进阶)
> 当前固定甜区 0.8-2.5%。但能否根据 BB 宽度**动态调整**而非一刀切?
### 分析
```
BB宽度 1%: 10x 杠杆 → 轨对轨 10% 收益 | 止损 1.5% | RR 6.7:1
BB宽度 2%: 10x 杠杆 → 轨对轨 20% 收益 | 止损 2.3% | RR 8.7:1
BB宽度 3%: 10x 杠杆 → 轨对轨 30% 收益 | 止损 3.2% | RR 9.4:1
```
**RR 数字看上去更好看,但物理上不成立**:
1. **宽度越大 → 越不是真横盘**。3% 宽度的振荡区间,价格从下轨走到上轨需要更多时间 → 中途转向概率大增 → 实际胜率暴跌
2. **止损距离变大**。0.15% × 3% = 更大的绝对止损 → 单笔亏损变大 → 连续止损的杀伤力更大
3. **市场在 2-3% 宽度时通常不是 RANGING,是 TRENDING 的早期阶段**——RSI 已经给出方向,趋势过滤大概率拒掉
### 结论
| BB 宽度 | 状态 | 策略结论 |
|---------|------|---------|
| < 0.8% | 太窄 | 不做。等待 BB 张口。 |
| 0.8-1.5% | **最优** | NEAR 级别,标准策略 |
| 1.5-2.5% | 可做 | 接受更低胜率(~25-30%),但 RR 更高 |
| 2.5-4% | 观望 | 等收窄到 2.5% 以下再入场 |
| > 4% | 不做 | 波动行情,非套利模式 |
**建议**:当前 v2.0 的 0.8-2.5% 甜区是最优的——已经覆盖了最稳定的横盘区间。拓宽到 3-4% 会引入大量假信号,反而降低净收益。先在小范围验证,数据说话。
---
## 五、回测数据
### 表现汇总
| 币种 | 回测期 | 信号 | 胜率 | 均盈 | 均亏 | 累计 PnL |
|------|--------|------|------|------|------|-----------|
| NEAR | 168h | 31 | 35% | +13.2% | -2.5% | **+95.4%** |
| DOGE | 72h | 9 | 44% | +7.8% | -2.5% | +18.6% |
| INJ | 72h | 13 | 23% | +11.3% | -2.5% | +9.0% |
### TUTUSDT 反例
| 指标 | TUTUSDT | NEARUSDT |
|------|---------|----------|
| BB 宽度 | 47.5% | 1.13% |
| 信号数 | 100 | 31 |
| 胜率 | **1%** | 35% |
| 本金 $100 | **$-69(穿仓)** | **+$95** |
| 死因 | 宽度超大 + 单边下跌 = 被 BB 伪信号反复止损 |
---
## 六、交易参数表
| 参数 | 值 | 说明 |
|------|-----|------|
| BB 周期 | 20 | 20 根 K 线 |
| BB 标准差 | 2.0 | 2σ 布林带 |
| 入场触发 | %B < 0.15 (做多) / > 0.85 (做空) | 价格逼近轨道 |
| 止盈 | 对侧轨道(轨对轨) | 2σ 空间 |
| 止损 | 入场轨外 0.15% | 紧止损 |
| 杠杆 | 10x | 固定 |
| 单笔风险 | 2% of 本金 | |
| 最大仓位 | $100 名义价值 | |
| SL 冷却 | 连续止损后 3 根 K 线 | 防集群止损 |
| 最大持仓 | 12 根 K 线(3h) | 超时强制平仓 |
---
## 七、脚本框架
```
projects/bb-scalper/
├── SKILL.md ← 你正在读的(策略文档)
├── cli/
│ ├── kline_fetch.py → 查询合约 K 线数据
│ ├── trade_exec.py → 对接币安交易接口(入场/止盈/止损)
│ ├── trade_log.py → 记录 + 统计交易记录
│ └── simulate.py → 模拟交易(不实际下单)
├── core/
│ ├── strategy.py → 策略核心逻辑(BB + 三重过滤)
│ └── filters.py → 趋势/RSI/甜区过滤器
└── config.yaml → 可调参数(甜区/杠杆/仓位等)
```
### CLI 接口设计
```bash
# 1. K线查询
python cli/kline_fetch.py --symbol NEARUSDT --interval 15m --limit 100
python cli/kline_fetch.py --scan # 扫 20 主流合约
# 2. 交易执行
python cli/trade_exec.py --symbol NEARUSDT --side LONG \
--entry 1.592 --tp 1.610 --sl 1.589 --qty 6
# 3. 交易记录
python cli/trade_log.py --list # 列出所有交易
python cli/trade_log.py --summary # 统计摘要
python cli/trade_log.py --export-csv trades.csv
# 4. 模拟交易
python cli/simulate.py --symbol NEARUSDT --hours 168 # 历史回测
python cli/simulate.py --paper # 实时模拟(不下单)
```
---
## 八、风险说明
| 风险 | 应对 |
|------|------|
| 假突破扫止损(65%频率) | 紧止损(-2.5%),小亏频繁但不致命 |
| 大行情打破区间 | 趋势过滤拦截 + 冷却机制 |
| 滑点(止损跳空) | 仅做主流合约(USDT 永续流动性好) |
| 手续费 | 轨对轨利润(~10%)远大于手续费(0.04%) |
| 过度交易 | 三重过滤 ≥ 筛掉 60% 噪音信号 |
---
## 九、使用原则
1. **仅用于横盘震荡市场**。趋势行情中 BB 套利 = 送钱。
2. **模拟盘验证优先**。先用 `simulate.py --paper` 跑一周,确认表现再实盘。
3. **分散币种**。不要只押一个币,NEAR/AVAX/INJ 各分一部分。
4. **每次执行前跑一次 scan**。确认三重过滤仍然通过。
5. **当 BB 宽度 > 4% 或 RSI 极端时暂停**。等市场平静再入场。
---
## 十、选币准则(月/周线过滤,🎯 2026-08-11 验证)
> 从 30/60/90 天回测 + 月线/周线分析得出。**选币比参数更重要**——同样策略,
> 横盘质量好的币月赚 500-1400%,差的币回撤 50%+ 拿不住。
### 核心规律
1. **「月线震荡」≠「适合」**。ETH/LINK 月净向≈0 但月振幅 44-49%,是"大振幅波动"不是"横盘"——BB 套利照样反复止损(ETH 90 天回撤 53%)。
2. **真横盘 = 小振幅 + 温和方向**。月线振幅 < 50% 且 |净向| < 25% 才适合。
3. **振幅比方向更重要**。月振幅 < 40% 的币(BTC/BNB)回撤天然低;月振幅 > 100%(NEAR 168%)波动大,短期好长期回撤飙。
4. **高回撤 ≠ 高收益可接受**。LINK(+739%回撤57%)/ARB(+636%回撤50%)/LTC(+401%回撤61%)——实盘会腰斩,多数人拿不住。
### 选币评分表(按月线)
| 月线特征 | 判断 | 示例 |
|---------|------|------|
| 振幅 < 40% + \|净向\| < 15% | ✅ 首选,横盘最稳 | BTC / BNB |
| 振幅 < 50% + \|净向\| < 25% | ✅ 适合 | SOL / XRP |
| 振幅 < 60% + 单一方向下行 | ⚠️ 可做,注意趋势过滤 | DOT / ATOM |
| 振幅 > 100% 或 \|净向\| > 40% | ❌ 波动/趋势行情,避开 | NEAR / INJ |
| 振幅 40-50% 但 \|净向\|≈0 | ⚠️ 大振幅震荡,伪横盘 | ETH / LINK |
### 操作流程
**A. 全市场扫描(🎯 2026-08-13 新增,替代手工选币)**
> 币安 USDT 永续合约 **527 个**,逐个人工看太慢。用「预筛 → 深度分析 → 推荐」三级漏斗:
1. **轻量预筛 527 个 → 30 个候选**
- 拉币安 `exchangeInfo`,筛掉无流动性(24h 成交额过低)、非 USDT 永续、非 TRADING 状态的
- 筛掉价格异常(市值太小/买卖盘太薄)的币
- 只留流动性好、可交易的合约
2. **深度分析 30 个 → 推荐 3-5 个**
- **布林带维度**:7 天 15m BB 宽度是否持续在甜区(0.8%-2.5%)且稳定(标准差低);%B 能反复触轨(<0.15 或 >0.85)
- **趋势/动量维度**:7 天 1h 中轨斜率接近 0(|斜率|<0.03%);30 天净方向温和(|净向|<10%);振幅适中(10-40%);RSI 中枢 40-60
- **回测维度**:跑 `cli/backtest_daily.py --days 7/30`,看累计 PnL 正、最大回撤 < 20%、日均交易 ≥ 2、有交易天数占比高
3. **交叉验证**:三个维度(布林带 + 趋势 + 回测)**一致看好**的币才入选;任一维度明显矛盾(如回测好但趋势强)则降级
4. **启动 testnet 模拟盘**:`python3 cli/paper_testnet.py --symbols <推荐币> --capital 500` 跑 7 天验证
**B. 月线过滤(原方法,作为补充确认)**
1. 拉月线(6 根)算**振幅 = (最高-最低)/起点** 与**净向 = (现价-起点)/起点**
2. 筛掉振幅 > 60% 或 |净向| > 30% 的币
3. 对剩余币跑 `cli/backtest_daily.py --days 30 --min-daily 2` 看**最大回撤 < 20%** 且日均交易 ≥ 2
4. 每次入场前仍跑 `scan` 确认 15m 三重过滤通过(选币是长期过滤,15m 是入场过滤)
---
*天枢 · 2026-08-11*
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!