震荡指标(一)RSI指标

相对强弱指数RSI是根据一定时期内上涨点数和涨跌点数之和的比率制作出的一种技术曲线。能够反映出市场在一定时期内的景气程度。由威尔斯.威尔德(Welles Wilder)最早应用于期货买卖,后来人们发现在众多的图表技术分析中,强弱指标的理论和实践极其适合于股票市场的短线投资,于是被用于股票升跌的测量和分析中。该分析指标的设计是以三条线来反映价格走势的强弱,这种图形可以为投资者提供操作依据,非常适合做短线差价操作。

RSI的原理简单来说是以数字计算的方法求出买卖双方的力量对比,譬如有100个人面对一件商品,如果50个人以上要买,竞相抬价,商品价格必涨。相反,如果50个人以上争着卖出,价格自然下跌。

强弱指标理论认为,任何市价的大涨或大跌,均在0-100之间变动,根据常态分配,认为RSI值多在30-70之间变动,通常80甚至90时被认为市场已到达超买状态,至此市场价格自然会回落调整。当价格低跌至30以下即被认为是超卖状态,市价将出现反弹回升。

公式代码

RSI:= SMA(MAX(Close-LastClose,0),N,1)/SMA(ABS(Close-LastClose),N,1)*100

五种用途

1) 顶点及底点 70 及30 通常为超买及超卖讯号。

2) 分歧(或背离), 当市况创下新高 ( 低 ) 但RSI 并不处于新高(低),这通常表明市场将出现反转。

3) 支撑及阻力 ,RSI 能显示支撑及阻力位,有时比价格图更能清晰反应支支撑及阻力。

4) RSI指标 价格趋势形态 与价格图相比,价格趋势形态如双顶及头肩在 RSI 上表现更清晰

5) 峰回路转 当 RSI 突破 ( 超过前高或低点 ) 时,这可能表示价格将有突变与其它指标相同, 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会在大盘或个股方向不明朗而盘整时,率先整理完毕并出现走强或走弱的现象。

# 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

  

原文地址:https://www.cnblogs.com/Dreamxin/p/10656455.html

时间: 2024-10-03 15:48:09

震荡指标(一)RSI指标的相关文章

RSI 指标

相对强弱指标RSI又叫力度指标,其英文全称为“Relative Strength Index”,由威尔斯•魏尔德﹝Welles Wilder﹞所创造的,是目前股市技术分析中比较常用的中短线指标.第一节 RSI指标的原理和计算方法一.RSI指标的原理相对强弱指标RSI是根据股票市场上供求关系平衡的原理,通过比较一段时期内单个股票价格的涨跌的幅度或整个市场的指数的涨跌的大小来分析判断市场上多空双方买卖力量的强弱程度,从而判断未来市场走势的一种技术指标.从它构造的原理来看,与MACD.TRIX等趋向类

以股票RSI指标为例,学习Python发送邮件功能(含RSI指标确定卖点策略)

本人之前写过若干“给程序员加财商”的系列文,目的是通过股票案例讲述Python知识点,让大家在学习Python的同时还能掌握相关的股票知识,所谓一举两得. 在之前的系列文里,大家能看到K线,均线,成交量的案例,在本文里,大家能看到通过RSI案例讲述Python邮件编程的知识点,在后继系列文里,大家还能看到MACD,BIAS,KDJ等指标相关案例. 1  RSI指标的原理和算法描述 相对强弱指标(RSI)是通过比较某个时段内单股价格的涨跌幅度来判断多空双方的强弱程度,以此来预测未来走势.从数值上看

高频交易算法研发心得--RSI指标及应用

前面文章中我们提到了MA均线(包括EMA,SMA).MACD以及SAR指标,这三类指标存在一个共同特点,即:从固定周期的价格作为判读的指导思想,并将价格进行平滑处理,然后得到可参考的判读结果. 今天我们变换思维,并从市场的角度来考量问题,同时,来聊聊RSI指标. 1.       指标定义 RSI:相对强弱指数(Relative Strength Index),是根据一定时期内上涨点数和涨跌点数之和的比率制作出的一种技术曲线.能够反映出市场在一定时期内的景气程度.其N日的伪函数定义如下: Dou

