1.概念
布林线指标,即BOLL指标,其英文全称是“Bollinger Bands”,布林线(BOLL)由约翰 布林先生创造,其利用统计原理,求出股价的标准差及其信赖区间,从而确定股价的波动范围及未来走势,利用波带显示股价的安全高低价位,因而也被称为布林带。其上下限范围不固定,随股价的滚动而变化。布林指标和麦克指标MIKE一样同属路径指标,股价波动在上限和下限的区间之内,这条带状区的宽窄,随着股价波动幅度的大小而变化,股价涨跌幅度加大时,带状区变宽,涨跌幅度狭小盘整时,带状区则变窄。
2.计算方法
1)日BOLL指标的计算公式
中轨线=N日的移动平均线
上轨线=中轨线+两倍的标准差
下轨线=中轨线-两倍的标准差
2)日BOLL指标的计算过程
a.计算MA:MA=N日内的收盘价之和÷N
b.计算标准差MD:MD=平方根N日的(C-MA)的两次方之和除以N
C.计算MB、UP、DN线:
MB=(N-1)日的MA
UP=MB+2×MD
DN=MB-2×MD
3.BOLL指标意义:
布林线中长期看来是一种优秀的趋势指标,当布林线由收口转至开口时,表示股价结束盘整,即将产生剧烈波动,而股价的突破方向,标志着未来趋势的运动方向。也即,股价向上突破阻力线,则是一轮上升趋势,反之,将是下跌趋势。同时。平均线与阻力线(或支撑线)构成的上行(楚游)通道对于把握股价的中长期走势有着强烈的指示作用。
- 当布林线的上、中、下轨线同时向上运行时,表明股价强势特征非常明显,股价短期内将继续上涨,投资者应坚决持股待涨或逢低买入。
- 当布林线的上、中、下轨线同时向下运行时,表明股价的弱势特征非常明显,股价短期内将继续下跌,投资者应坚决持币观望或逢高卖出。
- 当布林线的上轨线向下运行,而中轨线和下轨线却还在向上运行时,表明股价处于整理态势之中。如果股价是处于长期上升趋势时,则表明股价是上涨途中的强势整理,投资者可以持股观望或逢低短线买入;如果股价是处于长期下跌趋势时,则表明股价是下跌途中的弱势整理,投资者应以持股观望或逢高减仓为主。
- 布林线的上轨线向上运行,而中轨线和下轨线同时向下运行,表明股价将经历一轮下跌,下跌的幅度将由开口的大小决定,反之,布林线的下轨线向下运行,而中轨线和上轨线同时向上运行,表明股价将经历一轮上涨,上涨的幅度将由开口的大小决定。
4.代码实现
import talib
import pandas as pd
import matplotlib.pyplot as plt
# 布林线
def Boll(data_df, para=[20, 2, 2, 0]):
timeperiod, nbdevup, nbdevdn, matype = para
data_df['boll_upper'], data_df['boll_middle'], data_df['boll_lower'] = talib.BBANDS(data_df.close.values,
timeperiod=timeperiod,
nbdevup=nbdevup, # 平均值的无偏标准偏差数
nbdevdn=nbdevdn,
matype=matype
# 移动平均线类型:此处为简单移动平均线
)
if __name__ == '__main__':
df = pd.read_csv('SH.601857.csv').iloc[-1000:, :]
Boll(df)
plt.figure()
plt.plot(df.close.values, label='close')
plt.plot(df.boll_upper.values, label='boll_upper')
plt.plot(df.boll_middle.values, label='boll_middle')
plt.plot(df.boll_lower.values, label='boll_lower')
plt.legend()
plt.show()