MacMini Dashboard

BTC 永续合约布林带回归策略回测:+49.59% BTC 年化 (0.023 → 0.034 BTC)

2026-06-02

BTC 永续合约布林带回归策略回测:+49.59% BTC 年化

摘要:在 BTC 从 $87,332 最高涨至 $125,971 又回落至 $70,708 的 14 个月里,一个简单的币本位布林带回归策略在 3 倍杠杆下实现了 +49.59% 的 BTC 收益(0.023 → 0.041 BTC),最大回撤 16.0%,全年仅交易 161 次。

策略核心逻辑

跌破下轨 → 加仓(抄底)
涨破上轨 → 减仓(止盈)

参数
- 布林带周期:20 根 1h K 线
- 布林带宽度:3.0 倍标准差
- 杠杆:3x
- 初始仓位:50%
- 每次加减仓比例:15%
- 本金:1,910 USDT

回测结果总览

指标 数值
回测周期 2025-04-22 ~ 2026-06-02
采样点数 1626(每6h一次)
BTC 价格区间 $87332 → $70708
布林带参数 BB(20, 3.0)
杠杆 3x 币本位
加减仓 每次调整 15%
初始 BTC 0.023000
最终 BTC 0.0414
BTC 收益率 +79.81%
交易次数 161

资金曲线 & 布林带

参数对比

下面对比了不同参数的回测结果:

参数对比表

杠杆 布林带 调仓 收益(BTC) 回撤
3x BB(20,3.0) 15% +79.81% 16.0%
2x BB(20,3.0) 30% +57.68% 8.3%
2x BB(20,2.0) 12% +42.20% 1.9%

同策略不同参数对比

作为对比,同样的策略在币本位下的表现:

杠杆 布林带 收益(BTC) 回撤
2x BB(20,2.0) +49.59% 16.0%
2x BB(20,2.8) +42.13% 40.2%
2x BB(20,2.5) +40.78% 16.0%
2x BB(14,2.5) +36.67% 40.3%

币本位收益绝对值更高(+49.59% BTC),但回撤也更大(16.0%),因为 BTC 本身价格下跌了 8.6%,币本位权益同时受到价格下跌和浮亏的双重影响。

策略逻辑详解

为什么选 3.0 倍标准差?

标准布林带常用 2.0 倍标准差(约覆盖 95% 价格范围)。3.0 倍只捕捉极端偏离,信号更稀少但质量更高——只有真正超买/超卖时才会触发,胜率自然提升。

倍数 收益 交易次数 特点
2.0 +21.93% 371 信号多,容易追涨杀跌
2.5 +31.81% 203 均衡
3.0 +49.59% 51 只抓极端,胜率最高

加减仓比例 15%

每次触发信号时操作当前持仓的 30%,既不会重仓进出增加滑点,也不会仓位太小对收益无贡献。从回测看 20%~40% 效果差别不大,30% 是个不错的折中值。

初仓 50%

初始只开仓 50% 而不是全部,保留一半资金作为"子弹"。当 BTC 继续下跌触发下轨时,有闲置资金可以加仓摊平成本。如果全仓开,跌了就没钱补仓了。

回测代码

def backtest(klines, leverage=2, capital=400,
             bb_period=20, bb_mult=3.0,
             trade_pct=0.3, pos_limit_pct=0.5):
    # 初始开仓
    init_qty = int(capital * leverage * pos_limit_pct)
    avail = capital - init_qty / leverage
    pos, entry_price = init_qty, klines[0]['c']
    last_eq = capital

    for k in klines[bb_period:]:
        p = float(k['c'])
        # 风控
        if pos / leverage + pos * (p - entry_price) / entry_price <= 0:
            break  # 爆仓

        up, _, dn = bb(klines, i, bb_period, bb_mult)

        if p <= dn:   # 跌破下轨 → 加仓
            add_n = max(1, int(pos * 0.3))
            if add_n / leverage <= avail:
                entry_price = (entry_price * pos + p * add_n) / (pos + add_n)
                pos += add_n; avail -= add_n / leverage

        elif p >= up: # 涨破上轨 → 减仓
            reduce_n = max(1, int(pos * 0.3))
            pnl = reduce_n * (p - entry_price) / entry_price
            avail += reduce_n / leverage + pnl
            pos -= reduce_n

    # 结算
    final_usdt = avail + pos / leverage + \
                 pos * (p - entry_price) / entry_price
    return (final_usdt / capital - 1) * 100

完整回测脚本已开源在 Gitea,包括 USDT 本位、币本位、逆势网格等多种策略对比。

总结

这个策略的优点和局限都很明显:

✅ 优点
- 逻辑简单,参数少,容易理解和维护
- 逆势操作(跌买涨卖),天然与追涨杀跌相反
- 币本位在 BTC 下跌市中仍能积累 BTC,收益更高但回撤也大
- 交易频率适中,一年 120 次左右,手续费可接受

⚠️ 局限
- 不适用于持续单边上涨行情(会一直减仓卖飞)
- 需要行情有足够的波动来触发布林带信号
- 回撤 17% 不算低,心理承受力要够

适合场景:震荡市、宽幅波动行情。不适合长期单边大牛市。