个股RPS(股价相对强度)指标代码和选股公式设置过程图解
发布时间:2023-09-27 06:57:37
一、RPS的概念
RPS中文翻译为股价相对强度。在国外,威廉_欧奈尔、马克_米勒维尼等著名投资者在其著作中多次提及。在国内,陶博士是首开先河者,陶博士之后,采用者摩肩接踵,几乎是强势股交易者的必备。
RPS是指定范围的个股,按相同时间周期的涨幅排序,再对排序作0-100范围内的归一化。RPS的值在0-100之间,数值越大,代表涨幅排序越靠前。涨幅第1的,RPS值为100;涨幅最末的,RPS值为0。
假设市场上共有M只股票,若某个股的20日的合计涨幅在M只股票中排名第N位,那么该股票的20日RPS值是:100*(M-N)/(M-1)。
比如,市场上共有5001只股票,若某个股的20日的合计涨幅在5001只股票中排名第300位,那么该股票的20日RPS值是:100 * (5001 - 300) / (5001-1) = 94.02,它表示该个股的涨幅超过了市场上94.02%的个股。可以把特殊值N=1, 5001, 2501分别代入公式进行验证。
RPS的时间周期可以采用自然的时间计量周期:周、月、季、(半年)、年、(两年),分别对应5日、20日、60日、120日、250日、500日。过于短期或者长期的设置可能意义不大。
除了个股RPS,还有板块指数RPS、ETF的RPS,可以参考陶博士、齐大总管、西湖区的孩纸等人的文章。
二、RPS的意义
不同时间周期(尺度)的RPS展现出了不同的特征。短期RPS值较大或较小时,展现的是混沌或不确定性;中期RPS值较大或较小时,展现的是动量,即强者恒强或弱者恒弱,我理解成惯性:过去上涨将来延续惯性继续上涨,过去下跌将来延续惯性继续下跌;长期RPS值较大或较小时,展现的是反转:过去长期上涨或下跌不可持续,终将反转成下跌或上涨。
可以把RPS放在最核心的位置,深入研究其意义和用法,构建一套交易体系。RPS很重要但不应是唯一,一个篱笆还要三个桩,在根据RPS初选出一批个股后,还有很多其它工作要做,比如研究基本面、技术面、政策面、资金面等,很多时候还要结合板块效应。
三、建立RPS指标公式
步骤1:计算个股涨幅
首先排除上市不足2年的个股。新建一个技术指标公式,命名为“EXTRS005”,用来计算个股5日涨幅。公式管理器-> 技术指标公式 -> 其他类型。公式如下:
N:= 5;
C1:= FINANCE(42) > 250 * 2; {上市超过2年}
C2:= (C - REF(C, N)) / REF(C, N); {N日涨幅}
EXTRS: IF(C1, C2, DRAWNULL);
同样方法新建一系列技术指标公式,分别命名为“EXTRS020”、“EXTRS060”、“EXTRS120”、“EXTRS250”、“EXTRS500”,用来计算个股的20日、60日、120日、250日、500日涨幅。
步骤2:设置扩展数据
设置扩展数据,目的是对个股按涨幅进行排序并归一化。扩展数据需要每天刷新,当设置改动后也要刷新。
进入扩展数据管理器。选中第1条扩展数据,如下图(下图已经完成):
点击上图中的修改,在扩展数据属性里设置如下(用于5日RPS):
重复上述步骤,分别对第2、3、4、5、6条扩展数据的属性进行设置。
步骤3:建立个股RPS指标公式
在以往的版本中我曾提出过自己的公式编写思路。两相比较,实际上还是陶博的公式更简洁,RPS线条在显示时也不存在断开的现象,所以仍然采用陶博的方法。
新建一个技术指标公式,公式名称:RPSG,公式描述:个股RPS。公式管理器 -> 技术指标公式 -> 其它类型 -> 新建:
绘制6条RPS线条的公式如下。其中每条线条包含两种颜色,当RPS数值大于等于M时,显示为红线,称为RPS翻红。
M:= 90; {也有取87、95}
KH:= M; {上临值}
KL:= 100-M; {下临值}
上临线: KH, DOTLINE, COLORMAGENTA;
下临线: KL, DOTLINE, COLORMAGENTA;
{}{绘制5日RPS线条}{}
ED5:= EXTDATA_USER(1, 0) / 10; {引用扩展数据1并调整归一化范围,得到5日RPS数值}
RPS5: ED5, LINETHICK1, COLORLIGRAY; {绘制RPS线条,淡灰色}
IF(ED5 >= M, ED5, DRAWNULL), LINETHICK1, COLORRED; {当RPS数值超过M时,RPS线条颜色翻红};
{}{绘制20日RPS线条}{}
ED20:= EXTDATA_USER(2, 0) / 10; {引用扩展数据2并调整归一化范围,得到20日RPS数值}
RPS20: ED20, LINETHICK1, COLORGREEN; {绘制RPS线条,绿色}
IF(ED20 >= M, ED20, DRAWNULL), LINETHICK1, COLORRED; {当RPS数值超过M时,RPS线条颜色翻红};
{}{绘制60日RPS线条}{}
ED60:= EXTDATA_USER(3, 0) / 10; {引用扩展数据3并调整归一化范围,得到60日RPS数值}
RPS60: ED60, LINETHICK1, COLORBLUE; {绘制RPS线条,蓝色}
IF(ED60 >= M, ED60, DRAWNULL), LINETHICK1, COLORRED; {当RPS数值超过M时,RPS线条颜色翻红};
{}{绘制120日RPS线条}{}
ED120:= EXTDATA_USER(4, 0) / 10; {引用扩展数据4并调整归一化范围,得到120日RPS数值}
RPS120: ED120, LINETHICK1, COLORCYAN; {绘制RPS线条,青色}
IF(ED120 >= M, ED120, DRAWNULL), LINETHICK1, COLORRED; {当RPS数值超过M时,RPS线条颜色翻红};
{}{绘制250日RPS线条}{}
ED250:= EXTDATA_USER(5, 0) / 10; {引用扩展数据5并调整归一化范围,得到250日RPS数值}
RPS250: ED250, LINETHICK1, COLORBLACK; {绘制RPS线条,黑色}
IF(ED250 >= M, ED250, DRAWNULL), LINETHICK1, COLORRED; {当RPS数值超过M时,RPS线条颜色翻红};
{}{绘制500日RPS线条}{}
ED500:= EXTDATA_USER(6, 0) / 10; {引用扩展数据6并调整归一化范围,得到500日RPS数值}
RPS500: ED500, LINETHICK1, COLORBROWN; {绘制RPS线条,棕色}
IF(ED500 >= M, ED500, DRAWNULL), LINETHICK1, COLORRED; {当RPS数值超过M时,RPS线条颜色翻红};
步骤4:副图显示个股RPS
打开任意个股的界面,点击下方“窗口”可以调整界面显示的窗口数量,选显示2个窗口,也就是1个主图1个副图。点击向下的三角箭头,再点击“选择副图指标”,在“其它类型”里找到“RPSG”,副图就能显示RPS线条了。
结果举例:
四、建立RPS选股公式
步骤1:计算个股涨幅
在“三、建立RPS指标公式”中已经建立了计算股票N日涨幅的技术指标公式,可以直接使用。注意,通过:公式管理器-> 条件选股公式 -> 其他类型,建立的计算股票涨幅的公式,不能用于扩展数据管理器。
步骤2:设置扩展数据
在“三、建立RPS指标公式”中已经完成,包括数据1、数据2、数据3、数据4、数据5、数据6。
步骤3:建立个股RPS选股公式
公式给出了6个RPS翻红条件,可以根据需要选取并组合。本公式仅仅作为示例,选取60日、120日这两个偏中线的RPS,以两线全部翻红作为选股条件,即要求60日和120日RPS值都大于等于90。公式名称:RPSG,公式描述:个股RPS。从选股结果看,被选中的个股当日两线全部翻红,说明公式很可能是成功的。
M:= 90; {也有取87、95}
{}{5日RPS选股}{}
ED5:= EXTDATA_USER(1, 0) / 10; {引用扩展数据1并调整归一化范围,得到5日RPS数值}
RPS5:= ED5 >= M; {5日RPS数值超过M};
{}{20日RPS选股}{}
ED20:= EXTDATA_USER(2, 0) / 10; {引用扩展数据2并调整归一化范围,得到20日RPS数值}
RPS20:= ED20 >= M; {20日RPS数值超过M};
{}{60日RPS选股}{}
ED60:= EXTDATA_USER(3, 0) / 10; {引用扩展数据3并调整归一化范围,得到60日RPS数值}
RPS60:= ED60 >= M; {60日RPS数值超过M};
{}{120日RPS选股}{}
ED120:= EXTDATA_USER(4, 0) / 10; {引用扩展数据4并调整归一化范围,得到120日RPS数值}
RPS120:= ED120 >= M; {120日RPS数值超过M};
{}{250日RPS选股}{}
ED250:= EXTDATA_USER(5, 0) / 10; {引用扩展数据5并调整归一化范围,得到250日RPS数值}
RPS250:= ED250 >= M; {250日RPS数值超过M};
{}{500日RPS选股}{}
ED500:= EXTDATA_USER(6, 0) / 10; {引用扩展数据6并调整归一化范围,得到500日RPS数值}
RPS500:= ED500 >= M; {500日RPS数值超过M};
RPS60 AND RPS120; {两线全部翻红选股。若将AND改为OR,则变为任意一线翻红选股}
齐大总管对RPS选股作了延伸,比如在2021-07-05的文章中,有COUNT(ED250 < 90, 20) = 0这样的代码,表示翻红已经持续了一段时间。又如在2021-09-11的文章中,有REF(RPS三线红, 1) = 0这样的代码,表示首日三线翻红(或可用BARSSINCEN(条件, N) = 0)。
步骤4:选股结果
选股结果(全部A股,230923):
选股结果(中证500,230923):
下一篇:从报表看企业的32个要点解析
上一篇:浅析研究企业的流程和检查清单