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

Sürücü 2: Portföy ağırlıklarının seçimi

Yatırımcılar, portföyün Sharpe oranıyla ölçülen en yüksek risk ayarlı getiriyi elde etmek için ağırlıkların seçimini optimize edebilir.

Toplam portföy değerinin yalnızca iki varlığa yatırıldığı özel durumda, belirlenmesi gereken yalnızca bir ağırlık vardır; çünkü ikinci varlığın ağırlığı, birinci varlığın ağırlığının bir eksiğine eşittir.

Bunu, ABD hisse senetleri ve ABD tahvillerine yatırılan bir portföy için yapalım. Sıfır risksiz faiz oranı varsayımıyla, çok sayıda olası ağırlığı deneyip portföy Sharpe oranı için en yüksek değeri veren ağırlığı saklayacağımız brute force yaklaşımını kullanacağız.

Bu egzersiz

R ile Portföy Analizine Giriş

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

Egzersiz talimatları

  • seq() kullanarak 0'dan başlayıp 1'de biten ve 0.01 artımlı bir grid adlı vektör oluştur.
  • grid ile aynı uzunlukta, boş bir vsharpe vektörü başlat. Bunu yapmanın yaygın bir yolu, rep() fonksiyonunu kullanarak NA'ler içeren bir vektör oluşturmaktır. Bir sonraki adımda kuracağın döngüde bu NA'leri değiştireceksin.
  • For döngüsünde, grid içindeki olası her ağırlık için Sharpe oranını hesaplayacaksın. For döngüsündeki ilk komut, grid'in i'inci elemanını seçer ve her yinelemede değişen weight nesnesine atar.
  • Ağırlık değiştikçe portföy getirisinin nasıl değiştiğini görmek istiyorsun. weight ile returns_equities çarpımının ve (1-weight) ile returns_bonds çarpımının toplamına eşit bir preturns nesnesi oluştur.
  • Sonraki adımda, vsharpe içindeki NA'lerin yerine preturns'un yıllıklaştırılmış Sharpe oranını (SharpeRatio.annualized()) yaz.
  • Potansiyel ağırlıkların (grid) x ekseninde, Sharpe oranlarının y ekseninde çizildiği grafik fonksiyonunu doldur.

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

# Create a grid
grid <- seq(from = ___, to = ___, by = ___)

# Initialize an empty vector for Sharpe ratios
vsharpe <- rep(NA, times = ___ )

# Create a for loop to calculate Sharpe ratios
for(i in 1:length(grid)) {
    weight <- ___[i]
    preturns <- ___ * ___ + (1 - ___) * ___
    vsharpe[i] <- SharpeRatio.annualized(___)
}

# Plot weights and Sharpe ratio
plot(___, ___, xlab = "Weights", ylab= "Ann. Sharpe ratio")
abline(v = grid[vsharpe == max(vsharpe)], lty = 3)
Kodu Düzenle ve Çalıştır