一、rps的数学定义
rps(Relative Price Strength)即相对价格强度,核心逻辑是计算个股在一段周期内的涨幅,再与全市场股票比较,得出该股涨幅在所有股票中的百分位排名。标准公式为:
计算周期收益率:
R_i = (P_end - P_start) / P_start * 100对全市场股票的收益率排序,得到个股的百分位排名,即rps值。
rps值范围0到100,数值越高代表该股涨幅跑赢的市场股票越多。欧奈尔在《笑傲股市》中定义的rps是取过去52周(约250个交易日)的涨幅,但国内常用20日、60日、120日等周期。实际应用中,投资者常取多条周期rps,如rps20、rps60、rps120,综合判断中短期与长期的相对强度。
二、rps的实战计算流程
计算rps需要基础价格数据和全市场股票池。以日线数据为例,步骤分为三步:

确定计算周期T,常见取20、60、120日。
计算每只股票的区间涨幅:
涨幅 = (当日收盘价 - T日前收盘价) / T日前收盘价将全市场股票的涨幅升序排列,个股涨幅所处百分位即rps值。例如,若全市场有5000只股票,个股涨幅排在第4500名,则rps = 4500/5000 * 100 = 90。
注意:计算时必须剔除新股和停牌股,否则会扭曲排名。可使用Python中的pandas库批量计算,核心代码为:
import pandas as pd
# 假设df为DataFrame,列包含股票代码、日期、收盘价
# 计算每只股票T日涨幅
df['ret_T'] = df.groupby('股票代码')['收盘价'].pct_change(periods=T)
# 剔除NaN和停牌股
df_valid = df.dropna(subset=['ret_T'])
# 按日期分组,对ret_T进行排名(百分位)
df_valid['rps'] = df_valid.groupby('日期')['ret_T'].rank(pct=True) * 100
三、rps的核心使用场景
1. 强势股初筛
设定rps阈值(如rps120 > 85)作为选股的第一道过滤条件,剔除绝大多数弱势股。欧奈尔在CANSLIM系统中,要求个股rps不低于80,意味着该股涨幅超过了全市场80%的股票。rps高分代表机构资金介入明显,股价处于上升趋势的早期阶段。
2. 配合均线系统使用
单一rps存在滞后性,与均线组合可提高信号的可靠性。当rps值持续高于80,且股价站上20日均线、50日均线多头排列时,表明相对强度与趋势共振,可考虑买入。反之,rps掉头向下且跌破均线,则离场。
3. 识别板块强弱的节奏
将个股的rps值按行业板块聚合,可得到板块的平均rps。当某板块平均rps持续上升并高于80,且板块内多只个股rps创出新高,该板块大概率成为市场主线。在板块轮动中,可优先配置rps最高的板块中的领涨股。
四、rps的局限与改进
rps仅依赖价格数据,未考虑成交量、基本面、市场环境。例如,长期停牌复牌个股可能瞬间暴涨导致rps失真。改进方法包括:
引入成交量因子,欧奈尔要求放量突破时rps有效。
使用指数平滑rps,减少短期噪音。
结合市场指数,计算超额rps = 个股涨幅 - 指数涨幅,再排序。
五、rps在量化策略中的实战要点
将rps用于量化策略时,需要设计动态调仓规则。一种常见框架:每月末计算rps120和rps60,选取两者均大于80的股票构建组合,等权重持有。调仓频率过高会产生较高交易成本,可设定月度调仓。回测结果通常显示,rps策略在牛市中超额收益显著,但在熊市中回撤较大。因此,需加入大盘择时:当指数低于200日均线时,降低仓位。
交易纪律方面,设定个股rps跌破70或股价跌破10周均线时止盈止损。这符合“强者恒强”的逻辑,避免深度套牢。
六、针对不同投资风格的rps参数优化
短线交易者关注rps20和rps60,寻找短期爆发股。中线趋势交易者使用rps60和rps120,过滤中期强势股。长线投资者可使用rps250(一年)和rps500(两年),识别长期牛股。参数选择需结合个人交易周期和品种波动性。
期货市场中,rps也可用于商品期货的相对强弱比较。例如,计算各品种的20日涨幅,按rps排序,做多rps高的品种,做空rps低的品种,构成跨品种套利策略。但期货有杠杆,需严格风控。
七、常见误区与规避策略
误区一:rps高就追入,忽略买点。rps高只代表强势,但可能已处于超买区。应等待回调至均线附近再介入。
误区二:rps指标用于震荡市效果差。当大盘横盘时,rps排名变化快,虚假信号多。可增加波动率过滤,如ATR(平均真实波幅)大于一定阈值才交易。
误区三:全市场股票数量变化导致rps不可比。可以用固定日期或动态调整的方式,确保排名基数的稳定性。
八、rps与其他指标的组合验证
rps与动量因子高度相关,但不同于传统动量(用过去收益率排序),rps是百分位排名,更直观。与RSI(相对强弱指标)相比,rps是跨截面比较,RSI是股票自身超买超卖。组合使用:rps > 80 且 RSI < 70,代表强势未超买,发出买入信号。
运用机器学习模型,可将rps、成交量变化、均线偏离作为特征,预测未来收益。实证表明,rps的预测能力在不同市场环境下保持稳定。
九、实际案例演示(以A股为例)
假设2023年10月31日,计算全市场5000只股票的rps120。筛选出rps120 > 90的个股共50只。从中选取连续两周成交量放大,且股价站上50日均线的股票,共20只。再剔除市盈率为负或大于100的,剩余15只。按rps值降序买入前5只,每只仓位20%。持有20个交易日后,如果股票rps120跌破85或股价跌破20日均线,则卖出。此策略在2023年震荡市中表现稳健。
rps是量化选股的高效工具,但需融合其他维度。建议投资者建立自己的rps计算系统,周期根据持仓时间调整,并回测验证。在交易执行中,坚持纪律,不因单次失败而否定rps的有效性。长期使用,rps能显著提高选股胜率。