python金融量化分析,
1.数据采集功能的定义2。Rsi 3的基本概述。用Python 4写Rsi函数。用Python 5编写RSI绘图函数。调用上面的函数。通过RSI指标判断股票的超买超卖状态7。RSI 8的“黄金交叉”和“死亡交叉”。细节改进
1.定义数据采集功能。
第一步,我们像往常一样从tushare获取数字。
tu share as ts import pandas as PD token= your token #输入您的界面密钥。访问方式及相关权限见Tushare官网。这句话不能抄!pro=ts . pro _ API(token)def get _ data(ts code):df=pro . daily(ts _ code=ts code)df=df . loc[:[trade_date , open , high , low , close ,Vol ]]df . rename(columns={ trade _ date : date : open : open , high : high : low : low , close: close , Vol : Vol }。df[ Date ]=PD . to _ datetime(df[ Date ])#转换日期列的格式以方便绘图df.set_index([Date],In=true) #以日期列为行索引df=df.sort_index() #以相反顺序绘图返回df 2 .RSI基本概述RSI是相对强弱指数,用来衡量证券在股市中的内在强弱。用来判断股票买卖双方的强弱,进而预测价格走势。
计算公式如下:
r I=100 100 1 r s \ display style RSI=100-\ frac { 100 } { 1 RS } RSI=1001 RS 100或r s I=100r s1rs \ display style RSI=100\ frac { 1 RS } RSI=100
其中:RS=u p d o w n \ display style RS=\ frac { up } { down } RS=down up
所以上面的公式是r s I=100 u p u p d o w n \显示风格RSI=100\ frac { up } { up down } RSI=100up down up。
上涨t期股价上涨的平均值和下跌t期股价下跌的平均值。用不同类型的平均值计算出来的结果会不一样。RSI接近0时,UP DOWN RSI接近100时,UP DOWN RSI为50时,UP=Down。
RSI越大于50,上涨股票的力度超过下跌股票的力度越大。RSI越小于50,下跌股票的力度超过上涨股票的力度越大。3.python写Rsi函数#默认时间跨度设为6天Import Pandas as PD Import Numpy as NP Def Rsi(price,period=6):clprcChange=price-price . shift(1)clprcChange=clprcChange . dropna()index PRC=clprcChange . index up PRC=PD。Series(0,index=indexprc)up PRC[clprcChange 0]=clprcChange[clprcChange 0]down PRC=PD。Series(0,index=indexprc)down PRC[clprcChange 0]=-clprc change[clprc change 0]ris data=PD . concat([price,clprc change,upPrc,downPrc],axis=1) risdata.columns=[price , prcChange , upPrc , down PRC ]ris data=ris data . dropna()SMUP=[]sm down=[]for I in range(period,len(up PRC)1):smup . append(NP . mean(up PRC . values[(I-periodSeries(rsi,Index=indexRsi)返回rsi Lengao的老师(Wells Wilder)指出,利用月周期28天的一半来计算rsi的值是有效的。他推荐14天作为时间跨度。
一些常用的手表软件有三个RSI指标:6号RSI,12号RSI,24号RSI。
第6天大约是一周,第12天大约是半个月,第24天大约是一个月。另外,也有人用RSI1表示第6天相对强弱指数,RSI2表示第12天相对强弱指数,RSI3表示第24天相对强弱指数。4.python写Rsi绘图函数时要记得切片def Rsi _ plot(Rsi _ x):PLT . RC params[ font . sans-serif ]=[ sim hei ]import matplotlib . py plot作为plt#到Rsi _ x . PLT . RC params[ axes . unicode _ MINUS ]=false fig,ax=PLT . subplots()PLT . xlim(Rsi _ x . index[0],rsi_x.index[-1])plt.ylim(0调用上面的函数#以平安银行为例DF=get _ data (00001.sz) #计算R SIRSI6=RSI
6.RSI指标判断股票的超买超卖状态。除了上面提到的0,50,100的状态,我们还可以描述超买线,超卖线,中线。
RSI值等于80和20分别是常用的“超买线”和“超卖线”。RSI为80表示超买临界点,RSI为20表示超买临界点,RSI为50设为“中线”,表示买盘力量等于卖盘力量。
当RSI大于80时,该股出现超买信号,该股买盘力量过大,未来买盘力量可能减小,股价可能下跌;当RSI小于20时,股票超卖,股票的卖出力量过大。未来卖权可能会恢复正常,所以股价可能会上涨。超买线和超卖线的描述是可以改变的,90和10也是可以的,70和30也被证明可以有效预测股票走势。具体选择,不同的人有不同的看法。7.RSI的“黄金交叉”和“死亡交叉”在股市中使用RSI指标时,一般会定义不同时间跨度的RSI值。
当短期RSI向上穿越长期RSI线时,该股近期买盘力量较强,价格涨幅较大,释放出较强的买入信号,称为黄金交叉。当短期RSI跌破长期RSI时,该股近期抛盘力量较强,价格跌幅较大,释放出较强的卖出信号,称为死亡交叉。用rsi6和rsi24画rsi黄金交叉和死亡交叉。
定义为函数。
导入matplot库。pyplot as pltdf mult _ RSI(RSI 6,RSI 12):PLT。rcparams[ font。sans-serif ]=[ simhei ]PLT。rcparams[轴。unicode _ MINUS ]=falsefi,ax=PLT。子图()PLT。xlim(RSI 6。index[0],rsi6.index[-1])plt.ylim(0,100)plt.grid(True)plt.xlabel(日期)PLT。ylabel( RSI _ values )补丁。set _ face颜色(红色)补丁。set _ alpha(0.6)ax。补丁。set _ face颜色(黄色)ax。补丁。set _ alpha(1)PLT。plot(RSI 6,color=r ,label= RSI 6 )PLT . PLT(RSI 12,color=g ,label= RSI 12 )PLT。图例()工厂。标题(双投降吧线图)调用并查看结果
S7-1200可编程控制器。关闭)rsi12=rsi(df).Close,12)mult_rsi(rsi6[2020],rsi12[2020])生成图像效果如下:
(这里选了一年的数据,选择时间较长。如选择更短时间段的数据,方便研究更多细节。)
8.细节改进比投降吧信号指标释放出买卖点信号滞后3天或数天再执行买卖操作,有时会比滞后一天效果更理想。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。