报告原文下载链接:https://pan.baidu.com/s/1jBGmWCS1l-SolG02kOF_Rw提取码:zu97
相对强弱指标RSI(Relative Strength Index)是最常用的技术分析指标之一,常被用来评估多空力量的强弱程度,被广泛应用于各种金融产品的研究分析中,但是RSI通常被用于时序择时,较少被用来在横截面上进行选股。本篇研报则将RSI技术指标扩展到横截面选股领域,构建有效的选股因子。
在本篇研报中,标签有股票代码,每日开盘价、收盘价,成交量,分钟级涨跌幅,市值,换手率等未经加工的底层市场数据。特征有基础RSI值,成交量加权RSI,RSI的移动平均值等尚未验证预测能力的中间变量。因子有日频RSI因子,高频RSI因子,成交量配合RSI因子,纯净RSI因子等经过回测验证的有效指标。
由于获取数据上的限制,我在复现研报时只采用了2024-03-17至2024-08-17的30只股票的数据,但是这30只股票只来自于能源和材料两个行业,这样方便后续进行行业中性化处理。总体逻辑和原研报保持一致。本文章中的所有数值仅供参考。
一、RSI 指标在择时上的特点
分子代表做多的力量,分母则是多空力量的总和。RSI 指标在一定程度上反映了过度交易的程度,因此常被用作反转指标:数值越大,说明当下的超买现象越严重,未来股价回调的可能性越大;数值越小,则说明超卖现象越严重,未来股价反弹的概率越大。
经验来看,RSI指标在预测市场顶部的时候往往会提前,并且行情越大,提早越多;但在较大幅度下跌的行情中,RSI指标出现低位极端值与市场指数见底有一定同步性。
二、基于 RSI 指标构建选股因子
1. 运用日频数据构建RSI选股因子
构建逻辑:
利用日频涨跌幅数据,直接套用RSI指标的计算公式,计算每只股票的因子值。
回看 20 个交易日,进行以下操作:
(1)每月月底,每只股票回溯过去20个交易日,计算(20日中上涨交易日的平均涨跌
幅)/(20 日中上涨交易日的平均涨跌幅+20 日中下跌交易日的平均涨跌幅的绝对值)*100;
(2)做横截面市值中性化处理,得到每只股票的日频RSI 因子。
代码实现:
结果输出:
通过PandaAI数据库获得了全市场2018-01-01至2025-06-30的股票日线数据后,接下来我将对股票池分别是沪深300,中证500,中证1000时日频RSI选股因子的表现做比较:
我们发现,该因子在小盘股(中证1000)中表现不佳,甚至呈现负向预测能力。并且因子表现呈现出明显的规模效应,随着股票市值减小(从沪深300→中证500→中证1000),因子有效性下降。这是因为RSI作为技术指标,在机构主导的理性交易环境中更能反映真实的超买超卖状态。而小盘股中散户参与度高,容易形成“追涨杀跌”的动量效应(而非RSI预期的反转效应)。例如:小盘股超买后可能因散户跟风继续上涨,超卖后因恐慌继续下跌。
同时,从沪深300的RankIC分析图来看,RSI因子在牛市和熊市中表现更佳,在震荡市中表现一般:累计RankIC稳步上升的阶段对应了2018年的熊市到2019年1月-2021年2月的结构性牛市;累计RankIC较为波动的时期对应了2021年3月-12月的震荡市阶段。这是因为在单边大幅上涨或者下跌的行情中,RSI 指标更容易出现极端值,发出更为有效的信号;而在震荡市或者幅度较小的行情中,大多情况下RSI 指标会在一个相对较窄的区间内来回震荡,有效性较弱。
2. 运用高频数据构建RSI选股因子
构建逻辑:
因为我们想增加数据中包含的信息,所以我们提高数据频率到分钟级别。
具体地,我们实施以下操作,得到高频数据下的RSI选股因子:
(1)每个交易日,利用1分钟涨跌幅数据,计算个股当日的RSI=(上涨分钟的平均涨跌幅)/(上涨分钟的平均涨跌幅+下跌分钟的平均涨跌幅的绝对值)*100;
(2)每月月底,每只股票回溯过去20个交易日,计算20日RSI的平均值,再做横截面市值中性化处理,得到每只股票的高频RSI因子。
代码实现:
结果输出:
3. 运用高频数据+成交量配合构建RSI选股因子
构建逻辑:
成交量越大,包含的信息量越丰富,因此我们想提高成交量较大部分对应的 RSI 指标的权重。
操作方法如下:
(1)每个交易日,利用1分钟涨跌幅数据,计算个股当日的RSI=(上涨分钟的平均涨跌
幅)/(上涨分钟的平均涨跌幅+下跌分钟的平均涨跌幅的绝对值)*100;
(2)每月月底,每只股票回溯过去20个交易日,以每日换手率为权重、计算20日RSI的加权平均,再做横截面市值中性化处理,得到每只股票的成交量配合RSI因子。
为什么使用换手率而不是直接用成交量?
如果直接用成交量来计算权重,无法跨股票比较。成交量是一个绝对值指标,它的大小与公司的总股本和流通盘大小高度相关。而换手率是一个相对值指标,计算公式为换手率 = (成交量/流通股本)*100%,它衡量的是“在一定时间内,公司有多大比例的股份被交易了”。这反映了股票的交易活跃度或市场关注度,并且这个指标已经在内部剔除了规模因素。
代码实现:
结果输出:
4. 纯净的成交量配合 RSI 因子
为了剔除市场常用风格和行业的干扰,我们每月月底将成交量配合RSI因子对Barra风格因子和中信一级行业虚拟变量进行回归,取残差作为纯净新因子,检验其选股效果。
代码实现:
结果输出:
因子在2024.6左右失效的原因是当时股市(上证指数)处于持续上涨转入持续下跌的震荡行情中,RSI出现震荡,有效性较弱。