Défis de l'optimisation de portefeuille

Analyse de portefeuille intermédiaire en R

Ross Bennett

Instructor

Défis

  • Plusieurs solveurs ne sont pas propres à l'optimisation de portefeuille

  • Comprendre capacités et limites des solveurs pour choisir le bon outil ou formuler le problème en fonction du solveur

  • Passer d'un solveur à l'autre est difficile

  • Solveur en forme fermée (p. ex., programmation quadratique)

  • Solveur global (p. ex., optimisation par évolution différentielle)

Analyse de portefeuille intermédiaire en R

Utilité quadratique

  • Maximiser : $\quad \displaystyle \omega^T * \mu - \lambda * \omega^T * \Sigma * \omega $
  • Sous contraintes :

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

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

  • $\omega$ : vecteur des pondérations
  • $\mu$ : vecteur des rendements espérés
  • $\lambda$ : paramètre d'aversion au risque
  • $\Sigma$ : matrice variance-covariance
Analyse de portefeuille intermédiaire en R

Solveur de programmation quadratique

  • Utilisez le paquet R quadprog pour résoudre l'optimisation d'utilité quadratique

  • solve.QP() résout des problèmes de programmation quadratique de la forme :

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

  • Sous la contrainte :

$$A^Tb>=b_0$$

Analyse de portefeuille intermédiaire en 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)
Analyse de portefeuille intermédiaire en R

Passons à la pratique !

Analyse de portefeuille intermédiaire en R

Preparing Video For Download...