投資で実現!不労所得生活
🏠テクニカル分析RSI: 相対力指数

RSI: 相対力指数

最終更新:
RSI は一定期間の価格変動に対する上昇の割合を示すモメンタム系オシレータで、0 〜 100 の値を取ります。一般的に 70 を上回ると買われ過ぎ、30 を下回ると売られ過ぎと言われています。RSI は J. Welles Wilder(アメリカのチャート研究科)によって開発されました。

計算式

RSI は下記の計算式で求められます。

$$ RSI = \frac{AvgGain}{AvgGain + AvgLoss} \times 100 $$

計算区間を 14 日間とすると、$AvgGain$ は 14 日間の平均上昇幅、$AvgLoss$ は 14 日間の平均下降幅を示しています。 上昇幅というのは、その日の終値から前日の終値を引いたものです。 下降幅の方も価格変化の絶対値を扱うので、必ず 0 以上の数値となります。 (14 日間の変化を知るためには、今日を除いた 14 日前からの終値が必要なので、「14 日前からの変化」と捉えたほうがわかりやすいかもしれません)。

価格が 14 日間ずっと上昇している場合は RSI は 100 になります。 逆に、14 日間ずっと下降している場合は RSI は 0 になります。 14 日間の平均上昇幅と平均下降幅が等しい場合は、RSI は 50 です。 滅多にありませんが、$AvgGain$ と $AvgLoss$ が両方とも 0 の場合(価格がずっと変化しなかった場合)は、0 除算が行われないように、RSI を無条件で 50 とする必要があります。

下記のように計算する方法もあります(この計算方法の場合は、$$AvgLoss$$ が 0 のときは 0 除算が行われないように RSI を無条件で 100 とする必要があります)。

$$ RSI = 100 - \frac{100}{1 + RS} $$

$$ RS = \frac{AvgGain}{AvgLoss} $$

畳み込みによる平滑化

一般的に、平均上昇幅 (AvgGain) と平均下降幅 (AvgLoss) は、下記のように計算していくことで平滑化を行います(要するに EMA の計算です)。

  1. 最初の 14 日の平均上昇幅と平均下降幅を計算する(15 日目から求められる)
    • FirstAverageGain = 14日間の上昇幅の合計 / 14
    • FirstAverageLoss = 14日間の下降幅の合計 / 14
  2. 残りは下記のように順番に計算
    • AverageGain = (前日の AverageGain x 13 + その日の上昇幅) / 14
    • AverageLoss = (前日の AverageLoss x 13 + その日の下降幅) / 14

後続の計算方法では、もっとも古い上昇幅や下降幅を削除するという作業を省いて、単純に前日における平均上昇幅が過去 13 日間にわたって続いていたとみなして計算しています。 この計算方法には平滑化の効果があり、計算期間が長いほどその影響度は上がります。

計算期間のデフォルト設定

日足 週足 月足
楽天(マーケットスピード) 9日 9週 9月
SBI(HYPER 株) 14日 14週 14月

実装参考

🏠テクニカル分析RSI: 相対力指数
投資で実現!不労所得生活