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