Saturday 4 November 2017

Exponentiell Gewichtet Gleitender Durchschnitt Algorithmus


Ich habe eine Zeitreihe von Aktienkursen und möchte den gleitenden Durchschnitt über ein zehnminütiges Fenster berechnen (siehe Diagramm unten). Da Preisstöße sporadisch auftreten (d. h. sie sind nicht periodisch) scheint es am schönsten, einen zeitgewichteten gleitenden Durchschnitt zu berechnen. Im Diagramm gibt es vier Preisänderungen: A, B, C und D, wobei die letzteren drei im Fenster vorkommen. Beachten Sie, dass, da B nur einige Zeit in das Fenster (etwa 3 Minuten) eintritt, der Wert von A immer noch zur Berechnung beiträgt. In der Tat, soweit ich sagen kann, dass die Berechnung nur auf den Werten von A, B und C (nicht D) und den Dauern zwischen ihnen und dem nächsten Punkt (oder im Fall von A: die Dauer zwischen dem Start) basiert Des Zeitfensters und B). Zuerst wird D keine Wirkung haben, da seine Zeitgewichtung Null ist. Ist dies richtig Angenommen, das ist richtig, mein Anliegen ist, dass der gleitende Durchschnitt mehr als die nicht gewichtete Berechnung verzögern wird (was für den Wert von D sofort verantwortlich wäre). Allerdings hat die nicht gewichtete Berechnung ihre eigenen Nachteile: A würde Haben so viel Einfluss auf das Ergebnis wie die anderen Preise trotz der außerhalb des Zeitfensters. Eine plötzliche Aufregung von schnellen Preisstöcken würde den gleitenden Durchschnitt stark vorschneiden (obwohl dies vielleicht wünschenswert ist) Kann jemand irgendeinen Ratschlag anbieten, über welchen Ansatz am besten erscheint, oder ob es sich um einen alternativen (oder hybriden) Ansatz handelt, der es wert ist, 35 Ihre Argumentation ist richtig. Was willst du mit dem Durchschnitt aber ohne zu wissen, dass es schwer ist, irgendwelche Ratschläge zu geben. Vielleicht wäre eine Alternative, um Ihren laufenden Durchschnitt A zu betrachten, und wenn ein neuer Wert V kommt, berechnen Sie die neue durchschnittliche A zu (1-c) AcV, wobei c zwischen 0 und 1 ist. Auf diese Weise die neueren Zecken haben Ein stärkerer Einfluss, und die Wirkung von alten Zecken zerstreut sich im Laufe der Zeit. Sie könnten sogar c abhängig von der Zeit seit den vorherigen Zecken (c immer kleiner als die Zecken näher kommen). Im ersten Modell (Gewichtung) wäre der Durchschnitt jede Sekunde unterschiedlich (wie die alten Lesungen ein geringeres Gewicht und neue Messungen höher haben), so dass sich das immer ändernde, was nicht wünschenswert ist. Mit dem zweiten Ansatz, die Preise machen plötzliche Sprünge, wie neue Preise eingeführt werden und alte verschwinden aus Fenster. Antwortete Apr 14 12 at 21:50 Die beiden Vorschläge kommen aus der diskreten Welt, aber Sie könnten eine Inspiration für Ihren speziellen Fall finden. Schauen Sie sich die exponentielle Glättung an. In diesem Ansatz stellen Sie den Glättungsfaktor (01) vor, der Ihnen erlaubt, den Einfluss der neueren Elemente auf den Prognosewert zu ändern (ältere Elemente werden exponentiell abnehmende Gewichte zugewiesen): Ich habe eine einfache Animation erstellt, wie die exponentielle Glättung das verfolgen würde Eine einheitliche Zeitreihe x1 1 1 1 3 3 2 2 2 1 mit drei verschiedenen: Schauen Sie sich einige der Verstärkungslerntechniken an (siehe die verschiedenen Diskontierungsmethoden) zB TD-Learning und Q-Learning. Ja, der gleitende Durchschnitt wird natürlich verzögern. Dies ist, weil sein Wert historische Informationen ist: Es fasst die Stichproben des Preises in den letzten 10 Minuten zusammen. Diese Art von Durchschnitt ist inhärent laggy. Es hat einen eingebauten fünf Minuten Offset (weil ein Box-Durchschnitt ohne Offset würde auf - 5 Minuten, auf die Probe zentriert basieren). Wenn der Preis für eine lange Zeit bei A war und dann ein Mal auf B wechselt, dauert es 5 Minuten, bis der Durchschnitt erreicht ist (AB) 2. Wenn du durchschnittlich eine Funktion ohne Verschiebung in der Domain gibst, hat das Gewicht Gleichmäßig um den Probenpunkt verteilt zu sein. Aber das ist unmöglich für die in Echtzeit auftretenden Preise zu tun, da zukünftige Daten nicht verfügbar sind. Wenn Sie eine aktuelle Änderung, wie D, eine größere Wirkung haben wollen, verwenden Sie einen Durchschnitt, der ein größeres Gewicht für aktuelle Daten oder einen kürzeren Zeitraum oder beides gibt. Eine Möglichkeit, Daten zu glätten, ist einfach, einen einzigen Akkumulator (den geglätteten Schätzer) E zu verwenden und periodische Samples der Daten S zu nehmen. E wird wie folgt aktualisiert: I. e. Wird ein Bruchteil K (zwischen 0 und 1) der Differenz zwischen der aktuellen Preisprobe S und dem Schätzer E zu E. addiert. Angenommen, der Preis ist seit langem bei A, so dass E bei A ist und sich dann plötzlich ändert Zu B. Der Schätzer fährt fort, sich in Richtung B in einer exponentiellen Weise zu bewegen (wie Heizkühlung, Laden des Entladens eines Kondensators usw.). Zuerst wird es einen großen Sprung machen, und dann kleinere und kleinere Schritten. Wie schnell es sich bewegt, hängt von K ab. Wenn K 0 ist, bewegt sich der Schätzer überhaupt nicht, und wenn K 1 ist, bewegt er sich sofort. Mit K können Sie einstellen, wie viel Gewicht Sie dem Schätzer gegenüber der neuen Probe geben. Mehr Gewicht wird auf neuere Proben implizit gegeben, und das Beispielfenster erstreckt sich grundsätzlich bis unendlich: E basiert auf jedem Wert, der jemals aufgetreten ist. Obwohl natürlich sehr alte haben keinen Einfluss auf den aktuellen Wert. Eine sehr einfache, schöne Methode. Antwort # 14 am 12:50 Dies ist das gleiche wie Tom39s Antwort. Seine Formel für den neuen Wert des Schätzers ist (1 - K) E KS. Die algebraisch gleich E K (S - E) ist. Es ist eine quotlineare Mischfunktion zwischen dem aktuellen Schätzer E und dem neuen Abtastwert S, wobei der Wert von K 0, 1 die Mischung steuert. Es ist so schön und nützlich. Wenn K 0,7 ist, nehmen wir 70 von S und 30 von E, was das gleiche ist wie das Hinzufügen von 70 der Differenz zwischen E und S zurück zu E. ndash Kaz Apr 14 12 um 22:15 Bei der Erweiterung der Toms-Antwort ist die Formel Unter Berücksichtigung des Abstandes zwischen Zecken kann formalisiert werden (enge Zecken haben proportional geringere Gewichtung): a (tn - t n - 1) T das heißt, a ist ein Verhältnis von Delta der Ankunftszeit über das Mittelungsintervall v 1 (vorherige Punkt) oder v (1 - u) a (lineare Interpolation oder vu (nächster Punkt) Weitere Informationen finden Sie auf Seite 59 des Buches Eine Einführung in die Hochfrequenzfinanzierung. Exploring Die exponentiell gewichtete Moving Average Volatilität ist die häufigste Maßnahme Des Risikos, aber es kommt in mehreren Geschmacksrichtungen dar. In einem früheren Artikel haben wir gezeigt, wie man einfache historische Volatilität berechnet. (Um diesen Artikel zu lesen, siehe Volatilität verwenden, um zukünftiges Risiko zu beurteilen.) Wir haben Googles aktuelle Aktienkursdaten verwendet, um zu berechnen Tägliche Volatilität auf Basis von 30 Tagen Lagerbestände. In diesem Artikel werden wir die einfache Volatilität verbessern und den exponentiell gewichteten gleitenden Durchschnitt (EWMA) diskutieren. Historische Vs. Implizite Volatilität Zuerst können wir diese Metrik in ein bisschen Perspektive bringen. Es gibt zwei breite Ansätze: historische und implizite (oder implizite) Volatilität. Der historische Ansatz geht davon aus, dass Vergangenheit Prolog ist, messen wir die Geschichte in der Hoffnung, dass es prädiktiv ist. Implizite Volatilität hingegen 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 Lesung siehe die Verwendungen und Grenzen der Volatilität.) Wenn wir uns nur auf die drei historischen Ansätze konzentrieren (links oben), haben sie zwei Schritte gemeinsam: Berechnen Sie die Reihe der periodischen Renditen Bewerben Sie ein Gewichtungsschema Zuerst haben wir Berechnen Sie die periodische Rückkehr. Das ist typischerweise eine Reihe von täglichen Renditen, bei denen jede Rückkehr in kontinuierlich zusammengesetzten Begriffen ausgedrückt wird. Für jeden Tag nehmen wir das natürliche Protokoll des Verhältnisses der Aktienkurse (d. h. der Preis heute geteilt durch den Preis gestern und so weiter). Dies führt zu einer Reihe von täglichen Renditen, von u i zu 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. In dem vorherigen Artikel (mit Volatility To Gauge Future Risk), haben wir gezeigt, dass unter ein paar akzeptablen Vereinfachungen, die einfache Varianz ist der Durchschnitt der quadrierten Renditen: Beachten Sie, dass dies summiert jede der periodischen Renditen, dann teilt diese Summe durch die Anzahl der Tage oder Beobachtungen (m). Also, es ist wirklich nur ein Durchschnitt der quadratischen periodischen Rückkehr. Setzen Sie einen anderen Weg, jede quadratische Rückkehr wird ein gleiches Gewicht gegeben. Wenn also Alpha (a) ein Gewichtungsfaktor ist (speziell 1 m), dann sieht eine einfache Varianz so aus: Die EWMA verbessert sich auf einfache Abweichung Die Schwäche dieses Ansatzes ist, dass alle Renditen das gleiche Gewicht verdienen. Gestern (sehr neuere) Rückkehr hat keinen Einfluss mehr auf die Varianz als die letzten Monate zurück. Dieses Problem wird durch die Verwendung des exponentiell gewichteten gleitenden Durchschnitts (EWMA) behoben, bei dem neuere Renditen ein größeres Gewicht auf die Varianz haben. Der exponentiell gewichtete gleitende Durchschnitt (EWMA) führt Lambda ein. Der als Glättungsparameter bezeichnet wird. Lambda muss kleiner als eins sein. Unter dieser Bedingung wird anstelle von gleichen Gewichten jede quadrierte Rendite mit einem Multiplikator wie folgt gewichtet: Zum Beispiel neigt RiskMetrics TM, ein Finanzrisikomanagement-Unternehmen, dazu, ein Lambda von 0,94 oder 94 zu verwenden. In diesem Fall ist das erste ( (1 - 0,94) (94) 0 6. Die nächste quadratische 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 Exponential in EWMA: jedes Gewicht ist ein konstanter Multiplikator (d. h. Lambda, der kleiner als eins sein muss) des vorherigen Tagegewichts. Dies stellt eine Varianz sicher, die gewichtet oder voreingenommen auf neuere Daten ist. (Um mehr zu erfahren, schau dir das Excel-Arbeitsblatt für Googles-Volatilität an.) Der Unterschied zwischen einfacher Volatilität und EWMA für Google ist unten dargestellt. Die einfache Volatilität wirkt effektiv jede periodische Rendite um 0,196, wie in Spalte O gezeigt (wir hatten zwei Jahre täglich Kursdaten, das sind 509 tägliche Renditen und 1509 0,196). Aber beachten Sie, dass Spalte P ein Gewicht von 6, dann 5.64, dann 5.3 und so weiter zuteilt. Das ist der einzige Unterschied zwischen einfacher Varianz und EWMA. Denken Sie daran: Nachdem wir die ganze Serie (in Spalte Q) zusammengefasst haben, 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 EWMA im Googles-Fall Sein signifikant: 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 (siehe die Kalkulationstabelle für Details). Anscheinend hat sich die Googles-Volatilität in jüngster Zeit niedergelassen, eine einfache Varianz könnte künstlich hoch sein. Heutige Varianz ist eine Funktion von Pior Days Variance Youll bemerken wir brauchten, um eine lange Reihe von exponentiell abnehmenden Gewichten zu berechnen. Wir werden die Mathematik hier nicht machen, aber eines der besten Features der EWMA ist, dass die ganze Serie bequem auf eine rekursive Formel reduziert: Rekursive bedeutet, dass heutige Varianzreferenzen (d. h. eine Funktion der vorherigen Tagesabweichung) ist. Sie finden diese Formel auch in der Kalkulationstabelle, und sie erzeugt genau das gleiche Ergebnis wie die Langzeitberechnung Es heißt: Die heutige Varianz (unter EWMA) ist gleichbedeutend mit der vulkanischen Varianz (gewichtet durch Lambda) plus gestern quadrierte Rückkehr (gewogen von einem Minus Lambda). Beachten Sie, wie wir nur zwei Begriffe zusammenfügen: gestern gewichtete Varianz und gestern gewichtet, quadratische Rückkehr. Dennoch ist Lambda unser Glättungsparameter. Ein höheres Lambda (z. B. RiskMetrics 94) zeigt einen langsamen Abfall in der Serie an - in relativer Hinsicht werden wir mehr Datenpunkte in der Serie haben und sie werden langsamer abfallen. Auf der anderen Seite, wenn wir das Lambda reduzieren, zeigen wir einen höheren Zerfall an: die Gewichte fallen schneller ab, und als direkte Folge des schnellen Zerfalls werden weniger Datenpunkte verwendet. (In der Kalkulationstabelle ist Lambda ein Eingang, also kannst du mit seiner Empfindlichkeit experimentieren). Zusammenfassung Volatilität ist die momentane Standardabweichung eines Bestandes und die häufigste Risikometrität. Es ist auch die Quadratwurzel der Varianz. Wir können die Abweichung historisch oder implizit (implizite Volatilität) messen. Wenn man historisch misst, ist die einfachste Methode eine einfache Varianz. Aber die Schwäche mit einfacher Abweichung ist, dass alle Renditen das gleiche Gewicht bekommen. So stehen wir vor einem klassischen Kompromiss: Wir wollen immer mehr Daten, aber je mehr Daten wir haben, desto mehr wird unsere Berechnung durch entfernte (weniger relevante) Daten verdünnt. Der exponentiell gewichtete gleitende Durchschnitt (EWMA) verbessert die einfache Varianz durch die Zuordnung von Gewichten zu den periodischen Renditen. Auf diese Weise können wir beide eine große Stichprobengröße verwenden, aber auch ein größeres Gewicht auf neuere Renditen geben. (Um ein Film-Tutorial zu diesem Thema zu sehen, besuchen Sie die Bionic Turtle.) Der EWMA-Ansatz hat ein attraktives Merkmal: Es erfordert relativ wenig gespeicherte Daten. Um unsere Schätzung an jedem Punkt zu aktualisieren, benötigen wir nur eine vorherige Schätzung der Varianzrate und des letzten Beobachtungswertes. Ein sekundäres Ziel der EWMA ist es, Veränderungen in der Volatilität zu verfolgen. Für kleine Werte beeinflussen die jüngsten Beobachtungen die Schätzung umgehend. Bei Werten, die näher an einer liegen, ändert sich die Schätzung langsam auf der Grundlage der jüngsten Änderungen der Renditen der zugrunde liegenden Variablen. Die RiskMetrics-Datenbank (von JP Morgan produziert und öffentlich zugänglich gemacht) nutzt die EWMA mit der Aktualisierung der täglichen Volatilität. WICHTIG: Die EWMA-Formel übernimmt keine langfristige durchschnittliche Abweichung. So ist das Konzept der Volatilität die Reversion nicht von der EWMA erfasst. Die ARCHGARCH Modelle sind dafür besser geeignet. Ein sekundäres Ziel von EWMA ist es, Veränderungen in der Volatilität zu verfolgen, so dass für kleine Werte die jüngste Beobachtung die Schätzung umgehend beeinflussen wird, und für Werte, die näher an einem liegen, ändert sich die Schätzung langsam zu den jüngsten Veränderungen der Renditen der zugrunde liegenden Variablen. Die RiskMetrics-Datenbank (produziert von JP Morgan), die 1994 veröffentlicht wurde, nutzt das EWMA-Modell mit der Aktualisierung der täglichen Volatilitätsschätzung. Das Unternehmen stellte fest, dass über eine Reihe von Marktvariablen, dieser Wert der Prognose der Varianz, die am nächsten zu realisierten Varianz Rate kommt. Die realisierten Abweichungsraten an einem bestimmten Tag wurden in den folgenden 25 Tagen als gleichgewichteter Durchschnitt berechnet. Um den optimalen Wert von Lambda für unseren Datensatz zu berechnen, müssen wir die realisierte Volatilität an jedem Punkt berechnen. Es gibt mehrere Methoden, so wählen Sie eine. Als nächstes berechnen Sie die Summe der quadratischen Fehler (SSE) zwischen EWMA-Schätzung und realisierte Volatilität. Schließlich minimiere die SSE durch Variieren des Lambdawertes. Klingt einfach Es ist. Die größte Herausforderung besteht darin, einen Algorithmus zu vereinbaren, um die verwirklichte Volatilität zu berechnen. Zum Beispiel wählten die Leute bei RiskMetrics den folgenden 25-Tage-Tag, um die realisierte Varianzrate zu berechnen. In Ihrem Fall können Sie einen Algorithmus wählen, der Tägliche Volumen-, HILO - und OPEN-CLOSE-Preise nutzt. Q 1: Können wir EWMA verwenden, um die Volatilität mehr als einen Schritt voraus zu schätzen Die EWMA-Volatilitätsdarstellung nimmt keine langjährige durchschnittliche Volatilität ein, und für jeden prognostizierten Horizont über einen Schritt hinaus gibt die EWMA eine Konstante zurück Wert:

No comments:

Post a Comment