Optimisation sur une seule période
Il existe deux fonctions pour lancer l’optimisation, optimize.portfolio() et optimize.portfolio.rebalancing(). Cet exercice se concentre sur l’optimisation sur une seule période, et l’exercice suivant utilisera optimize.portfolio.rebalancing() pour une optimisation avec rééquilibrage périodique. optimize.portfolio() prend en charge l’optimisation sur une période. Les principaux arguments incluent R pour les rendements des actifs, portfolio pour l’objet de spécification du portefeuille, et optimize_method pour indiquer la méthode d’optimisation utilisée pour résoudre le problème. Dans bien des cas, il est utile de préciser trace = TRUE afin de stocker des informations supplémentaires pour chaque itération/essai de l’optimisation.
Les méthodes d’optimisation suivantes sont prises en charge :
DEoptim: évolution différentiellerandom: portefeuilles aléatoiresGenSA: recuit simulé généralisépso: optimisation par essaims particulairesROI: R Optimization Infrastructure pour les solveurs de programmation linéaire et quadratique
La méthode d’optimisation à choisir dépend du type de problème à résoudre. Par exemple, un problème qui peut se formuler en programmation quadratique doit être résolu avec un solveur de programmation quadratique, tandis qu’un problème non convexe doit être résolu avec un solveur global comme DEoptim.
Dans cet exercice, nous allons définir un problème d’optimisation de portefeuille visant à maximiser le rendement moyen et à minimiser l’écart type du portefeuille, avec un budget de risque en termes d’écart type où le pourcentage de risque minimal est de 5 % et le pourcentage de risque maximal est de 10 %, sous contraintes d’investissement total et de positions acheteuses uniquement (long only). L’objectif de budget de risque nécessite un solveur global ; nous résoudrons donc le problème à l’aide de portefeuilles aléatoires. L’ensemble de portefeuilles aléatoires, rp, est généré à l’aide de 500 permutations pour cet exercice.
Cet exercice fait partie du cours
Analyse de portefeuille intermédiaire en R
Instructions
La spécification du portefeuille a déjà été créée et s’appelle port_spec. Les rendements asset_returns sont également disponibles dans votre espace de travail.
- Lancez une optimisation sur une seule période avec
tracedéfini àTRUEen utilisant"random"comme méthode d’optimisation. Assignez le résultat de l’optimisation à une variable nomméeopt. - Affichez le résultat de l’optimisation.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Run a single period optimization using random portfolios as the optimization method
opt <- optimize.portfolio(R = ___, portfolio = ___, optimize_method = ___, rp = rp, trace = TRUE)
# Print the output of the single-period optimization