股票指标RSI所以的买卖点,附代码

需要程序的关注微信公众号,数据分析与运用,回复rsi买卖点就可以了

运用原则这里的"极强"、"强"、"弱"、"极弱"只是一个相对的分析概念RSI指标运用原则⑴受计算公式的限制,不论价位怎样变动,强弱指标的值均在0与100之间.⑵强弱指标保持高于50表示为强势市场,反之低于50表示为弱势市场.⑶强弱指标多在70与30之间波动.当六日指标上升到达80时,表示股市已有超买现象,假如一旦继续上升,超过90以上时,则表示已到严重超买的警戒区,股价已形成头部,极可能在短期内反转回转.⑷当六日强弱指标下降至20时,表示股市有超卖现象,假如一旦继续下降至10以下时则表示已到严重超卖区域,股价极可能有止跌回升的机会.⑸每种类型股票的超卖超买值是不同的.在牛市时,通常蓝筹股的强弱指数若是80,便属超买,若是30便属超卖,至于二三线股,强弱指数若是85至90,便属超买,若是20至25,便属超卖.但我们不能硬性地以上述数值,拟定蓝筹股或二三线股是否属于超买或超卖,主要是由于某些股票有自己的一套超买/卖水平,即是,股价反覆的股票,通常超买的数值较高(90至95),而视作超卖的数值亦较低(10至15).至于那些表现较稳定的股票,超买的数值则较低(65至70),超卖的数值较高(35至40).因此我们对一只股票采取买/ 卖行动前,一定要先找出该只股票的超买/超卖水平.至于衡量一只股票的超买/超卖水平,我们可以参考该股票过去12个月之强弱指标记录.⑹超买及超卖范围的确定还取决于两个因素.第一是市场的特性,起伏不大的稳定的市场一般可以规定70以上超买,30 以下为超卖.变化比较剧烈的市场可以规定80以上超买,20以下为超卖.第二是计算RSI时所取的时间参数.比如说,对于12日RSI,可以规定80以上为超买,20以下为超卖.对于24日RSI,可以规定70以上为超买,30以下为超卖.应当注意的是,超买或超卖本身并不构成入市的讯号.有时行情变化得过于迅速,RSI会很快地超出正常范围,这时RSI的超买或超卖往往就失去了其作为出入市警告讯号的作用.比如说在牛市初期,RSI往往会很快进入80以上的区域,并在此区域内停留相当长一段时间,但这并不表示上升行情将要结束.恰恰相反,它是一种强势的表现.只有在牛市末期或熊市当中,超买才是比较可靠的入市讯号.基于这个原因,一般不宜在RSI一旦进入非正常区域就采取买卖行动.最好是价格本身也发出转向信号时再进行交易.这样就可以避免类似于上面提到的RSI进入超买区但并不立即回到正常区域那样的"陷阱".在很多情况下,很好的买卖讯号是:RSI进入超买超卖区,然后又穿过超买或超卖的界线回到正常区域.不过这里仍然要得到价格方面的确认,才能采取实际的行动.这种确认可以是:①趋势线的突破;②移动平均线的突破;③某种价格型态的完成.⑺强弱指标与股价或指数比较时,常会产生先行显示未来行情走势的特性,亦即股价或指数未涨而强弱指标先上升,股价或指数未跌而强弱指标先下降,其特性在股价的高峰与谷底反应最明显.⑻当强弱指标上升而股价反而下跌,或是强弱指标下降而股价反趋上涨,这种情况称之为"背驰".当RSI在70至80上时,价位破顶而RSI不能破顶,这就形成了"顶背驰",而当RSI在30至20下时,价位破底而RSI不能破底就形成了"底背驰".这种强弱指标与股价变动,产生的背离现象,通常是被认为市场即将发生重大反转的讯号.相对强弱指标(RSI)是技术指标中的一种,强弱指标理论认为,任何市价的大涨或者大跌,均在0-100之间波动。根据常态分析,认为RSI值在30-70之间的变动属正常情况,在80-90时,被认为市场已达超买状态,至此市场价格自然面临回落调整;而在10-20时,被认为市场已达超卖状态,至此市场价格自然面临企稳回升。但投资者可能会发现:有时RSI在80以上时,股价仍不断上扬,因此仅仅用是否通过80来划分股价是否超买来判断顶部,不太可靠。因此我们就应该寻找其他规律进行判断。

