Aggiungi vincoli
I vincoli si aggiungono all'oggetto di specifica del portafoglio con la funzione add.constraint(). Ogni vincolo aggiunto è un oggetto separato e viene archiviato nello slot constraints dell'oggetto portafoglio. In questo modo, i vincoli sono modulari e puoi aggiungerli, rimuoverli o modificarli facilmente nell'oggetto portafoglio. Gli argomenti obbligatori per add.constraint() sono il portfolio a cui aggiungere il vincolo, il type del vincolo e gli argomenti con nome passati tramite ... al costruttore del tipo di vincolo.
Tipi di vincoli di base:
- Specificare il vincolo sulla somma dei pesi
weight_sum,weight,leveragefull_investmentè un caso speciale che impostamin_sum = max_sum = 1dollar_neutralè un caso speciale che impostamin_sum = max_sum = 0
- Specificare vincoli per i pesi dei singoli asset
boxlong_onlyè un caso speciale che impostamin = 0emax = 1
- Specificare il vincolo sulla somma dei pesi degli asset per gruppo (settore, area geografica, asset class, ecc.)
group
- Specificare un vincolo sul rendimento medio target
return
In questo esercizio, aggiungerai alcuni dei tipi di vincoli più comuni. Oltre ai tipi di base elencati sopra, PortfolioAnalytics supporta anche vincoli su limiti di posizione, turnover, diversificazione, esposizione ai fattori ed esposizione alla leva. Se ti interessano gli altri tipi di vincoli, consulta i file di guida dei costruttori dei vincoli. I file di guida includono una descrizione del tipo di vincolo e codice di esempio.
Questo esercizio fa parte del corso
Analisi di portafoglio intermedia in R
Istruzioni dell'esercizio
- Aggiungi un vincolo
weight_sumtale che la somma minima dei pesi sia 1 e la somma massima dei pesi sia 1. - Aggiungi un vincolo
boxtale che i primi cinque asset abbiano un peso minimo del 10% e i restanti asset abbiano un peso minimo del 5%. Tutti gli asset hanno un peso massimo del 40%. - Aggiungi un vincolo
grouptale che gli asset 1, 5, 7, 9, 10 e 11 siano il primo gruppo e gli asset 2, 3, 4, 6, 8 e 12 siano il secondo gruppo. Imposta per ciascun gruppo un peso minimo del 40% e un peso massimo del 60%.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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