您的位置:首页 > 其它

R-自画蜡烛图CandleChart

2014-01-06 17:13 183 查看
getCandleChart<-function(x,theme='white'){
x<-na.omit(x)

xax<-x$DATETIME
print(paste("xax[1]=",xax[1]))

Opens <- as.numeric(x$Open)
Highs <- as.numeric(x$High)
Lows <- as.numeric(x$Low)
Closes <- as.numeric(x$Close)

#x,y取值范围
xrange<- c(min(xax),max(xax))
yrange <- c(min(Lows, na.rm = TRUE), max(Highs, na.rm = TRUE))

#蜡烛宽度
spacing <- 1
length <- nrow(x)

#颜色
bg.col="white"
fg.col="white"
dn.col="green"
up.col="red"
bar.border="black"

x.pos <- xax

#par(bg=bg.col,col.axis=fg.col,fg=fg.col)

# create scale of main plot window
plot.new()
plot.window(xlim=c(xrange[1],xrange[2]),ylim=c(yrange[1],yrange[2]))

#颜色
bar.col <- ifelse(Opens < Closes,dn.col,up.col)
bar.border <- bar.border     #上下影线及矩形实体边界颜色

segments(x.pos,Lows,x.pos,apply(cbind(Opens,Closes),1,min),col=bar.border)       #蜡烛下影线
segments(x.pos,Highs,x.pos,apply(cbind(Opens,Closes),1,max),col=bar.border)      #蜡烛上影线

rect(x.pos-spacing/3,Opens,x.pos+spacing/3,Closes,col=bar.col,border=bar.border)  #蜡烛实体
axis(1,at=x.pos,labels=format(xax,format="%H:%M:%S"))
axis(2)
box(col=bar.border)
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  R R-CandleChart plot