Pregunta

Tengo algunos datos de stock basado en valores de cierre diario.Necesito ser capaz de insertar estos valores en una lista de python y obtener un promedio de los últimos 30 cierra.Hay una biblioteca de python que hace esto?

¿Fue útil?

Solución

¿Ha considerado pandas ?Se basa en numpy y puede asociar automáticamente las marcas de tiempo con sus datos, y descarta cualquier fechas desconocidas siempre que lo llene con numpy.nan.También ofrece un gráfico bastante potente a través de MATPLOTLIB.

Básicamente, fue diseñado para el análisis financiero en Python.

Otros consejos

En python puro, teniendo sus datos en una lista de python a, usted podría hacer

median = sum(sorted(a[-30:])[14:16]) / 2.0

(esto supone a tiene al menos 30 artículos).

Usando el paquete adormecido, podría usar

median = numpy.median(a[-30:])

no es la mediana de sólo el valor medio de un criterio de rango?

así que, asumiendo su lista stock_data:

last_thirty = stock_data[-30:]
median = sorted(last_thirty)[15]

Ahora usted sólo tiene que conseguir el off-by-one errores encontrados y reparados y también manejar el caso de stock_data estar a menos de 30 elementos de la...

tratemos de que aquí un poco:

def rolling_median(data, window):
    if len(data) < window:
       subject = data[:]
    else:
       subject = data[-30:]
    return sorted(subject)[len(subject)/2]
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top