Ich habe die Diskussion gelesen, die du erwähnt hast. Es gilt für PostgreSQL, da es erlaubt ist, benutzerdefinierte Aggregatfunktion mit SQL in PostgreSQL zu erstellen, aber nicht in SQL Server erlaubt. Mit rekursiven CTE ist ein machbarer Weg in SQL Server, aber ich merke, dass CTE-Weg kann mehr Tabellen-Scan als Fenster-Funktionen entstehen. Also mache ich diesen Beitrag zu fragen, ob es möglich ist, exponentiell gleitenden Durchschnitt mit SQL Server 2012 Fenster Funktion zu berechnen, wie die Berechnung einfacher gleitender Durchschnitt. Ndash xiagao1982 Apr 14 13 at 2:53 Zuerst berechnen Sie die EMA (SMA (x)) anstelle der EMA (x). Zweitens ist dein quotsmoothing constantquot eigentlich der Beta-Wert in meiner Formel, nicht das Alpha. Mit diesen beiden Änderungen sieht das SQLFiddle so aus: sqlfiddle6191921 Allerdings gibt es noch einen kleinen Unterschied zwischen dem tatsächlichen Ergebnis und dem erwarteten Ergebnis. Ich würde zurückgehen und sehen, ob ihre EMA-Definition mit dem übereinstimmt, den ich kenne. Ndash Sebastian Meine Mai 7 13 um 13:46 Ich habe gerade auf die Formular in der Kalkulationstabelle Sie befestigt und es ist weg von der Standard-EMA-Definition. Meine Formel berechnet den exponentiellen gleitenden Durchschnitt der letzten zehn Zeilen. Die Kalkulationstabelle berechnet zunächst den Standard-Durchschnitt ü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 7. Mai 13 um 13: 52Im Versuch, einen exponentiellen gleitenden Durchschnitt (EMA) auf postgres zu implementieren, aber wie ich die Dokumentation überprüfe und darüber nachdenke, desto mehr versuche ich das mehr verwirrt Ich bin. Die Formel für EMA (x) lautet: Es scheint perfekt für einen Aggregator zu sein, wobei das Ergebnis des zuletzt berechneten Elements genau das ist, was hier zu tun ist. Allerdings erzeugt ein Aggregator ein einziges Ergebnis (wie reduzieren oder falten) und hier benötigen wir eine Liste (eine Spalte) von Ergebnissen (als Karte). Ich habe überprüft, wie Prozeduren und Funktionen funktionieren, aber AFAIK produzieren sie eine einzelne Ausgabe, keine Spalte. Ich habe viele Prozeduren und Funktionen gesehen, aber ich kann nicht herausfinden, wie dies mit der relationalen Algebra interagiert, besonders wenn man so etwas macht, eine EMA. Ich hatte noch kein Glück, die Internets zu suchen. Aber die Definition für eine EMA ist ganz einfach, ich hoffe es ist möglich, diese Definition in etwas zu übersetzen, das in postgres arbeitet und einfach und effizient ist, weil das Umziehen auf NoSQL in meinem Kontext übertrieben wird. Ist das Berechnen der Aggregation, die das Ergebnis in jeder Zeile für jede Unterliste der Eingabedaten erzeugt. Da es so aussieht, dass es den Aggregator bis zur Zeile n verwendet, kehrt das Ergebnis zurück und geht dann in die Zeile 0, um die Aggregation bis zur Zeile n1 zu berechnen Nochmals. Gibt es eine Möglichkeit, die Akkumulation oder eine statische Variable (wie in C) zu verwenden, so dass dies einmal berechnet werden muss Danke. Ndash Trylks Jan 20 12 um 11:59 Nein, es kennt den kumulierten Wert. Wenn Sie die Abfrage mit dem Quoten-Info-Quot-Befehl unkommentiert ausführen, können Sie sehen, dass die Funktion nur einmal für jede Zeilenausgabe aufgerufen wird. Postgresql gibt den Statuswert auf jeder Zeile aus (falls ein finalfunc definiert ist, der aufgerufen wird, den Zustand in einen Ausgangswert umzuwandeln). Ndash araqnid 20. Januar um 12:04 ErwinBrandstetter: Ich habe die meisten Änderungen zurückgestellt - bei dem Format des ersten (Anker-) Teils der Abfrage kann EMA (x1) mit einer einzigen Zeile klar dargestellt werden Corespnds auf die einzelne Zeile definieren sie in der Frage. Im Falle des rekursiven Teils der Abfrage habe ich mn - 1 in der Join - Bedingung verwendet, um die Äquivalenz der Beziehung zu EMA (xn - 1) in der Frage anzuzeigen, obwohl dies weniger performant ist, wenn die Leistung ein ist Problem, das OP kann die Join-Bedingung ändern, um zu sein, wie Sie vorgeschlagen haben. Ndash Mark Bannister Jan 16 12 at 9: 27Was ist die Exponential Moving Average (EMA) Formel und wie wird die EMA berechnet Der exponentielle gleitende Durchschnitt (EMA) ist ein gewichteter gleitender Durchschnitt (WMA), der mehr Gewichtung oder Bedeutung für die jüngsten gibt Preisdaten als der einfache gleitende Durchschnitt (SMA) tut. Die EMA reagiert schneller auf aktuelle Preisänderungen als die SMA. Die Formel für die Berechnung der EMA beinhaltet nur die Verwendung eines Multiplikators und beginnend mit dem SMA. Die Berechnung für die SMA ist sehr einfach. Die SMA für eine beliebige Anzahl von Zeiträumen ist einfach die Summe der Schlusskurse für diese Anzahl von Zeiträumen, geteilt durch die gleiche Anzahl. So ist zum Beispiel eine 10-tägige SMA nur die Summe der Schlusskurse für die letzten 10 Tage, geteilt durch 10. Die drei Schritte zur Berechnung der EMA sind: Berechnen Sie die SMA. Berechnen Sie den Multiplikator für die Gewichtung der EMA. Berechnen Sie die aktuelle EMA. Die mathematische Formel, in diesem Fall für die Berechnung einer 10-Perioden-EMA, sieht so aus: SMA: 10 Periodensumme10 Berechnung des Gewichtungsmultiplikators: (2 (ausgewählter Zeitraum 1)) (2 (10 1)) 0,1818 (18,18) Berechnung Die EMA: (Schlusskurs-EMA (Vortag)) x Multiplikator EMA (Vortag) Die Gewichtung des jüngsten Preises ist für einen kürzeren Zeitraum EMA größer als für einen längeren Zeitraum EMA. Beispielsweise wird ein 18.18-Multiplikator auf die aktuellsten Preisdaten für eine 10 EMA angewendet, während für eine 20 EMA nur eine 9.52-Multiplikator-Gewichtung verwendet wird. Es gibt auch leichte Abweichungen der EMA angekommen, indem sie den offenen, hohen, niedrigen oder mittleren Preis anstatt den Schlusskurs verwenden. Verwenden Sie den exponentiellen gleitenden Durchschnitt (EMA), um eine dynamische Devisenhandelsstrategie zu erstellen. Erfahren Sie, wie EMAs sehr genutzt werden können. Antwort lesen Lernen Sie die wichtigen potenziellen Vorteile der Verwendung eines exponentiellen gleitenden Durchschnittes beim Handel, anstatt einer einfachen Bewegung. Antwort lesen Lernen Sie über einfache gleitende Durchschnitte und exponentielle gleitende Durchschnitte, was diese technischen Indikatoren messen und den Unterschied. Antwort lesen Lernen Sie die Formel für die gleitende durchschnittliche Konvergenz Divergenz Momentum Indikator und finden Sie heraus, wie die MACD zu berechnen. Lesen Sie die Antwort Erfahren Sie mehr über verschiedene Arten von gleitenden Durchschnitten, sowie gleitende durchschnittliche Übergänge und verstehen, wie sie verwendet werden. Lesen Sie Antwort Entdecken Sie die primären Unterschiede zwischen exponentiellen und einfachen gleitenden durchschnittlichen Indikatoren, und was Nachteile EMAs können. Antwort lesen
No comments:
Post a Comment