Monday 9 January 2017

Déplacement Moyenne Empilement Débordement

J'ai cette série chronologique quotidienne des prix observés: P1, P2. Pn. Je veux travailler avec des retours: 0. P2-P1. Pn - P. On m'a dit de supprimer le premier terme (P1-P0 P1-) en le mettant à 0. Il semble que ce 0 soit très différent des autres termes et pas une bonne solution. (Je pense même que ce n'est pas une solution du tout). Voici la solution que j'ai considérée: 0 car il n'y a pas de retour le premier jour pour être cohérent avec la série chronologique rien, tout simplement en supprimant le problème que pensez-vous de ce problème Cela reste être sur un problème similaire, moyenne. Il y a des termes manquants semblables au début de la série chronologique. En faisant une moyenne p - mobile, je prends habituellement la dernière valeur de p avant ma date. J'ai le même problème qu'auparavant: au début de la série chronologique il n'y a pas assez de données pour faire une somme avec p termes. Y at-il une astuce pour résoudre ce problème. Serait-il changer quelque chose pour prendre les valeurs p après ma date. Les valeurs (p-1) 2 avant et après ma date. Il ne changera pas le terme général de ma moyenne mobile, mais seulement les valeurs au début et à la fin de ma série chronologique. Est-ce que ça importe. Comment. Si la performance de ce code est critique, alors il pourrait être judicieux d'éviter les allocations de tas pour Candle s. Je pense que la façon la plus raisonnable de faire cela serait de faire Candle dans une structure. Bien que les types de valeurs mutables soient mauvais. Donc je refondrais aussi Candle pour être immuable. Cela signifie également que la mise en œuvre de newestCandle devrait changer, probablement dans une paire de champs doubles (ou, alternativement, une classe mutable et réinitialisable séparée). Je ne vois aucun autre problème potentiel de performance dans votre code. Mais quand il s'agit de performance, vous devriez toujours compter sur le profilage, et non pas votre intuition (ou quelqu'un d'autre). Aussi, je n'aime pas certains noms de vos méthodes. Plus précisément: ValueUpdated. Les noms de méthode doivent généralement être sous la forme faire quelque chose, pas quelque chose s'est passé. Je pense donc qu'un meilleur nom serait UpdateValue. Ajouter. Modifier. Ce sont les deux opérations fondamentales de votre MovingAverage et je pense que ces noms n'expriment pas bien le sens. Je les appellerais quelque chose comme MoveAndSetCurrent et SetCurrent. respectivement. Bien que cette appellation indique que les opérations fondamentales doivent plutôt être Move et SetCurrent.


No comments:

Post a Comment