Optimisation sur une seule période
Il existe deux fonctions pour lancer l'optimisation, optimize.portfolio() et optimize.portfolio.rebalancing(). Cet exercice porte sur l'optimisation sur une seule période, et le prochain utilisera optimize.portfolio.rebalancing() pour une optimisation avec rééquilibrage périodique. optimize.portfolio() prend en charge l'optimisation sur une seule 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 d'indiquer trace = TRUE pour conserver de l'information supplémentaire 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 essaim de particulesROI: R Optimization Infrastructure pour les solveurs de programmation linéaire et quadratique
La méthode d'optimisation choisie doit dépendre du type de problème à résoudre. Par exemple, un problème pouvant être formulé en programmation quadratique devrait être résolu avec un solveur de programmation quadratique, tandis qu'un problème non convexe devrait être résolu avec un solveur global comme DEoptim.
Dans cet exercice, nous allons définir le problème d'optimisation de portefeuille consistant à maximiser le rendement moyen et à minimiser l'écart-type du portefeuille, avec un budget de risque basé sur l'écart-type où le pourcentage de risque minimal est de 5 % et le pourcentage de risque maximal est de 10 %, sous réserve de contraintes d'investissement total et uniquement à la hausse (long only). L'objectif de budget de risque exige un solveur global ; nous allons donc résoudre 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.
Cette activité fait partie du cours
Analyse de portefeuille intermédiaire en R
Instructions de l’exercice
La spécification du portefeuille a déjà été créée et se nomme port_spec. Les rendements, asset_returns, sont aussi disponibles dans votre espace de travail.
- Exécutez une optimisation sur une seule période avec
traceà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 ce code d’exemple.
# 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