コンテンツにスキップ

RSI(Relative Strength Index, 相対力指数)

RSI は、上昇幅と下落幅のバランスから価格の過熱感、勢い、反転候補を数値化するオシレーターです。単体で売買するより、上位足の方向、水平線、時間帯と組み合わせるのが実践的です。

価格チャートの下にRSI(14)のサブパネルを表示したイメージ。RSIが30を割る売られすぎ、70を超える買われすぎの領域が色分けされている。

架空データによるイメージ図(実際の相場データではありません)。下段が RSI(14)。30以下(売られすぎ)と70以上(買われすぎ)を色で示している。

定義

RSI は J. Welles Wilder Jr. が1978年に発表したモメンタム系オシレーター。直近 nn 本の上昇幅と下落幅を平滑化し、0 から 100 の範囲に正規化します。

価格を終値 PtP_t とします。

Δt=PtPt1\Delta_t = P_t - P_{t-1}

Ut=max(Δt,0),Dt=max(Δt,0)U_t = \max(\Delta_t, 0), \quad D_t = \max(-\Delta_t, 0)

Wilder RSI では、上昇幅 UtU_t と下落幅 DtD_tWilder スムージング で平均します。これは通常の EMA と同じ再帰形ですが、平滑化係数は α=1/n\alpha = 1/n を使います。

AvgGaint=αUt+(1α)AvgGaint1,α=1n\text{AvgGain}_t = \alpha U_t + (1 - \alpha)\text{AvgGain}_{t-1}, \quad \alpha = \frac{1}{n}

AvgLosst=αDt+(1α)AvgLosst1,α=1n\text{AvgLoss}_t = \alpha D_t + (1 - \alpha)\text{AvgLoss}_{t-1}, \quad \alpha = \frac{1}{n}

RSt=AvgGaintAvgLosstRS_t = \frac{\text{AvgGain}_t}{\text{AvgLoss}_t}

RSIt=1001001+RStRSI_t = 100 - \frac{100}{1 + RS_t}

  • RSI は上昇幅の平均が下落幅の平均より大きいほど高くなる
  • RSI=50RSI = 50 は上昇圧力と下落圧力がほぼ均衡している状態
  • RSI=70RSI = 70 以上は買われすぎ、RSI=30RSI = 30 以下は売られすぎとして扱う
  • 強いトレンドでは 70 以上や 30 以下に張り付くため、逆張りシグナルとして機械的に使わない

Wilder 版と Cutler 版

Wilder 版は α=1/n\alpha = 1/n の再帰 EMA で平均上昇幅と平均下落幅を更新します。Cutler 版は同じ UtU_t / DtD_t を SMA で平均します。Cutler 版は開始位置への依存が小さいですが、Wilder 版とは値がわずかに異なります。チャートソフトの RSI は通常 Wilder 版を前提にします。

代表的な期間

期間呼称主な用途
7 / 9短期 RSIスキャル、東京時間の短期反転、過敏な行き過ぎ判定
14標準 RSIWilder 標準。日足、1H、15分足で最も使われる
21中期 RSIノイズを抑えたデイトレ、ロンドン以降の流れ確認
25 / 28中長期 RSI4H、日足のスイング、トレンド中の押し目/戻り目判定
50長期 RSI大局のモメンタム確認。売買タイミングより環境認識向き

USD/JPY は 14 RSI を基準に、短期売買では 9 RSI、4H 以上では 21 / 25 RSI を使うと整理しやすくなります。

シグナル

買われすぎ / 売られすぎ

  • RSI 70 以上:買われすぎ。上昇の勢いが強いが、短期反落の候補にもなる
  • RSI 30 以下:売られすぎ。下落の勢いが強いが、短期反発の候補にもなる
  • RSI 80 / 20:強いトレンドや指標発表後の極端な行き過ぎ判定に使う
  • 70 到達だけで売らない。30 到達だけで買わない。価格の節目と反転足を必ず確認する

センターライン

RSI 50 はモメンタムの分岐線です。

  • 50 超え:上昇圧力が優勢
  • 50 割れ:下落圧力が優勢
  • 上昇トレンドでは 40〜50 が押し目帯になりやすい
  • 下落トレンドでは 50〜60 が戻り売り帯になりやすい

ダイバージェンス

価格と RSI の方向が食い違う状態。勢いの鈍化を示します。

弱気ダイバージェンス

  • 価格は高値更新
  • RSI は高値切り下げ
  • 上昇の勢いが鈍化している。高値圏の利確、売り準備に使う

強気ダイバージェンス

  • 価格は安値更新
  • RSI は安値切り上げ
  • 下落の勢いが鈍化している。安値圏の利確、買い準備に使う

ダイバージェンスは反転確定ではありません。水平線、トレンドライン、ローソク足の反転パターンと組み合わせます。

RSI のレンジシフト

強い上昇トレンドでは RSI が 40〜80 の範囲で推移しやすく、強い下落トレンドでは 20〜60 の範囲で推移しやすくなります。

  • 上昇トレンド: RSI 40〜50 への低下を押し目候補にする
  • 下落トレンド: RSI 50〜60 への上昇を戻り売り候補にする
  • レンジ相場: RSI 70 / 30 を逆張り候補にする

相場の地合いによって基準線を固定しないこと。トレンド中の 70 は売りシグナルではなく、買いの強さそのものとして扱います。

フェイラースイング

