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, kursun bir parçasıdır

R ile Orta Düzey Portföy Analizi

Kursa Göz Atın

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ı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

# 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