R语言的循环简单向量算法不适用于时间序列

时间:2014-08-07 17:10:27

标签: r for-loop vector time-series

我正在试图制定一个简单的移动平均线(SMA)。当这样做时,我会为SMA获得红色的奇怪和不连续的线条:

frame()
rm(list=ls())

#Value of securities in GOOG
GOOG=read.csv(file="GOOG.csv", head=TRUE, sep=",")
plot(x=GOOG$Close, type="l", ylab="GOOG Closing Prices",xlab="Time")
SMA=GOOG$Close

#5 Day SMA in RED
for(i in 1:84)
{
  segments(x0=i,y0=mean(SMA[i:i+4]),
       x1=i+1, y1=mean(SMA[i+1:i+5]),
       col="red")
}

然而,当我用(SMA [i] + ... + SMA [i + 4])/ 5替换均值(SMA [i:i + 4])时(和替换均值相同(SMA [i +] 1:i + 5])),值很好,SMA图表应该是平滑连续的。

但这两个价值不一样吗?如何在保持写平均值的简写方式的同时纠正这个问题?

1 个答案:

答案 0 :(得分:1)

尝试:

#5 Day SMA in RED
for(i in 1:84)
{
  segments(x0=i,y0=mean(SMA[i:(i+4)]),
       x1=i+1, y1=mean(SMA[(i+1):(i+5)]),
       col="red")
}

*(添加括号)

小心你的指数。