Beperkingen op gewichten opleggen
Beleggers worden vaak beperkt door de maximaal toegestane waarden voor de portefeuillegewichten. Deze beperkingen kunnen juist een voordeel zijn. Het voordeel van een maximale gewichtsbeperking is dat de resulterende portefeuille minder geconcentreerd is in bepaalde assets. Er is echter ook een nadeel. Het nadeel is dat hetzelfde streef- of doeltierendement mogelijk niet meer haalbaar is of alleen tegen de prijs van een hogere volatiliteit.
Onthoud uit de vorige oefening dat je met de functie portfolio.optim() gewichtsbeperkingen kunt instellen via het argument
reshigh. reshigh verwacht een vector met maximale gewichten voor elke asset.
In deze oefening maak je drie portefeuilles met verschillende maximale gewichtsbeperkingen. Voor deze oefening is het belangrijk om de output van de functie portfolio.optim() te kennen. Deze functie maakt een lijst met vier componenten: (i) $pw: de portefeuillegewichten, (ii) $px: het rendement van de totale portefeuille, (iii) $pm: het verwachte portefeuillerendement, (iv) $ps: de standaarddeviatie van de portefeuillerendementen.
Deze oefening maakt deel uit van de cursus
Introductie tot portefeuilleanalyse in R
Oefeninstructies
- Maak drie vectors met maximale gewichten voor elke asset (kolom) in
returnsmet de functierep(). De eerste vector bevat maximale gewichten van 100%, de tweede 10% en de derde 5%. Noem deze respectievelijkmax_weights1,max_weights2,max_weights3. - Maak een optimale portefeuille met maximale gewichten van 100% en noem die
opt1. - Maak een optimale portefeuille met maximale gewichten van 10% en noem die
opt2. - Maak een optimale portefeuille met maximale gewichten van 5% en noem die
opt3. - Bereken voor elke portefeuille hoeveel assets een gewicht hebben dat groter is dan 1%. Raadpleeg de gewichten door
$pwte gebruiken na de portefeuillenaam. - Print de volatiliteiten (standaarddeviaties
$ps) van de drie portefeuilles die je hebt gemaakt.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Create vectors of maximum weights
max_weights1 <- rep(1, ncol(returns))
max_weights2 <- ___
max_weights3 <- ___
# Create an optimum portfolio with max weights of 100%
opt1 <- portfolio.optim(___, reshigh = ___)
# Create an optimum portfolio with max weights of 10%
# Create an optimum portfolio with max weights of 5%
# Calculate how many assets have a weight that is greater than 1% for each portfolio
sum(opt1$pw > .01)
sum(___$pw > .01)
sum(___$pw > .01)
# Print portfolio volatilites
opt1$ps
___$__
___$__