#r #quadratic-programming #r-portfolioanalytics #r-optimization
Вопрос:
Я просматривал учебник по пакету ROI, в частности раздел 4: Максимизация квадратичной полезности. Цель состоит в том, чтобы найти оптимальный портфель из 4 активов, который максимизирует ожидаемую доходность, а также наказывает целевую функцию за повышенный риск портфеля. Решатель возвращает портфель, полностью распределенный в активе, с наименьшей дисперсией, что не соответствует ожидаемому результату. Может быть, я каким-то образом неправильно указал проблему?
library(PortfolioAnalytics)
library(foreach)
library(iterators)
library(ROI)
library(ROI.plugin.quadprog)
library(ROI.plugin.glpk)
# Create Initial Portfolio Object
init_portf <- portfolio.spec(assets=funds)
# Create Full investment constraint
fi_constr <- weight_sum_constraint(type="full_investment")
# Create Long only constraint
lo_constr <- box_constraint(type="long_only", assets=init_portf$assets)
# Combine constraints into a list
qu_constr <- list(fi_constr, lo_constr)
# Create a return objective
ret_obj <- return_objective(name="mean")
# Create variance objective specifying a risk_aversion parameter which controls
# how much the variance is penalized
var_obj <- portfolio_risk_objective(name="var", risk_aversion=0.25)
# Combine the objectives into a list
qu_obj <- list(ret_obj, var_obj)
# Run optimization
opt_qu <- optimize.portfolio(R=returns, portfolio=init_portf,
constraints=qu_constr,
objectives=qu_obj,
optimize_method="ROI",
trace=TRUE)
print(opt_qu)