三线断裂图

时间:2012-05-31 22:05:40

标签: r forex

我想在R中构建一个three line break chart,并想知道是否已经有一个包可用于执行绘制图表所需的计算,或者甚至更好地做两者,即绘图和计算

我试过在rseek.org上搜索,并且还看了一些财务软件包。到目前为止没有运气。

1 个答案:

答案 0 :(得分:1)

不是最干净的代码,但它可能是进一步开发的基础。 closeval表示一些虚假的收盘价值。

closeval <- c(50,48,47,47,59,60,57,48,42,50)
cvlag <- c(NA,head(closeval,-1))
dset <- data.frame(closeval,cvlag)
dset <- subset(dset,closeval!=cvlag | is.na(cvlag))
dset$cvlag2 <- c(NA,NA,head(dset$closeval,-2))

plot(dset$closeval)

dset <- dset[2:nrow(dset),]
dset$maxlag <- apply(dset[c("cvlag","cvlag2")],1,max,na.rm=TRUE)
dset$minlag <- apply(dset[c("cvlag","cvlag2")],1,min,na.rm=TRUE)

dset$change <- (dset$closeval-dset$cvlag) > 0

dset$keyval[dset$change==FALSE] <- dset$minlag[dset$change==FALSE]
dset$keyval[dset$change==TRUE] <- dset$maxlag[dset$change==TRUE]

segments(
2:(nrow(dset)+1),
dset$closeval,
2:(nrow(dset)+1),
dset$keyval,
col=ifelse(dset$change==TRUE,"red","blue")
)

enter image description here