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

Karesel fayda fonksiyonunu maksimize et

Portföy optimizasyonunun zorlukları videosunda, quadprog paketiyle karesel (quadratic) bir fayda optimizasyonu probleminin nasıl çözüleceğini gördün. Bu egzersizde ise PortfolioAnalytics paketini kullanarak karesel bir fayda problemini nasıl çözeceğini öğreneceksin. Karesel fayda formülasyonunun iki terimi olduğunu hatırla: biri portföyün ortalama getirisi, diğeri ise riskten kaçınma parametresi lambda ile ağırlıklandırılan portföy varyansı.

Bu egzersiz

R ile Orta Düzey Portföy Analizi

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

Egzersiz talimatları

  • index_returns veri kümesindeki varlık adlarını kullanarak bir portföy belirtimi (specification) nesnesi oluştur ve bu nesneyi port_spec olarak adlandır.
  • port_spec nesnesine, ağırlıkların toplamı 1 olacak şekilde tam yatırım (full investment) kısıtı ekle.
  • port_spec nesnesine, her bir varlığın ağırlığı 0 ile 1 arasında olacak şekilde yalnızca uzun (long only) kısıtı ekle.
  • port_spec nesnesine, portföyün ortalama getirisini maksimize edecek bir amaç (objective) ekle.
  • port_spec nesnesine, portföy varyansını minimize edecek bir amaç ekle. Riskten kaçınma (risk aversion) 10 olarak ayarlanmalı.
  • Optimizasyonu çalıştır. Bu problem karesel programlama çözücüsüyle çözülebilir; bu yüzden optimize_method = "ROI" olarak belirtiyoruz.

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

# Create the portfolio specification
port_spec <- portfolio.spec(assets = ___)

# Add a full investment constraint such that the weights sum to 1
port_spec <- add.constraint(portfolio = ___, type = ___)

# Add a long only constraint such that the weight of an asset is between 0 and 1
port_spec <- add.constraint(portfolio = ___, type = ___)

# Add an objective to maximize portfolio mean return
port_spec <- add.objective(portfolio = ___, type = ___, name = ___)

# Add an objective to minimize portfolio variance
port_spec <- add.objective(portfolio = port_spec, type = ___, name = ___, risk_aversion = ___)

# Solve the optimization problem
opt <- optimize.portfolio(R = ___, portfolio = ___, optimize_method = "ROI")
Kodu Düzenle ve Çalıştır