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

现在能在网上找到很多很多的学习资源,有免费的也有收费的,当我拿到1套比较全的学习资源之前,我并没着急去看第1节,我而是去审视这套资源是否值得学习,有时候也会去问一些学长的意见,如果可以之后,我会对这套学习资源做1个学习计划,我的学习计划主要包括规划图和学习进度表。

分享给大家这份我薅到的免费视频资料,质量还不错,大家可以跟着学习

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

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

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

  • 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的“黄金交叉”与“死亡交叉”

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

在股票市场使用RSI指标时,一般会定义不同的时间跨度的RSI值。

  • 当短期RSI向上穿过长期RSI线时,股票近期买入力量较强,价格上涨力量很大,其释放出一个较强的买入信号,这个信号被称为黄金交叉

  • 当短期RSI向下跌破长期RSI的时候,股票近期卖出力量较强,价格下跌力量很大,其释放出一个较强的卖出信号,被称为死亡交叉

用rsi6和rsi24来绘制RSI黄金交叉和死亡交叉

定义为函数形式

import matplotlib.pyplot as plt

def mult_rsi(rsi6,rsi12):

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

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

fig,ax = plt.subplots()

plt.xlim(rsi6.index[0],rsi6.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(rsi6,color=‘r’,label=‘RSI6’)

plt.plot(rsi12,color=‘g’,label=‘RSI12’)

plt.legend()

plt.title(‘双RSI线图’)

调用并查看结果

rsi6 = rsi(df.Close)

rsi12 = rsi(df.Close, 12)

mult_rsi(rsi6[‘2020’],rsi12[‘2020’])

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

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

二、学习软件

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

三、入门学习视频

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

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值