Kom igångKom igång gratis

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

Visa kurs

Övningsinstruktioner

  • Skapa tre vektorer med maximala vikter för varje tillgång (kolumn) i returns med hjälp av funktionen rep(). Den första vektorn ska innehålla maximala vikter på 100%, den andra 10% och den tredje 5%. Kalla dem max_weights1, max_weights2 respektive max_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 $pw efter 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
___$__
___$__

Redigera och kör kod