R:用xts计算累积回报

时间:2013-07-11 13:07:11

标签: r xts

我使用自己的函数readVariableAsXTS(VariableName)从CSV文件导入多个股票价格。所有股票价格只有两列,日期和价格。现在我想创建(显然代码应尽可能快地执行)这些价格的索引版本。因此,NormalizedPrices [1]应为100,NormalizedPrices [2]应为100 *(1 + VariableReturns [1])或者为NormalizedPrices [i-1] *(1 + VariableReturns [i])。但是,这总是会产生此错误:

Error in NextMethod(.Generic) : replacement has length Zero

这是我对标准化价格的完整功能:

getNormalizedPrices<-function(VariableName, InitialValue=100){
  VariableXTS<-readVariableAsXTS(VariableName)

  VariableReturns<-periodReturn(VariableXTS,period="daily",type="arithmetic")

  NormalizedPrices<-0*VariableReturns
  NormalizedPrices[1]<-InitialValue
  for(i in 2:nrow(VariableReturns)){
    NormalizedPrices[i]<-NormalizedPrices[i-1]*(1+VariableReturns[i])
  }

  VariableXTS[,1]<-NormalizedPrices[,1]
  return(VariableXTS)
}

我对xts和R很新。所以我的三个问题是:

  1. 我是否已经有累积回报的功能,我基本上在这里计算?我还没有在quantmod或PerformanceAnalytics中找到一个。
  2. 为什么会产生此错误?至于我找到了这个问题的答案,我认为我无法使用xts和这些[i-1]的东西
  3. 我应该将其转换为向量并返回以使其更快吗?

0 个答案:

没有答案