Friday, 17 February 2017

Exponential Moving Average C # Code

Une approche possible ici est d'avoir une méthode qui renvoie le noyau. D'après ce que je suis capable de voir, les entrées de cette méthode serait kerneltype. je. Et autresInputs. Une approche simple serait: C'est bien sûr terriblement, terriblement rude, et beaucoup d'amélioration peut être faite, mais il est destiné à simplement obtenir le point à travers. Je voudrais utiliser une interface pour représenter un noyau, et avoir des classes dérivées par noyau. Selon mon expérience, cela produit un code suffisamment lisible et maintenable, mais il y a toujours place à amélioration. Une moyenne mobile exponentielle est une moyenne de données calculées sur une période de temps où les jours les plus récents sont donnés plus de poids. La moyenne mobile exponentielle peut être utilisée avec n'importe quel prix incluant: Hi, Low, Open et Close, ou il pourrait être appliqué à d'autres indicateurs. Une moyenne mobile exponentielle apaise une série de données, ce qui est très important dans un marché volatil car il aide à éliminer les bruits excessifs des données afin que des tendances significatives puissent être identifiées. Dundas Chart pour Reporting Services dispose de quatre types de moyennes mobiles: Simple. Exponentiel. Triangulaire. Et pondéré. La différence la plus importante entre les moyennes mobiles ci-dessus est la façon dont ils pondent leurs points de données. Nous vous recommandons de lire la section Utilisation des formules financières avant de continuer. L'utilisation de formules financières fournit une explication détaillée sur l'utilisation des formules et explique également les différentes options disponibles lorsque vous appliquez une formule. FormulaFinancial (FinancialFormula. ExponentialMovingAverage, 20, série 1: Y2, série 2: Y) Un graphique en ligne est un bon choix pour afficher une moyenne mobile exponentielle. Interprétation financière: La moyenne mobile exponentielle est utilisée pour comparer une valeur à sa moyenne mobile exponentielle. La moyenne mobile exponentielle donne plus d'influence aux prix qui sont plus récents, et en raison de ce mécanisme de pondération, la moyenne mobile suivra les prix beaucoup plus vite qu'une moyenne mobile simple. L'élément le plus important utilisé pour calculer la moyenne mobile est la période utilisée. Cette période devrait être égale au cycle du marché observé. La période influence le pourcentage qui sera utilisé comme poids pour les périodes les plus récentes. La moyenne mobile exponentielle est un indicateur de retard, et comme tel sera toujours le prix de suivi. Lorsque le prix suit une tendance, alors la moyenne mobile exponentielle sera très proche du prix. Quand un prix monte, alors la moyenne mobile exponentielle tombera très probablement en dessous du prix. C'est à cause de l'influence des données historiques. Calcul: Pour recalculer une moyenne mobile exponentielle, vous devez trouver un pourcentage qui peut être appliqué aux jours les plus récents. Le pourcentage pourrait être déterminé en utilisant une période de temps: Ensuite, la moyenne mobile exponentielle est calculée en utilisant le prix d'aujourd'hui, et hier Moyenne mobile exponentielle: Cet exemple montre comment calculer une moyenne mobile de 20 jours en utilisant la méthode Formula Si la performance de ce code est critique, Alors il pourrait être logique 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