【问题标题】:Create a moving average using a loop in r使用 r 中的循环创建移动平均线
【发布时间】:2016-10-10 20:48:09
【问题描述】:

这是我当前的代码:

n<-30
alpha<- 2/(1+n)
alpha
length(stocks$Close)
thirty <- colMeans(matrix(stocks$Close [1:30]))
x<-rep(0, length=6656)
for (i in 30:length(x)){
    x[i]<- ((alpha*thirty) + (Close[i-1]*(1-alpha)))
}

我需要将前 30 天的平均收盘值替换为新向量的第 30 个成员。另外,我应该在第 30 天开始我的新向量,从该平均值开始,然后使用公式:EMA[i]= ((P[i]alpha)+(EMA[i- 1](1-alpha))。P[i] 是该时间段结束时的收盘价。假设我们在第 30 天启动整个模型,并将新值代入 i= 30,我猜整个事情都需要调整。如何在第 30 位成员中插入平均值并将模型向前移动?

【问题讨论】:

    标签: r


    【解决方案1】:

    您正在寻找的是: 您需要以 P[i] 的形式访问当前价格,因此 30 日、31 日等。

       for (i in 30:length(x)){
            x[i]<- ((alpha*P[i]) + (x[i-1]*(1-alpha)))
        }
    

    那么前 29 天你可以添加原价

    x[1:29]=Close[1:29]
    

    让它完整

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-21
      • 2012-11-19
      • 1970-01-01
      • 2016-05-16
      • 2023-03-12
      • 1970-01-01
      • 2023-04-08
      相关资源
      最近更新 更多