我正在运行这个演示并对以下代码有疑问:
'library(PortfolioAnalytics)
data(edhec)
R <- edhec[, 1:8]
funds <- colnames(R)
init.portf <- portfolio.spec(assets=funds)
init.portf <- add.constraint(portfolio=init.portf, type="full_investment")
init.portf <- add.constraint(portfolio=init.portf, type="long_only")
init.portf <- add.objective(portfolio=init.portf, type="return", name="mean")
init.portf <- add.objective(portfolio=init.portf, type="risk", name="StdDev")
init.portf
maxSR.lo.ROI <- optimize.portfolio(R=R, portfolio=init.portf,
optimize_method="ROI",
maxSR=TRUE, trace=TRUE)
maxSR.lo.ROI'
当我运行演示时,我发现它只在数据被切割时才有效R <- edhec[, 1:8]
。如果我想使用R <- edhec[, 1:13]
,最佳权重是 NA ,我会收到以下警告:
在 optimize(f = sharpe_obj_fun, R = R, constraints = constraints, ... :
NA/Inf 替换为最大正值
这个问题的原因是什么?