RSI が極端値をつけた後、再度同方向に伸びきれずに反転する形です。

強気フェイラースイング

  1. RSI が 30 を下回る
  2. RSI が 30 を上回って反発する
  3. RSI が再度下げるが前回安値を割らない
  4. 直近の RSI 高値を上抜ける

弱気フェイラースイングは反転。

価格ではなく RSI 自体の高値、安値の構造を見ます。レンジ終盤の反転確認に使います。

USD/JPY での使いどころ

  • 東京仲値(JST 09:55):実需フローで一方向に伸びた後、RSI 70 以上または 30 以下から反転しやすい。仲値前の伸びを追いかけるより、仲値後に 5分足 / 15分足 RSI が 50 を割る動き、超える動きを確認する
  • 東京午前のレンジ:値幅が狭い日は 15分足 RSI 70 / 30 が効きやすい。直近高値、安値の内側では逆張り、外側に抜けたら撤退する
  • ロンドンオープン(JST 16:00):東京時間のレンジ上限、下限を抜けると RSI が 70 / 30 に到達しやすい。ここでは逆張りより、RSI 50 付近への押し戻しを待つ順張りが機能する
  • ロンドン序盤のだまし:16:00 前後に一度ブレイクしてから反転する動きがある。RSI の極端値だけで入らず、ブレイク足の終値と次足の継続を確認する
  • NYオープン(JST 22:30、米夏時間基準):米指標、米金利、株式市場の動きで USD/JPY のボラティリティが上がる。RSI 80 / 20 まで振れやすいため、70 / 30 の逆張りは浅い損切りを必須にする
  • NY序盤のトレンド継続:1H RSI が 50 より上、15分足 RSI が 40〜50 で反発する形は押し目買い候補。1H RSI が 50 より下、15分足 RSI が 50〜60 で失速する形は戻り売り候補
  • 日足と 4H の環境認識:日足 RSI が 50 より上なら買い優勢、50 より下なら売り優勢。4H RSI のダイバージェンスは短期売買よりもポジション縮小、利確判断に使う

USD/JPY は金利差、米指標、日本当局発言で一方向に走ることがあります。RSI は反転を当てる道具ではなく、勢いの過熱と鈍化を測る道具として使います。

落とし穴

  • 強トレンドで逆張りしない:RSI 70 以上は売り、30 以下は買いと固定すると、トレンド日に連続して損切りになる。上位足が同方向なら極端値は勢いの証拠として扱う
  • 時間帯を無視しない:東京仲値、ロンドンオープン、NYオープンでは値動きの性質が変わる。同じ RSI 70 でも、東京仲値後の 70 とロンドンブレイク中の 70 は意味が違う
  • ダイバージェンスを早取りしない:価格が高値更新を続ける間、弱気ダイバージェンスは何度も失敗する。価格が直近安値を割る、または RSI が 50 を割るまで反転確定ではない
  • 期間最適化をやりすぎない:13、14、15 のような細かい最適化はバックテストに過剰適合しやすい。9、14、21、25 のような意味のある区切りを優先する
  • Wilder 版と Cutler 版を混同しないewm(alpha=1/n) の Wilder RSI と rolling(n).mean() の Cutler RSI は同じ値にならない。検証と実運用で計算式を固定する
  • 終値確定前の RSI を確定値として扱わない:足の途中の RSI は価格変動で変わる。15分足や1H足では、確定前の RSI クロスをシグナルにすると先読みに近い挙動になる
  • スプレッド拡大を無視しない:NYオープン、重要指標、早朝の薄商いでは RSI の反転シグナルが出ても約定条件が悪化する
  • 水平線なしで使わない:RSI は価格水準を持たない。70 / 30 だけでは損切り位置が決まらない。直近高値、安値、日足節目、仲値前後のレンジ端を必ず合わせる

Python 実装スケッチ

import pandas as pd
def wilder_rsi(close: pd.Series, n: int = 14) -> pd.Series:
delta = close.diff()
gain = delta.clip(lower=0)
loss = (-delta).clip(lower=0)
avg_gain = gain.ewm(alpha=1 / n, adjust=False, min_periods=n).mean()
avg_loss = loss.ewm(alpha=1 / n, adjust=False, min_periods=n).mean()
rs = avg_gain / avg_loss
rsi = 100 - (100 / (1 + rs))
return rsi
def cutler_rsi(close: pd.Series, n: int = 14) -> pd.Series:
delta = close.diff()
gain = delta.clip(lower=0)
loss = (-delta).clip(lower=0)
avg_gain = gain.rolling(window=n, min_periods=n).mean()
avg_loss = loss.rolling(window=n, min_periods=n).mean()
rs = avg_gain / avg_loss
rsi = 100 - (100 / (1 + rs))
return rsi

ewm(alpha=1/n, adjust=False, min_periods=n) を使うと、Wilder スムージングの再帰 EMA になります。adjust=False は再帰計算、alpha=1/n は Wilder の平滑化係数、min_periods=n は初期の未成熟区間を NaN にする指定です。バックテストではこの NaN 区間を売買対象から外します。

参考

  • J. Welles Wilder Jr., New Concepts in Technical Trading Systems, Trend Research, 1978
  • John J. Murphy, Technical Analysis of the Financial Markets, ch. 10 (Oscillators and Contrary Opinion)
  • pandas documentation — pandas.Series.ewm
  • Investopedia — “Relative Strength Index (RSI)”