对强弱指标RSI是根据一定时期内上涨点数和下跌点数之和的比率制作出的一种技术曲线。能够反映出市场在一定时期内的景气程度。由威尔斯.威尔德(Welles Wilder)最早应用于期货买卖,后来人们发现在众多的图表技术分析中,强弱指标的理论和实践极其适合于股票市场的短线投资,于是被用于股票升跌的测量和分析中。该分析指标的设计是以三条线来反映价格走势的强弱,这种图形可以为投资者提供操作依据,非常适合做短线差价操作,我一直想将常用的技术指标背离写成程序,进行自动检测,下一个文字,我将会配合RSI指标买卖点写成程序分析给大家,欢迎交流,因为我对一些指标了解不太深。

需要程序关注关注微信公众号,数据分析与运用,回复rsi背离就可以了​

我们看一下东方财富指标RSi。比如天齐锂业

我们看到RSI有3条线,周期为6,12,24,可以理解为短期,中期,长期指标数据,我们提供的程序可以自由选择周期,建议12。

我们看一下程序背离检测,我们检测底背离和顶背离,我们任务指标和股价没有同时变化,或者指标钝化,我们的可以认为是背离的形态。,我结合akshare金融数据,只需要输入股票代码就可以了,如果想检测创业板的数据将df=ak.stock_zh_a_daily()换成df=ak.stock_zh_a_cyb_daily(),就可以了,我们看一下程序。

我们输入股票代码,比如sz002466,天齐锂业,按0k就可以了。

什么输入背离周期比如30,代表30天,一个半月

我们输入数据开始日期,比如20210101,代表2021年1月1日

我们输入RSI计算周期,比如12,和同花顺一样。

我们看一下程序绘制股票图,方便我们进行分析。,我们加入成交量

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

我们 看一下检测结果。打开同花顺,查看天齐锂业,检测的结果还是很好的

程序代码:

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()

股票指标RSI背离检测程序,附代码相关推荐

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

    需要程序的关注微信公众号,数据分析与运用,回复rsi买卖点就可以了 运用原则这里的"极强"."强"."弱"."极弱"只是 ...

  2. 最完整的检测模型评估指标mAP计算指南(附代码)在这里!

    http://baijiahao.baidu.com/s?id=1605049172612184744&wfr=spider&for=pc

  3. python写股票指标_用Python做股票指标RSI分析

    一.数据源:Tushare财经数据接口包 Tushare是一个免费.开源的python财经数据接口包.主要实现对股票等金融数据从数据采集.清洗加工 到 数据存储的过程,能够为金融分析人员提供快速.整洁 ...

  4. 独家 | 在树莓派+Movidius NCS上运用YOLO和Tiny-YOLO完成目标检测(附代码下载)

    作者:Adrian Rosebrock 翻译:吴振东 校对:郑滋 本文约5000字,建议阅读10+分钟 本文教你如何在树莓派和Movidius神经加速棒上运用Tiny-YOLO来实现近乎实时的目标检测 ...

  5. 10行代码带你搞定目标检测(附代码)

    来源:大数据文摘 本文约2700字,建议阅读5分钟. 本文介绍采用代码搞定目标检测的技术. 计算机视觉是人工智能的一个重要领域,是关于计算机和软件系统的科学,可以对图像和场景进行识别.理解.计算机视觉 ...

  6. 教你用10行Python代码实现目标检测(附代码)

    来源:大数据文摘 本文约2729字,建议阅读6分钟. 本文介绍了一个名为ImageAI 的Python库,集成了现今流行的深度学习框架和计算机视觉库,手把手教你构建自己的目标检测应用. 后台回复&qu ...

  7. 值得学习练手的22个Python迷你程序(附代码)

    来源/法纳斯特 Python丰富的开发生态是它的一大优势,各种第三方库.框架和代码,都是前人造好的"轮子",能够完成很多操作,让你的开发事半功倍. 下面就给大家介绍22个通过Pyt ...

  8. Python之值得学习练手的22个迷你程序(附代码)

    ① 前言 Python 丰富的开发生态是它的一大优势,各种第三方库.框架和代码,都是前人造好的"轮子",能够完成很多操作,让开发事半功倍. 本文分享 22 个通过 Python 构 ...

  9. ReID行人重识别(训练+检测,附代码),可做图像检索,陌生人检索等项目

    利用ReID和目标检测对视频进行检测,可以对视频中的人进行重识别,支持更换数据集可以做车辆重识别等.可应用于图像.视频检索,行人跟踪等 在以前学习ReID的时候,是跟着下面视频学习的,该论文和代码也可 ...

最新文章

  1. Win10 + Opencv2.4.9
  2. IT人员健康信号之鼻炎养护
  3. Python 局部变量和全局变量 - Python零基础入门教程
  4. 进程的调度策略与进程的状态
  5. Mock Serverj
  6. 谦虚:让你备受人们的欢迎 — 《别输在不会表达上》
  7. php 图片填充图片,php imagefilledrectangle在图片画一矩形并填充
  8. 优雅降级实现IE8的transform平移属性
  9. 知乎上100条简短深刻的回答
  10. 小酌重构系列[12]——去除上帝类
  11. 超搞笑,超拽的句子...
  12. 13部成功预知未来科技的科幻电影
  13. ACM中的整数K拆分 (有条件限制 无条件限制 插板法 URAL-1036 HDU-6397)
  14. There is no getter/setter for property named ‘XXX‘ in ‘class com.XXX‘
  15. Git 如何生成SSH key
  16. Android12之fatal error: ‘processinfo/ProcessInfoService.h‘ file not found
  17. 美图商业化2.0:探寻多元增长曲线
  18. (20)全民小视频引流脚本模块化开发14-给脚本添加本地授权By飞云脚本学院
  19. 【FAQ】集成分析服务的常见问题及解决方案
  20. python输入十个学生的成绩、判断优良中差并计算人数_大数据基础习题(1)

热门文章

  1. 随笔感悟 — 函数封装
  2. 鸣人和佐助 计蒜客--1214 广搜 三维数组
  3. 计蒜客题解——T1214:鸣人和佐助
  4. 华为正式加入互联网路由安全规范 MANRS
  5. 第三周铁人战队学习总结
  6. Unity3d LOD 使用以及 Bias精度设置
  7. 沉船会有什么_神秘沉船,惊人宝藏,尘封历史,这部纪录片的结尾却让人难以置信...
  8. Retrofit+OKHttp+RxJava的使用
  9. 远程桌面由于以下原因之一无法连接到远程计算机,富含多种解决方案,全网最详细
  10. CSS中四分之一圆的写法