首先解释一下K线图的含义:首先我们找到该日或某一周期的最高和最低价,垂直地连成一条直线;然后再找出当日或某一周期的开市和收市价,把这二个价位连接成一条狭长的长方柱体。假如当日或某一周期的收市价较开市价为高(即低开高收),我们便以红色来表示,或是在柱体上留白,这种柱体就称之为“阳线”。如果当日或某一周期的收市价较开市价为低(即高开低收),我们则以绿色表示,又或是在柱上涂黑色,这柱体就是“阴线”了。
接下来是R语言的具体实现代码:
FT_Kplot<-function(OPEN,HIGH,LOW,CLOSE,DATE) { N<-length(OPEN) w<-0.3 D<-CLOSE-OPEN par(family='serif') # 作图 plot(c(1:N),CLOSE,type='n',xaxt='n', xlab='时间',ylab='价格',font.axis=1.5) title(main='K线图',cex=2,col='black') for(i in 1:N) { lines(c(i,i),c(LOW[i],HIGH[i]),col='black',lwd=1) x<-c(i-w,i-w,i+w,i+w) y<-c(OPEN[i],CLOSE[i],CLOSE[i],OPEN[i]) if(D[i]<0) { polygon(x,y,col='green',border='green') } else { polygon(x,y,col='red',border='red') } } Index<-seq(from=1,to=N,length=5) Index<-round(Index) Text<-DATE[Index] axis(side=1,Index,labels=Text,cex.axis=1) } a<-read.table("166.txt") date<-a[,1] open<-a[,2] high<-a[,3] low<-a[,4] close<-a[,5] DATE<-substr(date,1,10) FT_Kplot(open[c(1:100)],high[c(1:100)], low[c(1:100)],close[c(1:100)],DATE[c(1:100)])
数据集如下图所示:
效果图如下: