Python 金融量化 RSI相对强弱指标(1)

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、全套PDF电子书

书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。

四、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

五、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

第一步,我们照常从tushare获取数

import tushare as ts

import pandas as pd

token = ‘Your token’ # 输入你的接口密匙,获取方式及相关权限见Tushare官网。这句话不能照抄!

pro = ts.pro_api(token)

def get_data(tscode):

df = pro.daily(ts_code=tscode)

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’: ‘Volume’},

inplace=True) # 重定义列名,方便统一规范操作。

df[‘Date’] = pd.to_datetime(df[‘Date’]) # 转换日期列的格式,便于作图

df.set_index([‘Date’], inplace=True) # 将日期列作为行索引

df = df.sort_index() # 倒序以便作图

return df

2. RSI基本概述

=================================================================================

RSI即相对强弱指标(Relative Strength Index),是在股票市场上用于衡量证券自身内在强度的指标,用于判断股票买方力量与卖方力量的强弱,进而预测价格走势。

计算公式如下:

R S I = 100 − 100 1 + R S \displaystyle RSI=100-\frac{100}{1+RS} RSI=100−1+RS100​ 或 R S I = 100 × R S 1 + R S \displaystyle RSI=100×\frac{RS}{1+RS} RSI=100×1+RSRS​

其中: R S = U P D O W N \displaystyle RS=\frac{UP}{DOWN} RS=DOWNUP​

故上述公式也即 R S I = 100 × U P U P + D O W N \displaystyle RSI=100×\frac{UP}{UP+DOWN} RSI=100×UP+DOWNUP​

  • UP表示t期内股价上涨幅度的平均值

  • DOWN表示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()

indexprc = clprcChange.index

upPrc = pd.Series(0, index=indexprc)

upPrc[clprcChange > 0] = clprcChange[clprcChange > 0]

downPrc = pd.Series(0, index=indexprc)

downPrc[clprcChange < 0] = -clprcChange[clprcChange < 0]

risdata = pd.concat([price, clprcChange, upPrc, downPrc], axis=1)

risdata.columns = [‘price’, ‘PrcChange’, ‘upPrc’, ‘downPrc’]

risdata = risdata.dropna()

SMUP = []

SMDOWN = []

for i in range(period, len(upPrc) + 1):

SMUP.append(np.mean(upPrc.values[(i - period): i], dtype=np.float32))

SMDOWN.append(np.mean(downPrc.values[(i - period): i], dtype=np.float32))

rsi = [100 * SMUP[i] / (SMUP[i] + SMDOWN[i]) for i in range(0, len(SMUP))]

indexRsi = indexprc[(period - 1):]

rsi = pd.Series(rsi, index=indexRsi)

return rsi

韦尔斯·威尔德(Wells Wilder)指出,通过运用月周期28天的一半来计算RSI的值进行预测是有效的,他推荐14日为时间跨度。

一些常用的看盘软件设有6日RSI,12日RSI,24日RSI三个RSI指标。

  • 6日近似一周的时间周期

  • 12日近似半个月的时间周期

  • 24日近似一个月的时间周期

  • 此外也有人用RSI1表示6日相对强度指标,RSI2日表示12日相对强度指标,RSI3表示24日相对强度指标。

4. python编写Rsi绘图函数

=========================================================================================

import matplotlib.pyplot as plt

传入rsi_x时要记着切片

def rsi_plot(rsi_x):

plt.rcParams[‘font.sans-serif’] = [‘SimHei’]

plt.rcParams[‘axes.unicode_minus’] = False

fig,ax = plt.subplots()

plt.xlim(rsi_x.index[0],rsi_x.index[-1])

plt.ylim(0,100)

plt.grid(True)

plt.xlabel(‘日期’)

plt.ylabel(‘rsi_values’)

fig.patch.set_facecolor(‘red’)

fig.patch.set_alpha(0.6)

ax.patch.set_facecolor(‘yellow’)

ax.patch.set_alpha(1)

plt.plot(rsi_x,color=‘r’)

plt.title(‘RSI指标图’)

5. 调用以上函数

================================================================================

以平安银行为例

df = get_data(‘000001.SZ’)

计算rsi

rsi6=rsi(df.Close)

以2020年全年数据为例绘图

rsi_plot(rsi6[‘2020’])

图像效果如下:

在这里插入图片描述

6.RSI指标判断股票超买和超卖状态

========================================================================================

除了上边说到的0,50,100三个位点的状况,我们还可以刻画超买线,超卖线,和中心线。

RSI取值等于80和20分别为比较常用的“超买线”和“超卖线”。RSI为80表示超买的临界点,RSI为20表示超卖的临界点,RSI取值为50设定为“中心线”,表明买入力量等于卖出力量。

  • RSI大于80时,股票出现超买信号,股票买入力量过大,买入力量未来可能会减小,股票价格可能会下跌;

  • RSI小于20时,股票出现超卖信号,股票卖出力量过大,卖出力量未来可能会回归正常,因此股票价格可能会上涨。

  • 超买线和超卖线的刻画可以有所变化,90和10也是可以的,70和30也已被验证能够有效预测股票走势。具体选择,仁者见仁智者见智。

7. RSI的“黄金交叉”与“死亡交叉”

===========================================================================================

文末有福利领取哦~

👉一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。img

👉二、Python必备开发工具

img
👉三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
img

👉 四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(文末领读者福利)
img

👉五、Python练习题

检查学习结果。
img

👉六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
img

img

👉因篇幅有限,仅展示部分资料,这份完整版的Python全套学习资料已经上传

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值