首先解释一下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)])
数据集如下图所示:
效果图如下:
|
请发表评论