日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

股票指标RSI背离检测程序,附代码

發(fā)布時(shí)間:2023/12/20 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 股票指标RSI背离检测程序,附代码 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

對(duì)強(qiáng)弱指標(biāo)RSI是根據(jù)一定時(shí)期內(nèi)上漲點(diǎn)數(shù)和下跌點(diǎn)數(shù)之和的比率制作出的一種技術(shù)曲線。能夠反映出市場在一定時(shí)期內(nèi)的景氣程度。由威爾斯.威爾德(Welles Wilder)最早應(yīng)用于期貨買賣,后來人們發(fā)現(xiàn)在眾多的圖表技術(shù)分析中,強(qiáng)弱指標(biāo)的理論和實(shí)踐極其適合于股票市場的短線投資,于是被用于股票升跌的測量和分析中。該分析指標(biāo)的設(shè)計(jì)是以三條線來反映價(jià)格走勢(shì)的強(qiáng)弱,這種圖形可以為投資者提供操作依據(jù),非常適合做短線差價(jià)操作,我一直想將常用的技術(shù)指標(biāo)背離寫成程序,進(jìn)行自動(dòng)檢測,下一個(gè)文字,我將會(huì)配合RSI指標(biāo)買賣點(diǎn)寫成程序分析給大家,歡迎交流,因?yàn)槲覍?duì)一些指標(biāo)了解不太深。

需要程序關(guān)注關(guān)注微信公眾號(hào),數(shù)據(jù)分析與運(yùn)用,回復(fù)rsi背離就可以了?

我們看一下東方財(cái)富指標(biāo)RSi。比如天齊鋰業(yè)

我們看到RSI有3條線,周期為6,12,24,可以理解為短期,中期,長期指標(biāo)數(shù)據(jù),我們提供的程序可以自由選擇周期,建議12。

我們看一下程序背離檢測,我們檢測底背離和頂背離,我們?nèi)蝿?wù)指標(biāo)和股價(jià)沒有同時(shí)變化,或者指標(biāo)鈍化,我們的可以認(rèn)為是背離的形態(tài)。,我結(jié)合akshare金融數(shù)據(jù),只需要輸入股票代碼就可以了,如果想檢測創(chuàng)業(yè)板的數(shù)據(jù)將df=ak.stock_zh_a_daily()換成df=ak.stock_zh_a_cyb_daily(),就可以了,我們看一下程序。

我們輸入股票代碼,比如sz002466,天齊鋰業(yè),按0k就可以了。

什么輸入背離周期比如30,代表30天,一個(gè)半月

我們輸入數(shù)據(jù)開始日期,比如20210101,代表2021年1月1日

我們輸入RSI計(jì)算周期,比如12,和同花順一樣。

我們看一下程序繪制股票圖,方便我們進(jìn)行分析。,我們加入成交量

我們看一下保存下來的數(shù)據(jù)。

我們 看一下檢測結(jié)果。打開同花順,查看天齊鋰業(yè),檢測的結(jié)果還是很好的

程序代碼:

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('輸入數(shù)據(jù)開始時(shí)間比如20210101')period=sg.popup_get_file('輸入rsi周期數(shù),建議12,中線和同花順一樣')#數(shù)據(jù)來源東方財(cái)富df=ak.stock_zh_a_daily(symbol=stock,start_date=start_date)#df['open'].shift(1)## 峰值條件:max大于前后兩天,且max大于最近30天的所有max#我們采用收盤價(jià)進(jìn)行計(jì)算#我們讓前一日的收盤價(jià)不變,今天的收盤價(jià)退一天df['new_close']=df['close'].shift(1)#明天收盤價(jià)退一天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#計(jì)算rsi指標(biāo)#后面為技術(shù)周期,現(xiàn)在中期16,還有6,24等rsi=TA.RSI(df,period=int(period))#將數(shù)據(jù)和到一個(gè)表中df['rsi']=rsi#現(xiàn)在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頂背離,如果股票頂對(duì)應(yīng)rsi無我們可以認(rèn)為頂背離stock_rsi_top_deviate=[]for x,y in zip(df['股票頂'].tolist(),df['rsi頂'].tolist()): #如果2個(gè)不相等 if x!=y: stock_rsi_top_deviate.append('rsi頂背離') else: stock_rsi_top_deviate.append('無')#檢測rsi底背離,如果股票底對(duì)應(yīng)rsi底無我們可以認(rèn)為頂背離stock_rsi_base_deviate=[]for x,y in zip(df['股票底'].tolist(),df['rsi底'].tolist()): #如果2個(gè)不相等 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) #時(shí)間格式轉(zhuǎn)換plt.rcParams['font.family']='SimHei'plt.rcParams['axes.unicode_minus']=Falsedf1['Date']=pd.to_datetime(df1['Date'])#出現(xiàn)設(shè)置索引df1.set_index(['Date'],inplace=True)#設(shè)置股票顏mc=mpf.make_marketcolors(up='r',down='g',edge='i',volume='i') #設(shè)置系統(tǒng)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()

總結(jié)

以上是生活随笔為你收集整理的股票指标RSI背离检测程序,附代码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。