如何将回报转换为价格?

时间:2011-10-03 04:14:19

标签: r

我很好奇我如何从日志返回到价格。这是一个例子:

> a1 <- c(88.23, 88.44, 88.55, 88.77, 88.99)
> a1 
[1] 88.23 88.44 88.55 88.77 88.99
> a2 <- diff(log(a1))
> a2 
[1] 0.002377315 0.001243008 0.002481391 0.002475249

a1是价格,a2是退货。我如何从a2回到a1?任何建议都会很棒。

2 个答案:

答案 0 :(得分:5)

您想使用类似

的内容
a3 <- exp(cumsum(a2))

或者,您可以使用

a3 <- cumprod(exp(a2))

但是这些都将关闭,因为您需要将初始价格添加回每个值。

答案 1 :(得分:4)

应该这样做:

> Reduce(function(x,y) {x * exp(y)}, a2, init=a1[1], accumulate=T)
[1] 88.23 88.44 88.55 88.77 88.99