2017-11-10 4 views
1

나는 다음과 같은 코드로 EDHEC 데이터를 최적화하기 위해 노력하고 있지만, 최적화 된 무게 optimize.portfolio는 ONY NA

library(openxlsx) 
    library(PortfolioAnalytics) 
    library(PerformanceAnalytics) 
    library(plyr) 
    library(dplyr) 
    library(reshape2) 
    library(ROI) 
    library(ggplot2) 
    library(plotly) 
    library(car) 
    library(quantmod) 
    library(quadprog) 
    library(ROI.plugin.symphony) 
    require(ROI.plugin.glpk) 
    require(ROI.plugin.quadprog) 
    library(ROI.plugin.lpsolve) 
    library(Rglpk) 
    library(DEoptim) 
    library(fGarch) 
    library(pso) 
    library(GenSA) 
    library(nloptr) 

    data(edhec) 
    returns <- edhec[, 1:4] 
    colnames(returns) <- c("CA", "CTAG", "DS", "EM") 
    funds <- colnames(returns) 

    portf_maxret <- portfolio.spec(assets=funds) 
    portf_maxret <- add.constraint(portfolio=portf_maxret, type="return", return_target=.0075) 
    portf_maxret<-add.objective(portfolio=portf_maxret, type="risk", name="StdDev") 
    opt_maxret <- optimize.portfolio(R=returns, portfolio=portf_maxret,optimize_method="ROI", trace=TRUE) 

로 단지의 NA를 얻고 생산

opt_maxret의 출력은

*********************************** 
PortfolioAnalytics Optimization 
*********************************** 

Call: 
optimize.portfolio(R = returns, portfolio = portf_maxret, optimize_method = "ROI", 
    trace = TRUE) 

Optimal Weights: 
    CA CTAG DS EM 
    NA NA NA NA 

Objective Measure: 
StdDev 
    NA 
입니다

optimize.portfolio에 설정하려고 할 때만 모든 데이터에 동일한 문제가 발생합니다. 즉 관련된 위험에 따라 포트폴리오를 최적화하려고합니다.

답변

1

당신이 라인에서 포트폴리오에 같은 이름을 부여하려고하면 propblem가 발생할 수 있습니다 : 다른 무언가로 portf_maxret을 변경하고 사용하는

portf_maxret<-add.objective(portfolio=portf_maxret, type="risk", name="StdDev") 

보는 것이 최적화

의 포트폴리오 이름으로