Thursday, 14 September 2017

Exponential Moving Average C # Code


Ein möglicher Ansatz hier ist, eine Methode zu haben, die den Kernel zurückgibt. Von dem, was ich sehen kann, Eingaben zu dieser Methode wäre kerneltype. ich. Und andere Eingänge. Ein einfacher Ansatz wäre: Das ist natürlich schrecklich, schrecklich rau, und eine Menge Verbesserung kann gemacht werden, aber es ist beabsichtigt, nur den Punkt zu bekommen. Ich würde eine Schnittstelle verwenden, um einen Kernel darzustellen, und haben Klassen abgeleitet pro Kernel. Nach meiner Erfahrung, die produziert ausreichend lesbar und wartbar Code, aber theres immer Raum für Verbesserungen. Ein Exponential Moving Average ist ein Durchschnitt der Daten berechnet über einen Zeitraum, in dem die letzten Tage mehr Gewicht gegeben werden. Der exponentielle gleitende Durchschnitt kann mit jedem Preis verwendet werden, einschließlich eines: Hi, Low, Open und Close, oder es könnte auf andere Indikatoren angewendet werden. Ein exponentieller gleitender Durchschnitt glättet eine Datenreihe, die sehr wichtig in einem volatilen Markt ist, da es hilft, überschüssiges Datenrauschen zu entfernen, so dass wesentliche Trends identifiziert werden können. Dundas Chart für Reporting Services hat vier Arten von gleitenden Durchschnitten: Einfach. Exponentiell. Dreieckig. Und Gewichtet. Der wichtigste Unterschied zwischen den obigen gleitenden Durchschnitten ist, wie sie ihre Datenpunkte gewichten. Wir empfehlen Ihnen, mit den Finanzformeln zu lesen, bevor Sie fortfahren. Mithilfe von Finanzformeln erhalten Sie eine ausführliche Erläuterung, wie Sie Formeln verwenden können, und erläutert auch die verschiedenen Optionen, die Ihnen beim Anwenden einer Formel zur Verfügung stehen. FormulaFinancial (FinancialFormula. ExponentialMovingAverage, 20, Serie 1: Y2, Serie 2: Y) Ein Liniendiagramm ist eine gute Wahl, wenn ein exponentieller gleitender Durchschnitt angezeigt wird. Finanzinterpretation: Der Exponential Moving Average wird verwendet, um einen Wert mit seinem exponentiellen gleitenden Durchschnitt zu vergleichen. Der exponentielle gleitende Durchschnitt gibt mehr Einfluss auf die aktuelleren Preise, und aufgrund dieses Gewichtungsmechanismus wird der gleitende Durchschnitt den Preisen viel schneller folgen als ein einfacher gleitender Durchschnitt. Das wichtigste Element, das bei der Berechnung des gleitenden Durchschnitts verwendet wird, ist die verwendete Zeitdauer. Dieser Zeitraum sollte dem beobachteten Marktzyklus entsprechen. Der Zeitraum beeinflusst den Prozentsatz, der als Gewicht für die letzten Perioden verwendet wird. Der exponentielle gleitende Durchschnitt ist ein nacheilender Indikator, und als solcher wird immer Weg Preis. Wenn der Preis einem Trend folgt, dann wird der exponentielle gleitende Durchschnitt sehr nahe an dem Preis liegen. Wenn ein Preis steigt, dann wird der exponentielle gleitende Durchschnitt höchstwahrscheinlich unter den Preis fallen. Dies ist wegen des Einflusses aus den historischen Daten. Berechnung: Um einen exponentiellen gleitenden Durchschnitt neu zu berechnen, müssen Sie einen Prozentsatz finden, der auf die letzten Tage angewendet werden kann. Der Prozentsatz kann unter Verwendung eines Zeitraums bestimmt werden: Als nächstes wird der exponentielle gleitende Durchschnitt unter Verwendung des heutigen Preises und gestern berechnet. Exponentieller gleitender Durchschnitt: Dieses Beispiel zeigt, wie ein 20-Tage-gleitender Durchschnitt unter Verwendung der Formelmethode berechnet wird Wenn die Leistungsfähigkeit dieses Codes kritisch ist, Dann könnte es sinnvoll sein, Heapzuweisungen für Kerzen zu vermeiden. Ich denke, die vernünftigste Art, dies zu tun, wäre, Candle zu einer Struktur zu machen. Obwohl veränderliche Werttypen sind böse. So würde ich auch Refactor Kerze unveränderlich sein. Dies bedeutet auch, dass sich die Implementierung von newestCandle ändern müsste, wahrscheinlich in ein Paar von Doppelfeldern (oder alternativ eine separate veränderliche und rücksetzbare Klasse). Ich sehe keine andere potenzielle Leistungsproblem in Ihrem Code. Aber wenn es um Leistung geht, sollten Sie immer auf Profiling, nicht Ihre (oder jemand elses) Intuition verlassen. Auch ich mag nicht einige Namen Ihrer Methoden. Speziell: ValueUpdated. Methodennamen sollten in der Regel in der Form etwas tun, nicht etwas passiert. Also ich denke, ein besserer Name wäre UpdateValue. Hinzufügen. Ändern. Dies sind die beiden grundlegenden Operationen Ihres MovingAverage und ich denke, dass diese Namen nicht ausdrücken die Bedeutung gut. Ich würde sie so etwas wie MoveAndSetCurrent und SetCurrent nennen. beziehungsweise. Obwohl diese Benennung bedeutet, dass die grundlegenden Operationen eher Move und SetCurrent sein sollten.

No comments:

Post a Comment