R-用于XTS时间序列的行计算返回行



我希望基本上计算XTS时间序列的累积返回(和索引值),我每个时期都有返回。但是,由于我正在寻找比较这些时间序列的定义时期,因此我希望从此期间开始到结束的累积返回和索引值以及每行的当前累积返回。

可以说我的数据是这样的(基本索引值为100):

      Return  Index  Cumulative Return
Date0   0     100         0  
Date1  0.05   105        0.05
Date2  0.10   115.5      0.155           
Date3  -0.1   103.95     0.0395

如何在R?

中实现这一目标
# First create an xts object similar to the one you describe
x <- .xts(c(100,105,115.5,103.95), 1:4, dimnames=list(NULL, "Index"), tzone="UTC")
x$Return <- c(0, ROC(x$Index, type="discrete", na.pad=FALSE))

随时累积算术收益仅是1加回报的乘积(减1)。cumprod将为您计算累积产品。

x$CumulativeReturn <- cumprod(1 + x$Return) - 1
#                     Index Return CumulativeReturn
#1970-01-01 00:00:01 100.00   0.00           0.0000
#1970-01-01 00:00:02 105.00   0.05           0.0500
#1970-01-01 00:00:03 115.50   0.10           0.1550
#1970-01-01 00:00:04 103.95  -0.10           0.0395

如果您正在使用日志返回,则可以简单地做cumsum(x$Return)

最新更新