1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| 'activation de la feuille "optimisation"
wsOpt.Activate
'initialisation des parts actives à 0
Range("parts_actives").Value = 0
'mise en mémoire du programme d'optimisation du portefeuille benchmarké
solverreset
solverok setcell:="Er_actif", MaxMinVal:=1, bychange:="parts_actives"
solveradd cellref:="TE", Relation:=2, formulatext:="=TE_cible"
solveroptions assumenonneg:=True
solveradd cellref:="invOpt", Relation:=2, formulatext:=1
solveroptions assumenonneg:=False
'initialisation à 1 du compteur i (de la ligne utilisée sur la feuille frontière
i = 1
'boucle sur la TE (max) de 0 à 10% avec un pas de 1%
For j = 0 To 10
'report de la TE max sur le modèle Excel
wsOpt.Range("TE_cible").Value = j / 100
'optimisation
solversolve userfinish:=True
'incrémentation de la ligne de report
i = i + 1
'report de la TE (max), de la volatilité et du rendement moyen du portefeuille
wsF.Cells(i, 1).Value = wsOpt.Range("TE_cible").Value
wsF.Cells(i, 2).Value = wsOpt.Range("stDevOpt").Value
wsF.Cells(i, 3).Value = wsOpt.Range("Er_actif").Value
'fin de la boucle
Next |
Partager