Optimizare cu funcție obiectiv personalizată
Acest exercițiu se bazează pe exercițiul anterior: vom rula optimizarea folosind funcția obiectiv personalizată care calculează deviația standard anualizată a portofoliului. Deoarece o funcție obiectiv poate fi orice funcție R validă, adăugăm un obiectiv de risc pentru funcția pasd(). Funcția set.portfolio.moments() nu va recunoaște numele obiectivului pasd(), astfel că trebuie să creăm o funcție de momente personalizată pentru a calcula momentul de ordinul doi, sigma. Vom rezolva problema utilizând portofolii aleatorii ca metodă de optimizare.
Acest exercițiu face parte din cursul
Analiză intermediară a portofoliului în R
Instrucțiuni pentru exercițiu
- Adaugă funcția obiectiv personalizată creată în exercițiul anterior la obiectul de specificare a portofoliului.
- Afișează obiectul de specificare a portofoliului pentru a vedea constrângerile și obiectivul.
- Rulează optimizarea. Numele funcției de momente personalizate este
set_sigma. - Afișează rezultatele optimizării.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# Add custom objective to portfolio specification
port_spec <- add.objective(portfolio = ___, type = ___, name = ___)
# Print the portfolio specificaton object
# Run the optimization
opt <- optimize.portfolio(R = ___, portfolio = ___, momentFUN = ___, optimize_method = "random", rp = rp)
# Print the results of the optimization