使用Ta-lib计算MACD与KDJ 篇中给出了使用python talib模块计算MACD 和 KDJ值的方法,除了这两个指标,本篇再结合该模块,取下BOLL 布林线、RSI 强弱指数、OBV成交量三个指标。

一、BOLL布林线

布林线指标,即BOLL指标,其英文全称是“Bollinger Bands”,布林线(BOLL)由约翰 布林先生创造,其利用统计原理,求出股价的标准差及其信赖区间,从而确定股价的波动范围及未来走势,利用波带显示股价的安全高低价位,因而也被称为布林带。其上下限范围不固定,随股价的滚动而变化。布林指标和麦克指标MIKE一样同属路径指标,股价波动在上限和下限的区间之内,这条带状区的宽窄,随着股价波动幅度的大小而变化,股价涨跌幅度加大时,带状区变宽,涨跌幅度狭小盘整时,带状区则变窄。
布林线的计算公式如下:

1中轨线=N日的移动平均线
2上轨线=中轨线+K倍的标准差
3下轨线=中轨线K倍的标准差K为参数可根据股票的特性来做相应的调整一般默认为2

使用方法:

(1) 股价高于这个波动区间,即突破阻力线,说明股价虚高,故卖出
(2) 股价低于这个波动区间,即跌破支撑线,说明股价虚低,故买入

布林线可以使用BBANDS函数获取,具体代码如下:

 1import pandas as pd
 2import numpy as np
 3import talib as ta
 4import tushare as ts
 5dw = ts.get_k_data("600600")
 6dw = dw[-100:]
 7dw.index = range(len(dw))
 8dw['upper'], dw['middle'], dw['lower'] = ta.BBANDS(
 9                dw.close.values,
10                timeperiod=20,
11                # number of non-biased standard deviations from the mean
12                nbdevup=2,
13                nbdevdn=2,
14                # Moving average type: simple moving average here
15                matype=0)

二、RSI 强弱指数

相对强弱指数(RSI)是通过比较一段时期内的平均收盘涨数和平均收盘跌数来分析市场买沽盘的意向和实力,从而作出未来市场的走势。RSI在1978年6月由Wells Wider创制的一种通过特定时期内股价的变动情况计算市场买卖力量对比,来判断股票价格内部本质强弱、推测价格未来的变动方向的技术指标。
RSI 计算方法如下:

1RSI[上升平均数÷(上升平均数下跌平均数)]×100
2上升平均数在某一段日子里升幅数的平均下跌平均数在同一段日子里跌幅数的平均

使用方法:

  • 当RSI高于70时,股票可以被视为超买,是卖出的时候。
  • 当RSI低于30时,股票可以被视为超卖,是买入的时候。

计算 RSI 值 可以使用RSI函数,具体代码如下:

1import pandas as pd
2import numpy as np
3import talib as ta
4import tushare as ts
5dw = ts.get_k_data("600600")
6dw = dw[-100:]
7close = dw.close.values
8dw["rsi"] = ta.RSI(close, timeperiod=14)

三、OBV 成交量

股市技术分析的四大要素:价、量、时、空。OBV指标就是从“量”这个要素作为突破口,来发现热门股票、分析股价运动趋势的一种技术指标。它是将股市的人气——成交量与股价的关系数字化、直观化,以股市的成交量变化来衡量股市的推动力,从而研判股价的走势。关于成交量方面的研究,OBV能量潮指标是一种相当重要的分析指标之一。具体使用方法如下:

  • 当股价上升而OBV线下降,表示买盘无力,股价可能会回跌。
  • 股价下降时而OBV线上升,表示买盘旺盛,逢低接手强股,股价可能会止跌回升。

可以使用OBV函数获取该值,具体代码如下:

1import pandas as pd
2import numpy as np
3import talib as ta
4import tushare as ts
5dw = ts.get_k_data("600600")
6dw = dw[-100:]
7obvta = ta.OBV(dw['close'].values,dw['volume'].values)

注:其实OBV值其实不用单独取,在ts.get_k_data返回的结果里是有成交量这个值的。虽然两者的输出值可能会有区别,但在写条件时完全是可以通用的

四、有关画图

这里提到的五个指标,如果想要画成图,可以使用 python 下的matplotlib 模块。该模块有pyplot 函数,使用该函数可以生成图表,具体可以参考: gnuplot绘制性能监控图