在Matlab中计算累积回报

时间:2014-07-23 00:56:44

标签: matlab return finance

如果我有一个返回向量,有没有办法在Matlab中将它转换为累积回报向量?

在R中有一个非常有用的函数,它来自PerformanceAnalytics包中的chart.CumReturns函数。 Matlab中有没有类似的功能?

否则,我想在Matlab中手动完成

例如,拥有返回的向量:

r = [r1 r2 .. rn]

我想获得累积回报的向量,以便:

rc = [rc1 rc2 ..rcn]

其中:

rc1 = r1
rc2 = (1+r1)*(1+r2)-1
rcn = (1+r1)*(1+r2)*...(1+rn)-1

由于我是Matlab的新手,因此我并不确切知道如何在此向量上构建循环。

谢谢,

2 个答案:

答案 0 :(得分:3)

r = r +1;
rc = cumprod(r);
rc= rc-1;

希望这会有所帮助..

答案 1 :(得分:0)

我不知道是否有原生功能,但我知道我可以写一个。 :)

funciton cumVec = cumsum(InputVec)
    for ii = 1:size(InputVec), 2)
        tempVec = InputVec(1:ii)+1;
        cumElement = prod(tempVec);
        cumVec(ii) = cumElement - 1;
    end
end

我现在无法验证这一点,因为我在这台机器上没有MATLAB,但我认为这是正确的