Găsirea portofoliului eficient medie-varianță
Un portofoliu eficient medie-varianță poate fi obținut ca soluție a minimizării varianței portofoliului, sub constrângerea că randamentul așteptat al portofoliului este egal cu un randament țintă. O funcție R convenabilă pentru acest lucru este portfolio.optim() din pachetul R tseries. Implementarea implicită găsește ponderile portofoliului eficient medie-varianță sub constrângerea că randamentul portofoliului este egal cu randamentul portofoliului egal ponderat. Singurul argument necesar este datele privind randamentele lunare ale componentelor portofoliului pentru care trebuie determinate ponderile.
Variabila returns, care conține randamentele lunare ale acțiunilor DJIA, este deja încărcată în consolă.
Acest exercițiu face parte din cursul
Introducere în analiza portofoliului în R
Instrucțiuni pentru exercițiu
- Încarcă biblioteca
tseries. - Creează un portofoliu eficient medie-varianță pe baza randamentelor lunare, folosind valorile implicite ale funcției
portfolio.optim()și vizând randamentul portofoliului egal ponderat. Atribuie rezultatul variabileiopt. - Creează un vector de ponderi din portofoliul optimizat. Ponderile portofoliului se găsesc în
opt$pw. Numește-lpf_weights. - Atribuie numele activelor folosind codul furnizat.
- Selectează din
pf_weightsponderile optime mai mari sau egale cu 1% și numește-leopt_weights. - Folosește barplot() pentru a vizualiza distribuția
opt_weights. - Afișează randamentul așteptat al portofoliului (
opt$pm) și volatilitatea (opt$ps) portofoliului optimizat.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# Load tseries
# Create an optimized portfolio of returns
opt <- portfolio.optim(___)
# Create pf_weights
pf_weights <- ___$pw
# Assign asset names
names(pf_weights) <- colnames(returns)
# Select optimum weights opt_weights
opt_weights <- pf_weights[___ >= 0.01]
# Bar plot of opt_weights
# Print expected portfolio return and volatility
___$pm
___$ps