RSRS(Resistance Support Relative Strength),又名阻力支撑相对强度是另一种阻力位与支撑位的运用方式,它不再把阻力位与支撑位当做一个定值,而是看做一个变量,反应了交易者对目前市场状态顶底的一种预期判断。光大证券曾2017年5月1日出过一篇研报《基于阻力支撑相对强度(RSRS)的市场择时》,目前很多的研究也基于该研报展开。
RSRS指标,其实就是最高价~最低价的斜率,其计算主要通过回归的方法获得。和其他常见的技术指标一样,也是需要一定的时间序列数据,一般我们目前取18,即18天的最高价、最低价。
具体代码如下(该代码运行在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:i+1]
data_low = lows.iloc[i-N+1:i+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:i+N+1]
data_low = lows.iloc[i+1:i+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天没有包括,但由于数据较早,所以影响不大)。
由于市场处于不同时期时,斜率的均值有比较大的波动。因此,直接采用斜率均值作为择时指标并不太合适。在斜率基础上进行标准化,取标准分作为指标值。RSRS斜率标准分指标计算方法如下:
# 计算标准化的RSRS指标
section = g.ans[-g.M:]
mu = np.mean(section)
sigma = np.std(section)
zscore = (section[-1]-mu)/sigma
在说右偏标准分之前,必须要先说一下偏态分布。偏态分布是与“正态分布”相对,分布曲线左右不对称的数据次数分布,是连续随机变量概率分布的一种。可以通过峰度和偏度的计算,衡量偏态的程度。可分为左偏(又称负偏)和右偏(又称正偏)。偏度是描述分布“偏离对称性程度”的特征数,注意是“偏离”而不是“偏向”,也就是说这里的偏是“离开”的意思,所以左偏是指离开了左边,右偏是离开了右边。前者曲线左侧偏长,右侧偏短;后者曲线右侧偏长,左侧偏短。
对RSRS右偏标准化处理后,会减少买入概率同时增大卖出概率,更有效地进行风险防控。具体操作:标准化的斜率*决定系数,就是用决定系数作为权重,调整了标准化斜率,然后*斜率(标准化之前)。
#计算右偏RSRS标准分
zscore_rightdev= zscore*r2*beta
综上计算,可以得到最终的RSRS指标。基于该指标,可以制定在RSRS指标大于0.7时买入,低于-0.7时卖出的交易策略。
参考文献:
20170501-光大证券-基于阻力支撑相对强度的市场择时下载
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