🎯 BB 双向套利策略 — 完整策略文档

SkillCommerce & finance

BB two-way arbitrage strategy: crypto futures Bollinger Band mean reversion with 10x leverage. Narrowing Bollinger Bands = sideways market → buy at the lower band, sell at the upper band; a triple filter (1h trend/RSI/BB sweet spot) confirms the bowl is flat, with band-to-band take profit (RR 2:1~4:

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the 🎯 BB 双向套利策略 — 完整策略文档 skill

What this skill tells your AI

The instructions your AI receives, as published by aaaaqwq/agi-super-team in skills/bb-scalper/SKILL.md and read by ahel’s review.

版本: 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
NEAR168h3135%+13.2%-2.5%+95.4%
DOGE72h944%+7.8%-2.5%+18.6%
INJ72h1323%+11.3%-2.5%+9.0%

TUTUSDT 反例

指标TUTUSDTNEARUSDT
BB 宽度47.5%1.13%
信号数10031
胜率1%35%
本金 $100$-69(穿仓)+$95
死因宽度超大 + 单边下跌 = 被 BB 伪信号反复止损

六、交易参数表

参数说明
BB 周期2020 根 K 线
BB 标准差2.02σ 布林带
入场触发%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 接口设计

# 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

Signals

GitHub stars
92
Forks
23
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
bb-scalper
Source
github.com/aaaaqwq/agi-super-team