量化交易的相对强弱(RSI )指标计算及策略
顾名思义,相对强弱指数 (RSI) 指标告诉我们资产的相对强弱。换句话说,RSI 告诉我们股票相对于自身的表现(或不表现)。RSI 被视为一种强大的技术指标,可用于分析市场,并且是交易者武器库的重要组成部分,因为它可以帮助他们在市场时机上做出更好的决策。当然,与其他指标一样,始终建议使用多个指标,因为它可以帮助我们避免对一个指标的限制和过度依赖。
因此,在本博客中,除了了解 RSI 指标外,我们还将了解它的局限性以及何时使用它们。
借助示例计算 RSI
现在让我们了解如何计算和绘制 RSI 指标。虽然您可以使用 Python 代码轻松计算 RSI 指标值,但出于解释目的,我们将手动计算。
| 日期 | 关(1) | 改变(2) | 获得(3) | 失利(4) | 平均增益(5) | 平均损失(6) | RS(7) | 14 天 RSI(8) |
|---|---|---|---|---|---|---|---|---|
| 24-04 | 283.46 | |||||||
| 25-04 | 280.69 | -2.77 | 0.00 | 2.77 | ||||
| 26-04 | 285.48 | 4.79 | 4.79 | 0.00 | ||||
| 27-04 | 294.08 | 8.60 | 8.60 | 0.00 | ||||
| 30-04 | 293.90 | -0.18 | 0.00 | 0.18 | ||||
| 01-05 | 299.92 | 6.02 | 6.02 | 0.00 | ||||
| 02-05 | 301.15 | 1.23 | 1.23 | 0.00 | ||||
| 03-05 | 284.45 | -16.70 | 0.00 | 16.70 | ||||
| 04-05 | 294.09 | 9.64 | 9.64 | 0.00 | ||||
| 07-05 | 302.77 | 8.68 | 8.68 | 0.00 | ||||
| 08-05 | 301.97 | -0.80 | 0.00 | 0.80 | ||||
| 09-05 | 306.85 | 4.88 | 4.88 | 0.00 | ||||
| 10-05 | 305.02 | -1.83 | 0.00 | 1.83 | ||||
| 11-05 | 301.06 | -3.96 | 0.00 | 3.96 | ||||
| 14-05 | 291.97 | -9.09 | 0.00 | 9.09 | 3.13 | 2.52 | 1.24 | 55.37 |
| 15-05 | 284.18 | -7.79 | 0.00 | 7.79 | 2.91 | 2.90 | 1.00 | 50.07 |
| 16-05 | 286.48 | 2.30 | 2.30 | 0.00 | 2.86 | 2.69 | 1.06 | 51.55 |
| 17-05 | 284.54 | -1.94 | 0.00 | 1.94 | 2.66 | 2.64 | 1.01 | 50.20 |
| 18-05 | 276.82 | -7.72 | 0.00 | 7.72 | 2.47 | 3.00 | 0.82 | 45.14 |
| 21-05 | 284.49 | 7.67 | 7.67 | 0.00 | 2.84 | 2.79 | 1.02 | 50.48 |
| 22-05 | 275.01 | -9.48 | 0.00 | 9.48 | 2.64 | 3.27 | 0.81 | 44.69 |
| 23-05 | 279.07 | 4.06 | 4.06 | 0.00 | 2.74 | 3.03 | 0.90 | 47.47 |
| 24-05 | 277.85 | -1.22 | 0.00 | 1.22 | 2.54 | 2.90 | 0.88 | 46.71 |
| 25-05 | 278.85 | 1.00 | 1.00 | 0.00 | 2.43 | 2.70 | 0.90 | 47.45 |
| 29-05 | 283.76 | 4.91 | 4.91 | 0.00 | 2.61 | 2.50 | 1.04 | 51.05 |
| 30-05 | 291.72 | 7.96 | 7.96 | 0.00 | 2.99 | 2.32 | 1.29 | 56.29 |
| 31-05 | 284.73 | -6.99 | 0.00 | 6.99 | 2.78 | 2.66 | 1.05 | 51.12 |
| 01-06 | 291.82 | 7.09 | 7.09 | 0.00 | 3.09 | 2.47 | 1.25 | 55.58 |
| 04-06 | 296.74 | 4.92 | 4.92 | 0.00 | 3.22 | 2.29 | 1.40 | 58.41 |
| 05-06 | 291.13 | -5.61 | 0.00 | 5.61 | 2.99 | 2.53 | 1.18 | 54.17 |
第一步:收盘价
我们将取股票 30 天的收盘价。收盘价在第 (1) 栏中提及。
第二步:收盘价变化
然后,我们将当天的收盘价与前一天的收盘价进行比较,并记下它们。因此,从表格中,对于 25-04,我们得到价格变化为 (280.69 - 283.46) = -2.77。
同样,对于 26-04,价格变化 =(当前收盘价 - 前收盘价)= (285.48 - 280.6) = 4.79。然后,我们将在“更改 (2)”列中列出结果。通过这种方式,我们计算了价格的变化。
第 3 步:得与失
我们现在将根据价格相对于前一天的收盘价上涨或下跌的事实创建两个部分。
如果价格上涨,我们在“收益”栏中记下差异,如果是亏损,我们在“亏损”栏中记下。
例如,26-04,价格上涨了 4.79。因此,该值将在“增益”列中注明。
如果您查看 25-04 的数据,价格下跌了 2.77。现在,虽然值在“变化”列中写为负数,但我们没有在“损失”列中提及负号。并且只写成 2.77。以这种方式,更新了“增益(3)”和“损失(4)”列的表。
第 4 步:平均收益和损失
在 RSI 指标中,为了平滑价格变动,我们取一定时期内收益(和损失)的平均值。
虽然我们称其为平均值,但需要进行一些解释。对于前 14 个周期,它是值的简单平均值。
为了解释它,我们将查看平均增益列。
因此,在表中,前 14 个值将从 (25-04) 到 (14-05),即 (0.00 + 4.79 + 8.60 + 0.00 + 6.02 + 1.23 + 0.00 + 9.64 + 8.68 + 0.00 + 4.88 + 0.00 + 0.00 + 0.00)/14 = 3.13。
现在,由于我们更加强调最近的值,对于下一组值,我们使用以下公式,
[(以前的平均增益)*13)+ 当前增益)]/14。
因此,对于 (15-05),我们将计算平均增益为 [(3.13*13)+0.00]/14 = 2.91。
同样,我们也会计算平均损失。
基于这些公式,该表针对“Avg Gain (5)”和“Avg Loss (6)”列进行了更新。
第 5 步:计算 RS
现在,为了简单起见,我们添加了一个名为“RS”的列,即(Avg Gain)/(Avg Loss)。因此,对于 14-05,RS = (Avg Gain)/(Avg Loss) = 3.13/2.52 = 1.24。
这样,“RS(7)”栏的表格被更新。在下一步中,我们最终计算出 RSI 值。
第 6 步:计算 RSI
RSI = [100 - (100/{1+ RS})]。
例如,对于 (14-05),
RSI = [100 - (100/{1+ RS})] = [100 - (100/{1+ 1.24})] = 55.37。
以这种方式,表格被更新。
这就是我们获得 RSI 值的方式。RSI 指标图表始终是相对于收盘价创建的。例如,如果我们考虑上表中 RSI 的值,图形应该如下:

