2014-07-23 174 views
1

如果我有一個回報向量,是否有方法將它轉換爲Matlab中的累積回報向量?在Matlab中計算累積回報

在R中有一個非常有用的函數叫做chart.CumReturns來自PerformanceAnalytics包的funcion。在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新手,我不知道如何在這個向量上構造一個循環。

謝謝,

回答

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

希望這有助於..

+0

+ 1這是我會採取的方法 – rayryeng

+0

是的,這是更好的... + 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這臺機器上,但我認爲這是正確的