Affina vincoli e obiettivi
Qui ipotizziamo che affinare vincoli e/o obiettivi migliori le performance. Aggiungiamo quindi un obiettivo di risk budget per impostare una percentuale minima e massima di contribuzione al rischio per ciascun asset. Partiremo dalla specifica di portafoglio che abbiamo creato. Questo è un problema di ottimizzazione più complesso e richiederà un solver globale, quindi useremo portafogli casuali come metodo di ottimizzazione.
Questo esercizio fa parte del corso
Analisi di portafoglio intermedia in R
Istruzioni dell'esercizio
- Aggiungi un obiettivo di risk budget
risk_budgetaport_specin cui il rischio è definito come deviazione standard. Imposta la percentuale minima di rischio al 5% e la massima al 10%. - Esegui l'ottimizzazione con ribilanciamento trimestrale. Imposta periodo di training e finestra mobile per usare 5 anni di dati. Assegna i risultati a una variabile chiamata
opt_rebal_rb. - Visualizza i pesi.
- Visualizza la percentuale di contribuzione al rischio delle componenti.
- Calcola i rendimenti del portafoglio usando
Return.portfolio(). Assegna i rendimenti a una variabile chiamatareturns_rb.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Add a risk budge objective
port_spec <- add.objective(portfolio = ___,
type = ___,
name = ___,
min_prisk = ___,
max_prisk = ___)
# Run the optimization
opt_rebal_rb <- optimize.portfolio.rebalancing(R = ___,
portfolio = ___,
optimize_method = "random", rp = rp,
trace = TRUE,
rebalance_on = ___,
training_period = ___,
rolling_window = ___)
# Chart the weights
# Chart the percentage contribution to risk
chart.RiskBudget(___, match.col = "StdDev", risk.type = ___)
# Compute the portfolio returns
returns_rb <- Return.portfolio(R = ___, weights = ___)
colnames(returns_rb) <- "risk_budget"