1 votos

Cálculo de la rentabilidad de los dividendos a partir de los rendimientos de los índices

Para un proyecto de investigación, necesito encontrar o calcular la rentabilidad de los dividendos de todos los índices de los principales países del mundo (por ejemplo: s&p500,DAX,CAC40 y demás), y me está costando un poco.

No puedo encontrar los datos en bruto en ningún sitio (aparte del s&p500), así que estaba pensando en intentar calcularlo como una diferencia entre la rentabilidad absoluta y la rentabilidad total.

¿Alguien tiene alguna sugerencia o documentación sobre cómo hacerlo?

Gracias de antemano

2voto

Muhammed Refaat Puntos 97

Los índices de S&P suelen utilizar una metodología de ponderación de flotación ajustada, en la que un cambio en el nivel del índice se define -en el caso base- por un Laspeyres índice:

$\frac{I + \Delta I}{I} = \frac{\sum_i P_{i,1}*Q_{i,0}}{\sum P_{i,0}*Q_{i,0}} \,; \forall i \in I$

donde: $I$ es el nivel del índice; $P_i$ es el precio del activo $i$ y, $Q_i$ es el recuento de acciones ajustado a la flotación del activo $i$ .

Consulte el siguiente documento de S&P para obtener una definición más sólida: http://us.spindices.com/documents/methodologies/methodology-index-math.pdf

Los índices de rentabilidad total se definen además como sigue:

$\frac{I_{TR,t}}{I_{TR,t-1}} = \frac{I_{t-1} + \Delta I_t + \sum_{i,t} (D_{i,t}*Q_{i,t})}{I_{TR,t-1}}$

donde: $I_{TR} $ es el nivel del índice de retorno total; y $D_{i,t}$ es el dividendo del activo $i$ en la fecha del dividendo $t$ .

Por lo tanto:

$I_{TR,t}- I_t = \sum_0^t \sum_i (D_{i,t}*Q_{i,t}) $

Y tu intuición de tomar la diferencia entre las versiones de precio y de rentabilidad total del índice debería ser absolutamente acertada. Para calcular el anual El rendimiento entonces debería ser sencillo:

$yield = \frac{(I_{TR,t} - I_{TR,t-365})-(I_{t} - I_{t-365})}{I_{TR,t}} \approx \frac{I_{TR,t}}{I_{TR,t-365}} - \frac{I_{t}}{I_{t-365}} $

donde ahora $t$ representa los días naturales.

Aunque soy consciente de que las metodologías de indexación pueden ser muy complicadas y pueden variar, sospecho que la fórmula anterior para el rendimiento rendimiento un resultado que es a la vez preciso y robusto.

0voto

O.oy Puntos 21

Si tiene un índice de precios $I$ y el correspondiente índice de rentabilidad total $I_{TR}$ entonces se puede calcular una versión pre-dividendo del índice de retorno total para el período t como sigue

$$ I^{predividend}_{TR, t} = I_{TR, t-1}*(1+r_{t}) $$

Nuestro índice de rentabilidad total antes de los dividendos del periodo t es el índice de rentabilidad total del periodo anterior multiplicado por la rentabilidad del índice de precios. La rentabilidad es aritmética simple.

$$ r_{t} = \dfrac{I_{t}}{I_{t-1}} -1 $$

El dividendo del índice de rendimiento total en el período t $D_{t}$ sería la diferencia entre el valor real del índice de rentabilidad total y la versión calculada antes de los dividendos.

$$ D_{t} = I_{TR, t} - I^{predividend}_{TR,t} $$

El rendimiento es el dividendo calculado dividido por el índice de rendimiento total. Tenga en cuenta que los períodos deben estar en años, ya que el rendimiento se expresa en términos anuales. Si su t no es de años, habría que agregar (la suma anual de los dividendos, y la media del valor del índice TR).

$$ y_{dividend} = D_t / I_{TR,t}$$

En R y utilizando el tidyverse y el paquete común de finanzas tidyquant para obtener los datos del S&P500 de Yahoo, este es el script que se me ocurrió.

library(tidyverse)
library(tidyquant)

sp500 <- tq_get("^GSPC", from = "1990-01-01")
sp500_tr <- tq_get("^SP500TR", from = "1990-01-01")

spx <- left_join(sp500 %>% select(date, SP500 = adjusted), 
                 sp500_tr %>% select(date, SP500_TR = adjusted), 
                 by = "date")

spx_dividend <- spx %>% 
  mutate(SP500_return = SP500/lag(SP500)-1,
         SP500_TR_predividend = lag(SP500_TR)*(1+SP500_return),
         dividend = SP500_TR - SP500_TR_predividend)

spx_dividend_yield <- spx %>% 
  group_by(year = year(date)) %>% 
  summarise(dividend = sum(dividend, na.rm = T),
            SP500_TR = mean(SP500_TR)) %>% 
  mutate(dividendyield = dividend/SP500_TR)

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