MathGroup Archive 2011

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: random financial portfolios

  • To: mathgroup at smc.vnet.net
  • Subject: [mg119787] Re: random financial portfolios
  • From: Ray Koopman <koopman at sfu.ca>
  • Date: Wed, 22 Jun 2011 03:45:08 -0400 (EDT)

----- Priyan Fernando <priyan.fernando at gmail.com> wrote:
> Thanks Bob for your code :)
> 
> Ray, using the Dirichlet distribution would give the same results
> as using the following, right?
> weights = RandomReal[{0, 1}, 4];   weights = weights/Total[weights];

No, the first part should be

weights = RandomVariate[ExponentialDistribution[1], 4];

or 

weights = Log@RandomReal[{0, 1}, 4];

> 
> On 21 June 2011 17:54, Ray Koopman <koopman at sfu.ca> wrote:
> 
>> On Jun 21, 4:24 am, Priyan Fernando <priyan.ferna... at gmail.com> wrote:
>>> Hi,
>>>
>>> Wonder if someone can help me pls; I'm new to mathematica. I want to
>>> generate "random" financial portfolios using the following parameters.
>>>
>>> returns = {0.05, -0.2, 0.15, 0.3}
>>> covariance = {{0.08, -0.05, -0.05, -0.05}, {-0.05,
>>>    0.16, -0.02, -0.02}, {-0.05, -0.02, 0.35, 0.06}, {-0.05, -0.02,
>>>    0.06, 0.35}}
>>>
>>> So we need
>>> *weights={w1,w2,w3,w4}*
>>> where each term is a random numbers representing asset the asset weigth
>>> [assume that these must sum  to 1 - a long only portfolio]
>>>
>>> I want to randomly change the weights and then calculate porfolio return:
>>> *weights.returns*
>>> and portfolio variance:
>>> *weights.covariance.weights*
>>>
>>> Then want to plot the return against risk, for say around 100
>> simulations.
>>>
>>> Your help is much appreciated.
>>>
>>> Thanks!
>>
>> RandomVariate[DirichletDistribution[{1,1,1,1}]]  will give you
>> a random portfolio in which all weightings are equally likely.
>>
>> RandomVariate[DirichletDistribution[{1,1,1,1}],n]  will give you
>> n such portfolios.
>>
>>
> 
> 
> -- 
> Thanks and Regards,
> Priyan Fernando
> 
> Mob. +94 772 622 368


  • Prev by Date: Re: Again : Is there a BNF for Mathematica?
  • Next by Date: Date based calculations
  • Previous by thread: Re: random financial portfolios
  • Next by thread: How to transform a functional expression into a general expression