Provocările optimizării portofoliului

Analiză intermediară a portofoliului în R

Ross Bennett

Instructor

Provocări

  • Mulți solveri nu sunt specifici optimizării portofoliului

  • Înțelegerea capabilităților și limitelor solverilor pentru a selecta solverul potrivit sau a formula problema corespunzător

  • Trecerea între solveri este dificilă

  • Solver cu formă închisă (ex.: programare pătratică)

  • Solver global (ex.: optimizare prin evoluție diferențială)

Analiză intermediară a portofoliului în R

Utilitate pătratică

  • Maximizare: $\quad \displaystyle \omega^T * \mu - \lambda * \omega^T * \Sigma * \omega $
  • Cu constrângerile:

$$\omega_{i} >= 0$$

$$\sum_{i=1}^{n} \omega_i = 1$$

  • $\omega$ este vectorul ponderilor
  • $\mu$ este vectorul randamentelor așteptate
  • $\lambda$ este parametrul de aversiune față de risc
  • $\Sigma$ este matricea varianță-covarianță
Analiză intermediară a portofoliului în R

Solver de programare pătratică

  • Utilizați pachetul R quadprog pentru rezolvarea problemei de optimizare a utilității pătratice

  • solve.QP() rezolvă probleme de programare pătratică de forma:

$$min(-d^Tb+\frac{1}{2}b^TDb)$$

  • Cu constrângerea:

$$A^Tb>=b_0$$

Analiză intermediară a portofoliului în R
library(quadprog)
data(edhec)
dat <- edhec[,1:4]

# Create the constraint matrix
Amat <- cbind(1, diag(ncol(dat)), -diag(ncol(dat)))
# Create the constraint vector
bvec <- c(1, rep(0, ncol(dat)), -rep(1, ncol(dat)))
 # Create the objective matrix
Dmat <- 10 * cov(dat)
# Create the objective vector
dvec <- colMeans(dat)

# Specify number of equality constraints
meq <- 1

# Solve the optimization problem
opt <- solve.QP(Dmat, dvec, Amat, bvec, meq)
Analiză intermediară a portofoliului în R

Să exersăm!

Analiză intermediară a portofoliului în R

Preparing Video For Download...