布林带:解读 %B 和 BandWidth,切勿将“挤压”(squeeze)直接视为交易信号
计算布林带指标 %B 和 BandWidth,比较市场内的波动率收缩情况,并将“挤压”形态与方向性交易规则区分开来
本指南内容将布林带视为相对位置指标
简短摘要
布林带将移动平均线与离散度指标结合,构建出价格包络线。由此衍生的两个数值分别回答了不同的问题:%B 指示价格相对于上下轨的位置(位于带内还是带外),而 BandWidth 则反映了包络线宽度相对于其中轴的比例。请学习如何计算这两个指标,将其宽度与同一市场的历史数据进行比较,并将“挤压”视为一种需要研判的市场状态,而非对未来价格走势的预测。
将布林带视为相对位置指标
布林带的上轨和下轨描述了价格相对于所选移动平均线及近期离散度(波动率)的位置。收盘价接近上轨意味着相对于该滚动参考基准处于高位;收盘价接近下轨则处于低位。这两种位置既不代表固定的估值,也不构成预测或价格反转的概率指示。由于参考窗口是移动的,即使当天的价格几乎没有变化,布林带也可能发生位移。触及布林带只是一种需要结合趋势、K线时机及待测规则来解读的现象,而非完整的买入或卖出指令。原始规则明确指出,仅触及布林带并不构成交易信号,且在强劲趋势中,价格可能会沿布林带边缘持续运行(即“贴轨”)。 {source:johnBollingerBandsRules}
根据输入参数重新构建包络线
一种常见的构建方式是使用 20 周期的简单移动平均线作为中轨,并将外轨分别设置在中轨上下两个标准差的位置。其表示形式为 Basis = MA(source, n)、Upper = Basis + k × σ 和 Lower = Basis − k × σ,其中 n 代表窗口期,k 代表乘数,σ 代表所选数据源在该窗口期内的离散度。常用的 20 和 2 只是默认值,而非通用设置。数据源、基准类型、时间周期、窗口期、乘数以及任何绘制的偏移量,都会影响图表的显示效果。在比较两个平台或将信号复制到脚本中之前,请先核对这些输入参数。 {source:tradingViewBollingerBandsGuide}
使用 %B 量化价格位置
%B 将当前价格的位置转换为相对于当前轨道带(bands)的标度:%B = (Price − Lower) / (Upper − Lower)。当值为 0 时,价格位于下轨;当值为 0.5 时(且轨道带关于基准线对称),价格位于中点;当值为 1 时,价格位于上轨。数值小于 0 或大于 1 意味着价格处于轨道包络线之外。这是一个归一化位置值,而非未来结果的百分位。通常显示的 0.2 和 0.8 水平仅为惯用参考值,因此请明确您的规则是基于“K线内触及”、“K线收盘价”还是“确认穿越”来判定。 {source:tradingViewBollingerPercentB}
使用 BandWidth 衡量压缩程度
BandWidth 根据中间轨道线对外部轨道线之间的距离进行重新标度:BandWidth = 100 × (Upper − Lower) / Basis。该指标通常以百分比形式显示。当基准线为正值时,数值下降意味着包络线相对于基准线变窄;而离散度增加通常会导致包络线变宽。在不同的价格水平下,较小的原始距离与较小的 BandWidth 数值并不代表相同的含义。分母的选择也很关键:如果基准线为零,则比率无定义;对于零或负值的基准线,需要采用特定的解读方式,而不能简单地进行自动百分比比较。BandWidth 衡量的是压缩程度,而非后续价格变动的原因或方向。 {source:tradingViewBollingerBandWidth}
利用这组设定的五个收盘价数据点来观察上述两个衍生指标。这五个收盘价分别为 97, 99, 100, 101, and 103。其五值均值为 100;本例采用总体标准差(population-divisor)惯例计算,标准差为 sqrt((9 + 1 + 0 + 1 + 9) / 5) = 2。当 k=2 时,布林带上下轨分别为 104 and 96。当价格为 103 时,%B = (103 − 96) / (104 − 96) = 0.875,而 BandWidth = 100 × 8 / 100 = 8%。若价格为 105,则 %B 将处于 1.125 位置,即位于上轨之外;但这并不意味着存在 112.5% 的某种概率。这个包含五个数据点的算术示例并非默认的 20 周期图表设置;若要进行平台间比较,仍需确保标准差计算方法及基准设定的一致性。
<!-- learn:figure -->

