RSRS(Resistance Support Relative Strength)は、サポートとレジスタンスの利用方法の一つであり、サポートとレジスタンスを定数として扱うのではなく、変数として扱い、トレーダーが現在の市場のトップとボトムに対する予測判断を反映します。中国の光大証券は、2017 年 5 月 1 日に「RSRS を利用した市場タイミング」という研究報告書を発表し、現在、多くの研究がこの報告書を基に展開されています。
1. RSRS 指標の計算方法#
RSRS 指標は、実際には最高価格〜最低価格の傾きであり、回帰分析によって計算されます。他の一般的なテクニカル指標と同様に、一定の時間系列データが必要であり、通常は 18 日間の最高価格と最低価格を使用します。
- 過去 N 日間の最高価格と最低価格の系列を取得します。(N = 18)
- 2 つの系列を OLS(Ordinary Least Squares)線形回帰にかけます。
- フィット後の β 値を当日の 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]
data_low = lows.iloc[i+N]
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 と書くことで、最新のデータを含めることができます(このように書くと最初の日は含まれませんが、データが古いため影響は少ないです)。
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