MulaiMulai sekarang secara gratis

Menerapkan batasan bobot

Investor sering dibatasi oleh nilai maksimum yang diperbolehkan untuk bobot portofolio. Batasan ini sebenarnya bisa menjadi keuntungan. Keuntungannya adalah portofolio berikutnya akan kurang terkonsentrasi pada aset-aset tertentu. Namun, ada juga kekurangannya. Kekurangannya adalah tingkat imbal hasil target yang sama mungkin tidak lagi bisa dicapai atau hanya dapat dicapai dengan konsekuensi volatilitas yang lebih tinggi.

Ingat dari latihan sebelumnya bahwa fungsi portfolio.optim() memungkinkan Anda menetapkan batasan bobot melalui argumen reshigh. reshigh membutuhkan sebuah vektor bobot maksimum untuk setiap aset.

Dalam latihan ini, Anda akan membuat tiga portofolio dengan batasan bobot maksimum yang berbeda. Untuk latihan ini, penting untuk mengetahui keluaran dari fungsi portfolio.optim(). Fungsi ini membuat sebuah list yang berisi empat komponen: (i) $pw: bobot portofolio, (ii) $px: imbal hasil portofolio keseluruhan, (iii) $pm: imbal hasil portofolio yang diharapkan, (iv) $ps: simpangan baku imbal hasil portofolio.

Latihan ini adalah bagian dari kursus

Pengantar Analisis Portofolio di R

Lihat Kursus

Petunjuk latihan

  • Buat tiga vektor bobot maksimum untuk setiap aset (kolom) di returns menggunakan fungsi rep(). Vektor pertama berisi bobot maksimum 100%, yang kedua 10%, dan yang ketiga 5%. Beri nama masing-masing max_weights1, max_weights2, max_weights3.
  • Buat portofolio optimum dengan bobot maksimum 100% bernama opt1.
  • Buat portofolio optimum dengan bobot maksimum 10% bernama opt2.
  • Buat portofolio optimum dengan bobot maksimum 5% bernama opt3.
  • Hitung berapa banyak aset yang memiliki bobot lebih dari 1% untuk setiap portofolio. Akses bobot dengan menggunakan $pw setelah nama portofolio.
  • Cetak volatilitas (simpangan baku $ps) dari ketiga portofolio yang Anda buat.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# Create vectors of maximum weights
max_weights1 <- rep(1, ncol(returns))
max_weights2 <- ___
max_weights3 <- ___

# Create an optimum portfolio with max weights of 100%
opt1 <- portfolio.optim(___, reshigh = ___)

# Create an optimum portfolio with max weights of 10%


# Create an optimum portfolio with max weights of 5%


# Calculate how many assets have a weight that is greater than 1% for each portfolio
sum(opt1$pw > .01)
sum(___$pw > .01)
sum(___$pw > .01)

# Print portfolio volatilites 
opt1$ps
___$__
___$__

Edit dan Jalankan Kode