2011/2/8
RSI(相対力指数)
オシレーター系のテクニカル指標。Relative Strength Index の略でRSIで呼ばれるのが一般的。
WilderのRSIとCutlerのRSIがあり、一般的にRSIと言えばCutlerのRSIを指す。
度数分布図を見ると、日経平均の場合は25以下で売られすぎ、75以上で買われすぎと判断したほうが良い感じがします。
RSIの詳しい度数分布についてはこちらを参照して下さい。
使用する関数
合計範囲を省略した場合は判断範囲内で条件を満たすセルの合計を計算します。
高さ、幅のセル範囲を指定します。
RSIは期間内の終値の全移動量に対して、値上がりの移動量の割合を表したものです
ここでは任意の日数のRSIを計算するためにOFFSET関数を使っています。
RSIの計算式は少々複雑なので各パートをそれぞれ計算して最後にRSIを計算します。
J列で値上り幅の合計、K列で値下り幅の合計をそれぞれ計算してL列でRSIを計算しています。
J5で値上り幅の合計を計算している部分は
K5で値下り幅を合計している部分は
L5でRSIを計算している部分は赤字部分の
J5,K5,L5の式をそれぞれの列にコピー&ペーストすればRSIを計算することができます。
Excelファイルがダウンロードできない場合はリンクを右クリックして「対象をファイルに保存」を選択して保存すればダウンロードできます。
-----2011/1/2加筆-----
RSIは上記とはちょっと違う方法でも計算することができます。
ここでは上記とは別の計算方法を説明します。
RSIはN日間の値上り幅の合計÷N日間の前日比の絶対値の総和×100でも計算できるのでこの方法で計算式を作ってみます。
使用する関数
高さ、幅のセル範囲を指定します。
前日比を計算する部分までは上記と同じです。
G列でH列の絶対値を計算します。計算式の説明は簡単なので省略します。
I列でRSIを計算します。
ここではRSIをN日間の値上り幅の合計÷N日間の前日比の絶対値の総和×100で計算するので、
計算式は赤枠内赤字部分
F7〜H7セルをコピーし、G8以下のセルにペーストすればRSIが計算できます。
こちらの計算方法の方が少ない列数でRSIを計算できます。
-----2011/2/8加筆-----
上記の方法よりも少ない関数でRSIが計算できるので追記します。
RSIの計算で使う、値上り幅と値幅の計算を工夫することによって使用するExcel関数を減らすことができたので、
その計算過程を説明します。
使用する関数
高さ、幅のセル範囲を指定します。
F列でプラスの前日比を計算します。当日終値が前日終値よりも大きい場合は前日比を、それ以外の場合は0を返すようにします。
計算式は
こうすることによってF列の区間内総和が前日比プラスの値幅合計になります。
F列の計算結果を利用してG列で値幅を計算します。
F列が0より大きい場合はF列の値を、それ以外の場合は前日終値-当日終値とします。
計算式は
こうすることによってABS関数を使わなくても値幅が計算できます。
あとはF列の区間内総和をG列の区間内総和で割ればRSIが計算できます。
計算式は赤枠内赤字部分の
F6〜H6セルをコピーし、F7以下のセルにペーストすればRSIが計算できます。
こちらの計算方法の方が少ない関数でRSIを計算できます。
WilderのRSIとCutlerのRSIがあり、一般的にRSIと言えばCutlerのRSIを指す。
計算式
CutlerのRSI = N日間の値上がり幅合計 ÷ (N日間の値上がり幅合計 + N日間の値下がり幅合計) × 100
Nは9,14を使うのが一般的
WilderのRSI = 値上がり幅の指数移動平均(α) ÷ (値上がり幅の指数移動平均(α) + 値下がり幅の指数移動平均(α)) × 100
WilderのRSI = 値上がり幅の修正移動平均(α) ÷ (値上がり幅の修正移動平均(α) + 値下がり幅の修正移動平均(α)) × 100
α=1/14を使うことをWilderは推奨している。
指数移動平均を使うRSIも間違いではないのですが、Wilderは分母と分子の計算を修正移動平均で定義しているのでこのように修正しました。
Nは9,14を使うのが一般的
WilderのRSI = 値上がり幅の修正移動平均(α) ÷ (値上がり幅の修正移動平均(α) + 値下がり幅の修正移動平均(α)) × 100
α=1/14を使うことをWilderは推奨している。
指数移動平均を使うRSIも間違いではないのですが、Wilderは分母と分子の計算を修正移動平均で定義しているのでこのように修正しました。
![]() |
日経平均終値とCutlerのRSIの図
![]() |
日経平均 CutlerのRSI度数分布図(14日,2000年〜2009年)
14日で計算した場合、一般的には30以下で売られすぎ、70以上は買われすぎと判断します。度数分布図を見ると、日経平均の場合は25以下で売られすぎ、75以上で買われすぎと判断したほうが良い感じがします。
RSIの詳しい度数分布についてはこちらを参照して下さい。
![]() |
![]() |
ExcelでRSIを計算する
Excelを使ってCutlerのRSIを計算する手順を説明します。使用する関数
SUMIF(判断範囲,検索条件,合計範囲)
判断範囲の中から条件に合致したものの合計を合計範囲から計算します。合計範囲を省略した場合は判断範囲内で条件を満たすセルの合計を計算します。
ABS(数値)
数値の絶対値を計算します。OFFSET(基準セル,行数,列数,高さ,幅)
基準セルから指定した行数、列数だけ移動したセルを参照します。または高さ、幅を設定して基準セルから指定した高さ、幅のセル範囲を指定します。
IF(条件式,真の場合,偽の場合)
条件式を満たす場合は真の場合の値、満たさない場合は偽の場合の値を返します。ROW(セル)
セルの行番号を返します。何も指定しない場合はROWが書かれたセルの行番号を返します。![]() |
ここでは任意の日数のRSIを計算するためにOFFSET関数を使っています。
RSIの計算式は少々複雑なので各パートをそれぞれ計算して最後にRSIを計算します。
J列で値上り幅の合計、K列で値下り幅の合計をそれぞれ計算してL列でRSIを計算しています。
J5で値上り幅の合計を計算している部分は
SUMIF(OFFSET($I5,0,0,-$L$3,1),">0",OFFSET($I5,0,0,-$L$3,1))
です。SUMIFは条件に合致した要素の合計を求める関数です。値上がりなので条件は”>0”(0より大)と指定します。K5で値下り幅を合計している部分は
SUMIF(OFFSET($I5,0,0,-$L$3,1),"<0",OFFSET($I5,0,0,-$L$3,1))
です。J5での条件を”<0”に変えただけです。L5でRSIを計算している部分は赤字部分の
J5/(J5+ABS(K5))*100
です。K5で計算した値下り幅がマイナス値で計算されるので、絶対値を計算するABS関数を使います。J5,K5,L5の式をそれぞれの列にコピー&ペーストすればRSIを計算することができます。
Excelファイルがダウンロードできない場合はリンクを右クリックして「対象をファイルに保存」を選択して保存すればダウンロードできます。
-----2011/1/2加筆-----
RSIは上記とはちょっと違う方法でも計算することができます。
ここでは上記とは別の計算方法を説明します。
RSIはN日間の値上り幅の合計÷N日間の前日比の絶対値の総和×100でも計算できるのでこの方法で計算式を作ってみます。
使用する関数
SUMIF(判断範囲,検索条件,合計範囲)
判断範囲の中から条件に合致したものの合計を合計範囲から計算します。ABS(数値)
数値の絶対値を計算します。SUM(数値1,数値2,…)
引数の合計を計算します。OFFSET(基準セル,行数,列数,高さ,幅)
基準セルから指定した行数、列数だけ移動したセルを参照します。または高さ、幅を設定して基準セルから指定した高さ、幅のセル範囲を指定します。
IF(条件式,真の場合,偽の場合)
条件式を満たす場合は真の場合の値、満たさない場合は偽の場合の値を返します。ROW(セル)
セルの行番号を返します。何も指定しない場合はROWが書かれたセルの行番号を返します。![]() |
G列でH列の絶対値を計算します。計算式の説明は簡単なので省略します。
I列でRSIを計算します。
ここではRSIをN日間の値上り幅の合計÷N日間の前日比の絶対値の総和×100で計算するので、
計算式は赤枠内赤字部分
SUMIF(OFFSET(F7,0,0,-$H$5,1),">0")/SUM(OFFSET(G7,0,0,-$H$5,1))/100
です。F7〜H7セルをコピーし、G8以下のセルにペーストすればRSIが計算できます。
こちらの計算方法の方が少ない列数でRSIを計算できます。
-----2011/2/8加筆-----
上記の方法よりも少ない関数でRSIが計算できるので追記します。
RSIの計算で使う、値上り幅と値幅の計算を工夫することによって使用するExcel関数を減らすことができたので、
その計算過程を説明します。
使用する関数
SUM(数値1,数値2,…)
引数の合計を計算します。OFFSET(基準セル,行数,列数,高さ,幅)
基準セルから指定した行数、列数だけ移動したセルを参照します。または高さ、幅を設定して基準セルから指定した高さ、幅のセル範囲を指定します。
IF(条件式,真の場合,偽の場合)
条件式を満たす場合は真の場合の値、満たさない場合は偽の場合の値を返します。ROW(セル)
セルの行番号を返します。何も指定しない場合はROWが書かれたセルの行番号を返します。![]() |
計算式は
=IF(E6>E5,E6-E5,0)
となります。こうすることによってF列の区間内総和が前日比プラスの値幅合計になります。
F列の計算結果を利用してG列で値幅を計算します。
F列が0より大きい場合はF列の値を、それ以外の場合は前日終値-当日終値とします。
計算式は
=IF(F6>,F6,E5-E6)
です。こうすることによってABS関数を使わなくても値幅が計算できます。
あとはF列の区間内総和をG列の区間内総和で割ればRSIが計算できます。
計算式は赤枠内赤字部分の
SUM(OFFSET(F6,0,0,-$H$4,1))/SUM(OFFSET(G6,0,0,-$H$4,1))*100
です。F6〜H6セルをコピーし、F7以下のセルにペーストすればRSIが計算できます。
こちらの計算方法の方が少ない関数でRSIを計算できます。
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
↑ TOP PAGE