Liukuva Keskiarvo Suodatin Java
Minulla on oleellisesti joukko arvoja, kuten tämä. Yllä oleva taulukko on yksinkertaistettu, minä kerää 1 arvoa millisekunnin ajan oikeassa koodissani ja minun täytyy käsitellä lähdön algoritmissa, jonka kirjoitin löytää lähimpään huippuun ennen ajanhetkeä. logiikka epäonnistuu, koska yllä olevassa esimerkissämme 0 36 on todellinen huippu, mutta algoritmini katsottaisiin taaksepäin ja näkee viimeisen numeron 0 25 huippuna, sillä se laskee 0 24: een ennen sitä. Tavoitteena on ottaa nämä arvot ja soveltaa niitä algoritmia, joka tasoittaa heidät hieman niin, että minulla on enemmän lineaarisia arvoja eli haluan tulokseni olla curvy, ei jaggedy. Itäni on kerrottu soveltaa eksponentiaalinen liukuva keskiarvo suodatin arvojani Miten voin tee se Se on todella vaikeaa minun lukea matemaattisia yhtälöitä, olen käsitellä paljon paremmin koodilla. Miten käsitellä arvot minun array, soveltamalla eksponentiaalinen liukuva keskiarvo laskenta jopa niitä out. asked helmikuu 8 12 klo 20 27.Laskata eksponentiaalinen liukuva keskiarvo sinun täytyy pitää jonkin valtion ympäri ja tarvitset viritysparametrin Tämä vaatii hieman luokkaa, olettaen, että käytät uudestaan Java 5: ta tai uudempaa. Vahvista haluttu hajoamisparametri, joten virityksen tulisi olla välillä 0 ja 1 ja sitten käyttää keskimäärin suodatinta. Kun luet sivua joissakin matemaattisissa toistuvuus, kaikki, mitä todella tarvitsee tietää, kun kääntäkää se koodiksi, on, että matemaatikot haluavat kirjoittaa indeksejä taulukkoihin ja sekvensseihin, joilla on indeksejä. He antavat myös muutamia muita merkintöjä, mikä ei t help. EMA on kuitenkin melko yksinkertainen, koska tarvitset vain muistaa yksi vanha arvo ei ole monimutkaisia tilarivityyppejä. vastattu 8 helmikuu 12 klo 20 42. TKKocheran melko paljon ei ole mukavaa, kun asiat voivat olla yksinkertaisia Jos aloitat uuden sekvenssin, saat uuden keskiarvon Huomaa, että ensimmäiset ehdot keskimääräinen sekvenssi hypyttää hieman rajojen vaikutuksesta, mutta saat ne, joilla on muita liikkuvia keskiarvoja. Hyvänä etuna on kuitenkin se, että voit liittää liikkuvan keskimääräisen logiikan keskiarvoon ja kokeiluun häiritsemättä t hän loput ohjelmasi liian paljon Donal Fellows 9. helmikuuta 12 klo 0 06. Minulla on vaikea ymmärtää kysymyksiesi, mutta yritän vastata joka tapauksessa.1 Jos algoritmi löysi 0 25 sijaan 0 36, niin se on väärä Se on väärin, koska se olettaa monotonisen kasvun tai laskutavan, joka aina nousee tai laskee aina, ellei keskitän KAIKKI TIEDOSI, TIETOJÄRJESTELMIÄ --- kuten esität ne - ovat epälineaarisia Jos haluat todella löytää maksimiarvon arvo välillä kaksi pistettä ajassa, sitten viipaloi taulukko tmin ja tmax ja löytää enintään että subarray.2 Nyt käsite liikkuvien keskiarvojen on hyvin yksinkertainen kuvitella, että minulla on seuraava luettelo 1 4, 1 5, 1 4, 1 5, 1 5 Voin tasoittaa sen ottamalla keskimäärin kaksi numeroa 1 45, 1 45, 1 45, 1 5 Huomaa, että ensimmäinen numero on keskimäärin 1 5 ja 1 4 sekunnin ja ensimmäiset numerot toista uutta luetteloa on keskimäärin 1 4 ja 1 5 kolmas ja toinen vanha luetellaan kolmas uusi luettelo keskimäärin 1 5 ja 1 4 neljäs ja kolmas ja niin voisin on tehnyt sen ajan kolmesta tai neljästä, tai n Huomaa, miten tiedot ovat paljon pehmeämpi Hyvä tapa nähdä liikkuvia keskiarvoja työssä on mennä Google Finance, valitse varastossa kokeilla Tesla Motors melko vaihtuva TSLA ja klikkaa teknisiä alareunassa taulukko Valitse Keskimäärän siirto tietyn ajanjakson ja Exponential liukuva keskiarvo vertailemalla niiden eroja. Eksponentiaalinen liukuva keskiarvo on vain yksi tämän kehittely, mutta painaa vanhempia tietoja pienempiä kuin uudet tiedot. Tämä on keino puolustaa tasoitusta taaksepäin Ole hyvä ja lue Wikipedia-merkintä. Joten tämä on enemmän kommentti kuin vastaus, mutta pikku kommentti ruutuun oli vain pieni Hyvää onnea. Jos sinulla on vaikeuksia matematiikan kanssa, voit mennä yksinkertaisella liukuva keskiarvo eksponentiaalisen sijasta. saat tuotoksesi viimeiset x termit jaettuna x testatulla pseudokoodilla. Huomaa, että sinun on käsiteltävä tietojen alku - ja loppuosaa, koska selvästi et voi keskiarvoa viimeisten viiden ehdon ollessasi 2. datapisteessäsi. Myös , ovat tehokkaampia laskentamenetelmiä tämän liukuvan keskimääräisen summäärän laskemiseen - vanhin uusin, mutta tämä on saada käsitys siitä, mitä tapahtuu kaikkialla. vastattu 8. helmikuuta klo 20 41. Simple Moving Average Implementation in Java. On useaan otteeseen olen ve halusi laskea yksinkertaisia metrejä Java-sovelluksissani, esimerkiksi osumien määrä tunnissa tai virheitä koko ajan. Yksinkertaisten metrijärjestelmien laskeminen ei ole kovin vaikeaa, mutta se on vain ylimääräistä työtä, ja minä mieluummin vietän aika ongelmaan Olin yllättynyt siitä, etten löytänyt minkäänlaista yleisesti hyväksyttyä metrijärjestelmän Java-ratkaisua, mutta löysin Metricsin, mutta se tuntui hieman liian monimutkaiselta ja hyvin dokumentoituna - Halusin vain laskea liukuvan keskiarvon. Ajattelin ongelmaa jonkin verran ja päätin se ei ole vaikea ongelma Tässä on ratkaisu. Tämä toimii luomalla joukon ikkunan päivitystaajuuskokoa, jonka jälkeen lanka asettaa laskennan taulukon seuraavaan indeksiin päivitystaajuudella. Intervallin laskenta on yksinkertaisesti array i - array i 1, joka on viimeisin lukema miinus vanhimman laskurin 10 minuutin välein, vanhin määrä i 1 on täsmälleen 10 minuuttia vanha. Jos haluat lisätä liikkuvan keskiarvon koodimme ensimmäiseksi tarvitsemme laskurin, Käyttämällä AtomicLongia. Tätä laskuria on lisättävä niiden tapahtumien perusteella, jotka olet kiinnostunut laskemasta esim. POST-pyyntöjä REST-palvelusta. Täytäntöönpanon on oltava käytettävissä laskurin kanssa, ja se toteutetaan GetCount-käyttöliittymän kautta. keskimäärin 5 minuutin ikkunalla, joka päivittyy joka sekunnin ajan. Ja nykyisen keskiarvon saamiseksi yksinkertaisesti kutsutamme getAverage-menetelmää. Tärkein toteutuserittely on, miten taulukon koko määritetään jakamalla ikkuna päivitystaajuudella. Joten suuri ikkuna, päivitys taajuus voi kuluttaa huomattavaa määrää muistia Tässä esimerkissä array koko on kohtuullinen 300 Jos kuitenkin luodaan 24 tunnin liukuva keskiarvo 1 sekunnin välein koko olisi 86400 A enemmän syy e päivitystaajuus 24 tunnin jaksoa kohti voi olla jokaiselta 5 minuutin sarjamuodoltaan 288. Toinen harkinta ikkunan valinnasta ja päivitystaajuudesta on ikkunan oltava jakautuva taajuudella. Esimerkiksi 2 minuutin ikkuna, jossa on 6 sekunnin päivitystaajuus on ok , mutta 7 sekunnin päivitystaajuus ei ole, koska se ei ole jaollinen 120: llä IllegalArgumentException heitetään, jos ikkunamoduulin päivitystaajuus ei ole nolla. Tämä toteutus vaatii yhden kierroksen liikkuvalle keskiarvolle, mikä ei ole kovin tehokas. Parempi ratkaisu olisi jakaa säikeen useisiin keskiarvoihin Päivitys I ve päivitti koodin jakamaan säiettä täältä. Nyt on olemassa alkutilanne ongelma, jota emme vielä ole koko ikkunalle. Esimerkiksi jos sinulla on 5 minuutin ikkuna ja vain 15 sekuntia Tämä toteutus palaa nollaan, kunnes meillä on 5 minuutin tiedot Toinen lähestymistapa on arvioida keskimääräinen Oletetaan, että meillä on 10: n 30 sekunnissa, sitten voimme arvioida keskimäärin 40: nä 2 minuutissa Miten joskus on olemassa riski merkittävälle virheelle ekstrapoloimalla epätäydellisiä tietoja. Esimerkiksi jos meillä oli 20 osumaa 2 sekunnissa, meidän on arvioitava 1200 x 2 minuuttia, mikä todennäköisesti on kaukana. Keskimäärin - MA. BREAKING DOWN Moving Average - MA. As SMA-esimerkkinä, harkitse tietoturvaa, jonka seuraavat sulkemishinnat ovat 15 päivää. Viikko 1 5 päivää 20, 22, 24, 25, 23. Viikko 2 5 päivää 26, 28, 26, 29, 27. Viikko 3 5 päivää 28, 30, 27, 29, 28. 10 päivän MA keskimääräisesti laski ensimmäisten 10 päivän päätöskurssit ensimmäisen datapisteenä Seuraava datapiste alenisi aikaisintaan, lisää hinta päivässä 11 ja ottakaa keskimääräinen ja niin edelleen kuten alla. Kuten aiemmin on todettu, MA: t viivästyttävät nykyistä hintatoimintaa, koska ne perustuvat aikaisempaan hintaan, mitä kauemmin MA: n ajanjakso on, sitä suurempi on viivästyminen. Näin 200 päivän MA: lla on paljon pidempi kuin 20 päivän MA, koska se sisältää hintoja viimeisten 200 päivän aikana. Käytettävän MA: n pituus riippuu kaupankäynnin tavoitteista. Erät, joita käytetään lyhyen aikavälin kaupankäynnissä ja pitempiaikaisissa maissa, sopivat paremmin pitkän aikavälin sijoittajille 200 päivän MA noudattaa laajalti sijoittajia ja kauppiaita, joiden liikevoiton ylä - ja alapuolella olevat tauot ovat tärkeitä kaupankäyntijasignaaleja. antavat tärkeitä kaupankäyntisignaaleja yksinään tai kun kaksi keskiarvoa ylittävät A nousevan MA: n, osoittaa, että turvallisuus on nousussa, kun taas laskeva MA osoittaa, että se on laskusuunnassa. Samoin nouseva momentti vahvistetaan nousevan nousun lyhyen aikavälin MA ylittää pitkän aikavälin MA: n yläpuolella. Alaspäin suuntautuva momentti vahvistuu laskevalla crossoverilla, mikä tapahtuu, kun lyhytkestoinen MA ylittää pidemmän aikavälin MA: n.
Comments
Post a Comment