Införa viktbegränsningar
Investerare är ofta begränsade av de maximala värden som tillåts för portföljvikterna. Dessa begränsningar kan faktiskt vara en fördel. En maximal viktbegränsning innebär att den resulterande portföljen blir mindre koncentrerad i vissa tillgångar. Det finns dock en nackdel. Nackdelen är att samma målsatta avkastning kanske inte längre är möjlig, eller att den uppnås till priset av högre volatilitet.
Kom ihåg från föregående övning att funktionen portfolio.optim() låter dig ange viktbegränsningar via argumentet reshigh. reshigh kräver en vektor med maximala vikter för varje tillgång.
I den här övningen skapar du tre portföljer med olika maximala viktbegränsningar. Det är viktigt att känna till utdata från funktionen portfolio.optim(). Funktionen returnerar en lista med fyra komponenter: (i) $pw: portföljvikterna, (ii) $px: den totala portföljens avkastning, (iii) $pm: portföljens förväntade avkastning, (iv) $ps: standardavvikelsen för portföljens avkastning.
Den här övningen är en del av kursen
Introduktion till portföljanalys i R
Övningsinstruktioner
- Skapa tre vektorer med maximala vikter för varje tillgång (kolumn) i
returnsmed hjälp av funktionenrep(). Den första vektorn ska innehålla maximala vikter på 100%, den andra 10% och den tredje 5%. Kalla demmax_weights1,max_weights2respektivemax_weights3. - Skapa en optimal portfölj med maximala vikter på 100% och kalla den
opt1. - Skapa en optimal portfölj med maximala vikter på 10% och kalla den
opt2. - Skapa en optimal portfölj med maximala vikter på 5% och kalla den
opt3. - Beräkna hur många tillgångar som har en vikt större än 1% för varje portfölj. Hämta vikterna med
$pwefter portföljnamnet. - Skriv ut volatiliteterna (standardavvikelserna
$ps) för de tre portföljerna du skapade.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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
___$__
___$__