Tengo una matriz de 259 rendimientos semanales, 50 activos y una composición de cartera para cada una de las 259 semanas. Me gustaría probar el rendimiento de la cartera durante 52 semanas, rebalanceando cada 12 semanas teniendo en cuenta también las comisiones de cada rebalanceo, etc. Elegiría 50 fechas al azar, realizaría la prueba en cada fecha, almacenaría los resultados y finalmente los promediaría. ¿Hay alguna forma de hacer esto en R?
n=50
d=52*5-1 #multiple of 7
w=16
ns=50
returns=xts(matrix(rnorm(n*d,0,0.01),d,n),Sys.Date()-seq(d*7,1,by=-7))
A=c(rep(1/w,w),rep(0,n-w))
weights=xts(t(replicate(d,sample(A,n))),Sys.Date()-seq(d*7,1,by=-7))
dates.v=as.Date(replicate(ns,sample(index(returns),1)))
for (i in 1:ns) {
while (dates.v[i]+52*7>max(index(returns))) {dates.v[i]=sample(index(returns),1)} #this is to ensure that we always use one entire year
}
Ya he echado un vistazo a los paquetes fPortfolio, backtest y PortfolioSim pero no he encontrado un ejemplo similar así que no sé si es posible o no.