Skip to content
Prev 3048 / 15274 Next

Value of liquidity

Thanks for everyone's thoughtful responses.  Mark, I checked out the
paper you referred me to it's a pretty good read and is available on
ssrn title "portfolio rebalancing: a test of the markwiz-van dijk
heuristic".  I am still struggling with the Monte-Carlo simulation so
I'm taking your advice Brian and posting some code.  Maybe someone on
this list can give me some guidance as to where I'm going wrong.  The
reason I think that I'm making a mistake is that the code below
simulates an equally weighted portfolio with three assets.  The problem
is that the average simulated portfolio return is not the same as the
equally weighted return of the underlying assets.  I'm not sure if this
is because I'm misinterpreting the drift term or because there is an
error in my code.  Any guidance would be greatly appreciated.

Thanks,

Ben  

monteCarlo=function(spot,drift,T,nSteps,covmat,nSims=10000){
	##this is an alteration of work done by Kris Kumar
	##spot = Vector of asset prices at t=0
	##drift = Foreign risk - domestic risk for each asset
	##T = total time for monte carlo simulation
	##nSteps = number of steps (This should be more important for
path dependent options
	##covmat= the variance covariance matrix (should be number of
assets squared)
	##nSims = number of monte carlo simulations should use 10,000
according to haug


	nAssets=nrow(covmat)
	path=array(0,c(nSteps,nSims,nAssets))
	deltaT=T/nSteps
	shocks=array(0,c(nSteps+1,nSims,nAssets))
	for(i in 1:nAssets){
		shocks[1,,i]=spot[i]
	}
	muDt=drift*deltaT
	covmat=covmat*deltaT
	
randmat=matrix(rnorm.sobol(nSims,nAssets*nSteps),ncol=nAssets*nSteps)
	cholmat=chol(covmat)
	for(k in 1:nSims){
		randmatt=matrix(randmat[k,],nrow=nSteps,ncol=nAssets)
%*% cholmat
		for(l in 1:nSteps){
			for(m in 1:nAssets){
shocks[l+1,k,m]=shocks[l,k,m]*exp(muDt[m]+randmatt[l,m])
			path[l,k,m]=shocks[l+1,k,m]
			}
		}
	}	
	return(path)
}

###Make up some data for ret std correl
expret=c(.09,.1,.01)
stdev=c(.17,.195,.055)
correlation=matrix(c(1,.8,.5,.8,1,.5,.5,.5,1),nrow=3,ncol=3)
###Calculate covariance matrix	
covmat=matrix(ncol=3,nrow=3)
for(i in 1:nrow(correlation)){
	for(j in 1:ncol(correlation)){
		covmat[i,j]=correlation[i,j]*stdev[i]*stdev[j]
	}
}

price=c(100,100,100)
T=1
nsteps=1
nsims=10000
path=monteCarlo(price,expret,T,nsteps,covmat,nsims)
weights=c(1/3,1/3,1/3)
portPath=path[1,,] %*% weights

averagePortReturn=mean(portPath)
expectedPortReturn=mean(expret)

-----Original Message-----
From: markleeds at verizon.net [mailto:markleeds at verizon.net] 
Sent: Thursday, October 16, 2008 2:57 PM
To: Chiquoine, Ben
Cc: r-sig-finance at stat.math.ethz.ch
Subject: RE: [R-SIG-Finance] Value of liquidity


  hi: i can't answer your questions below but Markovwtz-Van Dijk  ( 
spelling on Van Djil may be incorrect ) came up with some heuristic a 
few years back for balancing the cost of rebalancing versus the expected

gain in return  from rebalancing. mark kritzman ( state street ) has a 
powerpoint presentation that gives an overview of the idea ( that's on 
the net. i can find it , if you can't ) but I don't know the title of 
the original paper nor the journal it's in, assuming it was published 
somewhere. if you find it, can you let me know where it is. thanks.
On Thu, Oct 16, 2008 at 10:16 AM, Chiquoine, Ben wrote:

            

            
___________________________________________
This message and any attached documents contain
information which may be confidential, subject to 
privilege or exempt from disclosure under applicable
law. These materials are solely for the use of the 
intended recipient. If you are not the intended 
recipient of this transmission, you are hereby 
notified that any distribution, disclosure, printing, 
copying, storage, modification or the taking of any
action in reliance upon this transmission is strictly
prohibited. Delivery of this message to any person
other than the intended recipient shall not
compromise or waive such confidentiality, privilege
or exemption from disclosure as to this 
communication. 

If you have received this communication in error, 
please notify the sender immediately and delete
this message from your system.