Thursday, 30 November 2017

Exponentiell glidande medelvärde sql server


Jag har läst den diskussion du nämnde. Den är tillämplig på PostgreSQL eftersom det är tillåtet att skapa användardefinierad aggregatfunktion med SQL i PostgreSQL, men inte tillåtet i SQL Server. Att använda rekursiv CTE är ett genomförbart sätt i SQL Server, men jag märker att CTE-vägen kan leda till mer tabellskanning än fönsterfunktioner. Så jag gör det här inlägget för att fråga om det är möjligt att beräkna exponentiell glidande medelvärde genom att använda SQL Server 2012-fönsterfunktionen precis som att beräkna enkelt glidande medelvärde. ndash xiagao1982 14 apr 13 kl 2:53 Först beräknar du EMA (SMA (x)) istället för EMA (x). För det andra är din quotsmoothing constantquot faktiskt beta-värdet i min formel, inte alfabetet. Med dessa två förändringar ser SQLFiddle ut så här: sqlfiddle6191921 Det finns dock fortfarande en liten skillnad mellan det faktiska resultatet och det förväntade resultatet. Jag skulle gå tillbaka och se om deras EMA-definition matchar den jag känner. ndash Sebastian Meine 7 maj 13 kl 13:46 Jag tittade bara på formuläret i kalkylbladet du bifogade och det är långt ifrån standard EMA-definitionen. Min formel beräknar exponentiell glidande medelvärde för de senaste tio raderna. Kalkylbladet beräknar först standardvärdet under de senaste tio raderna och sedan det obegränsade exponentiellt vägda glidande genomsnittet över alla medelvärden. Detta följer formuläret här: en. wikipedia. orgwikiEWMAchart ndash Sebastian Meine 7 maj kl 13: 52Detta är en Evergreen Joe Celko fråga. Jag ignorerar vilken DBMS-plattform som används. Men i alla fall kunde Joe svara mer än 10 år sedan med standard SQL. Joe Celko SQL Pussel och svar citation: Det senaste uppdateringsförsöket antyder att vi skulle kunna använda predikatet för att konstruera en fråga som skulle ge oss ett glidande medelvärde: Är den extra kolumnen eller frågeställningen bättre Frågan är tekniskt bättre eftersom UPDATE-metoden kommer att denormalisera databasen. Om de historiska data som registreras inte kommer att förändras och beräkningen är det rörliga genomsnittet är dyrt, kan du överväga att använda kolumninriktningen. SQL Pusselfråga: för all del enhetlig. Du kastar bara till lämplig vikthink beroende på avståndet från aktuell tidpunkt. Till exempel kvittot vikt1 för datapoäng inom 24 timmar från nuvarande datapoint weight0.5 för datapoäng inom 48hrsquot. I det fallet spelar det roll hur mycket efterföljande datapoäng (som 6:12 och 11:48) är avlägsna från varandra. Ett användningsfall som jag kan tänka på skulle vara ett försök att släta histogramet där datapunkter inte är täta nog. Ndash msciwoj 27 maj 15 på 22:22 Jag är inte säker på att ditt förväntade resultat (output) visar klassiskt enkelt rörligt (rullande) medelvärde i 3 dagar. Eftersom exempelvis den första trippeln av siffror per definition ger: men du förväntar dig 4,360 och det är förvirrande. Ändå föreslår jag följande lösning, som använder fönsterfunktion AVG. Detta tillvägagångssätt är mycket effektivare (tydligare och mindre resursintensivt) än SELF-JOIN infört i andra svar (och jag är förvånad över att ingen har givit en bättre lösning). Du ser att AVG är förpackad med fall då rownum gt pays sedan för att tvinga NULL s i första raden, där 3 dagars rörande medelvärde är meningslöst. svarade 23 februari 16 kl 13:12 Vi kan använda Joe Celkos smutsiga vänster yttre anslutningsmetod (som citerad ovan av Diego Scaravaggi) för att svara på frågan som den ställdes. Genererar den begärda utgåvan: svarat jan 9 16 på 0:33 Ditt svar 2017 Stack Exchange, IncVi har en utmaning som försöker sätta 20 (handelsdagarna) Exponentiell Moving Average (EMA) i vår datormodell i PowerPivot. Här är EMA-formuläret och provkalkylbladet: stockchartsschooldoku. phpidchartschool: technicalindicators: movingaverages Klistrade formeln här för enkelhets skull: SMA (enkel glidande medelvärde): 10 period summa 10 Multiplikator: 2 (Tidsperiod 43 1)) EMA: x multiplikator 43 EMA (föregående dag). Exempel på kalkylblad stockchartschooldatamediachartschooltechnicalindicatorsandoverlaysmovingaveragescs-movavg. xls I vår modell har faktatabellen dessa kolumner: Symboldatum Öppet Högt lågt stängt volym Och i kalendertabellen identifierade vi handelsdagarna (CalendarTradingDayNumber) som 1 så vi kan räkna dem tillbaka. Vi vill ha EMA-beräknat fält i ett pivottabell som detta Filter-sammanhang: ett datum valt på CalendarFullDate Radkontext: FactTableSymbol-värden: FactTableClose FactTableEMA 20D gtgt Saknas Hittills har vi fått dessa beräknade fält: Ema Multiplikator 2 (Period 43 1) Genomsnittlig 20D CLOSE IF (Summan av CLOSEBLANK (), BLANK (), (BERÄKTA (AVERAGE (FactTableCLOSE), FILTER (ALL (Kalender), CalendarTradingDayNumberltMAX (CalendarTradingDayNumber) ampamp CalendarTradingDayNumbergtMAX (CalendarTradingDayNumber) - Period)))) Men det ser ut att EMA-formuleringen innehåller en egen referens från tidigare värden, och den startar också från ett SMA (Average 20D CLOSE) - värde. Hur kan vi göra det Tack på förhand. Jag uppskattar mycket ditt stöd. Lördag 19 juli 2014 21:42

No comments:

Post a Comment