5 votos

analizar el rendimiento de la estrategia con una matriz dada de pesos/tiempo y rendimientos semanales en R

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.

3voto

Ryan Guill Puntos 6115

Echa un vistazo a fPortfolioBacktest. Puede encontrar un ejemplo aquí: https://r-forge.r-project.org/scm/viewvc.php/pkg/fPortfolioBacktest/man/portfolioBacktesting.Rd?view=markup&revision=4086&root=rmetrics

Edición: tal vez quieras probar con backtestPlot(smoothedPortfolios) para visualizar el rendimiento de la estrategia.

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X