Maximalizace funkce kvadratické utility
Ve videu o výzvách optimalizace portfolia sis ukázal/a, jak řešit problém optimalizace kvadratické utility pomocí balíčku quadprog. V tomto cvičení si ukážeme, jak stejný problém vyřešit pomocí balíčku PortfolioAnalytics. Připomeň si, že formulace kvadratické utility obsahuje dva členy – jeden pro průměrný výnos portfolia a druhý pro rozptyl portfolia s parametrem averze k riziku lambda.
Toto cvičení je součástí kurzu
Intermediate Portfolio Analysis in R
Pokyny k cvičení
- Vytvoř objekt specifikace portfolia pomocí názvů aktiv z datasetu
index_returnsa pojmenuj hoport_spec. - Přidej do objektu
port_specomezení úplné investice tak, aby součet vah byl roven 1. - Přidej do objektu
port_specomezení long only tak, aby váha každého aktiva byla mezi 0 a 1. - Přidej do objektu
port_speccíl maximalizace průměrného výnosu portfolia. - Přidej do objektu
port_speccíl minimalizace rozptylu portfolia. Averze k riziku by měla být nastavena na 10. - Spusť optimalizaci. Tento problém lze vyřešit pomocí solveru kvadratického programování, takže zadej
optimize_method = "ROI"
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# Create the portfolio specification
port_spec <- portfolio.spec(assets = ___)
# Add a full investment constraint such that the weights sum to 1
port_spec <- add.constraint(portfolio = ___, type = ___)
# Add a long only constraint such that the weight of an asset is between 0 and 1
port_spec <- add.constraint(portfolio = ___, type = ___)
# Add an objective to maximize portfolio mean return
port_spec <- add.objective(portfolio = ___, type = ___, name = ___)
# Add an objective to minimize portfolio variance
port_spec <- add.objective(portfolio = port_spec, type = ___, name = ___, risk_aversion = ___)
# Solve the optimization problem
opt <- optimize.portfolio(R = ___, portfolio = ___, optimize_method = "ROI")