Estoy tratando de replicar la estrategia de momentum del estudio de Jegadesh y Titman (1993) solo utilizando datos de los últimos 10 años. En este momento, estoy intentando calcular los rendimientos del período de formación. Pero creo que tengo algunos errores. Si continúo y luego formo los portfolios, clasificándolos, los 4 portfolios muestran los mismos rendimientos para cada clasificación del 1 al 10. Tengo la sensación de que mi error ya está aquí en los períodos de formación pero no lo entiendo. Tal vez alguien pueda ayudarme un poco. ¡Muchas gracias! (el data_subset es mi dato original con todas las variables incluidas)
formation_periods <- c(3, 6, 9, 12)
momentum_portfolios <- list()
for (formation_period in formation_periods) {
subset <- data_subset %>%
select(PERMNO, Date, Returns, logreturns) %>%
arrange(PERMNO, Date)
subset$sumlogret <- subset %>%
group_by(PERMNO) %>%
mutate(sumlogret = rollsum(logreturns, formation_period, align = "right", fill = NA)) %>%
ungroup() %>%
pull(sumlogret)
subset <- subset %>%
rename(sumlogreturns = logreturns)
subset$cumret <- exp(subset$sumlogreturns) - 1
momentum_portfolios[[paste0("Formation_", formation_period)]] <- subset
}
aquí está mi siguiente código donde me di cuenta de que todos los períodos de formación tienen los mismos números en ellos.
momentum_portfolio <- momentum_portfolios[[paste0("Formation_", formation_period)]]
momentum_portfolio <- momentum_portfolio[!is.na(momentum_portfolio$cumret), ]
momentum_portfolio$momr <- as.numeric(factor(momentum_portfolio$cumret, levels = unique(momentum_portfolio$cumret)))
momentum_portfolio$momr <- cut(momentum_portfolio$cumret, breaks = quantile(momentum_portfolio$cumret, probs = seq(0, 1, by = 0.1)), labels = FALSE)
cat("Período de formación:", formation_period, "\n")
cat("Examinar la distribución de cumret por momr:\n")
print(tapply(momentum_portfolio$cumret, momentum_portfolio$momr, mean))
}
tail(momentum_portfolio)
```