BaşlayınÜcretsiz Başlayın

Hedef getiriler ızgarası kullanarak etkin sınırı hesaplama

Gördüğün gibi, etkin sınırı hesaplamanın bir yolu önce hedef getirilerden oluşan bir ızgara tanımlamak, sonra da her hedef getiri için beklenen getirisi hedefe eşit olan ve mümkün olan en düşük varyansa sahip portföyü bulmaktır.

Peki makul bir hedef getiri ızgarası nasıl olmalı? Maksimum hedef getiriyi, hisselerin ortalama getirilerinin maksimumuna ayarlayacaksın. İdeal olarak, minimum hedef getiriyi minimum varyans portföyünün getirisine ayarlardın. Bu minimum varyans portföyünün getirisini henüz bilmediğin için, tüm hisselerin ortalama getirilerinin en küçüğünü kullanarak bir ızgara oluşturacaksın.

Bu egzersizde, olası portföy ortalamalarını, sapmalarını ve ağırlıklarını hesaplamak için bir for döngüsü kullanacaksın.

Bu egzersiz

R ile Portföy Analizine Giriş

kursunun bir parçasıdır
Kursu Görüntüle

Egzersiz talimatları

  • returns'ın sütun ortalamalarını (colMeans() kullanarak) hesapla ve buna stockmu adını ver.
  • 50 uzunluğunda, %1 risksiz faiz oranından başlayan ve stockmu'nun maksimum değerinde biten bir dizi (seq()) oluştur ve buna grid adını ver.
  • rep() kullanarak, portföy ortalamalarını ve standart sapmalarını saklayacağın, grid ile aynı uzunlukta iki boş vektör başlat. Bunlara vpm ve vpsd adlarını ver.
  • 50 satır ve 30 sütundan oluşan boş bir matris başlat. Buna mweights adını ver. Bunu yapmak için matrix() fonksiyonunu kullanabilirsin.
  • grid'in ilk değerinden başlayıp son değerinde biten bir for döngüsü oluştur. For döngüsü, returns'ı kullanarak ve hedef getirisi grid olan opt adlı bir portföy oluşturmalı.
  • Her yinelemede, for döngüsü vpm ($pm), vpsd ($ps) vektörlerini opt içindeki ilgili değerlerle doldurmalı.
  • Portföy ağırlıklarını satır satır mweights içine ($pw) kaydet.

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

# Calculate each stocks mean returns


# Create a grid of target values
grid <- seq(from = ___, to = ___, length.out = ___)

# Create empty vectors to store means and deviations
vpm <- vpsd <- 

# Create an empty matrix to store weights
mweights <- matrix(NA, 50, 30)

# Create your for loop
for(i in 1:length(grid)) {
  opt <- portfolio.optim(x = ___, pm = ___[i])
  vpm[i] <- ___$__
  vpsd[i] <- ___$__
  mweights[i, ] <- ___$__
}
Kodu Düzenle ve Çalıştır