变动范围RSI的变动范围在0-100之间,国内单边做多的股市:强弱指标值一般分布在20-80。80-100 极强 卖出50-80 强 买入20-50 弱 观望0-20 极弱 买入国内期货/国际伦敦金/外汇等双向交易市场:强弱指标值一般分布在30-70.70-100 超买区 做空30-70 观望慎入区0-30 超卖区 做多

顶背离一般来讲,技术指标都有顶背离的走势出现,RSI指标也不例外。RSI指标出现顶背离,是指股价在一个上升趋势当中,先创出一个新高点,这时RSI指标也相应在80以上创出一个新高点,之后股价出现一定幅度回落,RSI也随着股价的回落走势出现调整。但是如果之后股价再度出现冲高,并且超越前期高点时,而RSI虽然随股价继续上扬,但是并没有超过前期高点,这就形成RSI的顶背离。RSI出现顶背离后,股价见顶的可能性较大。之所以说RSI顶背离就是股价见顶的标志,主要是由于当庄家拉高出货的时候,为了出货迅速,其拉高动作必然迅速而猛烈,而出货动作则要延续较长的时间和空间。这种特性就决定了庄家一次又一次地拉高股价,但是由于RSI指标主要是反映市场强弱的指标,而这种强势不再的走势无疑将促使RSI出现回落走势,因此一旦庄家出货的走势出现,RSI的回落幅度通常较大,从而形成顶背离的态势。这种现象在KDJ等指标上同样也有可能出现,而成交量与股价背离的现象,也是股价见顶的征兆之一。价格上扬成交量趋于减少,说明市场交易活跃程度逐渐减弱,接下来股价很可能面临下跌的走势。发现指标出现顶背离走势后,投资者应结合当时市场气氛和盘面情况进行综合判断。如果市场仍然处于相对看多的阶段,则股价继续上扬的可能性较大,但是幅度和力度都将明显弱于前期,这主要是因为这种上涨,是在市场人气刺激下出现的上涨走势,并不是成交量的实质推动,因而涨势不能长久。

我结合加入数据库,将所以的买入 点写如程序,进行程序检测,我们看一下程序效果,我们只需要输入股票代码就可以了比如sz002466,天齐锂业

输入数据开始时间比如20210101

下面为我们收益图,图像比较好,我们根据一般金叉和死叉写的交易策略,欢迎交流,不知道这个有没有问题

下面为我们绘制股票图方便我们分析

我们看一下保存下来的数据。

我们看一下检测的效果,打开同花顺输入002466

我们看一下检测效果还是不错的。

下面为程序代码:

import pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport mplfinance as mpfimport PySimpleGUI as sgfrom finta import TAimport MyTTimport akshare as akstock=sg.popup_get_file('输入股票代码比如sz002466,sz代表上海交易所,sh代表上海交易所')daily=sg.popup_get_file('输入背离检测周期,比如30,代表30天')start_date=sg.popup_get_file('输入数据开始时间比如20210101')period=sg.popup_get_file('输入rsi周期数,建议12,中线和同花顺一样')#数据来源东方财富df=ak.stock_zh_a_daily(symbol=stock,start_date=start_date)#df['open'].shift(1)## 峰值条件:max大于前后两天,且max大于最近30天的所有max#我们采用收盘价进行计算#我们让前一日的收盘价不变,今天的收盘价退一天df['new_close']=df['close'].shift(1)#明天收盘价退一天df['next_close']=df['close'].shift(2)#30日均线df['mean_30']=df['close'].rolling(int(daily)).mean()#30日最大值df['mean_30_max']=df['close'].rolling(int(daily)).max()#30日最小值df['mean_30_min']=df['close'].rolling(int(daily)).min()#检测顶# 峰值条件:max大于前后两天,且max大于最近30天的所有maxtop=[]x=df#检测股票顶for i in range(1,len(df['close'].tolist())-1):    if x['new_close'][i]>=x['close'][i-1]and x['new_close'][i]>=x['next_close'][i+1] and x['new_close'][i]>=x['mean_30_max'][i-1]:        top.append('顶')    else:        top.append('无')top.insert(0,'无')top.insert(1,'无')df['股票顶']=topbase=[]#检测股票低#底值条件:min小于前后两天,且小于最近30天所有的minfor i in range(1,len(df['close'].tolist())-1):    if x['new_close'][i]>=x['close'][i-1]and x['new_close'][i]>=x['next_close'][i+1] and x['new_close'][i]<=x['mean_30_min'][i-1]:        base.append('底')    else:        base.append('无')base.insert(0,'无')base.insert(1,'无')df['股票底']=base#计算rsi指标#后面为技术周期,现在中期16,还有6,24等rsi=TA.RSI(df,period=int(period))#将数据和到一个表中df['rsi']=rsi#现在rsi,昨天rsi不变df['new_rsi']=df['rsi'].shift(1)#下一天macddf['next_rsi']=df['rsi'].shift(2)#30日均线df['rsi_mean_30']=df['rsi'].rolling(int(daily)).mean()#30日最大值df['rsi_mean_30_max']=df['rsi'].rolling(int(daily)).max()#30日最小值df['rsi_mean_30_min']=df['rsi'].rolling(int(daily)).min()#检测rsi顶# 峰值条件:max大于前后两天,且max大于最近30天的所有maxrsi_top=[]for i in range(1,len(df['close'].tolist())-1):    if x['new_rsi'][i]>=x['rsi'][i-1]and x['new_rsi'][i]>=x['next_rsi'][i+1] and x['new_rsi'][i]>=x['rsi_mean_30_max'][i-1]:        rsi_top.append('顶')    else:        rsi_top.append('无')rsi_top.insert(0,'无')rsi_top.insert(1,'无')df['rsi顶']=rsi_top#检测rsi底#底值条件:min小于前后两天,且小于最近30天所有的minrsi_base=[]for i in range(1,len(df['close'].tolist())-1):    if x['new_rsi'][i]>=x['rsi'][i-1]and x['new_rsi'][i]>=x['next_rsi'][i+1] and x['new_rsi'][i]<=x['rsi_mean_30_min'][i-1]:        rsi_base.append('底')    else:        rsi_base.append('无')rsi_base.insert(0,'无')rsi_base.insert(1,'无')df['rsi底']=rsi_base#检测rsi顶背离,如果股票顶对应rsi无我们可以认为顶背离stock_rsi_top_deviate=[]for x,y in zip(df['股票顶'].tolist(),df['rsi顶'].tolist()):    #如果2个不相等    if x!=y:        stock_rsi_top_deviate.append('rsi顶背离')    else:        stock_rsi_top_deviate.append('无')#检测rsi底背离,如果股票底对应rsi底无我们可以认为顶背离stock_rsi_base_deviate=[]for x,y in zip(df['股票底'].tolist(),df['rsi底'].tolist()):    #如果2个不相等    if x!=y:        stock_rsi_base_deviate.append('rsi底背离')    else:        stock_rsi_base_deviate.append('无')df['rsi顶背离']=stock_rsi_top_deviatedf['rsi底背离']=stock_rsi_base_deviatedf.to_excel(r'C:\Users\Administrator\Desktop\{}rsi背离.xlsx'.format(stock))print(df)#绘制股票图df1=dfmacd=TA.MACD(df1)boll=TA.BBANDS(df1)rsi=TA.RSI(df1,period=int(period))df1.rename(columns={'date':'Date','open':'Open','close':'Close','high':'High','low':'Low','volume':'Volume'},inplace=True)    #时间格式转换plt.rcParams['font.family']='SimHei'plt.rcParams['axes.unicode_minus']=Falsedf1['Date']=pd.to_datetime(df1['Date'])#出现设置索引df1.set_index(['Date'],inplace=True)#设置股票颜mc=mpf.make_marketcolors(up='r',down='g',edge='i',volume='i')    #设置系统s=mpf.make_mpf_style(marketcolors=mc)add_plot=[mpf.make_addplot(macd['MACD'],panel=2,title='{}MACD'.format(stock),color='r'),mpf.make_addplot(macd['SIGNAL'],panel=1,color='y'),mpf.make_addplot(rsi,panel=3,title='RSI'),mpf.make_addplot(boll['BB_UPPER'],panel=0,color='r',title='BOLL'),mpf.make_addplot(boll['BB_MIDDLE'],panel=0,color='m'),mpf.make_addplot(boll['BB_LOWER'],panel=0,color='g')]    #绘制股票图,5,10,20日均线mpf.plot(df1,type='candle',style=s,mav=(5,10,20),addplot=add_plot,volume=True)plt.show()

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_50882340

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值