MulaiMulai sekarang secara gratis

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 evolution
  • random: Portofolio acak
  • GenSA: Generalized Simulated Annealing
  • pso: Particle swarm optimization
  • ROI: 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

Lihat Kursus

Petunjuk latihan

Spesifikasi portofolio telah dibuat dan bernama port_spec. Di workspace Anda juga tersedia return, asset_returns.

  • Jalankan optimisasi satu periode dengan trace disetel ke TRUE menggunakan metode optimisasi "random". Simpan keluaran optimisasi ke variabel bernama opt.
  • 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
Edit dan Jalankan Kode