Začněte nyníZačněte zdarma

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

Zobrazit kurz

Pokyny k cvičení

  • Vytvoř objekt specifikace portfolia pomocí názvů aktiv z datasetu index_returns a pojmenuj ho port_spec.
  • Přidej do objektu port_spec omezení úplné investice tak, aby součet vah byl roven 1.
  • Přidej do objektu port_spec omezení long only tak, aby váha každého aktiva byla mezi 0 a 1.
  • Přidej do objektu port_spec cíl maximalizace průměrného výnosu portfolia.
  • Přidej do objektu port_spec cí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")
Upravit a spustit kód