RSI 相对强弱指标
相对强弱指标 RSI 又叫力度指标,其英文全称为“Relative Strength Index”,由威尔斯•魏尔德﹝Welles Wilder﹞所创造的,是目前股市技术分析中比较常用的中短线指标。
RSI 是根据一定时期内股价上涨总幅度占股价变化总幅度的百分比制作出的一种技术曲线。代表股票在过去 N 天的相对强弱情况,能够反映出市场在一定时期内的景气程度。
RSI 值域在 0 到 100 之间,值越大, 股票表现越强势。 RSI 大多数时间在 30 到 70 之间震荡。RSI > 80,代表超买,股价回调的可能性加大; RSI<20, 代表超卖,股价反弹的可能性增大。
计算方法:
RSI=(N 日内上涨幅度的 sma/N 日内上涨和下跌幅度的 sma)*100%
sma 表示指数平均
sma=1 日涨幅 /N+(1-1/N)* 昨日 sma
1 日涨幅 = 收盘价 - 昨日收盘价
上涨幅度取 N 日内 1 日涨幅中的正值
上涨和下跌幅度取 N 日内 1 日涨幅的绝对值
指标参数:
y |
RSI 输出列 |
n |
数字,时间周期,如 14 |
函数代码:
A |
B |
|
1 |
func RSI(A,$y,n) |
=A.derive@o(:rsi_gain,:rsi_smagain,rsi_smachange) |
2 |
=A.run(收盘 - 收盘 [-1]:rsi_gain ) |
|
3 |
=A.run(max(rsi_gain,0)/n+(1-1/n)*rsi_smagain[-1]:rsi_smagain,abs(rsi_gain)/n+(1-1/n)*rsi_smachange[-1]:rsi_smachange ) |
|
4 |
=A.run(rsi_smagain /rsi_smachange *100:${y}) |
|
5 |
=A.alter(;rsi_gain,rsi_smagain,rsi_smachange) |
将函数保存在 indicator.splx 中。
举例:调用脚本计算浦发银行 2024 年的 RSI 指标,n 取 14。
A |
B |
|
… |
… |
|
5 |
=call@f("indicator.splx") |
登记脚本中的函数 |
6 |
… |
计算出源数据 |
7 |
=A6.derive(:RSI) |
增加要返回的指标字段 |
8 |
=RSI(A7,RSI,14) |
调用函数计算指标 |
运行效果: