1. Learn
  2. /
  3. Курси
  4. /
  5. Середній рівень аналізу портфеля в R

Connected

Вправа

Оптимізація за один період

Є дві функції для запуску оптимізації: optimize.portfolio() і optimize.portfolio.rebalancing(). У цій вправі ми зосередимося на оптимізації за один період, а в наступній використаємо optimize.portfolio.rebalancing() для оптимізації з періодичним ребалансуванням. optimize.portfolio() підтримує оптимізацію за один період. Ключові аргументи: R — прибутковості активів, portfolio — об'єкт специфікації портфеля, а optimize_method — метод оптимізації для розв'язання задачі. У багатьох випадках корисно вказати trace = TRUE, щоб зберігати додаткову інформацію для кожної ітерації/спроби оптимізації.

Підтримувані методи оптимізації:

  • DEoptim: диференційна еволюція
  • random: випадкові портфелі
  • GenSA: узагальнений імітаційний відпал
  • pso: оптимізація роєм частинок
  • ROI: R Optimization Infrastructure для лінійних і квадратичних розв'язувачів програмування

Вибір методу оптимізації має залежати від типу задачі, яку ви розв'язуєте. Наприклад, задачу, яку можна сформулювати як квадратичне програмування, слід розв'язувати квадратичним розв'язувачем, тоді як неконвексну задачу варто розв'язувати глобальним методом, таким як DEoptim.

У цій вправі ми визначимо задачу оптимізації портфеля для максимізації середньої прибутковості та мінімізації стандартного відхилення портфеля з бюджетом ризику за стандартним відхиленням, де мінімальна частка ризику — 5%, а максимальна — 10%, за умов повної інвестованості та лише довгих позицій. Ціль за бюджетом ризику потребує глобального розв'язувача, тому ми розв'яжемо задачу за допомогою випадкових портфелів. Набір випадкових портфелів rp згенеровано з використанням 500 перестановок для цієї вправи.

Інструкції

100 XP

Специфікацію портфеля вже створено й названо port_spec. Також у вашому робочому середовищі є прибутковості asset_returns.

  • Запустіть оптимізацію за один період із trace встановленим у TRUE, використовуючи "random" як метод оптимізації. Присвойте результат змінній opt.
  • Виведіть результат оптимізації.