【问题标题】:Function for create a cumulative index of returns用于创建累积收益指数的函数
【发布时间】:2019-12-28 22:02:33
【问题描述】:

我正在尝试编写一个函数来计算累积索引返回,其中计算将是 xts 对象中的当前观察/第一次观察。 这是我的代码示例:

    cumret <- function(x){
      cum <- rep(0,nrow(x))
      for (i in 1:nrow(x)) {
        cum[i,] <-x[i,]/x[1,]
      }
      cumret <- cum
      return(cumret)
    }

然后当一个尝试它时,显示此错误: “矩阵上的下标数量不正确”

作为输入数据,我使用了例如

Prices <- c(23,23.5,24,24.3,24.6,25) 

我想创建一个累积收益向量,Cum.Ret &lt;- Price[i,] / as.numeric(Prices[1,])

希望你能帮助我,在此先感谢。

【问题讨论】:

  • 你能展示一个可重现的小例子和预期的输出吗
  • 当然:例如 sp500 在时间窗口内的归一化收益将从 1 开始,以总累积收益结束。预期输出将是这些累积回报的时间序列。
  • 根据R 标签,预期的最小可重现示例是here
  • 你需要cumsum(Prices/Prices[1])
  • 注释不适合粘贴示例。请编辑您的原始问题。

标签: r finance


【解决方案1】:

一个选项是除以第一个元素,然后取cumsum

cumsum(Prices/Prices[1])

数据

Prices <- c(23,23.5,24,24.3,24.6,25)

【讨论】:

  • 问题是这不会返回一个时间序列的累积收益,只有总收益。让我更容易理解,我尝试为给定的一组价格重现 1 美元价值的时间序列。
  • @AlanVazquez cmets 不清楚。您提供了一个示例,我尝试使用该示例来创建预期的
猜你喜欢
  • 2018-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-07
  • 2018-05-13
  • 2020-07-27
相关资源
最近更新 更多