个股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条扩展数据,如下图(下图已经完成):

1

  点击上图中的修改,在扩展数据属性里设置如下(用于5日RPS):

2

  重复上述步骤,分别对第2、3、4、5、6条扩展数据的属性进行设置。

  步骤3:建立个股RPS指标公式

  在以往的版本中我曾提出过自己的公式编写思路。两相比较,实际上还是陶博的公式更简洁,RPS线条在显示时也不存在断开的现象,所以仍然采用陶博的方法。

  新建一个技术指标公式,公式名称:RPSG,公式描述:个股RPS。公式管理器 -> 技术指标公式 -> 其它类型 -> 新建:

3

  绘制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线条了。

  结果举例:

4

  四、建立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):

5

  选股结果(中证500,230923):

6



下一篇:从报表看企业的32个要点解析

上一篇:浅析研究企业的流程和检查清单