RSI 指标(Relative Strength Index,相对强弱指标)是1978年6月由韦尔斯.怀尔德(Wells Wider)创制的,通过特定时期内股价的变动情况计算市场买卖力量对比,来判断股票价格内部本质强弱、推测价格未来的变动方向的技术指标。

RSI相对强弱指标,具体是根据一定时期内上涨和下跌幅度之和的比率制作出的一种技术曲线,能够反映出市场在一定时期内的景气程度

RSI相对强弱指标,属于短线指标,如日线级别,也有周、月级别。

RSI(n) = n日内收盘价涨数平均值 ÷(n日内收盘价涨数平均值+n日内收盘价跌数平均值)×100

说明:系统默认n为6、12、24日

由上面算式可知RSI指标的技术含义,即以向上的力量与向下的力量进行比较:

1)若向上的力量较大,则计算出来的指标上升

2)若向下的力量较大,则计算出来的指标下降

由此,测算出市场走势的强弱,成正相关

 

RSI最早被用于期货交易中,后来人们发现用该指标来指导股票市场投资效果也十分不错,并对该指标的特点不断进行归纳和总结。现在,RSI已经成为被投资者应用最广泛的技术指标之一。

投资的一般原理认为,投资者的买卖行为是各种因素综合结果的反映,行情的变化最终取决于供求关系,而RSI指标正是根据供求平衡的原理,通过测量某一个期间内股价上涨总幅度占股价变化总幅度平均值的百分比,来评估多空力量的强弱程度,进而提示具体操作的。RSI的应用法则表面上比较复杂,包括了数值、交叉、形态、背离等多方面的判断原则。

RSI通过比较一段时期内的平均收盘涨数和平均收盘跌数来分析市场买沽盘的意向和实力,从而作出未来市场的走势。

相比起其他分析工具,RSI是其中一种较容易向大众传译的计量工具,故一推出便大受欢迎。

操作简析:

(一)数值判定

1、当6日RSI低于20时,行情进入超卖状态,看涨买入信号。

2、当6日RSI超过80时,行情进入超买状态,看跌卖出信号。

(二)交叉判定

3、当6日RSI在低位向上穿越12日RSI时,形成RSI低位金叉,看涨买入信号。

4、当6日RSI在高位向下穿越12日RSI时,形成RSI高位死叉,看跌卖出信号。

(三)形态判定

5、当6日RSI连续两次下跌到同一位置获得支撑反弹时,形成RSI的双重底形态,看涨买入信号。

6、当6日RSI连续两次上涨到同一位置遇到阻力回落时,形成RSI的双重顶形态,看跌卖出信号。

(四)背离判定

7、如果股价连创新低的同时RSI指标没有创新低,就形成RSI指标底背离看涨买入信号。

8、如果股价连创新高的同时RSI指标不能创新高,就形成RSI指标顶背离看跌卖出信号。

 

 

RSI 指标使用

1、RSI值于0-100之间呈常态分配

1)当6日RSI值为80‰以上时,股市呈超买现象,若出现M头(三次或多次确认)为卖出时机

2)当6日RSI值在20‰以下时,股市呈超卖现象,若出现W头(三次或多次确认)为买进时机

 

2、RSI 参考基期

RSI一般选用6日、12日、24日作为参考基期,基期越长越有趋势性(慢速RSI),基期越短越有敏感性,(快速RSI)。

当快速RSI由下往上突破慢速RSI时,为买进时机

当快速RSI由上而下跌破慢速RSI时,为卖出时机。

 

RSI与JDK的顶背离,底背离对比

 

RSI指标的超买和超卖

一般而言,RSI的数值在80以上和20以下为超买超卖区的分界线。

1、当RSI值超过80时,则表示整个市场力度过强,多方力量远大于空方力量,双方力量对比悬殊,多方大胜,市场处于超买状态,后续行情有可能出现回调或转势,若出现M头(三次或多次确认)为卖出时机

2、当RSI值低于20时,则表示市场上卖盘多于买盘,空方力量强于多方力量,空方大举进攻后,市场下跌的幅度过大,已处于超卖状态,股价可能出现反弹或转势,若出现W头(三次或多次确认)为买进时机

3、当RSI值处于50左右时,说明市场处于整理状态,投资者可观望,持仓观望,或逐步分批建仓。

4、对于超买超卖区的界定,投资者应根据市场的具体情况而定。一般市道中,RSI数值在80以上就可以称为超买区,20以下就可以称为超卖区