虽然这里提到的 RSI 公式被普遍接受,但我们可以根据给予平均收益或损失值的权重对公式进行某些变化。众所周知,随着数据点数量的增加,RSI 指标在衡量市场方面变得更好。某些来源建议至少 250 个数据点,然后再开始对它们做出交易决策。
RSI 指标受欢迎的原因之一是它的值始终在 0 到 100 之间。这使得阅读和形成对资产的看法变得容易。此外,通常认为低于 30 的值表示“超卖”,而高于 70 的值表示“超买”。
然而,这并不像看起来那么容易,如果我们试图仅仅基于这个因素进出市场,我们将无法有效地交易,因为在很多情况下这个建议可能会失败。您可以在下图中看到,即使在 3 月 19 日至 4 月 25 日进入超买区域后,收盘价仍继续上涨。

考虑到这一点,让我们尝试查看一些基于 RSI 指标的策略。
RSI 策略
RSI 作为趋势指标
当您想要衡量市场是否正在经历看涨或看跌趋势 时,RSI 可作为参考。虽然指标高于 70 表示超买,低于 30 表示超卖的一般假设在大多数情况下都成立,但也有其他人坚持认为,对于高于 66.6 和低于 33.3 的值也可以成立。
如果 RSI 收于 66.6 以上但低于该值,则不应假定趋势已反转,您应立即做空股票。相反,我们寻找图表,只要它保持在 33.3 以上,我们就可以说市场在资产方面仍然看涨。
您可以在下图中看到,RSI 指标在 2018 年 7 月越过超买区域,此后价格继续上涨,表明牛市。

