Prev: tsearchn for non-convex
Next: 3 dimensional plotting
From: J on 28 Jun 2010 13:42 Greetings: I am attempting to create a vector of compound returns with a fixed starting principal amount and variable returns per period. For example: I had capital = $10,000 at time 0. My return, r, at the following periods: r1 = 1.2% r2 = 2.3% r3 = -1.2% … My $10,000 compounds at the rates above per period. So: x1 = capital * (1 + r1) x2 = x1 * (1 + r2) x3 = x2 * (1 + r3) .... My main issue is probably simple for those with experience in MATLAB. I'm having troube recursively calling the x in the above example. For example: r is a vector of returns capital is the initial capital ($10,000) I modified compint (http://www.mathworks.com/matlabcentral/newsreader/view_thread/259630#676655) to return a 1-period return: %%% function a = compint(p, r) %p=starting balance, r=return % a = (p) * (1 + r); %%% I try to run the following code: capital = compint(capital, r(:,1)); which simply multiplies the return at period t against the original starting capital. I would like it to of course recursively (or otherwise) multiply the next return against the previous capital + return. I'm very new to MATLAB and hoping there is a built in function or someone has accomplished this task.
From: J on 28 Jun 2010 17:44 Very easy: series = [cumprod(r) * capital]; "J " <remove.this.strimp101(a)gmail.com> wrote in message <i0amth$77$1(a)fred.mathworks.com>... > Greetings: > > I am attempting to create a vector of compound returns with a fixed starting principal amount and variable returns per period. For example: > > I had capital = $10,000 at time 0. > > My return, r, at the following periods: > > r1 = 1.2% > r2 = 2.3% > r3 = -1.2% > … > > My $10,000 compounds at the rates above per period. > > So: > > x1 = capital * (1 + r1) > x2 = x1 * (1 + r2) > x3 = x2 * (1 + r3) > ... > > My main issue is probably simple for those with experience in MATLAB. I'm having troube recursively calling the x in the above example. For example: > > r is a vector of returns > capital is the initial capital ($10,000) > > I modified compint (http://www.mathworks.com/matlabcentral/newsreader/view_thread/259630#676655) to return a 1-period return: > > %%% > > function a = compint(p, r) > %p=starting balance, r=return % > > a = (p) * (1 + r); > > %%% > > I try to run the following code: > > capital = compint(capital, r(:,1)); > > which simply multiplies the return at period t against the original starting capital. I would like it to of course recursively (or otherwise) multiply the next return against the previous capital + return. > > I'm very new to MATLAB and hoping there is a built in function or someone has accomplished this task.
|
Pages: 1 Prev: tsearchn for non-convex Next: 3 dimensional plotting |