Tambahkan kendala
Kendala ditambahkan ke objek spesifikasi portofolio dengan fungsi add.constraint(). Setiap kendala yang ditambahkan adalah objek terpisah dan disimpan di slot constraints dalam objek portofolio. Dengan cara ini, kendala bersifat modular dan Anda dapat dengan mudah menambah, menghapus, atau memodifikasi kendala dalam objek portofolio. Argumen yang wajib untuk add.constraint() adalah portfolio tempat kendala ditambahkan, type kendala, serta argumen bernama yang diteruskan melalui ... ke konstruktor jenis kendala.
Jenis kendala dasar:
- Tentukan kendala pada jumlah bobot
weight_sum,weight,leveragefull_investmentadalah kasus khusus yang menetapkanmin_sum = max_sum = 1dollar_neutraladalah kasus khusus yang menetapkanmin_sum = max_sum = 0
- Tentukan kendala untuk bobot aset individual
boxlong_onlyadalah kasus khusus yang menetapkanmin = 0danmax = 1
- Tentukan kendala untuk jumlah bobot aset berdasarkan grup (sektor, wilayah, kelas aset, dll.)
group
- Tentukan kendala pada target rerata imbal hasil
return
Dalam latihan ini, Anda akan menambahkan beberapa jenis kendala yang lebih umum. Selain jenis kendala dasar yang tercantum di atas, PortfolioAnalytics juga mendukung jenis kendala pembatasan posisi, perputaran (turnover), diversifikasi, paparan faktor, dan paparan leverage. Jika Anda tertarik pada jenis kendala lainnya, lihat berkas bantuan untuk konstruktor kendala. Berkas bantuan mencakup deskripsi jenis kendala serta contoh kode.
Latihan ini adalah bagian dari kursus
Analisis Portofolio Tingkat Menengah di R
Petunjuk latihan
- Tambahkan kendala
weight_sumsehingga jumlah bobot minimum adalah 1 dan jumlah bobot maksimum adalah 1. - Tambahkan kendala
boxsehingga lima aset pertama memiliki bobot minimum 10% dan aset sisanya memiliki bobot minimum 5%. Semua aset memiliki bobot maksimum 40%. - Tambahkan kendala
groupsehingga aset 1, 5, 7, 9, 10, dan 11 merupakan grup pertama dan aset 2, 3, 4, 6, 8, dan 12 merupakan grup kedua. Tetapkan bobot minimum 40% dan bobot maksimum 60% untuk setiap grup.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# Add the weight sum constraint
port_spec <- add.constraint(portfolio = ___, type = ___, min_sum = ___, max_sum = ___)
# Add the box constraint
port_spec <- add.constraint(portfolio = ___, type = ___, min = c(___), max = ___)
# Add the group constraint
port_spec <- add.constraint(portfolio = ___, type = ___, groups = list(c(___), c(___)), group_min = ___, group_max = ___)
# Print the portfolio specification object