2016-03-21 16 views
0

Sorry, wenn dies eine dumme Frage ist, aber ich habe versucht, dies für 3 Tage jetzt herauszufinden. Ich bekomme diesen Fehler jedes Mal, wenn ich versuche, die Portfolio-Optimierung auszuführen, und kann es nicht herausfinden.Portfolio Optimierung R - Fehler

Error in assign(".objectivestorage", list(), envir = as.environment(.storage)) : 
    object '.storage' not found 

Ich bin auch in der Regel diese Warnung erhalten bei der zweiten und dritten Ziele:

In addition: Warning message: 
In is.na(le) : is.na() applied to non-(list or vector) of type 'NULL' 

Hier ist mein Code:

##Import Dataset 
setwd("D:\\Dropbox\\FUND - SSIF\\Portfolio Analysis Package") 
Stocktrak<- Return.read("SSIF_Data.csv", frequency = "d") 
# Create Objects for data and column names 

R <- Stocktrak[, 1:17] 
colnames(returns) <- c("JEC", "BNS", "AAPL", "PEG", "SLB", "TSM", "HD", 
    "MON", "GWO", "TOT", "XPH", "CVS", "UNP", "KORS", "GNTX", "NWC", "WFC") 
funds <- colnames(R) 

# Create an initial portfolio object with leverage and box constraints 
init <- portfolio.spec(assets=funds) 
init <- add.constraint(portfolio=init, type="leverage", min_sum=0.99, max_sum=1.01) 
init <- add.constraint(portfolio=init, type="box", min=0.01, max=0.65) 

# Create Objectives for eq_meanETL Portfolio Optimization 
eq_meanETL <- add.objective(portfolio=init, type="return", name="mean") 
eq_meanETL <- add.objective(portfolio=eq_meanETL, type="risk", name="ETL", arguments=list(p=0.95)) 
eq_meanETL <- add.objective(portfolio=eq_meanETL, type="risk_budget", name="ETL", min_concentration=TRUE, arguments=list(p=0.95)) 

# Optimize Portfolio 
opt_eq_meanETL <- optimize.portfolio(R=R, portfolio=eq_meanETL, optimize_method="DEoptim", search_size=2000, trace=TRUE, traceDE=5) 
+0

Ich konnte Ihren Fehler/Warnung nicht reproduzieren. Dieser Code funktioniert für mich mit simulierten Retouren 'nrs = 600 Stocktrak = Matrix (rnorm (nrs * 17,0.0,05), nrow = nrs) #set beliebiges Datum Stocktrak <- as.xts (Stocktrak, order.by = seq.Date (von = as.Date ("2016-03-21") - nrs, von = 1, length.out = nrs)) R <- Stocktrak [, 1:17] Spaltennamen (R) <- c (JEC, BNS, AAPL, PEG, SLB, TSM, HD, MON, GWO, TOT, XPH, CVS) "," UNP "," KORS "," GNTX "," NWC "," WFC ") Fonds <- colnames (R)' – Robert

Antwort

-1

Schnitt

Ändern der trace = FALSCH

Es wird funktionieren. Das erste Mal hier.

optimieren Portfolio

opt_eq_meanETL < - optimize.portfolio (R = R, Portfolio-= eq_meanETL, optimize_method = "DEoptim", search_size = 2000, trace = FALSCH, traceDE = 5)

+1

Dies ist keine Antwort auf die Frage. – HDJEMAI

+0

Tut mir leid, ich habe die Antwort geändert. Das erste Mal hier. Im Inneren der Verpackung Quellcode wir die folgende Meldung haben: #Wir nicht trace = TRUE in eingeschränkten Ziel mit DEoptim passieren kann, weil es eine einzige numerische Rückkehr , warum wir den Fehler erhalten ist erwartet – Fernando

1

Ort, um die folgenden vor optimize.portfolio

.storage <<- new.env()