Résoudre un problème simple d'optimisation de portefeuille
Dans cet exercice, vous allez apprendre à résoudre un problème simple d'optimisation de portefeuille avec PortfolioAnalytics. Vous verrez comment créer un objet de spécification de portefeuille, ajouter des contraintes et des objectifs, puis résoudre le problème d'optimisation. Le problème consiste à construire un portefeuille à variance minimale soumis aux contraintes d'investissement total et de positions acheteuses seulement. L'objectif est de minimiser la variance du portefeuille. Deux contraintes s'appliquent : la contrainte d'investissement total exige que la somme des pondérations soit égale à 1, et la contrainte acheteur seulement exige que toutes les pondérations soient supérieures ou égales à 0 (c.-à-d. aucune position vendeuse n'est permise).
Cette activité fait partie du cours
Analyse de portefeuille intermédiaire en R
Instructions de l’exercice
- Créez un objet de spécification de portefeuille à partir des noms d'actifs du jeu de données
index_returnset nommez cet objetport_spec. - Ajoutez au besoin une contrainte d'investissement total à l'objet
port_specpour que la somme des pondérations soit égale à 1. - Ajoutez à l'objet
port_specune contrainte acheteur seulement pour que la pondération d'un actif soit comprise entre 0 et 1. - Ajoutez à l'objet
port_specun objectif visant à minimiser l'écart type du portefeuille. - Résolvez le problème d'optimisation du portefeuille avec
optimize_method = "ROI". Assignez les résultats de l'optimisation à un objet nomméopt.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Create the portfolio specification
port_spec <- portfolio.spec(colnames(___))
# Add a full investment constraint such that the weights sum to 1
port_spec <- add.constraint(portfolio = ___, type = "___")
# Add a long only constraint such that the weight of an asset is between 0 and 1
port_spec <- add.constraint(portfolio = ___, type = "___")
# Add an objective to minimize portfolio standard deviation
port_spec <- add.objective(portfolio = ___, type = "___", name = "___")
# Solve the optimization problem
opt <- optimize.portfolio(___, portfolio = ___, optimize_method = "___")