RSI(相対力指数)とは
RSI(Relative Strength Index)は、テクニカル分析で広く使われるオシレーター系指標のひとつです。一定期間の平均上昇幅と平均下降幅を比較し、0〜100の範囲で数値化します。主に価格の買われすぎ」や「売られすぎ」】を判定するために用いられます。
計算方法の概要
RSIは以下の手順で算出されます。
- 指定期間(一般的には14日)の「上昇幅」の合計と「下降幅」の合計を求める。
- 上昇幅の平均(U)と下降幅の平均(D)を算出。
- RSI = 100 – (100 / (1 + U/D)) と計算する。
典型的な使い方
- 70以上:買われすぎとみなされ、価格が下落に転じる可能性が高い。
- 30以下:売られすぎとみなされ、価格が上昇に転じる可能性が高い。
- 70~30の範囲内は「ニュートラル」と考えられ、トレンドの継続性を確認する材料になる。
- ダイバージェンス(価格とRSIが異なる方向に動く現象)を見つけることで、転換点を予測できる。
RSIの注意点
- 極端な相場(長期的な上昇・下降局面)では、RSIが常に高止まりまたは低止まりすることがある。
- 単独でのシグナルは偽信号になる可能性があるため、他の指標やチャートパターンと併用することが推奨される。
- 期間設定を変えると感度が変わる。短期(5〜7日)ではノイズが増え、長期(20日以上)では遅れが生じやすい。
RSIを実際の取引に活かす例
以下はシンプルなRSI活用例です。
# 例:PythonでRSIを計算し、シグナルを出す
import pandas as pd
import numpy as np
def rsi(series, period=14):
delta = series.diff()
up = delta.clip(lower=0)
down = -delta.clip(upper=0)
ma_up = up.rolling(window=period).mean()
ma_down = down.rolling(window=period).mean()
rs = ma_up / ma_down
return 100 - (100 / (1 + rs))
# dataは株価の終値Seriesとする
rsi_series = rsi(data['Close'])
signal = (rsi_series < 30).astype(int) - (rsi_series > 70).astype(int)
print(signal.tail())
このようにRSIが30以下になったときに「買い」シグナル、70以上になったときに「売り」シグナルとして利用できます。ただし、必ず他の分析手法と組み合わせてリスク管理を徹底しましょう。