1. Learn
  2. /
  3. Courses
  4. /
  5. Intermediate Portfolio Analysis in R

Connected

Exercise

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í.

Instructions

100 XP

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.