Wenn ich versuche, die optimize.portfolio
Funktion mit ROI
ausführen, erhalte ich den Fehler.doppelte Einträge in Indizes Fehler in optimize.portfolio im PortfolioAnalytics-Paket
Error in ROI::V_bound(li = seq.int(1L, N), lb = as.numeric(lb), ui = seq.int(1L, : duplicated entries in indices.
Und wenn ich DEoptim
10 benutze, bekomme ich.
Error in sample.int(length(x), size, replace, prob) :
invalid first argument
Wenn die Bestandsdaten getSymbols
Verwendung gesammelt wird, über die Länge der Retouren Objekte eine Warnung gibt. Die research I did schlägt vor, dies ist jedoch nicht das Problem.
Der Code, den ich verwende, ist unten. Jede Hilfe wäre willkommen.
library(quantmod)
library(PortfolioAnalytics)
library(DEoptim)
library(ROI)
require(ROI.plugin.glpk)
require(ROI.plugin.quadprog)
symbols <- c("MSFT", "MMM", "AMZN")
e <- new.env()
getSymbols(symbols, src="yahoo", env=e)
stocks <- do.call(merge, eapply(e, Cl)[symbols])
ret <- diff(log(df))
ret <- ret[2:(nrow(df)),]
portfolio <- portfolio.spec(ret)
portfolio
portfolio <- add.constraint(portfolio = portfolio, type = "weight_sum", min_sum=0.99,max_sum=1.01)
portfolio <- add.constraint(portfolio = portfolio, type = "long_only")
portfolio <- add.objective(portfolio=portfolio, type="risk", name="StdDev")
optimise <- optimize.portfolio(R = ret, portfolio = portfolio, optimize_method = "ROI")