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

Basit bir portföy optimizasyonu problemi çöz

Bu ilk egzersizde PortfolioAnalytics kullanarak basit bir portföy optimizasyonu problemini nasıl çözeceğini öğreneceksin. Bir portföy tanımlama (specification) nesnesi oluşturmayı, kısıtlar ve amaçlar eklemeyi ve optimizasyon problemini çözmeyi göreceksin. Portföy problemi, tam yatırım ve yalnızca uzun (long only) kısıtlarına tabi minimum varyanslı bir portföy oluşturmaktır. Amaç, portföy varyansını en aza indirmektir. Bu problemde iki kısıt vardır: tam yatırım kısıtı, ağırlıkların toplamının 1 olması gerektiği; yalnızca uzun kısıtı ise tüm ağırlıkların 0'a eşit veya 0'dan büyük olması gerektiği anlamına gelir (yani kısa pozisyonlara izin verilmez).

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 tanımlama nesnesi oluştur ve bu nesneyi port_spec olarak adlandır.
  • port_spec nesnesine ağırlıkların toplamı 1 olacak şekilde bir tam yatırım kısıtı ekle.
  • port_spec nesnesine bir varlığın ağırlığı 0 ile 1 arasında olacak şekilde bir yalnızca uzun (long only) kısıtı ekle.
  • Portföy standart sapmasını en aza indirecek bir amaç ekle ve bunu port_spec nesnesine dahil et.
  • optimize_method = "ROI" kullanarak portföy optimizasyon problemini çöz. Optimizasyonun sonuçlarını opt adlı bir nesneye ata.

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

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

# 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 minimize portfolio standard deviation
port_spec <- add.objective(portfolio = ___, type = "___", name = "___")

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