# Asset Pricing [Part 2c : Sketching The Traditional Framework]

The previous post addressed the second element of the two fund theorem, the allocation of capital between the risky portfolio (which was constrained to hold only one asset) and the riskfree asset. This post will concentrate on locating the optimal risky portfolio when the number of risky assets is extended to 25 simulated data points. The possible set of expected returns and standard deviations for different combinations of the simulated risky assets will be plotted along the **Minimum Variance Frontier**. Every point on this contour is a combination of risky assets that minimise portfolio risks for a given level of portfolio returns.

**[The Minimum Variance Frontier]**

The basic intuitions can be illustrated using the case of two risky assets. The expected return on such a portfolio would simply be the weighted average of individual asset returns

The variance of such a portfolio depends on the covariance and variances of the 2 assets concerned.

The covariance itself can be decomposed in terms of the correlation coefficient and standard deviations.

By varying the weights in each asset and noting the corresponding expected portfolio returns and risk, the **MVF** can be traced. Two functions were written to deal with such issues *MVF *and *DrawMVF.*

############################################################################# # # Mean Variance Frontier # ############################################################################# MVF <- function (risky.assets){ raw.ret <- risky.assets[[1]] n <- ncol(raw.ret) min.ret <- min(risky.assets[[5]]) max.ret <- max(risky.assets[[5]]) var.cov <-risky.assets[[2]] n.port = 200 risk.free <- risky.assets[[4]] risky.port <- list() if(n<2){ print('Please specify more than one asset when using the [simulate.assets] function') } else if(n>1){ target.returns <- seq(min.ret,max.ret,length.out=n.port) mvp <- vector('list',n.port) min.var.frontier <- matrix(0,dimnames=list(c(seq(1,n.port)),c('Portfolio Return','Portfolio Risk','Sharpe Ratio',1:n)),nrow=n.port,ncol=n+3) for(i in 1:n.port){ mvp[[i]]<-portfolio.optim(x=raw.ret,pm=target.returns[i],riskless=F,shorts=F) min.var.frontier[i,] <- c(mvp[[i]]$pm,(mvp[[i]]$ps),(mvp[[i]]$pm-risk.free)/(mvp[[i]]$ps),mvp[[i]]$pw) } max.sharpe.port <- min.var.frontier[which.max(min.var.frontier[,3]),] global.min.var.port <- min.var.frontier[which.min(min.var.frontier[,2]),] risky.port[[1]] <- min.var.frontier risky.port[[2]] <- target.returns risky.port[[3]] <- raw.ret risky.port[[4]] <- max.sharpe.port risky.port[[5]] <- global.min.var.port return(risky.port) } }

mn

############################################################################# # # Drawing the mean variance frontier # ############################################################################# DrawMVF <- function(risky.portfolio,add.frontiers,ind,total.num){ port.return <- risky.portfolio[[1]][,1] port.risk <- risky.portfolio[[1]][,2] port.sharpe <- risky.portfolio[[4]][2:1] min.var.port <- risky.portfolio[[5]][2:1] if(add.frontiers==TRUE){ col.ind <- rainbow(total.num) lines(x=port.risk,y=port.return,col=col.ind[ind],lwd=1.5,type='l') } else if(add.frontiers==FALSE){ lines(x=port.risk,y=port.return,col='black',lwd=1.5,type='l') points(x=min.var.port[1],y=min.var.port[2],col='purple',cex=1,pch=11) } }

h

To operationalise some of the issues so far, let’s simulate random asset returns for 25 securities, plot them in the risk/return space along with the **MVF** that these assets trace.

o

#Mean variance efficiency sim.opt <- simulate.assets(25) sim.mvf <- MVF(sim.opt) cal.opt <- CAL.line('Sharpe',sim.opt,sim.mvf) DrawCAL(cal.opt,sim.opt,sim.mvf,legend.draw=TRUE) utility.contours('Sharpe',sim.opt,1.5,sim.mvf) DrawMVF(sim.mvf,FALSE,NULL,NULL)

Once the **MVF** has been traced, the optimal portfolio of risky simulated assets can be located. Essentially, the objective is to find one collection of risky asset weights that is superior to any other combination of risky assets according to some** risk adjusted performance measure**. The standard performance measure used is the Sharpe ratio which adjusts the excess expected portfolio return by the standard deviation of portfolio returns. Graphically, since the slope of the **CAL** is the Sharpe ratio,the optimal risky portfolio is simply the tangency portfolio which results when the **CAL** with the highest slope touches the **MVF**. This is shown in the plot above. Intuitively, one could have drawn the **CAL** with respect to any other point on the **MVF** but the Sharpe ratio would be suboptimal. Connecting the risk free asset with the global minimum variance portfolio would result in a **CAL** that has a negative slope, and hence a negative Sharpe ratio, implying that the risk free asset provides a better return than the global minimum variance portfolio (in our example).

Mathematically, the objective is to find a set of risky asset weights that maximise the Sharpe ratio:

Instead of using optimisation packages to locate the Sharpe-ratio-maximising-portfolio, I simply computed the Sharpe measure for every point on the **MVF** and extracted the subset of weights for which the Sharpe ratio was maximal. The result appears to be correct since it corroborates with more advanced packages such as **fPortfolio**.

The Two-fund separation theorem of Modern Portfolio Theory states that the investment problem can be decomposed into the following steps:

- Finding the optimal portfolio of risky assets
- Finding the best combination of this optimal risky portfolio and the risk free asset.

With regard to the first point, the optimal portfolio of risky assets is simply the set of risky asset weights that maximise the Sharpe ratio (or of course some other performance measure)

With regard to the second point, the total optimal portfolio, one that is invested in the risk free rate and the risky optimal portfolio, depends on the manner in which individual risk preferences (as embodied in the utility function) intersect with investment opportunities (as embodied in th CAL).

As before, the total optimal portfolio results where the highest available indifference curve for a given level of risk aversion meets the **CAL** with the highest Sharpe ratio (or slope). Again, an individual with a risk aversion of 0.5 would allocate more of his capital to the optimal risky portfolio than an individual with a risk aversion parameter of 1.5.

An investor who has a very low risk aversion parameter would borrow at the risk free rate and invest the borrowed funds along with own capital in the optimal risky portfolio. The resulting total portfolio would lie to the right of the optimal risky portfolio.