如何回测布林带策略
布林带策略以 20 周期 SMA 为中轨、上下各 2 倍标准差为上下轨进行交易。均值回归版本在收盘价低于下轨时买入,回到中轨时卖出;它在横盘市场中盈利、在趋势中亏损,趋势行情更适合突破策略。
布林带会实时适应波动率:市场动荡时扩张,市场平静时收窄。这使它同时适用于均值回归和突破策略。但你选择的方法必须与市场状态相匹配,否则结果会很惨。
什么是布林带?
布林带由 John Bollinger 在 1980 年代提出,由三条线组成:中轨(20 周期简单移动平均线)、上轨(中轨加 2 倍标准差)和下轨(中轨减 2 倍标准差)。
标准差部分正是布林带区别于简单包络线指标的地方。由于标准差衡量的是波动率,通道会在波动剧烈时自动变宽,在平静时自动收窄。从统计上看,如果收益率服从正态分布,大约 95% 的价格走势会落在 2 倍标准差通道之内。但实际上金融收益率具有肥尾特征(fat tails),因此价格触及或穿越通道的频率比正态分布预测的要高。
均值回归策略
均值回归(mean reversion)方法假设价格在触及外轨后会回到中轨。规则很简单:价格收盘低于下轨(或触及下轨)时买入,价格回到中轨或触及上轨时卖出。
这在价格围绕稳定均值波动的区间市场中效果很好。在回测中,横盘时期(例如 2015 年或 2018 年的 SPY)股指上的布林带均值回归策略往往显示出可观的夏普比率。危险在于在强趋势中使用这一策略:如果在 2008 年那样的崩盘中每次触及下轨都买入,你就是在一个没有底的下跌市场里不断摊低成本。
一个实用的改进:加入市场状态过滤器。只有当 50 日 SMA 的斜率平缓(既不明显向上也不明显向下),表明市场处于区间震荡时,才接受均值回归信号。
突破策略
突破(breakout)方法的思路正好相反:价格突破上轨时,说明动量足以支撑进一步上涨,因此收盘价高于上轨时买入,并持有到价格回到中轨。做空则在收盘价低于下轨时卖出。
突破策略在布林带挤压之后效果最好,即带宽异常狭窄的时期。其逻辑是:低波动状态往往先于大幅的单边行情。挤压就像一根压紧的弹簧,一旦释放,突破方向往往会延续。
在回测中,突破策略的胜率通常较低(30-40%),但平均盈利更大。难点在于挺过假突破带来的一连串小额亏损。仓位大小和止损位置至关重要,许多交易者把止损放在中轨,或设在基于 ATR 的固定距离上。
挤压识别
布林带挤压是技术分析中最具可操作性的形态之一。要将其量化,可以计算带宽:(上轨 - 下轨) / 中轨。当带宽跌破其 125 日(6 个月)最小值时,市场就处于挤压状态。
John Carter 的 TTM Squeeze 变体加入了肯特纳通道(Keltner Channels)作为第二重过滤:当布林带收缩到肯特纳通道之内时,挤压才算确认。在回测中,肯特纳过滤会进一步减少信号,但从历史上看能提高随后突破的方向准确度。
重要提示:挤压只告诉你行情即将到来,并不告诉你方向。你需要一个方向性触发条件,比如收盘价站上或跌破轨道、动量指标或成交量确认,来决定做多还是做空。
参数选择
默认的 20/2 设置经过了充分检验,但并非在所有情况下都是最优。调整参数时,请遵循以下原则:
- 较短周期(10):通道反应更快、信号更多,搭配 1.5 倍标准差
- 标准周期(20):反应速度均衡,使用 2.0 倍标准差
- 较长周期(50):更平滑、信号更少,使用 2.5 倍标准差以避免通道过窄
周期和标准差倍数应当一起调整。10 周期、2.0 倍标准差的布林带触及次数会极少,因为相对于近期价格走势,通道显得过宽。反过来,50 周期却只用 1.5 倍标准差的通道会被频繁触及,降低信号质量。
对市场状态的依赖
影响布林带策略表现的最重要因素是市场状态。均值回归策略在横盘市场中盈利、在趋势中亏损;突破策略在趋势市场中盈利、在震荡中亏损。没有哪一种布林带方法能适用于所有行情。
评估回测结果时,一定要按年份或市场状态拆分表现。如果你的均值回归策略整体夏普比率为 2.0,但在 2020 年和 2022 年(趋势行情)亏了钱,那么整体数字就具有误导性。一个稳健的策略在最差的市场状态下至少也应做到盈亏平衡,而不只是靠某一段有利时期拉高的漂亮平均值。
亲自试试
想在不写代码的情况下测试不同的布林带方法,只需用自然语言描述策略。使用 QuantPrompt,你可以输入:“在 MSFT 日线数据上,当价格收盘低于布林带下轨(20, 2)时买入;当价格回到中轨时卖出。仅在 50 日 SMA 斜率介于 -0.1% 和 +0.1% 之间时交易。”引擎会解析逻辑、运行回测,并返回完整的绩效报告。
在同一份数据上比较均值回归和突破方法,测试经挤压过滤的入场,看看哪些参数组合能在多种市场环境下取得稳定结果。