布林带
布林带(Bollinger Band),由压力线、支撑线价格平均线组成,一般情况价格线在压力线和支撑线组成的上下区间中游走,区间位置会随着价格的变化而自动调整。布林线的理论使用原则是:当股价穿越最外面的压力线(支撑线)时,表示卖点(买点)出现。当股价延着压力线(支撑线)上升(下降)运行,虽然股价并未穿越,但若回头突破第二条线即是卖点或买点。在实际应用中,布林线有其滞后性,相对于其他技术指标在判断行情反转时参考价值较低,但在判断盘整行情终结节点上成功率较高。
计算方法:首先计出过去 N 日收巿价的标准差 SD(Standard Deviation) ,通常再乘 2 得出 2 倍标准差, Up 线为 N日平均线加 2 倍标准差, Down 线则为 N日平均线减 2 倍标准差。
代码:ta.BBANDS(close, timeperiod=5, nbdevup=2, nbdevdn=2, matype=0)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import talib as ta
import tushare as ts
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
df = ts.get_k_data('sh', start='2000-01-01')
df.index = pd.to_datetime(df.date)
df = df.sort_index()
H_line, M_line, L_line = ta.BBANDS(df.close, timeperiod=20,
nbdevup=2, nbdevdn=2,
matype=0)
df1 = pd.DataFrame(df.close, index=df.index, columns=['close'])
df1['H_line'] = H_line
df1['M_line'] = M_line
df1['L_line'] = L_line
df1.tail()
df1.loc['2015-01-01':'2019-09-30'].plot(figsize=(16,6))
ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
plt.title('上证指数布林线', fontsize=15)
plt.xlabel('')
plt.show()