テクニカル分析 RSI(Relative Strength Index)

Equation
RSI=\frac{\bar{U}_{n}}{\bar{U}_{n}+\bar{D}_{n}}\times 100

R
サンプルデータ:日経平均株価終値、2013年3月25日から2014年3月24日
rsinikkei

> nikkei <- dataset$close

> RSI <- function(xxx,ma,upper,lower){
+ nn=length(xxx)
+ attributes(xxx)$tsp <- c(1,nn,1)
+ yt <- diff(xxx)#前日との差
+ rt <- yt.pm <- c()
+ yt.pm[seq(1,nn-1)[yt > 0]] <- 1#前日から値上がり.
+ yt.pm[seq(1,nn-1)[yt < 0]] <- -1#前日から値下がり.
+ for(ii in (ma:(nn-1))){
+ uu <- dd <- c()
+ for(jj in ((ii-ma+1):ii)){
+ ifelse(yt.pm[jj]==1,uu[jj] <- yt[jj],dd[jj] <- -1*yt[jj])#値上がりはuuに値下がりはddに.
+ }
+ u <- try(mean(uu,na.rm=TRUE),silent=TRUE)
+ d <- try(mean(dd,na.rm=TRUE),silent=TRUE)
+ rt[ii] <- 100 * u/(u+d)
+ }
+ M1 <- max(xxx)
+ M2 <- min(xxx)
+ par(mfrow=c(2,1))
+ plot(xxx,xlim=c(1,nn),ylim=c(M2,M1),main="Nikkei.2013/3/25-2014/3/24",ylab="JPY",type="l")
+ plot(rt,xlim=c(1,nn),ylim=c(0,100),main="RSI.Nikkei.2013/3/25-2014/3/24",ylab="%",type="l")
+ abline(h=50,lty=4,col=3)
+ abline(h=upper,lty=4,col=4)
+ abline(h=lower,lty=4,col=4)
+ print(attributes(xxx))
+ }

> RSI(nikkei,14,70,30)
$tsp
[1]   1 245   1

> 

参考文献
熊谷悦生、舟尾暢男(2008).『Rで学ぶデータマイニング Ⅱシミュレーション編』.オーム社.248pp.

アプリケーション
R Core Team (2013). R: A language and environment for statistical computing.
R Foundation for Statistical Computing, Vienna, Austria.
URL http://www.R-project.org/.