asset.ts< - as.timeSeries(asset.ret)
spec< - portfolioSpec()
setSolver(spec)< - “solveRshortExact”
约束< - c(“短”)
setTargetReturn(Spec)= mean(colMeans(asset.ts [,2]))
efficientPortfolio(asset.ts,spec,constraints) 错误:is.numeric(targetReturn)不为TRUE
名称: MV高效投资组合 Estimator:covEstimator 求解器:solveRquadprog 优化:minRisk 约束:短暂
投资组合权重: MSFT AAPL NORD 0 0 0
协方差风险预算: MSFT AAPL NORD
目标回报和风险: 意思是mu Cov Sigma CVaR VaR 0 0 0 0 0 0
描述: 2014年4月19日星期六15:03:24用户:Usuario
答案 0 :(得分:0)
当使用2个资产时,我遇到了这个错误。 似乎是PortOpt方法中的错误。 当有2个资产时,它运行:.mvSolveTwoAssets 它在portfolioSpecs中寻找TargetReturn。
但是如您所知,并不总是需要targetReturn。
但是在您的代码中,您有两个单独的变量用于规范。 'spec'和'Spec'
即:'Spec'..假设这是一个拼写错误,那么这条线需要改变。 setTargetReturn(Spec)= mean(colMeans(asset.ts [,2]))