[R-SIG-Finance] Réf. : single-period markowitz portfolio optimization

guillaume.nicoulaud at halbis.com guillaume.nicoulaud at halbis.com
Wed Mar 21 15:16:48 CET 2007


I would recommend solve.QP from quadprog

Here is a basic implementation:

      c1 <- matrix(1, n, 1)

      c2 <- diag( rep( 1, n) )

      c3 <- diag( rep(-1, n) )

      cC <- cbind(c1, c2, c3)



      t1 <- Sw

      t2 <- matrix(Mn, n, 1)

      t3 <- matrix(-Mx, n, 1)

      tT  <- matrix( c(t1, t2, t3) )



      library('quadprog', character.only = TRUE)



      opt <- solve.QP(M, Si, cC, tT, 1)

      opt[[1]] -> res

      names(res) <- colnames(M)


with:
n = number of assets
M = covariance matrix
Si = a numeric vector containing your expected returns
Sw = target sum of weights (usually 1 in long-only portfolios)
Mn = minimum individual weights as a numeric vector (use with care, will fail if n*Mn > Sw)
Mx = maximum individual weights as a numeric vector


Les informations contenues dans ce message sont confidentielles et peuvent constituer des informations privilegiees. Si vous n etes pas le destinataire de ce message, il vous est interdit de le copier, de le faire suivre, de le divulguer ou d en utiliser tout ou partie. Si vous avez recu ce message par erreur, merci de le supprimer de votre systeme, ainsi que toutes ses copies, et d en avertir immediatement l expediteur par message de retour.
Il est impossible de garantir que les communications par messagerie electronique arrivent en temps utile, sont securisees ou denuees de toute erreur ou virus. En consequence, l expediteur n accepte aucune responsabilite du fait des erreurs ou omissions qui pourraient en resulter.
--- ----------------------------------------------------- ---
The information contained in this e-mail is confidential. It...{{dropped}}



More information about the R-SIG-Finance mailing list