talib 中文文档(八): Momentum Indicator Functions 动量指标

Momentum Indicator Functions ADX - Average Directional Movement Index 函数名:ADX 名称:平均趋向指数 简介:使用ADX指标,指标判断盘整.振荡和单边趋势. 公式: 一.先决定股价趋势(Directional Movement,DM)是上涨或下跌: “所谓DM值,今日股价波动幅度大于昨日股价波动幅部分的最大值,可能是创高价的部分或创低价的部分:如果今日股价波动幅度较前一日小,则DM = 0.” 若股价高点持续走高,为上涨趋势

趋势型指标——MACD

1.简要介绍? 计算方法? DIFF? DEA? MACD? 构造原理? 缺点2.实战技巧3.运用技巧? 应用原理? 经典用法? 实战战法? 捕捉卖点? 买卖策略? 短线实战4.组合指标运用5.一般研判标准 1.简要介绍MACD在应用上应先行计算出快速(一般选12日)移动平均值与慢速(一般选26日)移动平均值.以这两个数值作为测量两者(快速与慢速线)间的"差离值"依据.所谓"差离值"(DIF),即12日EMA数值减去26日EMA数值.因此,在持续的涨势中,12日EM

火中取栗----CR指标摘要

1,      30分钟大盘分析 从KDJ线来说:尾盘J线向下突破KD线,所以空方占据优势,看空的多,明天低开概率比较大. 从MACD线上来说:0轴线上的红柱子越来越短,预示看多的越来越少,看空的多,明天低开概率比较大. 从MTM分析:尾盘MTM无线接近于MTMTM,预示看空的居多,明天大盘走势不太明朗. 综合技术分析来说:明天大盘走势依然震荡低开概率比较高,低开回调震荡为主,明天建议稳为主,不太适合建仓,逢高获利减仓,静待回调吧. 博客原地址:http://blog.csdn.net/mchd

股票各指标简介

原文地址:股票各指标简介作者:桃乐丝 1.  BDZX波段之星指令的操作明确. PAV   筹码引力 1.PAV上轨(GV)和下轨(CV)分别在0至100和-100至0区间内震动: 2.PAV-DIFF在高位大幅震荡表明主力建仓吸筹: 3.PAV-DIFF在低位持恒表明主力震仓洗盘: 4.PAV-DIFF由低位启动表明大行情发动的开始: 5.PAV-DIFF带量回落表明行情结束. NVI 负成交量 1.观察NVI 时,必须先设定一条平均线才能研判: 2.NVI 主要是追踪大户资金流向的指标: 3

牛皮市和猴市的好工具和指标:BOLL

(转贴)布林线BOLL用法 布林线是股市中经常用到的技术指标之一,它反映了股价的波动状况.山版软件指标图中的布林线由三条组成,上边的白线(up)是阻力线,下边的黄线(down)是支撑线,中间的粉红线(mb)为平均线.当股价盘整时,阻力线和支撑线收缩,称为收口:股价向上或向下突破时,阻力线和支撑线打开,称为开口,证明股价即将产生大的波动. 布林线一般的应用规则是,当股价向下击穿支撑线(黄线down)的时候买点出现,而向上击穿阻力线(白线up)卖点出现.而平均线(粉红线mb)是考验一个趋势(无论是上

gp指标信息

RSI: 相对强弱指数,RSI的原理简单来说是以数字计算的方法求出买卖双方的力量对比 强弱指标理论认为,任何市价的大涨或大跌,均在0-100之间变动,根据常态分配 认为RSI值多在30-70之间变动,通常80甚至90时被认为市场已到达超买状态,至此市场价格自然会回落调整.当价格低跌至30以下即被认为是超卖状态,市价将出现反弹回升. 与MACD.KDJ等指标的背离现象研判一样,RSI的背离中,顶背离的研判准确性要高于底背离.当股价在高位,RSI在80以上出现顶背离时,可以认为股价即将反转向下,投资