中实现这一目标
我希望基本上计算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)