同样,如果 RSI 低于 33.3 并上涨,但没有越过 66.6 的障碍(或假设的 70),我们可以得出结论,市场看跌。
但是,不应将此作为购买(或出售)相关资产的唯一指示。我们将进入下一个主题以了解整个情况。
RSI 作为支撑和阻力
正如我们已经了解了如何设置 RSI趋势指标,我们可以看到,与亏损周期数相比,随着收益周期数的增加,RSI 值将不断增加。因此,与收盘价相比,它有力地表明了长期趋势,每日价格波动可能会向我们展示不同的故事。
就像收盘价一样,我们可以使用 RSI 指标值来绘制支撑位和阻力位的趋势线,因此,在 RSI 值中可以很容易地观察到这一趋势的突破。您可以在下图中看到 RSI 和收盘价如何突破。

这里的交易是正确识别突破是长期可持续的还是虚假信号。
RSI 和背离
RSI 指标还可用于在价格趋势实际反转之前预测趋势的背离。
例如,当价格线走高但 RSI 指标下滑时,通常可以发现背离,因为与前一时期的增长相比,资产的相对强度减弱。
例如,假设价格收盘价高于前几天,但与该期间的平均收益相比,收益并不大。然后,RSI 将低于前一天的值。在这方面,我们可以得到一个信号,市场将在几天内得到价格检查,从而进行相应的交易。您可以在下图中看到,RSI 呈下降趋势,而价格继续上涨。最终,收盘价也会下降。

当收盘价已经看跌一段时间但RSI开始发布更高的值时也是如此,这意味着价格将会回升。
RSI 双底信号和双顶信号
正如我们在布林带部分讨论的那样,我们也可以使用 RSI 指标识别双底和双顶模式。双底形态识别的要点如下。
- RSI 指标收于 30 以下,然后上涨并突破 30 关口。
- 它再次向南移动,但收于 30 以上,然后再次急剧上升。
这在图表上被视为“W”形。交易者通常使用这种模式来确认市场走向看涨方向。您可以在下图中看到,RSI 指标在 1 月 2 日突破 30 关口,然后急剧上涨,然后收于下方,但在 1 月 7 日高于 30 关口。然后它再次上涨并在整个 1 月份继续上涨,并且2 月,这表明看涨。

与双底类似,双顶的形态形成如下:
- RSI 指标突破 70 水平,然后再次跌破 70 水平。
- 它再次上涨但收于 70 以下,然后再次急剧下跌。
这被视为价格图表上的“M”形。交易者通常使用这种模式来确认市场走向看跌方向。您可以在下图中看到,RSI 水平在 17 年 12 月突破 70。后来,它跌破了 70 的门槛,虽然它确实上涨了,但它没有再次越过 70 的门槛,然后开始下跌,表明持续一年的看跌行情。

RSI 和 MACD 策略
我们早就明白,如果我们未能阅读或该指标产生错误信号,使用单一指标作为您交易决策的基础可能是灾难性的。聪明的投资者使用 2 个或多个指标来识别积极(或消极)信号并相应地进入市场。有了这个因素,我们使用 RSI 和 MACD 来识别可用于获利交易的信号。要了解 MACD 以及如何计算它,您可以参考这篇MACD指标
为什么我们同时使用 RSI 和 MACD 指标?
我们将 RSI 和 MACD 一起使用的原因是它们相互补充,因为它们具有比较资产价格行为的固有性质。
在此策略中,当 RSI 和 MACD 均表明资产超卖时,我们进入交易,当任一指标向我们发出价格已进入超买区域的信号时退出。

