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