Monday 6 November 2017

Moving Average Data Mining


Moving Averages Ein gleitender Durchschnitt ist einer der flexibelsten und am häufigsten verwendeten technischen Analyse-Indikatoren. Es ist sehr beliebt bei den Händlern, vor allem wegen seiner Einfachheit. Es funktioniert am besten in einer Trendumgebung. Einleitung In der Statistik ist ein gleitender Durchschnitt einfach ein Mittelwert aus einer bestimmten Menge von Daten. Im Falle einer technischen Analyse werden diese Daten in den meisten Fällen durch die Schlusskurse der Bestände für die jeweiligen Tage repräsentiert. Jedoch verwenden einige Händler auch separate Mittelwerte für tägliche Minima und Maxima oder sogar einen Mittelwert von Mittelwerten (die sie durch Summieren von täglichem Minimum und Maximum und Teilen durch sie zwei berechnen). Dennoch können Sie einen gleitenden Durchschnitt auch auf einem kürzeren Zeitrahmen konstruieren, zum Beispiel mit Hilfe von Tages - oder Minuten-Daten. Zum Beispiel, wenn Sie einen 10-Tage gleitenden Durchschnitt machen wollen, fügen Sie nur alle Schlusskurse während der letzten 10 Tage und dann teilen sie um 10 (in diesem Fall ist es ein einfacher gleitender Durchschnitt). Am nächsten Tag tun wir dasselbe, nur dass wir die Preise für die letzten 10 Tage wieder nehmen, was bedeutet, dass der Preis, der der letzte in unserer Berechnung für den Vortag war, nicht mehr im heutigen Durchschnitt enthalten ist - er wird ersetzt durch gestern Preis. Die Datenverschiebung auf diese Weise mit jedem neuen Handelstag, daher der Begriff gleitenden Durchschnitt. Der Zweck und die Verwendung von gleitenden Durchschnitten in der technischen Analyse Der gleitende Durchschnitt ist ein Trendfolger. Sein Ziel ist es, den Beginn eines Trends zu erkennen, seinen Fortschritt zu verfolgen und seine Stornierung zu melden, falls er auftritt. Im Gegensatz zu Charting, bewegte Durchschnitte nicht erwarten, den Beginn oder das Ende eines Trends. Sie nur bestätigen, aber nur einige Zeit nach der tatsächlichen Umkehrung auftritt. Es stammt aus ihrer sehr Konstruktion, da diese Indikatoren ausschließlich auf historischen Daten basieren. Je weniger Tage ein gleitender Durchschnitt enthält, desto eher kann er eine Trendumkehr erkennen. Es ist wegen der Menge der historischen Daten, die stark beeinflusst den Durchschnitt. Ein gleitender 20-Tage-Durchschnitt generiert das Signal einer Trendumkehr früher als der 50-Tage-Durchschnitt. Jedoch ist es auch wahr, dass die wenigen Tage, die wir in der gleitenden Durchschnittsberechnung verwenden, die falschen Signale haben, die wir erhalten. Daher verwenden die meisten Händler eine Kombination aus mehreren Bewegungsdurchschnitten, die alle gleichzeitig ein Signal liefern müssen, bevor ein Trader seine Position auf dem Markt öffnet. Nichtsdestoweniger kann ein gleitender Durchschnitt hinter dem Trend nicht vollständig eliminiert werden. Trading Signale Jede Art von gleitenden Durchschnitt kann verwendet werden, um kaufen oder verkaufen Signale und dieser Prozess ist sehr einfach. Die Diagrammsoftware zeichnet den gleitenden Durchschnitt als Linie direkt in den Preisplan. Signale werden an Orten erzeugt, wo die Preise diese Linien schneiden. Wenn der Kurs über die gleitende Durchschnittslinie hinausgeht, bedeutet dies den Beginn eines neuen Aufwärtstrends und somit ein Kaufsignal. Auf der anderen Seite, wenn der Preis kreuzt unter der gleitenden durchschnittlichen Linie und der Markt schließt auch in diesem Bereich, signalisiert es den Beginn eines Abwärtstrend und daher stellt es ein Verkaufssignal. Using mehrere Mittelwerte Wir können auch für die Verwendung mehrerer bewegen Mittelungen gleichzeitig, um das Lärm in den Preisen und vor allem die falschen Signale (whipsaws), die die Verwendung eines einzigen gleitenden Durchschnitt ergibt, zu beseitigen. Wenn mehrere Mittelwerte verwendet werden, tritt ein Kaufsignal auf, wenn der kürzere der Durchschnittswerte über dem längeren Durchschnitt liegt, z. B. Die 50-Tage-Durchschnitt kreuzt über dem 200-Tage-Durchschnitt. Umgekehrt wird ein Verkaufssignal in diesem Fall erzeugt, wenn der 50-tägige Durchschnitt unter dem 200-Durchschnitt liegt. Ähnlich können wir auch eine Kombination von drei Durchschnittswerten verwenden, z. B. Einem 5-Tage-, 10-Tage - und 20-Tage-Durchschnitt. In diesem Fall wird ein Aufwärtstrend angezeigt, wenn die 5-Tage-Durchschnittslinie über dem 10-Tage-Durchschnitt liegt, während der 10-Tage-Durchschnitt immer noch über dem 20-Tage-Durchschnitt liegt. Jede Kreuzung von gleitenden Durchschnitten, die zu dieser Situation führt, gilt als Kaufsignal. Umgekehrt wird der Abwärtstrend durch die Situation angezeigt, wenn die 5-tägige Durchschnittslinie niedriger als der 10-Tage-Durchschnitt ist, während der 10-Tage-Durchschnitt niedriger als der 20-Tage-Durchschnitt ist. Mit drei gleitenden Durchschnittswerten wird gleichzeitig der Betrag von falsch begrenzt Die durch das System generiert werden, aber auch das Gewinnpotenzial begrenzen, da ein solches System nur dann ein Handelssignal erzeugt, wenn der Trend im Markt fest etabliert ist. Das Eingangssignal kann auch nur kurz vor der Trendumkehr erzeugt werden. Die Zeitintervalle, die von Händlern zur Berechnung von Bewegungsdurchschnitten verwendet werden, sind ganz anders. Zum Beispiel sind die Fibonacci-Zahlen sehr beliebt, wie die Verwendung von 5-Tage-, 21-Tage-und 89-Tage-Mittelwerte. Im Futures-Handel ist die Kombination 4-, 9- und 18-Tage sehr beliebt. Vor - und Nachteile Der Grund, warum bewegte Durchschnitte so populär gewesen sind, ist, dass sie einige grundlegende Regeln des Handels reflektieren. Die Verwendung von gleitenden Durchschnitten hilft Ihnen, Ihre Verluste zu reduzieren, während Sie Ihre Gewinne laufen lassen. Bei der Verwendung von bewegten Durchschnitten, um Handelssignale zu generieren, handeln Sie immer in Richtung Markttrend, nicht dagegen. Darüber hinaus können, im Gegensatz zu Chart-Muster-Analyse oder andere sehr subjektiven Techniken, Bewegungsdurchschnitte verwendet werden, um Handelssignale nach klare Regeln zu generieren - damit Beseitigung der Subjektivität der Handelsentscheidungen, die die Händler Psyche helfen können. Allerdings ist ein großer Nachteil der gleitenden Durchschnitte, dass sie nur funktionieren, wenn der Markt ist Trends. Daher, in Zeiten der choppy Märkte, wenn die Preise in einer bestimmten Preisspanne schwanken sie überhaupt nicht funktionieren. Diese Periode kann leicht dauern mehr als ein Drittel der Zeit, so dass sich auf bewegte Durchschnitte allein ist sehr riskant. Einige Händler empfehlen, die Kombination von gleitenden Durchschnitten mit einem Indikator, der die Stärke eines Trends misst, wie ADX, oder die Verwendung von gleitenden Durchschnittswerten nur als Bestätigung für Ihr Handelssystem. Arten von gleitenden Durchschnitten Die am häufigsten verwendeten Arten von gleitenden Durchschnitten sind Simple Moving Average (SMA) und Exponential Weighted Moving Average (EMA, EWMA). Diese Art von gleitendem Durchschnitt ist auch als arithmetisches Mittel bekannt und stellt den einfachsten und am häufigsten verwendeten Typ des gleitenden Durchschnitts dar. Wir berechnen sie, indem wir alle Schlusskurse für einen gegebenen Zeitraum zusammenfassen, den wir dann durch die Anzahl der Tage in der Periode dividieren. Allerdings sind mit dieser Art von Durchschnitt zwei Probleme verbunden: Sie berücksichtigt nur die Daten, die in der ausgewählten Periode enthalten sind (zB berücksichtigt ein 10-Tage einfacher gleitender Durchschnitt nur die Daten der letzten 10 Tage und ignoriert einfach alle anderen Daten Vor diesem Zeitraum). Es wird auch oft für die Zuteilung gleicher Gewichte zu allen Daten in dem Datensatz kritisiert (d. H. In einem 10-tägigen gleitenden Durchschnitt hat ein Preis von 10 Tagen das gleiche Gewicht wie der Preis von gestern -10). Viele Händler argumentieren, dass die Daten aus den letzten Tagen sollten mehr Gewicht als ältere Daten - was dazu führen würde, dass die Verringerung der Mittelwerte lag hinter dem Trend. Diese Art von gleitenden Durchschnitt löst beide Probleme mit einfachen gleitenden Durchschnitten verbunden. Erstens, es verteilt mehr Gewicht in seiner Berechnung auf die jüngsten Daten. Er spiegelt teilweise auch alle historischen Daten für das jeweilige Instrument wider. Diese Art von Durchschnitt wird entsprechend der Tatsache benannt, dass die Datengewichte der Vergangenheit exponentiell abnehmen. Die Steigung dieser Abnahme kann an die Bedürfnisse des Händlers angepasst werden. Stellen Sie sich vor, Sie haben Daten über die Preise für viele Produkte. Für jedes der Produkte, die Sie wöchentlich Preisinformationen aufzeichnen. Clear set obs 200 gen prodid n Jedes Produkt hat einen einzigartigen Durchschnittspreis gen prodprice rpoisson (5) 7 Sie haben Daten zu Wochenpreisen für 200 Wochen. Erweitern 200 bysort prodid: gen tn label var t Woche Es gibt auch einige saisonale Variation gen saisonale .2sin (pit50) Sowie eine allgemeine Zeit Trend Gen Trend t.005 Die erste Beobachtung ist nicht mit etwas genauer Preis prodprice2.5 Trend korreliert (10) 10 wenn t1 ersetzen Preis prodprice2 Trend saisonale .7pricen-1 .3rpoisson (10) 10 wenn t2 ersetzen Preis prodprice Trend saisonale .5pricen-1 .2pricen-2 .3rpoisson (10) 10 wenn t3 ersetzen Preis prodprice Trend saisonale .3pricen-1 .2pricen-2 .2pricen-3 .3rpoisson (10) 10 wenn t4 ersetzen Preis prodprice Trend saisonale .3pricen-1 .175pricen-2 .125pricen-3 .1pricen-4 .3rpoisson (10) 10 if tgt4 Create Ein globaler globaler Index für den globalen Twograph (line price t, wenn prodid i) twoway twograph, Legende (off) title (wahre Preisentwicklung für erste sechs Produkte) Nun können wir uns vorstellen, dass die oben erzeugten Daten die wahre Preisinformation sind Ist grundsätzlich nicht zu beurteilen. Stattdessen haben Sie mehrere Sammlungen von Daten pro Woche zu Preisen, die jeweils von einigen zufälligen addative Fehler variieren. Erweitern Sie 3 bysort prodid t: gen prodobs n gen pricecollect Preis rnormal () 25 Allerdings haben die Preisinformationen, die Sie haben einige Einträge, die 10 falsch falsch eingegeben wurden. (1, .1) gen scalarerror rnormal () 1 gen Priceobs pricecols (1entryerrorscalarerror) Label var priceobs Aufgezeichneter Preis Darüber hinaus wurden 35 Ihrer Preisdaten nie gesammelt Gen fehlende rbinomial (1, .35) drop, wenn missing1 Erstellen Eine globale zu speichern globalen twograph forv i 16 globalen twograph (line priceobs t, wenn prodid i amp prodobs1) twoway twograph, legend (aus) titel (Beobachtete Preisentwicklung für die ersten sechs Produkte) halten t priceobs prodid entryerror Ich halte Eintrag Fehler in der Datensatz als Vergleichsmittel, obwohl es nicht direkt beobachtet werden würde. Die Frage ist: Können Sie jetzt mit diesem chaotisch Daten erholen Preis Daten, die ähnlich wie die ursprüngliche Die erste Sache, die wir ausnutzen sollten, ist die doppelten aufgezeichneten Daten. Scatter priceobs t, wenn prodid 1, title (es ist einfach, einzelne Abweichungen zu sehen) Es ist einfach, einzelne Abweichungen zu sehen, aber wir wollen nicht durch alle 200 Produkte gehen, um einzeln Preisausreißer zu identifizieren. Wir wollen ein System zur Identifizierung von Ausreißern entwickeln. Lets Erzeugung eines Mittels durch Produkt und Zeit bysort Prodid t: egen pricemean mean (priceobs) Lässt Flagge jede Beobachtung, die 120 größer ist als die mittlere oder 80 weniger als der Mittelwert. Gen flag (pricemean gt priceobs1.2 pricemean lt priceobs.8) Lets sehen, wie es funktioniert: zwei (scatter priceobs t, wenn prodid 1) (scatter priceobs t, wenn prodid 1 amp flag1.msymbol (lgx)). Title (Einige Ausreißer können nur mit dem Mittelwert identifiziert werden) Legende (aus) corr flag entryerror Unsere Flagge ist etwa 45 mit den Eintragsfehlern korreliert. Das ist gut, aber wir können es besser machen. Ich schlage vor, dass anstatt nur die Mittel, dass wir einen gleitenden Durchschnitt der Preise zu konstruieren und sehen, wie jeder Eintrag abweicht aus dem Durchschnitt. Das einzige Problem ist, dass der Moving Average-Befehl xtset benötigt und das nur einen Eintrag pro Zeitabschnitt erfordert. So, sage ich, dass wir die Zeitvariable neu skalieren und addieren, als ob aufgezeichnet zu einer anderen Zeit der Woche die Beobachtungszahl. Wir müssen Prodobs neu generieren, da wir nicht wissen, welche Beobachtung bei jedem Produkt fehlt. Bysort prodid t: gen prodobs n gen t2 t4 prodobs xtset setzt die Panel-Datenfeld-ID und Zeitreihenebene. Xtset prodid t2 Der Befehl, den wir verwenden werden, ist tssmooth. Es ist so kodiert, dass durch die Angabe ma bedeutet es gleitenden Durchschnitt und Fenster sagt Stata, wie viele Zeiträume zu zählen und wie viele hinter in der bewegten Luftfahrt. Dieser Befehl kann etwas dauern. Tssmooth ma mapriceobspriceobs, Fenster (23 0 23) 23 ist in der Tat 5 Wochen vor und 5 Wochen dahinter Die 0 sagt Stata nicht inself in diesem Durchschnitt einschließen Der gleitende Durchschnitt zwei (scatter priceobs t, wenn prodid 1) (line mapriceobs t, wenn prodid 1) (Zeile pricemean t, wenn prodid 1). Titel (Der bewegliche Durchschnitt ist weniger anfällig für Ausreißer) Der gleitende Durchschnitt ist stabiler als nur der Zeitmittelwert. Lets try markieren mit dem gleitenden Durchschnitt cap drop flag2 gen flag2 (mapriceobs gt priceobs1.2 mapriceobs lt priceobs.8) zwei (scatter priceobs t, wenn prodid 1) (scatter priceobs t, wenn prodid 1 amp flag21.msymbol (lgx)). Title (Der Moving Average kann auch nützlich sein) Legende (aus) corr flag2 entryerror Drop unsere markierten Daten fallen, wenn flag21 Collapse auf die wöchentliche Ebene collapse priceobs, durch (prodid t) Label var priceobs Durchschnittlicher Preis beobachtet forv i 16 globalen Twograph (Scatter Priceobs t, wenn prodid i) twoway twograph, Legende (off) title (Beobachtete Preisentwicklung für die ersten sechs Produkte) Die Daten sehen viel besser aus, aber wir haben immer noch eindeutig einige unerwünschte Ausreißer. Wir konnten die Cross-Produkt-Trends nutzen, um Ausreißer bei Produktpreisen zu identifizieren. Bysort t: egen aveprice Mittelwert (Priceobs) reg priceobs aveprice wenn prodid 1 vorhergesagt resid1, residual reg priceobs aveprice wenn prodid 2 prognostizieren resid2, residual reg priceobs aveprice, wenn prodid 3 prognose resid3, residual twoway (line resid1 t, wenn prodid 1) (line Priceobs t, wenn prodid 2) (line resid2 t, wenn prodid 2) (Zeile residu t, wenn prodid 2) Title (Die Residuen sind eindeutige Indikatoren für Ausreißer) Legende (off) Schließlich lassen wir Beobachtungen mit Residuen fallen, die größer als 1,5 Standardabweichungen vom Mittelwert sind. Qui forv i1200 reg priceobs aveprice if prodid ich prognostiziere residtemp, residual sum residtemp ersetzen flag ((residtemp-r (mittel) gtr (sd) 1.5 residtemp-r (mittel) drop residtemp Lets sehen, wie es funktioniert: zwei (scatter priceobs t Legende (Aus) Plottenprodukt 1 Preisfeststellung relativ zu Ausreißern globaler Twograph forv i 16 globaler Twograph ((nur), wenn prodid 2 amp flag1.msymbol (lgx) Line Prädikaten t, wenn prodid i) Endgültig fallen die Ausreißer fallen, wenn Flag Ein endgültiger Graph globalen Twograph forv i 16 globalen Twog (Scatter Priceobs t, wenn prodid i) twoway twograph, Legende (off) Titel (Observed Preisentwicklung für die ersten sechs Produkte) Nicht So sauber wie unsere erste Grafik, aber definitiv viel verbessert. Moving Average Glättung Beispiel Dieses Beispiel veranschaulicht, wie die XLMiners Moving Average Glättungstechnik verwenden, um Trends in einer Zeitreihe, die Saisonalität enthält aufzudecken. Wählen Sie auf der XLMiner-Multifunktionsleiste auf der Registerkarte Anwenden Ihres Modells Hilfe - Beispiele. Dann ForecastingData Mining Beispiele. Und öffnen Sie den Beispieldatensatz Airpass. xlsx. Dieser Datensatz enthält die monatlichen Summen der internationalen Fluggäste von 1949-1960. Nachdem der Beispieldatensatz geöffnet ist, klicken Sie auf eine Zelle im Datensatz, und wählen Sie dann auf der Registerkarte Zeitreihenfolge auf dem XLMiner-Band die Option Partition, um das Dialogfeld Time Series Partition Data zu öffnen. Wählen Sie Monat als Zeitvariable und Passagiere als Variablen in den Partitionsdaten aus. Klicken Sie auf OK, um die Daten in Trainings - und Validierungssets zu partitionieren. (Klicken Sie auf das DataPartitionTS-Arbeitsblatt und dann auf das XLMiner-Farbband auf der Registerkarte Zeitreihe, wählen Sie Glättung - Gleitender Durchschnitt, um das Dialogfeld "Gleitender Durchschnitt" zu öffnen. Monat wurde bereits als Zeitvariable ausgewählt. Wählen Sie Passagiere als Ausgewählte Variable aus. Da dieser Datensatz voraussichtlich eine Saisonalität einschließen wird (d. H. Die Zahl der Fluggastpassagiere während der Ferien und Sommermonate), sollte der Wert für das Intervallparametergewicht die Länge eines Saisonzyklus (d. h. 12 Monate) betragen. Geben Sie 12 für Intervall ein, und wählen Sie bei der Validierung die Option Prognose erstellen aus. Klicken Sie auf OK, um die Glättungsmethode auf den partitionierten Datensatz anzuwenden. Zwei Arbeitsblätter, MASmoothingOutput und MASmoothingStored. Werden sofort rechts neben dem DataPartitionTS-Arbeitsblatt eingefügt. Weitere Informationen zum MASmoothingStored-Arbeitsblatt finden Sie im Abschnitt Applying Your Model - Scoring New Data. Klicken Sie auf das MASmoothingOutput-Arbeitsblatt. Der Zeitplan der tatsächlichen Vs. Prognose (Trainingsdaten) und (Validierungsdaten) zeigen, dass die Moving Average Smoothing-Technik nicht zu einer guten Anpassung führt, da das Modell die Saisonalität im Datensatz nicht effektiv erfassen kann. Die Sommermonate, in denen die Zahl der Fluggäste in der Regel hoch ist, scheinen unterproportional zu sein, und in den Monaten, in denen die Anzahl der Fluggäste niedrig ist, führt das Modell zu einer zu hohen Prognose. Eine gleitende Durchschnittsprognose sollte niemals verwendet werden, wenn der Datensatz Saisonalität enthält. Eine Alternative wäre, eine Regression auf dem Modell durchzuführen und diese Technik dann auf die Residuen anzuwenden. Das nächste Beispiel beinhaltet nicht Saisonalität. Wählen Sie auf dem XLMiner-Farbband auf der Registerkarte Anwenden Ihres Modells die Option Hilfe - Beispiele aus. Dann wählen Sie ForecastingData Mining Beispiele. Und öffnen Sie den Beispieldatensatz Income. xlsx. Dieser Datensatz enthält das durchschnittliche Einkommen der Steuerzahler nach Staat. Zuerst wird der Datensatz in Trainings - und Validierungssets unter Verwendung von Jahr als Zeitvariable und CA als Variablen in den Partitionsdaten partitioniert. Klicken Sie auf OK, um die Partitionierungsstandards zu akzeptieren und die Trainings - und Validierungssets zu erstellen. Das Arbeitsblatt DataPartitionTS wird sofort rechts neben dem Income-Arbeitsblatt eingefügt. Klicken Sie auf das DataPartitionTS-Arbeitsblatt und dann auf das XLMiner-Band auf der Registerkarte Zeitreihe, wählen Sie Glättung - Gleitender Durchschnitt, um das Dialogfeld Gleitender Durchschnitt zu öffnen. Jahr wurde automatisch als Zeitvariable ausgewählt. Wählen Sie CA als ausgewählte Variable aus, und wählen Sie unter Ausgabeoptionen die Option Prognose erstellen aus. Klicken Sie auf OK, um die Moving Average Smoothing-Technik auszuführen. Zwei Arbeitsblätter, MASmoothingOutput und MASmoothingStored. Werden rechts neben dem DataPartitionTS-Arbeitsblatt eingefügt. Weitere Informationen zum MASmoothingStored-Arbeitsblatt finden Sie im Abschnitt Applying Your Model - Scoring New Data. Die Ergebnisse der Moving Average Smoothing-Technik auf diesem Datensatz zeigen eine viel bessere Passform.

No comments:

Post a Comment