RSRS(Resistance Support Relative Strength),又名阻力支撑相对强度是另一种阻力位与支撑位的运用方式,它不再把阻力位与支撑位当做一个定值,而是看做一个变量,反应了交易者对目前市场状态顶底的一种预期判断。光大证券曾 2017 年 5 月 1 日出过一篇研报《基于阻力支撑相对强度 (RSRS) 的市场择时》,目前很多的研究也基于该研报展开。
1,RSRS 指标的计算方法#
RSRS 指标,其实就是最高价~最低价的斜率,其计算主要通过回归的方法获得。和其他常见的技术指标一样,也是需要一定的时间序列数据,一般我们目前取 18,即 18 天的最高价、最低价。
- 取前 N 日最高价与最低价序列。(N = 18)
- 将两个序列进行 OLS 线性回归。
- 将拟合后的 β 值作为当日 RSRS 斜率指标值。
具体代码如下(该代码运行在 JoinQuant 平台上),通过下述代码,我们可以获得 RSRS 指标的时间序列。
import statsmodels.api as sm
from pandas.stats.api import ols
prices = get_price('000300.XSHG', '2020-06-01', '2020-07-20', '1d', ['high', 'low'])
highs = prices.high
lows = prices.low
ans = []
N=18
for i in range(len(highs))[N:]:
data_high = highs.iloc[i-N+1+1]
data_low = lows.iloc[i-N+1+1]
X = sm.add_constant(data_low)
model = sm.OLS(data_high,X)
results = model.fit()
beta = model.fit().params[1]
ans.append(beta)
#计算 r2
r2=model.fit().rsquared
ans_rightdev.append(r2)
这里要注意的是 for 循环那段代码的写法:
要从 N(N=18)开始循环,然后往后减。下面的代码写法貌似是一样的,其实执行会报错,因为在执行到最后一段数据的时候,i+N 取不到数据了。
for i in range(len(highs)):
data_high = highs.iloc[i+1+N+1]
data_low = lows.iloc[i+1+N+1]
X = sm.add_constant(data_low)
model = sm.OLS(data_high,X)
results = model.fit()
beta = model.fit().params[1]
ans.append(beta)
#计算 r2
r2=model.fit().rsquared
ans_rightdev.append(r2)
另外,要注意 iloc 是有头无尾的,所以需要 + 1,即 i+1,这样执行到最后才能把最近的哪一台包括进去(虽然这样写会导致第 1 天没有包括,但由于数据较早,所以影响不大)。
2,RSRS 指标的标准化处理#
由于市场处于不同时期时,斜率的均值有比较大的波动。因此,直接采用斜率均值作为择时指标并不太合适。在斜率基础上进行标准化,取标准分作为指标值。RSRS 斜率标准分指标计算方法如下:
- 取前 M 日的 RSRS 斜率时间序列。(M = 600)
- 计算当日 RSRS 斜率的标准分 RSRSstd
# 计算标准化的 RSRS 指标
计算均值序列#
section = g.ans[-g.M:]
计算均值序列#
mu = np.mean(section)
计算标准化 RSRS 指标序列#
sigma = np.std(section)
zscore = (section[-1]-mu)/sigma
3,RSRS 指标的右偏标准分#
在说右偏标准分之前,必须要先说一下偏态分布。偏态分布是与 “正态分布” 相对,分布曲线左右不对称的数据次数分布,是连续随机变量概率分布的一种。可以通过峰度和偏度的计算,衡量偏态的程度。可分为左偏(又称负偏)和右偏(又称正偏)。偏度是描述分布 “偏离对称性程度” 的特征数,注意是 “偏离” 而不是 “偏向”,也就是说这里的偏是 “离开” 的意思,所以左偏是指离开了左边,右偏是离开了右边。前者曲线左侧偏长,右侧偏短;后者曲线右侧偏长,左侧偏短。
对 RSRS 右偏标准化处理后,会减少买入概率同时增大卖出概率,更有效地进行风险防控。具体操作:标准化的斜率 * 决定系数,就是用决定系数作为权重,调整了标准化斜率,然后 * 斜率(标准化之前)。
#计算右偏 RSRS 标准分
zscore_rightdev= zscore*r2*beta
综上计算,可以得到最终的 RSRS 指标。基于该指标,可以制定在 RSRS 指标大于 0.7 时买入,低于 - 0.7 时卖出的交易策略。
参考文献:
20170501 - 光大证券 - 基于阻力支撑相对强度的市场择时下载
20191117 - 光大证券 - RSRS 择时回顾与改进下载
https://www.joinquant.com/view/community/detail/bec17e308647a2160ee1aeeac3a0c40c?type=1
https://www.joinquant.com/view/community/detail/28dc6d6605ce7f7471ff05904ccf046f?type=1
https://www.joinquant.com/view/community/detail/713a60a2a1daaac2276dab73eb322ddc?type=1
https://blog.csdn.net/weixin_43787229/article/details/86735503