布林带(Bollinger Bands)指标是股市技术分析的常用工具之一。该指标由约翰 布林提出,基于K线图画出三条线,其中上下两条线可以分别看成是股价的压力线和支撑线,而在两条线之间还有一条股价平均线。布林线的交易规则比较复杂,可适用于震荡行情、单边行情、开口和缩口等不同情况,熟练运用需要结合行情进行分析。
不过笔者更乐意从统计的角度进行分析,布林带的上下线相当于围绕均值的置信区间带,只要是震荡行情,可以根据上限买下限卖,容易获利;但在趋势市场中,考虑到指标的滞后性,会出现K线一直位于布林线的上限或下限情况,因此,对于单边行情,感觉有悖统计学原理,笔者不喜欢用布林线进行单边行情的交易。
布林线虽然能够适合不同的行情,实际运用过程中,需要预先对市场行情进行预判,才会得到合理的运用。但并不是说布林线万能,布林带与大多数技术性指标一样,存在的问题就是滞后性和带宽的不对称性,当震荡(或波动)增加时,带宽会随之增加,但波动减少时,带宽会缓慢缩小。也就是说,带宽增加和减少具有不对称性。考虑到这个特点,实际分析中,有人对布林带指标进行修正。其中布林线均线、上限和下限对应的公式分别为:
为了对布林线和修正布林线指标有直观的理解,如下图6.1是以中国银行2017年度数据为例,其中红色虚线为原始布林线上下限,蓝色实线为修正的布林线上下限,可以看出,修正布林线带宽收缩比较快,如2018年上涨过程中,原始布林线下限大幅远离K线,而修正布林线下限的偏离程度很大程度上得到修正。
图6.1 布林线(虚线)与调整布林线(实线)指标在中国银行股票上的表现
下面基于修正布林带指标建立策略,分析布林带策略的有效性。此处仅考虑在震荡行情的运用,即布林线下限时买入,上限时卖出。此处把此指标运用于震荡市场中。同时为了防止趋势市场中这种策略的失效,附加止损5%。对应的策略设定见表6.1。
表6.1 修正布林带策略
在此基础上,利用quantstrat工具包系统,构建布林带指标,并建立相应信号和交易规则,并验证策略的有效性。对应的策略代码如下:
#----------------------------------------加载工具包并获取数据------------------------