Estoy tratando de obtener una serie de rendimientos de tiempo para mantener un determinado activo durante un tiempo específico.Calcular las devoluciones durante el período de tiempo
Mi trama de datos se parece a esto:
Date Price
1998-01-01 20
1998-01-02 22
1998-01-03 21
1998-01-04 25
...
1998-01-20 25
1998-01-21 19
1998-01-21 20
....
1998-02-01 30
1998-02-02 28
1998-02-03 25
1998-02-04 26
etc.
tengo 1 de observación para cada día y mi series de tiempo va desde 1998-1999.
Lo que me gustaría hacer ahora es calcular una ganancia por mantener mi activo por 20 días (es decir, comprándolo el primer día y vendiéndolo el día 20), y hago esto para cada día. Así que me gustaría para calcular esto:
1.day: Retorno (20 días) = log (Precio (t = 20)/Precio (t = 0)),
2.day: Retorno (20 días) = log (Precio (t = 21)/Precio (t = 1)),
3.day: Retorno (20 días) = log (Precio (t = 22)/Precio (t = 2))
etc., es decir, haz esto todos los días en mi muestra.
lo tanto, mi trama de datos resultante sería el siguiente aspecto:
Date Return
1998-01-01 0.2
1998-01-02 0.4
1998-01-03 0.6
1998-01-04 0.1
...
1998-01-20 0.1
1998-01-21 0.2
1998-01-21 0.5
....
1998-02-01 0.1
1998-02-02 0.2
1998-02-03 0.5
1998-02-04 0.01
etc.
¿Hay alguna forma en I decir: tomar las primeras 20 observaciones, calcular el retorno. Tome la observación 2-21, calcule el retorno. Tome la observación 3-22, calcule el retorno, etc.
Estoy totalmente estancado y agradecería algo de ayuda. ¡Gracias! Dani
Creo que quieres la 'k' aplicada como función' lag' para 'diff' y no' base' para la función 'log'. El cambio de paréntesis simple lo hará. – shabbychef
gracias, arreglado ahora –