Compute the efficient frontier function for some selected risk functionals in a portfolio optimization setting.
prtf (x, Rf = 0.0, sh = FALSE ,eRtn = NULL)
The minimum weights show with MIN
which is the portfolio with the minimum volatility. Market portfolio is given by MP
where, the risk free weight w_0
is zero. MP
is the tangency point between the market line and efficient frountier curve. A list containing the following components:
list the name of assests in the portfolio
return and volatiliy of overall portfolio
volatility of portfolio
return of portfolio
weigths of portfolio
a numeric matrix of random returns per unit of price within some holding period.
a logical indicating whether shortsales on the risky securities are allowed. Default is FALSE.
the return of the risk free, i.e. has variance 0.
a value of expected returen of portofilo. The mean of whole data defualt.
Let \(\xi_1 , \ldots,\xi_n\) be random asset returns and \(w_1 , \ldots, w_n\) the portfolio weights. The expected returns are \(r_m = E\xi_m , m = 1, \ldots, n.\) In addition to these risky investments, there is a risk-free asset (a bond or bank account) available, which has return \(r_0\). Denoting the weights of \(w_0\) for the risk-free asset. The return of portfolio given by $$ R_p = w^t r $$ where, \(r = ( r_1, \ldots, r_n)^t\).
Risk is measure by a deviation functional \(\Sigma\). It is a variance-covariance of asset returns. The risk-free component \(w_0\) ignore in the objective. So, the standard deviation of portfolio is given by \(\sigma_p = w^t \Sigma w.\)
To obtain the optimum value of \(w_i, i=1,\ldots, n,\) we solve the following model: $$\min w^t \Sigma w\;\; s.t:\;\;w^t r > \mu \;\; and\;\; \sum w_i = 1.$$ where, \( \mu \) is a constant value. Note that, the portfolio weights may be negative (selling short is allowed).
Pflug and Romisch (2007, ISBN: 9789812707406)
if (FALSE) {
x <- rnorm(500,0.05,0.02)
y <- rnorm(500,0.01,0.03)
z<-cbind(x, y)
colnames(z) <- c("prt1","prt2")
prtf (z, sh = FALSE)
}
Run the code above in your browser using DataLab