Der Hauptfehler in Ihrem Programm ist, dass die rekursive Berechnung falsch ist. Um den Durchschnitt zu berechnen, müssen Sie die Summe aus dem aktuellen Wert und den verbleibenden Werten erhalten. Dann teilen Sie diese Summe durch die Anzahl der Werte. Die Anzahl der Werte ist num. Der aktuelle Wert ist, was calculatenumber () zurückgibt. Die Summe der verbleibenden Werte ist num-1 multipliziert mit dem Mittelwert der verbleibenden Werte. Der Mittelwert der verbleibenden Werte wird durch einen rekursiven Aufruf von average () berechnet. So schreiben wir folgendes: Ein komplettes Programm, das diese Funktion verwendet, könnte so aussehen: Beachten Sie, dass dies kein sehr guter Weg ist, um den Durchschnitt zu berechnen, da Sie die Genauigkeit jedes Mal verlieren, wenn Sie die aktuelle Summe durch num teilen. Wenn dieser Durchschnitt wieder multipliziert wird, wenn der rekursive Aufruf zurückkehrt, werden die signifikanten Stellen, die Sie in der Abteilung verloren haben, nicht wiederhergestellt. Sie zerstören Informationen, indem Sie die Summe dividieren und dann multiplizieren. Für mehr Präzision, würden Sie wollen, um die Summe zu halten, wie Sie durch die Elemente gehen, dann teilen sich am Ende. Ein weiterer Punkt zu betrachten ist, was durch einen gleitenden Durchschnitt gemeint ist. Was wir oben implementiert haben, ist kein gleitender Durchschnitt, sondern ein fester Durchschnitt. Es ist der Durchschnitt eines festen Fensters von Elementen. Wenn Sie das Fenster um eine Position verschieben, müssen Sie alles von vorne beginnen und die Summe erneut berechnen. Der richtige Weg, um ein bewegliches Fenster zu implementieren ist, alle Elemente im Fenster zu verfolgen. Wenn Sie das Fenster um eine Position nach rechts verschieben, entfernen Sie das am weitesten links liegende Element aus dem Fenster und subtrahieren dessen Wert aus der Summe, fügen dann das neue Element am rechten Rand dem Fenster hinzu und fügen seinen Wert zur Summe hinzu. Das macht es eine bewegliche Summe. Das Teilen der beweglichen Summe durch die Anzahl der Elemente gibt Ihnen den gleitenden Durchschnitt. Die natürliche Weise, ein sich bewegendes Fenster zu implementieren, ist mit einer Warteschlange, weil Sie dem Kopf neue Elemente hinzufügen und alte Elemente aus dem Schwanz entfernen können. Antwortete 22 Nov 14 um 17: 44Ich habe die Diskussion gelesen, die du erwähnt hast. Es ist auf PostgreSQL anwendbar, da es erlaubt ist, benutzerdefinierte Aggregatfunktion mit SQL in PostgreSQL zu erstellen, aber nicht in SQL Server erlaubt. Die Verwendung von rekursiven CTE ist ein möglicher Weg in SQL Server, aber ich merke, dass CTE-Wege möglicherweise mehr Tabellen-Scan als Fenster-Funktionen. So mache ich diesen Beitrag zu fragen, ob es möglich ist, zu berechnen exponentiellen gleitenden Durchschnitt mit SQL Server 2012 Fensterfunktion genau wie die Berechnung einfach gleitenden Durchschnitt. Ndash xiagao1982 Apr 14 13 at 2:53 Zuerst berechnen Sie die EMA (SMA (x)) anstelle der EMA (x). Zweitens ist Ihre quotsmoothing constantquot eigentlich der Beta-Wert in meiner Formel, nicht die alpha. Mit diesen beiden Änderungen sieht das SQLFiddle wie folgt aus: sqlfiddle6191921 Es gibt jedoch noch einen kleinen Unterschied zwischen dem tatsächlichen Ergebnis und dem erwarteten Ergebnis. Ich würde zurückgehen und sehen, ob ihre EMA-Definition entspricht der, die ich kenne. Ndash Sebastian Meine 7 Mai, um 13:46 Ich schaute nur auf das Formular in der Kalkulationstabelle Sie angebracht und es ist weit weg von der Standard-EMA-Definition. Meine Formel berechnet den exponentiellen gleitenden Durchschnitt der letzten zehn Zeilen. Die Kalkulationstabelle berechnet zuerst den Standardmittelwert über die letzten zehn Zeilen und dann den unbeschränkten exponentiell gewichteten gleitenden Durchschnitt über alle Mittelwerte. Dies folgt dem Formular hier: en. wikipedia. orgwikiEWMAchart ndash Sebastian Meine Mai 7 13 um 13: 52Exploring der exponentiell gewichteten Moving Average Volatilität ist die häufigste Maßnahme des Risikos, aber es kommt in mehreren Geschmacksrichtungen. In einem früheren Artikel haben wir gezeigt, wie man einfache historische Volatilität berechnet. (Um diesen Artikel zu lesen, lesen Sie unter Verwenden der Volatilität, um zukünftiges Risiko zu messen.) Wir verwendeten Googles tatsächlichen Aktienkursdaten, um die tägliche Volatilität basierend auf 30 Tagen der Bestandsdaten zu berechnen. In diesem Artikel werden wir auf einfache Volatilität zu verbessern und diskutieren den exponentiell gewichteten gleitenden Durchschnitt (EWMA). Historische Vs. Implied Volatility Erstens, lassen Sie diese Metrik in ein bisschen Perspektive. Es gibt zwei breite Ansätze: historische und implizite (oder implizite) Volatilität. Der historische Ansatz geht davon aus, dass Vergangenheit ist Prolog Wir messen Geschichte in der Hoffnung, dass es prädiktive ist. Die implizite Volatilität dagegen ignoriert die Geschichte, die sie für die Volatilität der Marktpreise löst. Es hofft, dass der Markt am besten weiß und dass der Marktpreis, auch wenn implizit, eine Konsensschätzung der Volatilität enthält. (Für verwandte Erkenntnisse siehe Die Verwendungen und Grenzen der Volatilität.) Wenn wir uns auf die drei historischen Ansätze (auf der linken Seite) konzentrieren, haben sie zwei Schritte gemeinsam: Berechnen Sie die Reihe der periodischen Renditen Berechnen die periodische Rendite. Das ist typischerweise eine Reihe von täglichen Renditen, bei denen jede Rendite in kontinuierlich zusammengesetzten Ausdrücken ausgedrückt wird. Für jeden Tag nehmen wir das natürliche Protokoll des Verhältnisses der Aktienkurse (d. H. Preis heute geteilt durch den Preis gestern und so weiter). Dies erzeugt eine Reihe von täglichen Renditen, von u i bis u i-m. Je nachdem wie viele Tage (m Tage) wir messen. Das bringt uns zum zweiten Schritt: Hier unterscheiden sich die drei Ansätze. Wir haben gezeigt, dass die einfache Varianz im Rahmen einiger akzeptabler Vereinfachungen der Mittelwert der quadratischen Renditen ist: Beachten Sie, dass diese Summe die periodischen Renditen zusammenfasst und dann diese Summe durch die Anzahl der Tage oder Beobachtungen (m). Also, seine wirklich nur ein Durchschnitt der quadrierten periodischen kehrt zurück. Setzen Sie einen anderen Weg, jede quadrierte Rückkehr wird ein gleiches Gewicht gegeben. Also, wenn alpha (a) ein Gewichtungsfaktor (speziell eine 1m) ist, dann eine einfache Varianz sieht etwa so aus: Die EWMA verbessert auf einfache Varianz Die Schwäche dieser Ansatz ist, dass alle Renditen das gleiche Gewicht zu verdienen. Yesterdays (sehr jüngsten) Rückkehr hat keinen Einfluss mehr auf die Varianz als die letzten Monate zurück. Dieses Problem wird durch Verwendung des exponentiell gewichteten gleitenden Mittelwerts (EWMA), bei dem neuere Renditen ein größeres Gewicht auf die Varianz aufweisen, festgelegt. Der exponentiell gewichtete gleitende Durchschnitt (EWMA) führt Lambda ein. Die als Glättungsparameter bezeichnet wird. Lambda muss kleiner als 1 sein. Unter dieser Bedingung wird anstelle der gleichen Gewichtungen jede quadratische Rendite durch einen Multiplikator wie folgt gewichtet: Beispielsweise neigt die RiskMetrics TM, eine Finanzrisikomanagementgesellschaft, dazu, eine Lambda von 0,94 oder 94 zu verwenden. In diesem Fall wird die erste ( (1 - 0,94) (94) 0 6. Die nächste quadrierte Rückkehr ist einfach ein Lambda-Vielfaches des vorherigen Gewichts in diesem Fall 6 multipliziert mit 94 5,64. Und das dritte vorherige Tagegewicht ist gleich (1-0,94) (0,94) 2 5,30. Das ist die Bedeutung von exponentiell in EWMA: jedes Gewicht ist ein konstanter Multiplikator (d. h. Lambda, der kleiner als eins sein muß) des vorherigen Gewichtes. Dies stellt eine Varianz sicher, die gewichtet oder zu neueren Daten voreingenommen ist. (Weitere Informationen finden Sie im Excel-Arbeitsblatt für die Googles-Volatilität.) Der Unterschied zwischen einfacher Volatilität und EWMA für Google wird unten angezeigt. Einfache Volatilität wiegt effektiv jede periodische Rendite von 0,196, wie in Spalte O gezeigt (wir hatten zwei Jahre täglich Aktienkursdaten, das sind 509 tägliche Renditen und 1509 0,196). Aber beachten Sie, dass die Spalte P ein Gewicht von 6, dann 5,64, dann 5,3 und so weiter. Das ist der einzige Unterschied zwischen einfacher Varianz und EWMA. Denken Sie daran: Nachdem wir die Summe der ganzen Reihe (in Spalte Q) haben wir die Varianz, die das Quadrat der Standardabweichung ist. Wenn wir Volatilität wollen, müssen wir uns daran erinnern, die Quadratwurzel dieser Varianz zu nehmen. Was ist der Unterschied in der täglichen Volatilität zwischen der Varianz und der EWMA im Googles-Fall? Bedeutend: Die einfache Varianz gab uns eine tägliche Volatilität von 2,4, aber die EWMA gab eine tägliche Volatilität von nur 1,4 (Details siehe Tabelle). Offenbar ließ sich die Googles-Volatilität in jüngster Zeit verringern, so dass eine einfache Varianz künstlich hoch sein könnte. Die heutige Varianz ist eine Funktion der Pior Tage Variance Youll bemerken wir benötigt, um eine lange Reihe von exponentiell sinkende Gewichte zu berechnen. Wir werden die Mathematik hier nicht durchführen, aber eine der besten Eigenschaften der EWMA ist, daß die gesamte Reihe zweckmäßigerweise auf eine rekursive Formel reduziert: Rekursiv bedeutet, daß heutige Varianzreferenzen (d. h. eine Funktion der früheren Tagesvarianz) ist. Sie können diese Formel auch in der Kalkulationstabelle zu finden, und es erzeugt genau das gleiche Ergebnis wie die Langzeitberechnung Es heißt: Die heutige Varianz (unter EWMA) ist gleichbedeutend mit der gestrigen Abweichung (gewichtet mit Lambda) plus der gestrigen Rückkehr (gewogen durch ein Minus-Lambda). Beachten Sie, wie wir sind nur das Hinzufügen von zwei Begriffe zusammen: gestern gewichtet Varianz und gestern gewichtet, quadriert zurück. Dennoch ist Lambda unser Glättungsparameter. Ein höheres Lambda (z. B. wie RiskMetrics 94) deutet auf einen langsameren Abfall in der Reihe hin - in relativer Hinsicht werden wir mehr Datenpunkte in der Reihe haben, und sie fallen langsamer ab. Auf der anderen Seite, wenn wir das Lambda reduzieren, deuten wir auf einen höheren Abfall hin: die Gewichte fallen schneller ab, und als direkte Folge des schnellen Zerfalls werden weniger Datenpunkte verwendet. (In der Kalkulationstabelle ist Lambda ein Eingang, so dass man mit seiner Empfindlichkeit experimentieren kann). Zusammenfassung Volatilität ist die momentane Standardabweichung einer Aktie und die häufigste Risikomessung. Es ist auch die Quadratwurzel der Varianz. Wir können Varianz historisch oder implizit messen (implizite Volatilität). Bei der historischen Messung ist die einfachste Methode eine einfache Varianz. Aber die Schwäche mit einfacher Varianz ist alle Renditen bekommen das gleiche Gewicht. So stehen wir vor einem klassischen Kompromiss: Wir wollen immer mehr Daten, aber je mehr Daten wir haben, desto mehr wird unsere Berechnung durch weit entfernte (weniger relevante) Daten verdünnt. Der exponentiell gewichtete gleitende Durchschnitt (EWMA) verbessert die einfache Varianz durch Zuordnen von Gewichten zu den periodischen Renditen. Auf diese Weise können wir beide eine große Stichprobengröße, sondern auch mehr Gewicht auf neuere Renditen. (Um ein Film-Tutorial zu diesem Thema zu sehen, besuchen Sie die Bionic Turtle.)
Thu, 11032011 - 23:34 IndicatorForex xProfuter Forex Predictor ist ein Forex-Indikator, der die Kursbewegung für die nächsten 10 Bars prognostiziert SPECIAL 597 BONUS PACK WICHTIG: Beim Kauf aus unserem speziellen Link erhalten Sie auch unser 597 SUPER Bonuspaket: 3 Powerful Forex Indicators (247 Worth) Scharfschützengenaues MT4-Handelssystem (77 Worth) Chart-Trading-eBook von einem Chart-Trading-Master geschrieben (273 Value) HINWEIS: Wenn Sie bereits einmal von unseren Links gekauft und bereits diese Boni erhalten haben, senden wir Ihnen NEU Boni jedes Mal, so ist es lohnt sich, auch weiterhin von uns zu kaufen :) Nach dem Kauf bitte senden Sie uns eine E-Mail an technicalindicatorforex mit Ihrem Plimus Quittung und youll erhalten Sie den Bonus. XProfuter Forex Predictor ist ein sehr leistungsstarker Forex-Indikator, der im Gegensatz zu 99,5 von Indikatoren tatsächlich die künftige Kursbewegung prognostiziert und Ihnen erlaubt, Trendwende Stunden vorher zu prognostizieren. Kein ander...
Comments
Post a Comment