Maksimalkan fungsi utilitas kuadratik
Pada video tentang tantangan optimisasi portofolio, Anda melihat cara menyelesaikan masalah optimisasi utilitas kuadratik dengan paket quadprog. Latihan ini akan menunjukkan cara menyelesaikan masalah utilitas kuadratik menggunakan paket PortfolioAnalytics. Ingat bahwa formulasi utilitas kuadratik memiliki dua suku, satu untuk rata-rata imbal hasil portofolio dan satu lagi untuk varians portofolio dengan parameter keengganan risiko, lambda.
Latihan ini adalah bagian dari kursus
Analisis Portofolio Tingkat Menengah di R
Petunjuk latihan
- Buat objek spesifikasi portofolio menggunakan nama aset dari himpunan data
index_returnsdan beri nama objek spesifikasi portofolio tersebutport_spec. - Tambahkan kendala investasi penuh sehingga jumlah bobot sama dengan 1 ke objek
port_spec. - Tambahkan kendala long only sehingga bobot suatu aset berada antara 0 dan 1 ke objek
port_spec. - Tambahkan objektif untuk memaksimalkan rata-rata imbal hasil portofolio ke objek
port_spec. - Tambahkan objektif untuk meminimalkan varians portofolio ke objek
port_spec. Keengganan risiko harus diatur ke 10. - Jalankan optimisasi. Masalah ini dapat diselesaikan oleh solver pemrograman kuadratik sehingga kita menetapkan
optimize_method = "ROI"
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# 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")