Optimisasi Satu Periode
Ada dua fungsi untuk menjalankan optimisasi, yaitu optimize.portfolio() dan optimize.portfolio.rebalancing(). Latihan ini berfokus pada optimisasi satu periode dan latihan berikutnya akan menggunakan optimize.portfolio.rebalancing() untuk optimisasi dengan rebalancing berkala. optimize.portfolio() mendukung optimisasi satu periode. Argumen kunci mencakup R untuk return aset, portfolio untuk objek spesifikasi portofolio, dan optimize_method untuk menentukan metode optimisasi yang digunakan untuk menyelesaikan masalah. Dalam banyak kasus, akan berguna untuk menetapkan trace = TRUE agar menyimpan informasi tambahan untuk setiap iterasi/uji coba selama proses optimisasi.
Metode optimisasi berikut didukung:
DEoptim: Differential evolutionrandom: Portofolio acakGenSA: Generalized Simulated Annealingpso: Particle swarm optimizationROI: R Optimization Infrastructure untuk penyelesai program linear dan kuadratik
Metode optimisasi yang Anda pilih sebaiknya didasarkan pada jenis masalah yang sedang Anda selesaikan. Misalnya, masalah yang dapat diformulasikan sebagai pemrograman kuadratik sebaiknya diselesaikan menggunakan penyelesai pemrograman kuadratik, sedangkan masalah non-konveks sebaiknya diselesaikan menggunakan penyelesai global seperti DEoptim.
Dalam latihan ini, kita akan mendefinisikan masalah optimisasi portofolio untuk memaksimalkan return rata-rata dan meminimalkan deviasi standar portofolio dengan budget risiko deviasi standar, di mana persentase risiko minimum adalah 5% dan persentase risiko maksimum adalah 10%, dengan ketentuan full investment dan long only. Objective budget risiko memerlukan penyelesai global, sehingga kita akan menyelesaikan masalah menggunakan portofolio acak. Himpunan portofolio acak, rp, dihasilkan menggunakan 500 permutasi untuk latihan ini.
Latihan ini adalah bagian dari kursus
Analisis Portofolio Tingkat Menengah di R
Petunjuk latihan
Spesifikasi portofolio telah dibuat dan bernama port_spec. Di workspace Anda juga tersedia return, asset_returns.
- Jalankan optimisasi satu periode dengan
tracedisetel keTRUEmenggunakan metode optimisasi"random". Simpan keluaran optimisasi ke variabel bernamaopt. - Cetak keluaran hasil optimisasi.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# 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