但有时在大牛或大熊等特殊的涨跌行情中,RSI的超卖超买区的划分要视具体情况而定。

比如,在牛市中或对于牛股,超买区可定为90以上,而在熊市中或对于熊股,超卖区可定为10以下(对于这点是相对于参数设置小的RSI而言的,如果参数设置大,则RSI很难到达90以上和10以下)。

 

运用VR指标应该综合其它技术指标共同分析

相对强弱指数值在0~100之间波动,一般相对强弱指数的变化范围在20~80之间,其中又以30~70之间的机会较多,50左右是横盘。

1)当股市经过一段下跌行情,相对强弱指数也随之从高位持续跌至20以下,如果由低位向上突破60并或确认,则表明多头力量重新占据上锋。

2)当股市经过一段上涨行情,相对强弱指数也随之从低位涨至80以上后,如果从高位向下跌破40,则表明空头力量重新占据上锋。

3)在高价区与低价区内相对强弱指数的变动与股价变化不一致时说明大势即将反转。

相对强弱指数图形中曾经出现的最高点具有较强的反压作用;相对强弱指数曾经出现的最低点具有较强的支撑作用。

多头市场中如果有价格回档,多头的第一道防线是RSI=50,第二道防线是RSI=40,第三道防线是RSI=30。

空头市场中如果有价格反弹,空头的第一道防线是RSI=50,第二道防线是RSI=60,第三道防线是RSI=70。

多头市场中RSI值每次因股价回档下跌而形成的低点密集区也是多头的第一道防线。

空头市场中股价处于反弹盘整阶段RSI所出现的高点也是空头的一道防线。

盘整阶段的值在40~60之间,如果市场走强,RSI值往往可以在80以上。反之,股票市场交易不景气时RSI值在20以下。

 

 

RSI 技术缺陷

1. 当发生单边行情时,例如牛市、熊市、连续涨停、跌停等,RSI指标在高档或低档时会有钝化的现象,因此会发生过早卖出或买进。

2. RSI没有明显规则性的买进或卖出信号,当指针在高位时,仅能说明情行反转的可能性增高,但并没有办法进一步明确地指出时点。

3. 一般而言,RSI的背离信号通常是事后验证,事前很难看出,即走出来的形态都符合,没走出的没法提前预测,RSI指标与股价的"背离"走势常常会发生滞后现象;

一方面,市场行情已经出现反转,但是该指标的"背离"信号却可能滞后出现;

另一方面,在各种随机因素的影响下,有时"背离"现象出现数次后(即需多次确认,如三五次确认)行情才真正开始反转

同时在研判指标"背离"现象时,真正反转所对应的"背离"出现次数并无定论,一次、两次或三次背离都有出现趋势变化的可能,在实际操作中较难确认。

4. 由于RSI是一种比率的指标,因此在趋势分析的能力上会较弱

5. 应该看到RSI指标的时间参数不同,其给出的结果就会不同

不同的投资者对时间周期的设定有不同的个人偏好,从理论上讲,较短周期的RSI指标虽然比较敏感,但快速震荡的次数较多,可靠性较差;较长周期的RSI指标尽管信号可靠,但指标的敏感性不够,反应迟缓,因而经常出现错过买卖良机的现象。

此外,由于RSI是通过收盘价计算的,如果当天行情的波幅很大,上下影线较长时,RSI就不可能较为准确反映此时行情的变化。

6. 超买、超卖出现后导致的指标钝化现象,容易发出错误的操作信号;

在"牛市"和"熊市"的中间阶段,RSI值升至90以上或降到10以下的情况时有发生,此时指标钝化后会出现模糊的误导信息,若依照该指标操作可能会出现失误,错过盈利机会或较早进入市场而被套牢。

7. 当RSI值在50附近波动时,该指标往往失去参考价值。一般而言,RSI值在40到60之间研判的作用并不大。

按照RSI的应用原则:

当RSI从50以下向上突破50分界线时代表股价已转强;

当RSI从50以上向下跌破50分界线则代表股价已转弱。

但实际情况经常是让投资者一头雾水,股价由强转弱后却不跌,由弱转强后却不涨的现象相当普遍。

这是因为在常态下,RSI会在大盘或个股方向不明朗而盘整时,率先整理完毕并出现走强或走弱的现象。

 

 

RSI 技术实战

实例一:RSI 买入形态

红星发展股价在2013年12月持续下跌,连续创出新低的同时,6日RSI却没有创出新低,反而形成了一底比一底高的上涨走势。

