Kısıtlar ekle
Kısıtlar, add.constraint() fonksiyonu ile portföy belirtimi nesnesine eklenir. Eklenen her kısıt ayrı bir nesnedir ve portföy nesnesindeki constraints bölümünde saklanır. Böylece kısıtlar modüler olur; portföy nesnesindeki kısıtları kolayca ekleyebilir, kaldırabilir veya değiştirebilirsin. add.constraint() için gereken argümanlar; kısıtın ekleneceği portfolio, kısıt type’ı ve ilgili kısıt türünün kurucu fonksiyonuna ... ile iletilen isimlendirilmiş argümanlardır.
Temel kısıt türleri:
- Ağırlıkların toplamına kısıt koy
weight_sum,weight,leveragefull_investment,min_sum = max_sum = 1ayarlayan özel bir durumdurdollar_neutral,min_sum = max_sum = 0ayarlayan özel bir durumdur
- Tekil varlık ağırlıkları için kısıt belirt
boxlong_only,min = 0vemax = 1ayarlayan özel bir durumdur
- Varlıkları gruba (sektör, bölge, varlık sınıfı vb.) göre ağırlık toplamı için kısıt belirt
group
- Hedef ortalama getiri üzerine kısıt belirt
return
Bu egzersizde, daha yaygın kullanılan birkaç kısıt türünü ekleyeceksin. Yukarıdaki temel kısıt türlerine ek olarak, PortfolioAnalytics pozisyon limiti, devir hızı (turnover), çeşitlendirme, faktör maruziyeti ve kaldıraç maruziyeti kısıt türlerini de destekler. Diğer kısıt türleriyle ilgileniyorsan, kısıt kurucularının yardım dosyalarına bak. Yardım dosyalarında kısıt türünün açıklaması ve örnek kod bulunur.
Bu egzersiz
R ile Orta Düzey Portföy Analizi
kursunun bir parçasıdırEgzersiz talimatları
- Ağırlıklar toplamının minimumu 1 ve maximumu 1 olacak şekilde bir
weight_sumkısıtı ekle. - İlk beş varlığın minimum ağırlığı %10, kalan varlıkların minimum ağırlığı %5 olacak şekilde bir
boxkısıtı ekle. Tüm varlıkların maksimum ağırlığı %40 olsun. - 1, 5, 7, 9, 10 ve 11. varlıklar birinci grup; 2, 3, 4, 6, 8 ve 12. varlıklar ikinci grup olacak şekilde bir
groupkısıtı ekle. Her grup için minimum ağırlığı %40, maksimum ağırlığı %60 olarak ayarla.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# Add the weight sum constraint
port_spec <- add.constraint(portfolio = ___, type = ___, min_sum = ___, max_sum = ___)
# Add the box constraint
port_spec <- add.constraint(portfolio = ___, type = ___, min = c(___), max = ___)
# Add the group constraint
port_spec <- add.constraint(portfolio = ___, type = ___, groups = list(c(___), c(___)), group_min = ___, group_max = ___)
# Print the portfolio specification object