4. RS指标基础计算
在上一节中,我们已经明确了板块相对强弱(Relative Strength,简称RS)的核心思想:不是看某个板块自身涨了多少,而是看它相对于基准(通常是大盘指数,如上证指数、沪深300或中证全指)表现如何。本节要把这个思想落到可计算的数字上,完成从“相对价格比值”到“RS原始值”的第一步构建。理解这一步,是后续标准化、平滑与信号生成的基础。
一、相对价格比值:RS的原始形态
最朴素的相对强弱,就是两个价格序列的比值。设某一板块指数在第 t 个交易日的收盘价为 P_sector(t),基准指数同日收盘价为 P_bench(t),则相对价格比值定义为:
Ratio(t) = P_sector(t) / P_bench(t)
这个比值本身没有绝对意义,它的价值在于“变化”。如果板块与基准同步涨跌,比值基本走平;如果板块持续跑赢基准,比值会不断抬升;反之则下行。因此,RS 原始值的第一种常见形式,就是直接使用这个比值序列,或者使用它的归一化版本。需要注意一个关键约定:比值上升代表板块相对走强,比值下降代表相对走弱,全文与图示都遵循这一方向定义。
举个教学示例(以下数据为合理假设,仅用于说明计算过程):假设某板块指数与基准指数在连续 5 个交易日的收盘价如下表所示。
| 交易日 | 板块指数 P_sector | 基准指数 P_bench | 比值 Ratio |
|---|---|---|---|
| T1 | 2000.00 | 4000.00 | 0.5000 |
| T2 | 2040.00 | 4040.00 | 0.5050 |
| T3 | 2101.20 | 4080.40 | 0.5150 |
| T4 | 2143.22 | 4121.20 | 0.5200 |
| T5 | 2186.09 | 4162.42 | 0.5252 |
可以看到,板块从 2000 涨到 2186.09,涨幅约 9.3%;基准从 4000 涨到 4162.42,涨幅约 4.06%。比值从 0.5000 抬升到 0.5252,清晰地反映了板块跑赢基准的事实。这就是 RS 原始值最直观的形态。
二、为什么要标准化:比值序列的尺度问题
直接使用比值有一个现实麻烦:不同板块、不同基准组合下,比值的绝对水平差异很大。有的板块指数点位高、基准点位低,比值可能是 3.5;有的则可能是 0.2。如果把这些比值放在同一张图或同一个打分体系里比较,绝对数值会带来误导。更合理的做法是把比值序列转换为“相对于某个基准点的变化”,即标准化。
最常用的标准化方式是基准日归一化:选定一个起点(例如回看窗口的第一天,或某个固定日期),把该日的比值定为 1(或 100),后续每一天的 RS 原始值等于当日比值除以起点比值:
RS_raw(t) = Ratio(t) / Ratio(t0)
= [P_sector(t) / P_bench(t)] / [P_sector(t0) / P_bench(t0)]
这样得到的序列,起点恒为 1,后续数值表示“相对起点累计跑赢或跑输的倍数”。以上表为例,若以 T1 为基准日,则 T5 的 RS_raw = 0.5252 / 0.5000 = 1.0504,含义是:从 T1 到 T5,板块相对基准累计走强约 5.04%。这个数字与板块自身涨幅、基准自身涨幅都无关,只反映相对关系,正是我们想要的。
三、从比值到 RS 原始值的完整计算链
把上面的过程串起来,RS 原始值的计算可以拆成三步:对齐价格序列、计算比值、归一化。第一步尤其容易被忽视——板块指数与基准指数的交易日必须严格对齐,遇到停牌、指数调整或数据缺失时,应采用同日对齐后剔除或前值填充,并保持处理规则一致,否则比值会出现虚假跳变。
下面给出一个可直接参考的 Python 实现片段(示例代码,参数为教学假设):
import pandas as pd
# 假设 df 已按日期对齐,含两列:sector_close, bench_close
df = df.sort_index()
df["ratio"] = df["sector_close"] / df["bench_close"]
# 以窗口首日为基准做归一化
base = df["ratio"].iloc[0]
df["rs_raw"] = df["ratio"] / base
print(df[["ratio", "rs_raw"]].head())
运行后得到的 rs_raw 列,就是本节要交付的 RS 原始值序列。它是一条以 1 为起点的相对强弱曲线,向上代表板块相对走强,向下代表相对走弱。需要强调的是,这条曲线还没有经过平滑和标准化打分,波动会比较剧烈,尤其在板块与基准短期节奏错位时会出现锯齿,这正是后续章节要处理的问题。
四、可视化:让比值序列“说话”
RS 原始值最适合用折线图呈现。横轴为交易日,纵轴为归一化后的 RS 值,并在 1.0 处画一条水平参考线:曲线在参考线之上说明区间内板块跑赢基准,之下则跑输。若把多个板块的 RS 曲线叠加在同一坐标系中,斜率越陡、位置越高的板块相对越强,这就是板块轮动分析中最常用的“相对强弱曲线图”。
下图展示了本节的计算逻辑与可视化读法:左侧是价格序列到比值的计算链,右侧是归一化后的 RS 曲线示意,并标注了走强、走弱与参考线的判读方式。
五、常见误区与检查要点
在实际构建 RS 原始值时,有几个高频问题值得提前规避。第一,基准选择不一致:同一批板块必须使用同一个基准,否则比值之间不可比;若研究的是行业轮动,基准通常选全市场宽基指数,而不是某个行业指数。第二,归一化起点随意变动:起点一变,整条曲线的数值全变,因此必须固定规则并记录在案。第三,把 RS 原始值当成最终信号:原始值波动大、噪声多,直接用它做买卖判断容易频繁误判,它只是后续平滑与打分环节的输入。
完成本节后,你应当能够:给定两组对齐的价格序列,手工或编程算出比值序列,选定基准日完成归一化,得到以 1 为起点的 RS 原始值曲线,并能从曲线相对 1.0 参考线的位置与斜率,判断板块在观察区间内是相对走强还是走弱。这条原始曲线,就是后续标准化打分与信号构建的起点。