您可以在上图中看到,MACD 越过中线下方,表明下降趋势,但我们会等到 2018 年 11 月 RSI 突破 70 关口但之后急剧下跌。在这里,我们有两个指标可能告诉我们市场正在走向熊市,果然,我们可以看到收盘价一直下跌到 2018 年 11 月结束。因此我们可以在 11 月做空股票,因为我们看到RSI指标在再次上升之前跌破30,我们可以退出该头寸。
RSI指标和MACD指标的区别
虽然我们确实提到 RSI 指标和 MACD 指标有某些相似之处,但它们有不同的处理方法。虽然 RSI 指标考虑了与前一天相比的收益和损失比率,但 MACD 本质上是价格的移动平均线。
因此,我们应该小心,不要期望 RSI 和 MACD 会在特定时间点发出相同的信号。
RSI 的局限性
- RSI 的基本属性表明高于 70 的水平是超买的,这在公司发展迅速并为股东带来良好回报的强劲牛市中被证明是错误的。在这种情况下,RSI 可以长时间保持在 70 以上,这对卖空者来说可能是灾难性的。熊市的情况类似,RSI 可以保持在 30 以下,并且在很长一段时间内不会超过该水平。
- RSI 也可能发出错误信号。有时会出现分歧,但股票继续保持趋势。
因此,人们总是说我们应该将 RSI 与一个或多个指标一起使用,这将使我们对市场有一个整体的看法,并帮助我们从特定资产的价格行为中提取最大的信息。
结论
总而言之,一旦我们知道如何绘制 RSI 指标,在 RSI 指标图表的帮助下阅读并形成对资产的看法相对容易。虽然 70 的一般水平表明市场存在超买和超卖的 30,但我们已经看到完全依赖这一点信息可能是有害的。因此,我们尝试根据 RSI 指标使用不同的策略,以给予我们必要的信心来把握市场获利的时机。我们还看到,使用一个或多个指标来帮助我们在市场上做出更有根据的猜测总是更好。
欢迎来AI人工智能量化交易投资平台-BigQuant实践操作!
量化交易的相对强弱(RSI )指标计算及策略的更多相关文章
- 高频交易算法研发心得--RSI指标及应用
高频交易算法研发心得--RSI指标及应用 前面文章中我们提到了MA均线(包括EMA,SMA).MACD以及SAR指标,这三类指标存在一个共同特点,即:从固定周期的价格作为判读的指导思想,并将价格进行平 ...
- Python进阶量化交易专栏场外篇7- 装饰器计算代码时间
欢迎大家订阅<教你用 Python 进阶量化交易>专栏!为了能够提供给大家更轻松的学习过程,笔者在专栏内容之外已陆续推出一些手记来辅助同学们学习本专栏内容,目前已推出如下扩展篇: 在第一篇 ...
- 以股票RSI指标为例,学习Python发送邮件功能(含RSI指标确定卖点策略)
本人之前写过若干“给程序员加财商”的系列文,目的是通过股票案例讲述Python知识点,让大家在学习Python的同时还能掌握相关的股票知识,所谓一举两得. 在之前的系列文里,大家能看到K线,均线,成交 ...
- Python进阶量化交易场外篇3——最大回撤评价策略风险
新年伊始,很荣幸笔者的<教你用 Python 进阶量化交易>专栏在慕课专栏板块上线了,欢迎大家订阅!为了能够提供给大家更轻松的学习过程,笔者在专栏内容之外会陆续推出一些手记来辅助同学们学习 ...
- 金融量化分析【day112】:初识量化交易
一.摘要 为什么需要量化交易? 量化交易是做什么? 量化交易的价值何在? 做量化交易需要什么? 聚宽是什么? 零基础如何快速入门量化交易? 自测与自学 二.量化交易比传统交易强多少? 它能让你的交易效 ...
- 高频交易算法研发心得--WAVT指标(Warensoft交易量趋势指标)算法及应用
高频交易算法研发心得--WAVT指标(Warensoft交易量趋势指标)算法及应用 注:WAVT指标由Warensoft(王宇)原创. 前面聊了一系列的常见应用指标,包括短线.长线的指标,并且也无耐的 ...
- python做量化交易干货分享
http://www.newsmth.NET/nForum/#!article/Python/128763 最近程序化交易很热,量化也是我很感兴趣的一块. 国内量化交易的平台有几家,我个人比较喜欢用的 ...
- 《零起点,python大数据与量化交易》
<零起点,python大数据与量化交易>,这应该是国内第一部,关于python量化交易的书籍. 有出版社约稿,写本量化交易与大数据的书籍,因为好几年没写书了,再加上近期"前海智库 ...
- 零起点Python大数据与量化交易
零起点Python大数据与量化交易 第1章 从故事开始学量化 1 1.1 亿万富翁的“神奇公式” 2 1.1.1 案例1-1:亿万富翁的“神奇公式” 2 1.1.2 案例分析:Python图表 5 1 ...
- 开源支持东财自动交易的简单量化交易框架pytrader
pytrader是基于 easytrader 和 easyquotation 的量化交易框架,支持东方财富自动交易,支持进行策略回测. 开源地址:https://github.com/jadepeng ...
随机推荐
- 非全自研可视化表达引擎-RuleLinK
说在前面 工作中经常会遇到这样的场景: 帮忙把小贝拉门店 商品金额在5w以内,产康订单最多95折. 帮忙把圣贝拉门店 开业时间在6个月内,折扣低于7折要发起审批 帮忙把宁波太平洋店设置独立合同模板 帮 ...
- ShardingSphere实战
前言 本文主要从sharding最新版本5.1.2版本入手搭建,按主键ID和时间进行分表. 本文主要介绍搭建过程,有兴趣了解shardingsphere的同学可以先自行查阅相关资料. shardsph ...
- 当开源项目 Issue 遇到了 DevChat
目录 1. 概述 2. Bug 分析与复现 3. Bug 定位与修复 4. 代码测试 5. 文档更新 6. 提交 Commit 7. 总结 1. 概述 没错,又有人给 GoPool 项目提 issue ...
- SQL查询中的小技巧:SELECT 1 和 LIMIT 1 替代 count(*)
前言 在写SQL查询时,常规做法是使用SELECT count(*)来统计符合条件的记录数. 然而,在某些情况下,我们只关心是否存在符合条件的记录,而不需要知道具体的记录数. 为了优化性能,可以改用使 ...
- WPF动画入门教程
Windows Presentation Foundation (WPF)是一种用于创建Windows客户端应用程序的UI框架.它让我们能够创建丰富的图形界面,包括各种各样的动画效果.接下来,我们将介 ...
- jdk8环境变量
JAVA_HOME C:\Program Files\Java\jdk1.8.0_333 Path%JAVA_HOME%\bin%JAVA_HOME%\jre\bin CLASSPATH.%JAVA_ ...
- Android news Display Owner Info on Your Android Device in Case It Gets Lost
Display Owner Info on Your Android Device in Case It Gets Lost The latest versions of Android includ ...
- mol 文件格式简单解析(v2000)
前言 .mol 文件是常见的化学文件格式,主要包含分子的坐标.分子间的键等数据. 示例文件 下面是一个水分子的 .mol 文件 H2O APtclcactv05052315543D 0 0.00000 ...
- 利用ChatGPT提升测试工作效率——测试工程师的新利器(一)
1.前言 随着ChatGPT的爆火,各个行业开始尝试利用ChatGPT来提升工作效率.其中,测试工程师们也开始探索如何应用ChatGPT来加强测试工作.在本文中,我们将从测试工程师的角度出发,探讨Ch ...
- 普冉PY32系列(八) GPIO模拟和硬件SPI方式驱动无线收发芯片XN297LBW
目录 普冉PY32系列(一) PY32F0系列32位Cortex M0+ MCU简介 普冉PY32系列(二) Ubuntu GCC Toolchain和VSCode开发环境 普冉PY32系列(三) P ...