Lägg till begränsningar
Begränsningar läggs till i portföljspecifikationsobjektet med funktionen add.constraint(). Varje begränsning är ett separat objekt och lagras i constraints-platsen i portföljeobjektet. På så sätt är begränsningarna modulära, vilket gör det enkelt att lägga till, ta bort eller ändra dem. De obligatoriska argumenten för add.constraint() är den portfolio som begränsningen läggs till i, begränsningens type, samt namngivna argument som skickas via ... till konstruktorn för begränsningstypen.
Grundläggande begränsningstyper:
- Ange begränsningen för summan av vikterna
weight_sum,weight,leveragefull_investmentär ett specialfall som sättermin_sum = max_sum = 1dollar_neutralär ett specialfall som sättermin_sum = max_sum = 0
- Ange begränsningar för de enskilda tillgångsvikterna
boxlong_onlyär ett specialfall som sättermin = 0ochmax = 1
- Ange begränsningen för summan av vikter för tillgångar per grupp (sektor, region, tillgångsklass osv.)
group
- Ange en begränsning för målets genomsnittliga avkastning
return
I den här övningen lägger du till några av de vanligaste begränsningstyperna. Utöver de grundläggande typerna ovan stöder PortfolioAnalytics även begränsningstyper för positionsgränser, omsättning, diversifiering, faktorexponering och hävstångsexponering. Om du vill utforska dessa, se hjälpfilerna för begränsningskonstruktorerna. Där finns beskrivningar av varje begränsningstyp samt exempelkod.
Den här övningen är en del av kursen
Portföljanalys på avancerad nivå i R
Övningsinstruktioner
- Lägg till en
weight_sum-begränsning så att den minsta viktsumman är 1 och den maximala viktsumman är 1. - Lägg till en
box-begränsning så att de fem första tillgångarna har en minimivikt på 10 % och de återstående tillgångarna har en minimivikt på 5 %. Alla tillgångar har en maximivikt på 40 %. - Lägg till en
group-begränsning så att tillgångarna 1, 5, 7, 9, 10 och 11 utgör den första gruppen och tillgångarna 2, 3, 4, 6, 8 och 12 utgör den andra gruppen. Sätt minimivikten till 40 % och maximivikten till 60 % för varje grupp.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# Add the weight sum constraint
port_spec <- add.constraint(portfolio = ___, type = ___, min_sum = ___, max_sum = ___)
# Add the box constraint
port_spec <- add.constraint(portfolio = ___, type = ___, min = c(___), max = ___)
# Add the group constraint
port_spec <- add.constraint(portfolio = ___, type = ___, groups = list(c(___), c(___)), group_min = ___, group_max = ___)
# Print the portfolio specification object