TA-Lib学习研究笔记(八)——Momentum Indicators 下
Momentum Indicators 动量指标,是最重要的股票分析指标,能够通过数据量化分析价格、成交量,预测股票走势和强度,大部分指标都在股票软件中提供。
21. ROCP-Rate of change Percentage: (price-prevPrice)/prevPrice
函数名:ROCP
名称:计算价格变化率百分比
简介:用于计算价格变化率百分比。该函数接受两个参数:当前价格(price)和前一周期的价格(prevPrice)。
ROCP 的计算公式为:(price - prevPrice) / prevPrice * 100。它表示当前价格相对于前一周期价格的变化百分比。
ROCP 函数的返回值是一个实数,表示价格变化率百分比。正值表示价格上涨,负值表示价格下跌。如果返回值为 0,则表示价格没有变化。
ROCP 是一种常用的技术分析指标,用于衡量价格动量的强度。它可以帮助投资者判断价格趋势的持续性,并作为买卖决策的参考依据之一。当 ROCP 值较高时,表示价格正在经历强劲的上涨或下跌趋势,而较低的值则可能意味着趋势正在减弱或发生转折。
语法:
real = ROCP(close, timeperiod=10)
df['ROCP'] = tlb.ROCP(df['close'], timeperiod=10)
# 做图
df[['ROCP','close']].plot(subplots=True,figsize=(6, 4),title='ROCP',grid=True)
plt.legend() # 设置图示
plt.show()
22. ROCR-Rate of change ratio: (price/prevPrice)
函数名:ROCR
名称:计算价格变化率百分比
简介:用于计算价格变化率百分比。该函数接受两个参数:当前价格(price)和前一周期的价格(prevPrice)。
用于计算价格变化率比率。该函数接受两个参数:当前价格(price)和前一周期的价格(prevPrice)。
ROCR的计算公式为:price / prevPrice。它表示当前价格相对于前一周期价格的变化比率。
ROCR函数的返回值是一个实数,表示价格变化率比率。如果返回值大于1,表示价格上涨;如果返回值小于1,表示价格下跌。
语法:
real = ROCR(close, timeperiod=10)
df['ROCR'] = tlb.ROCP(df['close'], timeperiod=10)
# 做图
df[['ROCR','close']].plot(subplots=True,figsize=(6, 4),title='ROCR',grid=True)
plt.legend() # 设置图示
plt.show()
23. ROCR100-Rate of change ratio 100 scale: (price/prevPrice)*100
函数名:ROCR
名称:计算价格变化
简介:变化率比率指标,计算公式为 (price/prevPrice)*100。和ROCR很相似,只不过是把结果放大了100倍,使得结果更为直观。
语法:
real = ROCR100(close, timeperiod=10)
df['ROCR100'] = tlb.ROCR100(df['close'], timeperiod=10)
# 做图
df[['ROCR100','close']].plot(subplots=True,figsize=(6, 4),title='ROCR100',grid=True)
plt.legend() # 设置图示
plt.show()
24. RSI-Relative Strength Index
函数名:RSI
名称:相对强弱指数
简介:是通过比较一段时期内的平均收盘涨数和平均收盘跌数来分析市场买卖盘的意向和实力,从而作出未来市场的走势。
其原理就是通过计算股价涨跌的幅度来推测市场运动趋势的强弱度,并据此预测趋势的持续或者转向。实际上它显示的是股价向上波动的幅度占总的波动幅度的百分比,如果其数值大,就表示市场处于强势状态;如果数值小,则表示市场处于弱势。是一个测市的重要指标,但他的作用与股票和期货的市值大小有着密切的关系:盘子大的波动幅度小,盘子小的波动幅度大。
其具体的计算方法是:
RSI(n) =A/(A+B)×100%
其中A表示n天中股价向上波动的幅度大小,而B则表示n天中股价向下波动的大小。A+B表示股价在此期间总的波动幅度大小。
⑴受计算公式的限制,不论价位如何变动,强弱指标的值均在0与100之间。⑵强弱指标保持高于50表示为强势市场,反之低于50表示为弱势市场。
⑶强弱指标多在70与30之间波动。当六日指标上升到达80时,表示股市已有超买现象,如果一旦继续上升,超过90以上时,则表示已到严重超买的警戒区,股价已形成头部,极可能在短期内反转回转。
⑷当六日强弱指标下降至20时,表示股市有超卖现象,如果一旦继续下降至10以下时则表示已到严重超卖区域,股价极可能有止跌回升的机会。
⑸每种类型股票的超卖超买值是不同的。
在牛市时,通常蓝筹股的强弱指数若是80,便属超买,若是30便属超卖,至于二三线股,强弱指数若是85至90,便属超买,若是20至25,便属超卖。
语法:
real = RSI(close, timeperiod=14)
df['RSI'] = tlb.RSI(df['close'], timeperiod=14)
# 做图
df[['RSI','close']].plot(subplots=True,figsize=(6, 4),title='RSI',grid=True)
plt.legend() # 设置图示
plt.show()
25. STOCH-Stochastic
函数名:STOCH
名称:随机指标,俗称KD
简介:
1、KD超过80就该考虑卖出,低于20就应该考虑买入了。仅仅是信号,并不能完全按这种方法进行操作,仅供操作参考。
2、当KD指标在较高或较低的位置形成了头肩形和多重顶(底)时,是采取行动的信号。位置越高或越低,结论越可靠。
3、K与D的关系就如同股价与MA的关系一样,也有死亡交叉和黄金交叉的问题,不过这里交叉的应用是很复杂的,还附带很多其他条件。以K从下向上与D交叉为例:K上穿D是金叉,为买入信号。
应用法则
1、K值与D值永远介于0―100区间,分界线50;
超买区间80—100,行情呈现超买现象;
超卖区间0----20,行情呈现超卖现象;
2、KD指标不适于发行量小、交易不活跃的股票。但KD指标对大盘和热门大盘股有极高准确性。
3、当KD指标与股价出现背离时,一般为转势信号,中期或短期的走势有可能已见顶或见底。
4、当K值和D值上升或下跌的速度减弱,倾斜度趋于平缓时,这是短期转势的预警信号。
KD线在80以上,20以下发生交叉,进行买卖比较可靠 。
5、在超买超卖区间的金叉死叉
如果KD黄金交叉发生在20以下时,是最佳买点
如果KD死亡交叉发生在80以上时,是最佳卖点
6、钝化现象
技术分析的基本前提是:趋势有惯性,无论上涨或是下跌,一旦开始,那么它将持续一段时间,直到再次发生转折。
需要意识到两件事:第一是识别趋势,第二是发现趋势的转折。
需要说明:趋势出现转折之后,发现转折,而非预测趋势的转折。使用的多数分析工具,都是建立在跟随趋势这一基础之上。在实际操作中很多人用这些跟随趋势的工具去预测趋势,无疑是错误的,因为它本身就没有这样的功能。
参数:
语法:
slowk, slowd = STOCH(high, low, close, fastk_period=5, slowk_period=3, slowk_matype=0, slowd_period=3, slowd_matype=0)
#定义dataframe
df_kd = pd.DataFrame()
# 设置index
df_kd['trade_date'] = df.index
df_kd.set_index('trade_date',inplace=True)
#df['slowk'] ,df['slowd'] = tlb.STOCH(df['high'],df['low'],df['close'], fastk_period=5, slowk_period=3, slowk_matype=0, slowd_period=3, slowd_matype=0)
df_kd['slowk'] ,df_kd['slowd'] = tlb.STOCH(df['high'],df['low'],df['close'], fastk_period=5, slowk_period=3, slowk_matype=0, slowd_period=3, slowd_matype=0)
# 做图
df_kd.plot(figsize=(8, 4),title='STOCH',grid=True)
df[['high','low','close']].plot(figsize=(8, 4),title='K线',grid=True)
plt.legend() # 设置图示
plt.show()
26. STOCHF- Stochastic Fast
函数名:随机快速STOCH
名称:随机快速KD
语法:
fastk, fastd = STOCHF(high, low, close, fastk_period=5, fastd_period=3, fastd_matype=0)
df_kd['fastk'] ,df_kd['fastd'] = tlb.STOCHF(df['high'],df['low'],df['close'], fastk_period=5, fastd_period=3, fastd_matype=0)
# 做图
df_kd[['fastk','fastd']].plot(figsize=(8, 4),title='STOCHF',grid=True)
df[['high','low','close']].plot(figsize=(8, 4),title='K线',grid=True)
plt.legend() # 设置图示
plt.show()
27. STOCHRSI-Stochastic Relative Strength Index
函数名:STOCH随机相对强弱指数
名称:KD 随机相对强弱指数
语法:
fastk, fastd = STOCHRSI(close, timeperiod=14, fastk_period=5, fastd_period=3, fastd_matype=0)
#定义dataframe
df_kd = pd.DataFrame()
# 设置index
df_kd['trade_date'] = df.index
df_kd.set_index('trade_date',inplace=True)
df_kd['fastk'] ,df_kd['fastd'] = tlb.STOCHRSI(df['close'], timeperiod=14, fastk_period=5, fastd_period=3, fastd_matype=0)
# 做图
df_kd[['fastk','fastd']].plot(figsize=(8, 4),title='STOCHRSI',grid=True)
df[['high','low','close']].plot(figsize=(8, 4),title='K线',grid=True)
plt.legend() # 设置图示
plt.show()
28. TRIX-1-day Rate-Of-Change (ROC) of a Triple Smooth EMA
函数名:三次平滑EMA的1天变化率
名称:TRIX指标
计算三重平滑指数移动平均(Triple Smooth EMA)的1日变动率(Rate-Of-Change),简称为TRIX指标。
df['TRIX'] = tlb.TRIX(df['close'], timeperiod=15)
# 做图
df[['TRIX','close']].plot(subplots=True,figsize=(8, 4),title='TRIX',grid=True)
plt.legend() # 设置图示
plt.show()
29. ULTOSC- Ultimate Oscillator
函数名:终极指标,英文全名Ultimate Oscillator
名称:终极波动指标
简介:UOS是一种多方位功能的指标,除了趋势确认及超买超卖方面的作用之外,它的“突破”讯号不仅可以提供最适当的交易时机之外,更可以进一步加强指标的可靠度。
为了将参数周期调至最佳状况,拉里·威廉姆斯经过不断测试,先找出三个周期不同的振荡指标,再将这些周期参数,按照反比例的方式,制作成常数因子。然后,依照加权的方式,将三个周期不同的振荡指标,分别乘以不同比例的常数,加以综合制作成UOS指标。
经过一连串参数顺化的过程后,UOS指标比一般单一参数的振荡指标,更能够顺应各种不同的市况。UOS是一种多方位功能的指标,除了趋势确认及超买超卖方面的作用之外,它的“突破”讯号不仅可以提供最适当的交易时机之外,更可以进一步加强指标的可靠度。
指标原理
1、市场上的的买卖循环主要有长期、中期和短期三种,价格在波动过程中的山长的额力量都是要依靠这些循环时间周期来进行的,所以在运用UOS指标的时候,必须要注意分别计算长期、中期和短期的不同的影响力。
2、市场上,不同时期的循环影响力都是不一样的。所以,在计算市场上的购买力量的时候,一定要依照其不同的影响加以区分。
3、要计算当个交易日内于真实低位TL的差距和举例TR真实波幅指标所占的比重。 [2]
应用法则
1.UOS指标上升至50~70之间,随后向下跌破50时,是短线卖出讯号;当UOS向上突破65时,可视为短线的投机性买进讯号。
2.UOS指标上升至70以上,随后又向下跌破70时,是中线卖出讯号;UOS指标下跌至35以下,随后向上回升突破35时,视为中线买进讯号。这一点在股价走上升形态时,效果更加明显。
3.股价创新高点,UOS指标并未伴随创新高,两者产生“背离”时,是多头趋势即将结束的警告讯号。注意必须位于50之上,其多头背离讯号才可信任。
4.股价创新低点,UOS指标并未伴随创新低,两者产生“背离”时,是空头趋势即将结束的警告讯号。注意必须最低下跌至35以下,其空头“背离”讯号才可信任。
5.多头背离现象发生后,UOS指标向下跌破其背离区的N字波低点时,是中线卖出的确认讯号。;空头“背离”现象发生后,UOS指标向上突破其“背离”区的N字形高点时,是中线买进的确认讯号。
uos短线抄底:uos上穿50
uos短线卖顶:uos下穿65
uos中长期抄底:uos上穿35
uos中长期卖顶:uos下穿70
语法:
real = ULTOSC(high, low, close, timeperiod1=7, timeperiod2=14, timeperiod3=28)
df_kd['ULTOSC'] = tlb.ULTOSC(df['high'],df['low'],df['close'], timeperiod1=7, timeperiod2=14, timeperiod3=28)
# 做图
df_kd['ULTOSC'].plot(figsize=(8, 4),title='ULTOSC',grid=True)
df[['high','low','close']].plot(figsize=(8, 4),title='K线',grid=True)
plt.legend() # 设置图示
plt.show()
30. WILLR-Williams’ %R
函数名:WILLR
名称:威廉指标
简介:WMS表示的是市场处于超买还是超卖状态。股票投资分析方法主要有如下三种:基本分析、技术分析、演化分析。在实际应用中,它们既相互联系,又有重要区别。
WILLR的波动在0到100之间,其中低于20被视为超卖,而高于80被视为超买。然而,请注意,这些阈值并非固定不变的,它们可能会根据不同的市场和时间段进行调整。
语法:
real = WILLR(high, low, close, timeperiod=14)
df_kd['WILLR'] = tlb.WILLR(df['high'],df['low'],df['close'], timeperiod=14)
# 做图
df_kd['WILLR'].plot(figsize=(8, 4),title='WILLR',grid=True)
df[['high','low','close']].plot(figsize=(8, 4),title='K线',grid=True)
plt.legend() # 设置图示
plt.show()