Uitdagingen van portefeuille-optimalisatie

Gevorderde portefeuilleanalyse in R

Ross Bennett

Instructor

Uitdagingen

  • Veel solvers zijn niet specifiek voor portefeuille-optimalisatie

  • Begrijp mogelijkheden en grenzen van solvers om de juiste solver te kiezen of het probleem passend te formuleren

  • Moeilijk om tussen solvers te wisselen

  • Closed-form-solver (bijv. kwadratische programmering)

  • Globale solver (bijv. differentiële evolutie-optimalisatie)

Gevorderde portefeuilleanalyse in R

Kwadratische utiliteit

  • Maximaliseer: $\quad \displaystyle \omega^T * \mu - \lambda * \omega^T * \Sigma * \omega $
  • Onder voorwaarden:

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

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

  • $\omega$ is de gewichtenvector
  • $\mu$ is de verwachte-rendementenvector
  • $\lambda$ is de risico-aversieparameter
  • $\Sigma$ is de variantie-covariantiematrix
Gevorderde portefeuilleanalyse in R

Solver voor kwadratische programmering

  • Gebruik het R-pakket quadprog om het kwadratische-utiliteitprobleem op te lossen

  • solve.QP() lost kwadratische-programmeerproblemen op van de vorm:

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

  • Onder de restrictie:

$$A^Tb>=b_0$$

Gevorderde portefeuilleanalyse in 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)
Gevorderde portefeuilleanalyse in R

Laten we oefenen!

Gevorderde portefeuilleanalyse in R

Preparing Video For Download...