今回はRelative Change Index (RCI)という指標について解説します。
RCIは株価のトレンド転換を予測するために使用されるテクニカル分析の指標の一つです。
この記事ではRCIがどのような指標か?さらに、どのように使われるのか?
そしてPythonを使ってRCIを実装する方法について説明します。
①RCIとは

RCIはRelative Confidence Index(相対信頼指数)の略で
主に株価のテクニカル分析に用いられる指標です。
RCIは過去の一定期間の価格変動をランキング化し、
そのランキングに基づいて相対信頼度を算出することで、
買い場や売り場を探るのに役立ちます。
RCIは価格変動の強さや勢いを示す指標ではなく、
変動がランキング化された情報をもとに相対的な信頼度を示す指標です。
なので、RCIは、価格がどの程度変動したのかを測る指標ではありません。
しかし、RCIを使うと過去の一定期間に株価が相対的に
どの程度強かったかを示すことができます。
また、RCIを参考に買い場や売り場を探すことができるので
トレードの際には有用な指標となります。
株価のテクニカル分析において重要な指標の一つであり、
多くのトレーダーに利用されています。
②RCIの使い方

RCIの値は-100から+100の範囲を取ります。
+100に近い値が出ると、過去の一定期間において価格変動が最大限に強かったことを示し、-100に近い値が出ると、価格変動が最小限に抑えられたことを示します。
RCIが0に近い場合、価格変動が中程度であったことを示します。
RCIは一定期間内の価格変動のランキングを算出するため、長期的なトレンドを捉えることができます。
また、RCIは買い場や売り場を見つける上で非常に役立ちます。
例えば、RCIが+70以上の高い値を示す場合、株価が上昇し続ける可能性が高いと考えられます。逆に、RCIが-70以下の低い値を示す場合、株価が下落し続ける可能性が高いと考えられます。
ただしRCI単体で使用すると偽のシグナルを出すことがあるので、
他の指標と併用することが重要です。
③RCIの算出方法

RCIの算出方法は比較的簡単で、以下の手順で計算することができます。
\begin{align} RCI = \left[1-\frac{6\times(\text{日付の順位}-\text{株価順位})^{2}\text{の合計}}{\text{計算期間}\times(\text{計算期間}^{2}-1)}\right] \times 100\% \end{align}この計算方法は、一般的には相対的な強さを比較するために使用されます。ランクに基づく指標であるため、値そのものには意味がなく、期間内の値の相対的な強さを示す指標として使用されます。
この式を簡単に説明すると、まず計算期間内の株価の順位を日付ごとにランク付けします。
次にその日の株価の順位と、その日の日付の順位の差を求めます。この差を二乗し、計算期間の全ての日について足し合わせます。
最後にRCIを求めるための定数をかけた上で、1から引き算して100をかけます。
RCIが高いということは株価が上昇傾向にあることを示しており、
RCIが低いということは、株価が下降傾向にあることを示しています。
ただし、RCIが極端に高い(または低い)場合、過剰反応が起こっている可能性があるため、
注意が必要です。
④PythonでRCIの実装方法
コード全体を紹介します。
import mplfinance as mpf
import pandas as pd
import datetime
import pandas_datareader.data as pdr
import numpy as np
import yfinance as yf
yf.pdr_override()
# 期間
start="2022-1-01"
end = datetime.datetime.today()
# 銘柄(トヨタ自動車)
ticker="7203" + ".T"
# データ取得
df=pdr.get_data_yahoo(ticker,start,end)
df.sort_index(ascending=True,inplace=True)
# RCI日足
period = 14 # RCIを計算する期間
def iRCI(x):
n = len(x)
d = ((np.arange(1,n+1)-np.array(pd.Series(x).rank()))**2).sum()
rci = 1-6*d/(n*(n**2-1))
return rci*100
df['RCI'] = df['Close'].rolling(period).apply(iRCI)
# サブプロット日足
apd_oscilator = [
mpf.make_addplot(df['RCI'], ylabel='RCI', color='r', panel=1)
]
# チャート描写
mpf.plot(df, type='candle', style='yahoo', tight_layout=True, title=str(7203),
addplot=apd_oscilator, figsize=(6, 3))

問題なく実行できれば上のようなグラフがプロットされると思います。
コードは過去に出来高・移動平均・ボリンジャーバンド・MACD・ストキャスティクス・RSI・
%Rオシレータの記事を書いたので、そちらを参考にすればプログラムは理解できると思います。
-
-
Pythonで出来高チェック!買い時・売り時を見極めよう!
以前にPythonを使った株価のローソク足チャートを描く方法を紹介しました。 Pythonを使って株価の出来高を分析し、買い時・売り時を見極める方法について紹介します。 以前にPythonを使った株価 ...
続きを見る
-
-
テクニカル分析に役立つ!Pythonで移動平均計算と実装方法
時系列データの分析には移動平均が不可欠です。 また、移動平均には複数の種類があり、それぞれに特徴があるのでどれを使うかはデータの性質によって異なります。 Pythonを使えば簡単に移動平均を計算し、デ ...
続きを見る
-
-
【ボリンジャーバンド】Pythonでの実装方法とコードを紹介
ボリンジャーバンドという名前を聞いたことがありますか? ボリンジャーバンドはトレンドの強さやトレンドやボラティリティを分析するためのテクニカル指標で相場の変動幅に応じて上下に動くバンドで表され、相場の ...
続きを見る
-
-
Pythonで学ぶMACDの使い方
『MACDって聞いたことはあるが、どう使えばいいかわからない。』こんな悩みはありませんか? MACDとは何か?さらにPythonを使って基本的な使い方を初心者でもわかりやすく解説します。 毎日、日経平 ...
続きを見る
-
-
Pythonでストキャスティクスを使ったテクニカル分析
こんな悩みはありませんか? 『ストキャスティクスってよく聞くけどどんな指標かわからない。』または『Pythonでストキャスティクスってどうプログラムするの?』 そこで、ストキャスティクスについて詳しい ...
続きを見る
-
-
PythonでRSIを使う!トレンド転換のサイン捉えよう!
Pythonを使って効率的に投資する方法を知りたい方必見!RSIを活用する方法を解説します。さらにPythonでのRSIの計算方法もわかりやすく説明しています。 ①RSIとは RSI(Relative ...
続きを見る
-
-
Pythonで簡単に計算!%Rオシレータの算出方法
Pythonを使ったトレードにおいて重要なテクニカル指標の1つです。%Rオシレータの使い方や算出方法を分かりやすくさらにPythonでの実装も解説するので、必見の記事です。 ①%Rオシレータとは? % ...
続きを見る
おすすめのテクニカル分析とPython関連の書籍も紹介しておきます。
今回は以上です。