Cálculos de indicadores de stock en TTR (paquete R): ¡La mejor manera de alinear la salida a la izquierda?

StackOverflow https://stackoverflow.com/questions/5062165

  •  16-11-2019
  •  | 
  •  

Pregunta

Estoy usando el paquete TTR para generar indicadores de stock. Sin embargo, las funciones del indicador agregan NA (cuando corresponda, por ejemplo, CMO, SMA, CMF, etc.) hasta el comienzo de la serie en lugar del final. ¿Hay alguna manera de alinear la salida a la izquierda para que los valores de NA se agreguen al final de la serie en lugar del comienzo?

Por ejemplo:

library(TTR)    
x = 1:10
# TTR's simple moving average
SMA(x,n=2)
[1]  NA 1.5 2.5 3.5 4.5 5.5 6.5 7.5 8.5 9.5
El paquete

zoológico tiene una opción de alineación para almohorar la serie con NAS al final:

library(zoo)
rollmean(x,2,na.pad=TRUE,align='left')
[1] 1.5 2.5 3.5 4.5 5.5 6.5 7.5 8.5 9.5  NA

¿Hay una manera de especificar algo como esto en TTR, ya que necesito generar indicadores más allá de los promedios móviles? Supongo que puedo crear una envoltura alrededor de estas funciones y cambiar manualmente los valores resultantes, pero no estoy seguro de si hay una mejor manera de hacerlo.

También, dado que TTR se usa en gran medida para agregar indicadores a los precios de las acciones, me pregunto por qué el relleno está al principio, en lugar del final, especialmente, ya que la mayoría de los precios históricos se clasifican en orden descendente (por fecha)? En el ejemplo anterior, si X [1] es el precio de un stock hoy y X [10] el precio hace 10 días, no debe el promedio móvil (SPAN= 2) para hoy el ¿Promedio de hoy + ayer? Por mucho que me gustaría agregar NAS al final, también me gustaría asegurarme de que no estoy malinterpretando cómo se utilizan estos indicadores.

gracias, -e

¿Fue útil?

Solución

I couldn't figure out an option in the function call to shift the series in a different direction. However, now I understand why TTR shifts the series downwards. Historical stock prices obtained via quantmod's getSymbols() returns them sorted by date in ascending order. When I manually download the quotes from Yahoo! or use ystockquote.py, the order is descending. I just re-sorted my data by date and used the TTR library as-is.

There were certain vectors that I wanted to be shifted up (padded with NAs) and I just used this code:

miss_len = length(x[is.na(x])
x = x[!is.na(x)]
length(x) = length(x) + miss_len
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top