Viktat glidande medelvärde algoritm


Jag har en tidsserie av aktiekurser och vill beräkna det glidande genomsnittet över ett tio minuters fönster (se diagram nedan). Eftersom pristicks uppstår sporadiskt (dvs de är inte periodiska) verkar det rättvist att beräkna ett tidsvägd glidande medelvärde. I diagrammet finns fyra prisändringar: A, B, C och D, där de senare tre förekommer inuti fönstret. Observera att eftersom B bara förekommer i fönstret (säg 3 minuter), bidrar värdet av A fortfarande till beräkningen. I själva verket, så långt jag kan säga beräkningen borde uteslutande baseras på värdena A, B och C (inte D) och varaktigheten mellan dem och nästa punkt (eller i fallet A: varaktigheten mellan starten av tidsfönstret och B). Ursprungligen D kommer inte att ha någon effekt eftersom dess tidsvägning kommer att vara noll. Är detta korrekt Antag att detta är korrekt, min oro är att det rörliga genomsnittet kommer att lagra mer än den obestämda beräkningen (vilket skulle beräkna värdet av D genast). Den icke-viktade beräkningen har emellertid sina egna nackdelar: A skulle har lika mycket effekt på resultatet som de andra priserna trots att de är utanför tidsfönstret. En plötslig uppslukning av snabba priskickor skulle kraftigt förspänna det glidande genomsnittet (även om det kanske är önskvärt). Kan någon erbjuda råd om vilket tillvägagångssätt som verkar bäst, eller om det finns ett alternativt (eller hybrid) tillvägagångssätt som är värt att överväga. 14 april kl 21: 35 Din resonemang är korrekt. Vad vill du använda medelvärdet för men utan att veta att det är svårt att ge några råd. Kanske skulle ett alternativ vara att betrakta ditt löpande medelvärde A, och när ett nytt värde V kommer in, beräkna det nya genomsnittet A att vara (1-c) AcV, där c är mellan 0 och 1. På så sätt har de senaste tikarna ett starkare inflytande, och effekten av gamla ticks släpper med tiden. Du kan till och med få bero på tiden sedan de tidigare fästingarna (c blir mindre när fästingarna kommer närmare). I den första modellen (viktning) skulle medelvärdet vara annorlunda varje sekund (eftersom gamla läsningar får lägre vikt och nya läsningar högre) så ändras alltid vilket kanske inte är önskvärt. Med det andra tillvägagångssättet gör priserna plötsliga hopp eftersom nya priser introduceras och gamla försvinner från fönstret. svarat 14 apr 12 kl 21:50 De två förslagen kommer från den diskreta världen, men du kan hitta en inspiration för ditt speciella fall. Ta en titt på exponentiell utjämning. I detta tillvägagångssätt introducerar du utjämningsfaktorn (01) som låter dig ändra påverkan av de senaste elementen på prognosvärdet (äldre element tilldelas exponentiellt minskade vikter): Jag har skapat en enkel animering av hur exponentiell utjämning skulle spåra en enhetlig tidsserie x1 1 1 1 3 3 2 2 2 1 med tre olika: Se även på några av förstärkningsinlärningsteknikerna (titta på de olika diskonteringsmetoderna) till exempel TD-lärande och Q-Learning. Ja, det rörliga genomsnittet kommer naturligtvis att lagras. Detta beror på att dess värde är historisk information: det sammanfattar prover av priset under de senaste 10 minuterna. Denna typ av genomsnitt är i sig laggy. Den har en inbyggd fem minuters förskjutning (eftersom ett lådmedelvärde utan förskjutning skulle baseras på - 5 minuter, centrerad på provet). Om priset har varit vid A länge och sedan ändras en gång till B, tar det 5 minuter för genomsnittet att nå (AB) 2. Om du vill ha en genomsnittlig funktion utan skift i domänen har vikten att fördelas jämnt runt provpunkten. Men det här är omöjligt att göra för priser som uppstår i realtid, eftersom framtida data inte är tillgängliga. Om du vill ha en senare förändring, som D, för att få större inverkan, använd ett medelvärde som ger större vikt till senaste data, eller en kortare tidsperiod eller båda. Ett sätt att släta data är helt enkelt att använda en enda ackumulator (den släta estimatorn) E och ta periodiska prover av data S. E uppdateras enligt följande: I. e. en fraktion K (mellan 0 och 1) av skillnaden mellan det aktuella prissamplet S och estimatorn E läggs till E. Anta att priset har varit vid A under en längre tid, så att E är vid A och sedan plötsligt ändras till B. Estimatorn kommer att börja flytta mot B på ett exponentiellt sätt (som värmekylning, laddning av en kondensator, etc.). Först kommer det att göra ett stort hopp, och sedan mindre och mindre steg. Hur snabbt det rör sig beror på K. Om K är 0, räknar inte estimatorn alls, och om K är 1 flyttas det omedelbart. Med K kan du justera hur mycket vikt du ger till uppskattaren jämfört med det nya provet. Mer tyngd ges implicit till senare prover, och provfönstret sträcker sig i grunden till oändlighet: E är baserat på varje värdeprov som någonsin inträffat. Även om de flesta äldre naturligtvis inte har någon inverkan på det aktuella värdet. En mycket enkel, vacker metod. svarat den 14 april kl 21:50 Detta är detsamma som Tom39s svar. Hans formel för estimatets nya värde är (1 - K) E KS. vilket är algebraiskt samma som E K (S - E). Det är en kvotlinär blandningsfunktionskvot mellan den aktuella beräkningen E och det nya provet S där värdet av K 0, 1 styr blandningen. Att skriva det så är trevligt och användbart. Om K är 0,7, tar vi 70 av S och 30 av E, vilket är detsamma som att tillägga 70 av skillnaden mellan E och S tillbaka till E. ndash Kaz Apr 14 12 kl 22:15 I utökande Toms svar svarar formeln för att ta hänsyn till avståndet mellan fästingar kan formaliseras (nära fästingar har proportionellt lägre viktning): a (tn - t n-1) T det vill säga a är ett förhållande av ankomsttidens delta över medelvärdet intervall v 1 (använd föregående punkten) eller v (1 - u) a (linjär interpolation eller vu (nästa punkt) Ytterligare information finns på sidan 59 i boken En introduktion till högfrekvensfinansiering. What039s skillnaden mellan glidande medelvärde och vägat glidande medelvärde A 5 Periodens glidande medelvärde, baserat på ovanstående priser, skulle beräknas med följande formel: Med utgångspunkt i ekvationen ovan var genomsnittspriset över ovanstående period 90,66. Med hjälp av glidande medelvärden är en effektiv metod för att eliminera starka prisfluktuationer. nyckelbegränsningen är att datapunkter från äldre data är n ot viktat något annorlunda än datapunkter nära början av datasatsen. Det här är där viktade glidande medelvärden kommer till spel. Viktiga medelvärden tilldelar tyngre viktning till mer aktuella datapunkter eftersom de är mer relevanta än datapunkter i det avlägsna förflutna. Summan av viktningen ska lägga till upp till 1 (eller 100). För det enkla glidande medlet fördelas viktningarna jämnt, varför de inte visas i tabellen ovan. Slutpriset för AAPLWeighted Moving Averages: Grunderna Under åren har tekniker hittat två problem med det enkla glidande medlet. Det första problemet ligger i tidsramen för glidande medelvärdet (MA). De flesta tekniska analytiker tror att prisåtgärder. det öppnande eller stängande aktiekurset räcker inte för att bero på att man korrekt förutsäger köp - eller försäljningssignaler för MAs-crossover-åtgärden. För att lösa detta problem, tilldelar analytiker nu mer vikt till de senaste prisuppgifterna med hjälp av det exponentiellt jämnaste glidande genomsnittet (EMA). (Läs mer om att utforska exponentiellt vägda rörliga medelvärdet.) Ett exempel Till exempel, med en 10-dagars MA, skulle en analytiker ta slutkursen på den 10: e dagen och multiplicera detta nummer med 10, den nionde dagen med nio, den åttonde dag med åtta och så vidare till den första av MA. Så snart summan har bestämts, fördelar analytikern sedan numret genom tillsatsen av multiplikatorerna. Om du lägger till multiplikatorerna i 10-dagars MA-exemplet är numret 55. Denna indikator kallas det linjärt vägda glidande medlet. (För relaterad läsning, kolla in Enkla rörliga genomsnittsvärden. Utveckla tendenser.) Många tekniker är fasta troende i det exponentiellt jämnaste glidande genomsnittet (EMA). Denna indikator har förklarats på så många sätt att det både förvirrar studenter och investerare. Kanske kommer den bästa förklaringen från John J. Murphys tekniska analys av finansmarknaderna (publicerad av New York Institute of Finance, 1999). Det exponentiellt jämnaste glidande genomsnittet adresserar båda problemen i samband med det enkla glidande medlet. För det första tilldelas det exponentiellt glatt genomsnittet en större vikt till de senaste data. Därför är det ett viktat glidande medelvärde. Men medan det tilldelas mindre betydelse för tidigare prisuppgifter, ingår det i beräkningen av alla data i instrumentets livstid. Dessutom kan användaren justera viktningen för att ge större eller mindre vikt till det senaste dagspriset, vilket läggs till i procent av värdet för tidigare dagar. Summan av båda procentvärdena lägger till 100. Till exempel kan det sista dagspriset tilldelas en vikt av 10 (.10), som läggs till föregående dagsvikt på 90 (.90). Detta ger den sista dagen 10 av den totala vikten. Detta skulle motsvara ett 20-dagars medelvärde genom att ge sista dagens pris ett mindre värde av 5 (.05). Figur 1: Exponentially Sloothed Moving Average Ovanstående diagram visar Nasdaq Composite Index från den första veckan i augusti 2000 till 1 juni 2001. Som du tydligt kan se, EMA, som i detta fall använder slutkursdata över en nio dagars period, har bestämda försäljningssignaler den 8 september (markerad med en svart nedåtpil). Det här var den dag då indexet gick ner under 4 000-nivån. Den andra svarta pilen visar ett annat nedben som teknikerna faktiskt förväntade sig. Nasdaq kunde inte generera tillräckligt med volym och intresse från detaljhandeln för att bryta 3 000 mark. Därefter dyker ner igen till botten ut vid 1619.58 den 4 april. Upptrenden av 12 april markeras med en pil. Här stängde indexet 1961.46, och tekniker började se att institutionella fondförvaltare började hämta några fynd som Cisco, Microsoft och några av de energirelaterade frågorna. (Läs våra relaterade artiklar: Flytta genomsnittliga kuvert: Raffinera ett populärt handelsverktyg och flytta genomsnittlig studs.)

Comments