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

Розв'яжіть просту задачу оптимізації портфеля

У цій першій вправі ви навчитеся розв'язувати просту задачу оптимізації портфеля за допомогою PortfolioAnalytics. Ви дізнаєтеся, як створити об'єкт специфікації портфеля, додати обмеження та цілі й розв'язати задачу оптимізації. Потрібно сформувати портфель із мінімальною дисперсією за умови повної інвестованості та лише довгих позицій. Мета — мінімізувати дисперсію портфеля. Є два обмеження: обмеження повної інвестованості означає, що сума ваг має дорівнювати 1, а обмеження лише довгих позицій означає, що всі ваги мають бути більшими або рівними 0 (тобто короткі позиції заборонені).

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

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

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

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

  • Створіть об'єкт специфікації портфеля, використавши назви активів із набору даних index_returns, і назвіть цей об'єкт port_spec.
  • Додайте до об'єкта port_spec обмеження повної інвестованості так, щоб сума ваг дорівнювала 1.
  • Додайте до об'єкта port_spec обмеження лише довгих позицій так, щоб вага активу була в межах від 0 до 1.
  • Додайте до об'єкта port_spec ціль мінімізувати стандартне відхилення портфеля.
  • Розв'яжіть задачу оптимізації портфеля, використавши optimize_method = "ROI". Запишіть результати оптимізації в об'єкт opt.

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

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

# Create the portfolio specification
port_spec <- portfolio.spec(colnames(___))

# Add a full investment constraint such that the weights sum to 1
port_spec <- add.constraint(portfolio = ___, type = "___")

# Add a long only constraint such that the weight of an asset is between 0 and 1
port_spec <- add.constraint(portfolio = ___, type = "___")

# Add an objective to minimize portfolio standard deviation
port_spec <- add.objective(portfolio = ___, type = "___", name = "___")

# Solve the optimization problem
opt <- optimize.portfolio(___, portfolio = ___, optimize_method = "___")
Редагувати та запускати код