CommencerCommencer gratuitement

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érentielle
  • random : portefeuilles aléatoires
  • GenSA : recuit simulé généralisé
  • pso : optimisation par essaims particulaires
  • ROI : 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

Afficher le cours

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 trace défini à TRUE en utilisant "random" comme méthode d’optimisation. Assignez le résultat de l’optimisation à une variable nommée opt.
  • 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
Modifier et exécuter le code