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