IniziaInizia gratis

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, leverage
    • full_investment è un caso speciale che imposta min_sum = max_sum = 1
    • dollar_neutral è un caso speciale che imposta min_sum = max_sum = 0
  • Specificare vincoli per i pesi dei singoli asset
    • box
    • long_only è un caso speciale che imposta min = 0 e max = 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

Visualizza il corso

Istruzioni dell'esercizio

  • Aggiungi un vincolo weight_sum tale che la somma minima dei pesi sia 1 e la somma massima dei pesi sia 1.
  • Aggiungi un vincolo box tale 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 group tale 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

Modifica ed esegui il codice