SOCP Solver Ошибка для fPortoflio с использованием solveRsocp
Я хотел бы использовать решатель R SOCP, чтобы получить результаты, аналогичные следующей статье:http://www.optimization-online.org/DB_FILE/2014/05/4366.pdf
И, занимаясь поиском, похоже, он был частьюfPortfolioSolver
, но этот пакет выглядит так, как будто его больше не существует ....
И это похоже на то, как это было реализовано ...
https://stat.ethz.ch/pipermail/r-sig-finance/2010q2/006074.html
Решатель все еще существует здесь:
Но это должно ссылаться наRsocp
Пакет доступен здесь:
https://r-forge.r-project.org/R/?group_id=156
Однако есть несколько ошибок, которые должны помочь ему заставить его работать
например линия 117 должна измениться на
Rsocp:::.SqrtMatrix
и строка 165 должна измениться на
optim <- Rsocp::socp(f, A, b, C, d, N, x, z, w, control)
но при запуске следующего кода я получаю следующую ошибку ...
lppData=100*LPP2005.RET[,1:6]
maxRetSpec=portfolioSpec()
setTargetRisk(maxRetSpec)=0.07
setSolver(maxRetSpec)="solveRsocp"
efficientPortfolio(data=lppData, spec=maxRetSpec, constraints="LongOnly")
Error in .socp.phase1(f, A, b, N, control) : Phase 1 failed, alpha>=0
traceback()
6 stop("Phase 1 failed, alpha>=0")
5 .socp.phase1(f, A, b, N, control)
4 Rsocp::socp(f, A, b, C, d, N, x, z, w, control) at solveRsocp.R#165
3 .rsocp(f = args$f, A = args$A, b = args$b, C = args$C, d = args$d,
N = args$N, targetRisk = args$targetRisk, mu = args$mu, Scale = args$Scale) at solveRsocp.R#64
2 Solver(data, spec, constraints)
1 efficientPortfolio(data = lppData, spec = maxRetSpec, constraints = "LongOnly")
Будем весьма благодарны за любую помощь в разрешении этой ситуации, с тем чтобы решатель работал и чтобы этот документ можно было воспроизвести ...