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

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 evrim
  • random: Rastgele portföyler
  • GenSA: Genelleştirilmiş Benzetimli Tavlama
  • pso: Parçacık sürü optimizasyonu
  • ROI: 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ır
Kursu Görüntüle

Egzersiz 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 ve trace değerini TRUE yaparak tek dönemli bir optimizasyon çalıştır. Optimizasyon çıktısını opt adlı 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
Kodu Düzenle ve Çalıştır