Tuesday, 12 December 2017

Viktat glidande medelvärde java kod


Jag har i huvudsak en mängd värden som denna: Ovanstående array är förenklad, jag samlar 1 värde per millisekund i min riktiga kod och jag behöver bearbeta utmatningen på en algoritm som jag skrev för att hitta den närmaste toppen före en tidpunkt. Min logik misslyckas eftersom i mitt exempel ovan är 0.36 den riktiga toppen, men min algoritm skulle se bakåt och se det sista numret 0,25 som toppen, eftersom det är en minskning till 0,24 före den. Målet är att ta dessa värden och tillämpa en algoritm för dem som släpper ut dem lite så att jag har mer linjära värden. (dvs: Jag tycker att mina resultat är kurva, inte jaggediga) Jag har blivit tillsagd att tillämpa ett exponentiellt glidande medelfilter till mina värden. Hur kan jag göra det här Det är verkligen svårt för mig att läsa matematiska ekvationer, jag hanterar mycket bättre med kod. Hur bearbetar jag värden i min array, tillämpar en exponentiell glidande medelberäkning för att jämföra dem ut frågade 8 feb 12 kl 20:27 för att beräkna ett exponentiellt glidande medelvärde. du behöver behålla en del tillstånd och du behöver en inställningsparameter. Detta kräver en liten klass (förutsatt att du använder Java 5 eller senare): Instantiate with decay parameteren du vill ha (det kan ta tuning ska vara mellan 0 och 1) och sedan använda genomsnittet () för att filtrera. När du läser en sida om någon matematisk återkommande, behöver allt du verkligen vet när du gör det till kod, att matematiker gillar att skriva index i arrays och sekvenser med prenumerationer. (Theyve några andra noteringar också, vilket inte hjälper.) EMA är dock ganska enkel eftersom du bara behöver komma ihåg ett gammalt värde, inga komplicerade tillståndsskivor krävs. svarat 8 feb 12 kl 20:42 TKKocheran: Ganska mycket. Det är inte bra när saker kan vara enkla (Om du börjar med en ny sekvens, få en ny medelvärde.) Observera att de första villkoren i den genomsnittliga sekvensen kommer att hoppa runt lite på grund av gränseffekter, men du får de med andra glidande medelvärden för. En bra fördel är dock att du kan förflytta den glidande genomsnittliga logiken till medelvärdena och experimentera utan att störa resten av ditt program för mycket. ndash Donal Fellows Feb 9 12 på 0:06 Jag har svårt att förstå dina frågor, men jag kommer att försöka svara ändå. 1) Om din algoritm hittat 0,25 istället för 0,36, då är det fel. Det är fel eftersom det förutsätter en monotonisk ökning eller minskning (det går alltid upp eller går alltid ner). Om du inte genomsnittar ALLA dina data, dina datapunkter --- som du presenterar dem --- är olinjära. Om du verkligen vill hitta det maximala värdet mellan två punkter i tid, skivar du din matris från tmin till tmax och hittar maximal av den subarrayen. 2) Nu är begreppet glidande medelvärden mycket enkelt: tänk att jag har följande lista: 1,4, 1,5, 1,4, 1,5, 1,5. Jag kan släta ut det genom att ta medeltalet av två tal: 1,45, 1,45, 1,45, 1,5. Observera att det första numret är medeltalet 1,5 och 1,4 (andra och första siffrorna) den andra (nya listan) är genomsnittet av 1,4 och 1,5 (tredje och andra gamla listan) den tredje (nya listan) i genomsnitt 1,5 och 1,4 (fjärde och tredje), och så vidare. Jag kunde ha gjort det period tre eller fyra, eller n. Lägg märke till hur dataen är mycket mjukare. Ett bra sätt att se glidande medelvärden på jobbet är att gå till Google Finance, välj ett lager (försök Tesla Motors ganska flyktiga (TSLA)) och klicka på technicals längst ner i diagrammet. Välj Flytta genomsnittet med en given period och Exponentiell glidande medelvärde för att jämföra deras skillnader. Exponentiellt glidande medelvärde är bara en annan utarbetande av detta, men vikter äldre data mindre än de nya data så är det ett sätt att förspänna utjämningen mot baksidan. Vänligen läs Wikipedia-posten. Så det här är mer en kommentar än ett svar, men den lilla kommentarrutan var bara för liten. Lycka till. Om du har problem med matte kan du gå med ett enkelt rörligt medel istället för exponentiellt. Så den produkt du får är de sista x-termerna dividerad med x. Obestämd pseudokod: Observera att du kommer att behöva hantera start - och slutdelarna av data eftersom du klart inte kan räkna med de senaste 5 termerna när du befinner dig på din andra datapunkt. Det finns också mer effektiva sätt att beräkna detta glidande medelvärde (summa summan - äldsta nyaste), men det här är att få konceptet av vad som händer över. svarade 8 feb 12 kl 20: 41Vågade rörliga medelvärden: 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.) What039s skillnaden mellan glidande medelvärde och vägat glidande medelvärde Ett glidande medelvärde på 5 år baserat på priserna ovan beräknas med följande formel: Baserat på ekvationen ovan var genomsnittspriset över ovannämnda period 90,66. Att använda glidande medelvärden är en effektiv metod för att eliminera starka prisfluktuationer. Huvudbegränsningen är att datapunkter från äldre data inte vägs 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 AAPL

No comments:

Post a Comment