ПочатиПочніть безкоштовно

Додайте цілі

Цілі додаються до об'єкта портфеля за допомогою функції add.objective(). Кожна додана ціль є окремим об'єктом і зберігається у слоті objectives в об'єкті специфікації портфеля. Таким чином, цілі є модульними, і ви можете легко додавати, вилучати або змінювати об'єкти цілей. Аргумент name має бути дійсною функцією R. У пакеті PerformanceAnalytics доступно кілька функцій, але користувацькі функції також можна використовувати як цільові. Обов'язкові аргументи для add.objective() — це portfolio, до якого додається ціль, type цілі, name цілі та іменовані аргументи, передані через ... до конструктора відповідного типу цілі. Аргументи для цільової функції задаються як іменований список у arguments.

Базові типи цілей:

  • return: цей тип цілі максимізує значення цільової функції.
  • risk: цей тип цілі мінімізує значення цільової функції.
  • risk_budget: цей тип цілі мінімізує концентрацію ризику або штрафує внесок у ризик, що перевищує мінімальний або максимальний допустимий відсотковий внесок у ризик.

На додаток до перелічених вище типів цілей, PortfolioAnalytics також підтримує типи цілей квадратичної корисності та концентрації ваг. Якщо вас цікавлять інші типи обмежень, перегляньте довідку для конструкторів обмежень. У файлах довідки наведено опис типу обмеження та приклади коду.

Ця вправа є частиною курсу

Середній рівень аналізу портфеля в R

Переглянути курс

Інструкції до вправи

  • Додайте ціль щодо дохідності до об'єкта специфікації портфеля port_spec, який ви створили у попередній вправі.
  • Додайте ціль щодо ризику для мінімізації стандартного відхилення портфеля до port_spec.
  • Додайте ціль із бюджетом ризику, де ризик визначено як компонентне стандартне відхилення, до port_spec. Задайте мінімальний відсоток ризику 5% і максимальний відсоток ризику 10%.
  • Виведіть об'єкт port_spec.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# 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

Редагувати та запускати код