Tek Dönemli optimizasyon
Optimizasyonu çalıştırmak için iki fonksiyon vardır: optimize.portfolio() ve optimize.portfolio.rebalancing(). Bu egzersiz tek dönemli optimizasyona odaklanacak, sonraki egzersizde ise periyodik yeniden dengeleme ile optimizasyon için optimize.portfolio.rebalancing() kullanılacak. optimize.portfolio() tek dönemli optimizasyonu destekler. Temel argümanlar arasında varlık getirileri için R, portföy spesifikasyon nesnesi için portfolio ve problemi çözmekte kullanılacak optimizasyon yöntemini belirtmek için optimize_method bulunur. Birçok durumda, optimizasyonun her yineleme/denemesine ait ek bilgileri saklamak için trace = TRUE belirtmek faydalıdır.
Aşağıdaki optimizasyon yöntemleri desteklenir:
DEoptim: Diferansiyel evrimrandom: Rastgele portföylerGenSA: Genelleştirilmiş Benzetimli Tavlamapso: Parçacık sürü optimizasyonuROI: Doğrusal ve karesel programlama çözücüleri için R Optimization Infrastructure
Seçeceğin optimizasyon yöntemi, çözdüğün problemin türüne dayanmalıdır. Örneğin, karesel programlama olarak formüle edilebilen bir problem, karesel programlama çözücüsüyle çözülmelidir; buna karşın, dışbükey olmayan (non-convex) bir problem DEoptim gibi küresel bir çözücü ile çözülmelidir.
Bu egzersizde, tam yatırım ve yalnızca uzun (long only) kısıtlarına tabi olarak, ortalama getiriyi maksimize edip portföyün standart sapmasını minimize eden ve minimum yüzde riskin %5, maksimum yüzde riskin %10 olduğu bir standart sapma risk bütçesiyle portföy optimizasyon problemini tanımlayacağız. Risk bütçesi amacı küresel bir çözücü gerektirdiğinden problemi rastgele portföyler kullanarak çözeceğiz. Rastgele portföy kümesi rp, bu egzersizde 500 permütasyon kullanılarak oluşturulmuştur.
Bu egzersiz
R ile Orta Düzey Portföy Analizi
kursunun bir parçasıdırEgzersiz talimatları
Portföy spesifikasyonu zaten oluşturuldu ve adı port_spec. Çalışma alanında ayrıca getiriler asset_returns olarak bulunuyor.
- Optimizasyon yöntemini
"random"seçerek vetracedeğeriniTRUEyaparak tek dönemli bir optimizasyon çalıştır. Optimizasyon çıktısınıoptadlı bir değişkene ata. - Optimizasyonun çıktısını yazdır.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# Run a single period optimization using random portfolios as the optimization method
opt <- optimize.portfolio(R = ___, portfolio = ___, optimize_method = ___, rp = rp, trace = TRUE)
# Print the output of the single-period optimization