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

Jednorázová optimalizace

Pro spuštění optimalizace existují dvě funkce: optimize.portfolio() a optimize.portfolio.rebalancing(). Toto cvičení se zaměří na jednorázovou optimalizaci, v dalším cvičení pak použijeme optimize.portfolio.rebalancing() pro optimalizaci s pravidelným rebalancováním. optimize.portfolio() podporuje jednorázovou optimalizaci. Mezi klíčové argumenty patří R pro výnosy aktiv, portfolio pro objekt specifikace portfolia a optimize_method pro určení metody optimalizace použité k řešení problému. V mnoha případech je vhodné nastavit trace = TRUE, aby se ukládaly dodatečné informace pro každou iteraci/pokus optimalizace.

Podporované jsou tyto optimalizační metody:

  • DEoptim: Diferenciální evoluce
  • random: Náhodná portfolia
  • GenSA: Zobecněné simulované žíhání
  • pso: Optimalizace hejnem částic
  • ROI: R Optimization Infrastructure pro solvery lineárního a kvadratického programování

Výběr optimalizační metody by měl vycházet z typu řešeného problému. Například problém, který lze formulovat jako úlohu kvadratického programování, by měl být řešen odpovídajícím solverem, zatímco nekonvexní problém by měl být řešen globálním solverem, jako je DEoptim.

V tomto cvičení definujeme optimalizační problém portfolia tak, aby maximalizoval průměrný výnos a minimalizoval směrodatnou odchylku portfolia s rizikovým budgetem směrodatné odchylky, kde minimální procentuální riziko je 5 % a maximální 10 %, a to při omezení plné investice a pouze dlouhých pozic. Cíl rizikového budgetu vyžaduje globální solver, proto problém vyřešíme pomocí náhodných portfolií. Sada náhodných portfolií rp je pro toto cvičení generována s použitím 500 permutací.

Toto cvičení je součástí kurzu

Intermediate Portfolio Analysis in R

Zobrazit kurz

Pokyny k cvičení

Specifikace portfolia již byla vytvořena a nese název port_spec. V pracovním prostředí máš k dispozici také výnosy asset_returns.

  • Spusť jednorázovou optimalizaci s trace nastaveným na TRUE a použij "random" jako metodu optimalizace. Výsledek optimalizace přiřaď do proměnné s názvem opt.
  • Vypiš výsledek optimalizace.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.


# Run a single period optimization using random portfolios as the optimization method
opt <- optimize.portfolio(R = ___, portfolio = ___, optimize_method = ___, rp = rp, trace = TRUE)

# Print the output of the single-period optimization
Upravit a spustit kód