Question

J'ai des données boursières basées sur les valeurs de clôture quotidiennes.Je dois pouvoir insérer ces valeurs dans une liste Python et obtenir une médiane pour les 30 dernières clôtures.Existe-t-il une bibliothèque Python qui fait cela ?

Était-ce utile?

La solution

Avez-vous envisagé pandas?C'est basé sur numpy et peut automatiquement associer des horodatages à vos données et ignorer toutes les dates inconnues tant que vous les remplissez avec numpy.nan.Il propose également des graphiques assez puissants via matplotlib.

Fondamentalement, il a été conçu pour l'analyse financière en python.

Autres conseils

En Python pur, avoir vos données dans une liste Python a, vous pourriez faire

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

(Cela suppose a contient au moins 30 éléments.)

En utilisant le package NumPy, vous pouvez utiliser

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

la médiane n'est-elle pas simplement la valeur moyenne dans une plage triée ?

donc, en supposant que votre liste soit stock_data:

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

Il ne vous reste plus qu'à trouver et corriger les erreurs ponctuelles et également à gérer le cas de stock_data étant inférieur à 30 éléments...

essayons ça un peu ici :

def rolling_median(data, window):
    if len(data) < window:
       subject = data[:]
    else:
       subject = data[-30:]
    return sorted(subject)[len(subject)/2]
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top