Hledání portfolia s minimálním rozptylem pro daný výnos
Portfolio s minimálním rozptylem pro daný cílový výnos (mean-variance efficient portfolio) lze získat jako řešení minimalizace rozptylu portfolia za podmínky, že očekávaný výnos portfolia se rovná cílovému výnosu. Šikovnou R funkcí pro tento účel je portfolio.optim() z balíčku tseries. Výchozí implementace funkce hledá optimální váhy portfolia za podmínky, že výnos portfolia se rovná výnosu stejně váženého portfolia. Jedinou potřebnou vstupní hodnotou jsou data o měsíčních výnosech složek portfolia, pro něž chceme váhy určit.
Proměnná returns obsahující měsíční výnosy akcií indexu DJIA je už načtená v konzoli.
Toto cvičení je součástí kurzu
Úvod do analýzy portfolia v R
Pokyny k cvičení
- Načti knihovnu
tseries. - Vytvoř portfolio s minimálním rozptylem pro daný výnos z měsíčních výnosů pomocí výchozího nastavení funkce
portfolio.optim(), která cílí na výnos stejně váženého portfolia, a výsledek ulož do proměnnéopt. - Vytvoř vektor vah z optimalizovaného portfolia. Váhy portfolia najdeš v
opt$pw. Pojmenuj hopf_weights. - Přiřaď aktivům názvy pomocí připraveného kódu.
- Z
pf_weightsvyber optimální váhy, které jsou větší nebo rovny 1 %, a pojmenuj jeopt_weights. - Pomocí barplot() vizualizuj rozložení
opt_weights. - Vypiš očekávaný výnos portfolia (
opt$pm) a volatilitu (opt$ps) optimalizovaného portfolia.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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