这说明虽然股价处于下跌过程中,但下跌的动能正在逐渐减弱,未来股价有见底反弹的趋势,即RSI底背离。

形态简介:

当股价在持续下跌行情中连创新低的同时,如果6日RSI没有创新低,反而出现了一底比一底高的形态,就形成了6日RSI和股价底背离的形态。

这样的形态说明虽然股价处于下跌行情中,但是其下跌的动能正在减弱,未来股价有见底反弹的趋势。

第一买点:6日RSI和股价连续两次底背离

当6日RSI和股价连续两次底背离时,卖方的力量可能已经变的十分虚弱,此时股价已经有了见底反弹的趋势,投资者可以先少量买入股票,建立部分仓位。

第二买点:股价突破前次高点

如果经过连续的底背离行情后股价见底反弹,能够突破前次反弹的高点,就说明股价已经有了上涨的迹象,此时投资者可以积极加仓买入股票。

说明:走出来的结果,肯定符合规律;还有很多符合规律的走势,实际上也下跌了,只是我们忽略了,没去看,不代表不存在,切记!

 

止损位:股价再创新低

买入股票后,投资者可以继续观察后市行情走向。

如果未来股价继续下跌,再次创出新低,就说明下跌行情还在继续,此时投资者应该将手中的股票卖出止损

(说的容易,做起来难,哪里是最低点,只有走出结果后,才知道形态也符合规律;但在走出最低点前,只有神知道最低点在哪里)

 

操作要点:

1、底背离形态出现时,6日RSI的位置越低,该形态的看涨信号就越强烈。

