[R-SIG-Finance] Compute Portfolio Returns

Brian G. Peterson brian at braverock.com
Mon Jan 28 11:33:49 CET 2008


Ravi S. Shankar wrote:
> I have in my portfolio cash, equity, futures and forwards. I need to
> compute the returns of this portfolio. 
> 
> If say I have cash of $100 and I buy only equity then my weights would
> be the amount invested in each stock upon the total cash and the sum of
> weights would add up to the total cash. The returns computation would be
> a straightforward change in investment.

price * position size (in shares) = position value

You can, as you've noted, back into weights this way.

> However, I need help in understanding how do I compute the returns (and
> the associated weights) from a futures position and a forwards position.
> 
> a)       In the case of futures there would be a daily change in the
> cash position due to Mark to market. So would the change in cash
> position reflect the returns of futures position?

With the futures position you will always calculate the notional value 
to mark to market. For most futures contracts this is the price * a 
multiplier.

Change in notional value is your return (in currency units like US$ or EU).

> b)       In case of forwards how do I compute the weights and the
> corresponding returns? I cannot use the change in investment as there is
> no initial investment and if I use the change in investment approach to
> compute returns I would have infinite returns. 

With a forward contract you would use the difference in price between 
the forward contract face price and the current spot (market) price to 
calculate the current "premium price" on the contract and use the change 
in premium price to calculate your returns.

> Any help would be appreciated (please let me know in case there is a
> paper which I can refer to)

If you do not change your positions from your initial position, then 
your starting weights do not change, but your actual weights will float 
daily (or whatever your observation time is).

If you need the calculations for calculating returns from prices (or 
price*multiplier notionals), look at function Return.calculate in 
PerformanceAnalytics.  Or if you need the method for calculating 
weighted returns from "prices" and starting weights, let me know.

Regards,

    - Brian



More information about the R-SIG-Finance mailing list