Amaçlar ekle
Amaçlar, add.objective() fonksiyonu ile portföy nesnesine eklenir. Eklenen her amaç ayrı bir nesnedir ve portföy spesifikasyonu nesnesindeki objectives bölümünde saklanır. Böylece amaçlar modüler olur; kolayca ekleyebilir, kaldırabilir veya değiştirebilirsin. name argümanı geçerli bir R fonksiyonu olmalıdır. PerformanceAnalytics paketinde birçok fonksiyon mevcuttur, ancak kullanıcı tanımlı fonksiyonlar da amaç fonksiyonu olarak kullanılabilir. add.objective() için gerekli argümanlar, amacın ekleneceği portfolio, amacın type'ı, amacın name'i ve amaç türünün kurucusuna ... ile iletilen adlandırılmış argümanlardır. Amaç fonksiyonuna yönelik argümanlar arguments için adlandırılmış bir liste olarak belirtilir.
Temel amaç türleri:
return: Bu amaç türü, amacı maksimize etmeye çalışır.risk: Bu amaç türü, amacı minimize etmeye çalışır.risk_budget: Bu amaç türü, risk yoğunlaşmasını minimize etmeye veya riske katkının, izin verilen minimum veya maksimum yüzde risk katkısını aşması durumunda ceza vermeye çalışır.
Yukarıda listelenen amaç türlerine ek olarak, PortfolioAnalytics ikinci dereceden fayda ve ağırlık yoğunlaşması amaç 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 kodlar bulunur.
Bu egzersiz
R ile Orta Düzey Portföy Analizi
kursunun bir parçasıdırEgzersiz talimatları
- Önceki bir egzersizde oluşturduğun
port_specportföy spesifikasyonu nesnesine bir getiri amacı ekle. port_specnesnesine portföyün standart sapmasını minimize edecek bir risk amacı ekle.- Riski bileşen standart sapması olarak tanımlayan bir risk bütçesi amacı ekle. Minimum yüzde riski %5, maksimum yüzde riski %10 olarak ayarla.
port_specnesnesini yazdır.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# Add a return objective to maximize mean return
port_spec <- add.objective(portfolio = ___, type = ___, name = ___)
# Add a risk objective to minimize portfolio standard deviation
port_spec <- add.objective(portfolio = ___, type = ___, name = ___)
# Add a risk budget objective
port_spec <- add.objective(portfolio = ___, type = ___, name = ___, min_prisk = ___, max_prisk = ___)
# Print the portfolio specification object