2、如果在底背离过程中成交量持续萎缩,底背离完成后成交量快速放大,则验证了市场上空方力量衰弱,多方力量增强的信号,此时该形态的看涨信号会更加强烈。(量在价先

3、投资者可以使用6日RSI判断股价短期的涨跌趋势,也可以使用12日RSI或24日RSI来判断股价中长期的涨跌趋势。

 

 

实例二:RSI 卖出形态

2013年10月11日三元股份的6日RSI突破了80,说明市场已经进入了买方极度强势的超买行情,未来将有见顶下跌的趋势。

此后很快股价就见顶下跌,走出一波下跌行情,这就是顶背离。

形态简介:

当6日RSI指标线突破80时,就进入了超买区间。这样的形态说明股价已经进入了买方极度强势的超买行情,未来股价有见顶下跌的趋势,这是看跌卖出信号。

第一卖点:6日RSI突破80

当6日RSI突破80时,说明市场已经进入了买入极度强势的行情。这种多方强势行情可能难以持续,未来股价可能会见顶下跌,此时投资者可以先将手中的股票卖出一部分,保留一定仓位继续观望

第二卖点:6日RSI跌破80

当6日RSI见顶下跌后,如果跌破80,并且再次上涨创新高,但是RSI没有上移反而下降,形成了顶背离,这就说明买方极度强势的行情已经结束,股价出现了见顶下跌的迹象,此时投资者应该将手中剩余的股票全部卖出,回避风险。

 

补回位:6日RSI突破80

卖出股票后,投资者可以继续观察后市行情走向。

如果未来6日RSI没有持续下跌,而是持续上涨,再次突破80,就说明上涨行情还在继续,此时投资者可以将刚刚卖出的股票买回,继续持有。

 

操作要点:

1、6日RSI在80上方持续的时间越长,市场上的买方力量就会被消耗得越彻底,未来股价下跌的空间就会越广阔。

2、在实际操作过程中,投资者可以使用6日RSI衡量市场上短期的超买状态,也可以使用12日RSI或24日RSI来衡量市场上中长期的超买状态。

3、如果RSI指标脱离超买区间的同时完成了死叉形态,则该形态的看跌信号会更加强烈。

 

 

RSI、JDK、MACD 背离对比 (推荐)

1、RSI 两次顶背离,一次底背离

 

2、JDK 一次顶背离,一次底背离

 

3、MACD 一次顶背离,一次底背离

由上,RSI、JDK、MACD 都有顶背离、底背离,而且还各不相同

有对比才有伤害,你到底信哪个你?

这也说明多个技术指标之间可能有冲突,可结合BOLL、量在价先等指标综合判定!

 

 

RSI 代码实现

筛选全市场A股,买入RSI6小于20并且RSI6和RSI12成为金叉的股票,卖出RSI6大于20并且RSI6和RSI12形成金叉的股票,每日调仓。

# Ricequant量化交易平台
# 日期:2013-01-01到 2016-10-04,日回测
# 可以自己import我们平台支持的第三方python模块,比如pandas、numpy等。
import numpy as np
import pandas as pd
from pandas import DataFrame,Series
 
# 在这部分编写技术分析模块
def RSI(N1=6, N2=12, N3=24):
    """
    RSI 相对强弱指标
    """
    LC = REF(CLOSE, 1)
    RSI1 = SMA(MAX(CLOSE - LC, 0), N1, 1) / SMA(ABS(CLOSE - LC), N1, 1) * 100
    RSI2 = SMA(MAX(CLOSE - LC, 0), N2, 1) / SMA(ABS(CLOSE - LC), N2, 1) * 100
    RSI3 = SMA(MAX(CLOSE - LC, 0), N3, 1) / SMA(ABS(CLOSE - LC), N3, 1) * 100
 
    return RSI1, RSI2, RSI3
 
# 在这个方法中编写任何的初始化逻辑。context对象将会在你的算法策略的任何方法之间做传递。
def init(context):
    reg_indicator('RSI', RSI, '1d', win_size=40)
    context.buy = []
    context.sell = []
    context.hold = []
    context.s_sell = []
 
# before_trading此函数会在每天策略交易开始前被调用,当天只会被调用一次
def before_trading(context):
    context.buy = []
    context.sell = []
    context.hold = []
    stocks,_ = get_all_stocks(context)
     
    for stock in context.portfolio.positions.keys():
        RSI1,RSI2,RSI3 = get_indicator(stock, 'RSI')
        if RSI1>80 and REF(RSI1,1) > REF(RSI2,1) and RSI1 < RSI2:
            context.sell.append(stock)
        else:
            context.hold.append(stock)
     
    for stock in context.s_sell:
        if stock not in context.portfolio.positions.keys():
            context.s_sell.remove(stock)
             
    if len(context.hold) >= 10:
        return None
         
    for stock in stocks:
        RSI1,RSI2,RSI3 = get_indicator(stock, 'RSI')
        if RSI1<20 and REF(RSI1,1) < REF(RSI2,1) and RSI1 > RSI2:
            context.buy.append(stock)
            if stock in context.sell:
                context.sell.remove(stock)
 
 
# 你选择的证券的数据更新将会触发此段逻辑,例如日或分钟历史数据切片或者是实时数据切片更新
def handle_bar(context, bar_dict):
    for stock in context.sell:
        order = order_target_percent(stock,0)
        if order.unfilled_quantity != 0:
            context.s_sell.append(stock)
    for stock in context.s_sell:
        order_target_value(stock,0)
     
    if len(context.hold)+len(context.buy) == 0:
        return None
    weight = 1/(len(context.hold)+len(context.buy))
     
    for stock in context.hold:
        order_target_percent(stock,weight)
    for stock in context.buy:
        order_target_percent(stock,weight)
 
# after_trading函数会在每天交易结束后被调用,当天只会被调用一次
def after_trading(context):
    pass
 
def get_all_stocks(context):
    all_stocks = all_instruments("CS").order_book_id
    will_end = []
    trade = []
    for stock in all_stocks:
        ins = instruments(stock)
        if ins is None:
            pass
        else:
            start = ins.listed_date
            end = ins.de_listed_date
            if (start-context.now).days < 0:
                if 0< (end - context.now).days <30:
                    will_end.append(stock)
                elif 30 < (end - context.now).days and is_suspended(stock) == False:
                    trade.append(stock)
    #print(len(trade),len(will_end))
    return trade,will_end

量化结果:

 

补救措施

1. 利用长期的RSI均线与RSI线的关系来作买卖信号判断。

2. 以RSI值为样本,去计算其kd值来求得买卖信号。

3. 在实际运用中若要克服这个缺点,可以在价格变动幅度较大且涨跌变动较频繁时,将RSI参数设定的小一点。

 

 

参考推荐

MACD 技术指标详解

DMI 技术指标详解

DMI、RSI、EXPMA、TRIX 等指标详解

神奇九转指标确定短线变盘信号

神奇九转:基于修正TD指标的指数择时研究

MACD 顶背离和底背离在实战中的使用

K线必涨的20种经典图

史上最全股票K线图汇总

KDJ 指标的6种背离图解

K线必涨的20种经典图

史上最全股票K线图汇总

炒股“做T”高手

股票早盘集合竞价

股市开盘前15分钟集合竞价的讲究

股市开盘前集合竞价抓涨停法