将当前的压缩状态与该市场的历史数据进行比较
“挤压”(squeeze)形态的识别需要设定一个比较窗口。即便在相同的图表周期下,8% 的 BandWidth 读数对于某个交易品种而言可能接近六个月低点,而对于另一个品种来说则属常态。TradingView 同样提醒道,形态的“狭窄”程度取决于交易品种和时间周期,并建议参考该指标及价格的历史表现。在观察结果之前,应先选定回溯期、使用已完成的观测数据并设定阈值。例如,研究者可以把低于该品种此前 125 根已完成 K 线 BandWidth 第 10 百分位的读数标记出来。这仅是一种研究定义,既非官方默认设置,也不保证后续必然出现行情扩张。 {source:tradingViewBollingerBandWidth}
等待独立的趋势方向判定规则给出信号
“压缩”状态本身并不预示随后的突破方向是向上还是向下。一个实用的操作原则是将“预警”与“触发”区分开来:首先标记出预设的低宽度状态,然后等待明确的价格事件(如收盘价突破指定区间边界),最后确定何时下单。前文提到的 125 根 K 线窗口和 10% 分位阈值仅为假设参数。应在历史数据上测试各种替代方案,切勿在观察到哪种参数产生了最理想的突破效果后才去选择窗口。挤压状态可能持续存在,且首次突破也可能失败或发生反转;仅凭该形态本身并不构成入场信号。
解读趋势内的布林带突破情况
收盘价超出区间边界并不自动意味着处于超买需卖出或超卖需买入的状态。在持续性行情中,价格可能会在趋势延续的同时反复触及或收于上轨之外;下轨处也可能出现镜像情况。约翰·布林格(John Bollinger)的规则指出,此类收盘情况最初更多地预示着趋势延续而非反转,尽管仍需结合具体情况进行解读。如果反转规则使用 %B,则需明确区分反转与“沿轨运行”(band-walking)的额外依据,例如预设的趋势过滤器或后续的价格结构。不要仅仅因为几个相关指标名称不同,就将其视为相互独立的验证依据。 {source:johnBollingerBandsRules}
在测试前固定各项设置
记录以下参数:数据源、基准类型、回溯周期、乘数、时间框架、交易时段、价格调整、偏移量、挤压(squeeze)阈值以及当前K线(bar)是否已完成。如果信号基于当前K线的收盘价和当前布林带(bands),则该收盘价也会影响滚动均值和离散度计算。如果预期的边界必须在K线开始前确定,则应改为与上一根已完成K线的布林带进行比较;这是两种不同的规则。随后,基于可交易价格,说明订单触发条件、下一次可用执行时间、止损设置、仓位规模、跳空(gap)处理方式、费用以及滑点假设。图表条件判定与模拟或实盘成交属于流程中相互独立的环节。
常见问题
Q1两倍标准差通道是否包含了 95% 的未来价格?
不包含。基于标准差的构建方式并不意味着布林带(Bollinger Bands)构成 95% 的置信区间或概率预测。价格观测值并非独立的正态分布样本,且该指标的创建者也告诫不要基于通道计算结果做出统计学假设。
Q2布林带收缩(squeeze)能否预测价格突破的方向?
不能。BandWidth 衡量的是相对收缩程度。这需要配合单独预设的价格触发条件和方向判断规则,且突破也可能失败。
Q3收盘价高于上轨是否自动意味着处于超买状态?
不是。轨道线反映的是相对位置。在强劲趋势中,价格可能会沿着上轨运行(即“贴轨”),因此触及或收于上轨之外,本身并不构成反转信号。
资料来源与延伸阅读
报告问题
我们会准备一封包含本文链接的邮件。发送后,Mark 才会收到你的反馈
快速检查
读完指南后,用 3 道题检查一下
问题 01
若下轨为 96,上轨为 104,价格为 103,则 %B 的值为多少?
选择答案即可查看解释
期权术语表
清楚解释从看涨、看跌和期权链到 IV、希腊字母、未平仓量与最大痛点等核心期权术语
浏览期权术语表