Sunday 29 October 2017

Moving Gjennomsnittet Haskell


Jeg jobber med å lære Haskell, så jeg prøvde å implementere en bevegelig gjennomsnittsfunksjon Her er koden min. Hvor brukeren kaller mAverage med en lengde for hvert gjennomsnitt og listen over verdier, f. eks. MAverage 4 1,2 100. Men når jeg løper koden på input mAverage 4 1,2 100000 Jeg får det som tar 3 6 sekunder i ghci ved hjelp av sett s og bruker en gigabyte minne Dette virker svært ineffektivt for meg, da den tilsvarende funksjonen tar en brøkdel av et sekund i Python Is det er noen måte at jeg kunne gjøre koden min mer effektiv. Skrevet des 27 16 på 19 59. En måte å gjøre det skyvevinduet skal passere i første sum som et Float-pass i den opprinnelige listen som skal brukes til å trekke fra gjeldende summen og den opprinnelige listen med k-poster som droppes for å bli brukt til å legge til den nåværende summen. Så neste sum er summen overført i minus det første elementet i subtraksjonslisten pluss det første elementet i tilleggslisten Chai T Rex 27. desember kl. 20 33. Hvis du vil lære noe nytt, kan du se på denne fine løsningen f eller Moving Average problem Det er skrevet av en av studentene mine, så jeg vant t krever forfatterskap Jeg liker det veldig fordi det er veldig kort Det eneste problemet her er gjennomsnittlig funksjon Slike funksjoner er kjent for å være dårlige I stedet kan du bruke Beautiful folds av Gabriel Gonzalez Og ja, denne funksjonen tar O k tid hvor k er størrelsen på vinduet for å beregne gjennomsnittet av vinduet. Jeg finner det bedre fordi du kan møte floating point-feil hvis du prøver å legge til bare nytt element i vinduet og trekke sist Oh, det bruker også staten monad. UPD etter noen kode gjennomgang Jeg la merke til at det ikke er nødvendig å bruke folder her for å beregne gjennomsnittet. Du vet at lengden alltid vil være n slik at du bare kan sette gjennomsnittsfunksjonen inn i hvor clause. answered 27. desember kl. 23 26. Her sa løsningen for deg. Ideen er å skanne to lister, en hvor gjennomsnittsvinduet starter, og et annet hvor det slutter Å få en hale ende av en liste koster så mye som å skanne den delen vi hopper over, og vi kopierer ikke noe hvis Windows-størrelse var vanligvis ganske stor, kunne vi beregne gjenværende data sammen med å telle summens startdata på en gang. Vi genererer en liste over delvise summer som beskrevet i kommentaren min, og deler dem deretter med windows-bredden for å få gjennomsnitt. Mens slidingAverage beregner gjennomsnitt for forspurt posisjonvindu bredde til høyre, centeredSlidingAverage beregner sentrert gjennomsnitt, ved hjelp av halvvindubredde til venstre og til høyre. Når jeg prøver lengde glidingAverage 10 1 1000000 tar det mindre enn et sekund på min MBP På grunn av latskapet centeredSlidingAverage tar omtrent samme tid. besvart des 27 16 på 22 25. Ditt svar.2017 Stack Exchange, Inc. Moving Average Indicator. Shorter lengde glidende gjennomsnitt er mer sensitive og identifiserer nye trender tidligere, men gir også flere falske alarmer. Lengre glidende gjennomsnitt er mer pålitelige, men mindre responsive, bare plukke opp de store trendene. Bruk et glidende gjennomsnitt som er halve lengden på syklusen du sporer. Hvis topp-til-topp sykluslengde er omtrent 30 dager, så et 15-dagers glidende gjennomsnitt er hensiktsmessig. Hvis 20 dager er et 10-dagers glidende gjennomsnitt riktig. Noen handelsfolk vil imidlertid bruke 14 og 9 dagers glidende gjennomsnitt for de ovennevnte syklusene i håp om å generere signaler litt foran markedet. Andre favoriserer Fibonacci tall på 5, 8, 13 og 21.100 til 200 Dag 20 til 40 Ukende glidende gjennomsnitt er populært i lengre sykluser.20 til 65 Dag 4 til 13 Uke Flytte gjennomsnitt er nyttig for mellomliggende sykluser og 5 til 20 dager for korte sykluser. Det enkleste glidende gjennomsnittssystemet genererer signaler når prisen krysser det bevegelige gjennomsnittet. Gå lenge når prisen krysser over det bevegelige gjennomsnittet underfra. Gå kort når prisen krysser til under glidende gjennomsnitt fra oven. Systemet er utsatt for whipsaws i varierende markeder, med prisovergang frem og tilbake over det bevegelige gjennomsnittet, genererer et stort antall falske signaler Av den grunn bruker glidende gjennomsnittlige systemer normalt filtre for å redusere whipsaws. More sofistikerte systemer bruker mer enn en bevegelig ave rase. Two Moving Averages bruker et raskere bevegelige gjennomsnitt som en erstatning for sluttkurs. Tre Moving Averages bruker et tredje glidende gjennomsnitt for å identifisere når prisen varierer. Multiple Moving Averages bruker en serie på seks hurtige bevegelige gjennomsnitt og seks langsomme bevegelige gjennomsnitt til bekreft hverandre. Displaced Moving Averages er nyttige for trenden etter følgende formål, og reduserer antall whipsaws. Keltner Channels bruker bånd som er plottet på et flertall av gjennomsnittlig sann rekkevidde for å filtrere glidende gjennomsnittsoverskridelser. Den populære MACD Moving Average Convergence Divergence-indikatoren er en variant av de to bevegelige gjennomsnittlige systemene, plottet som en oscillator som trekker det langsomme glidende gjennomsnittet fra det raskt bevegelige gjennomsnittet. Cholin Twiggs ukentlige gjennomgang av globale markeder vil hjelpe deg med å identifisere markedsrisiko, forbedre timingen. Gi det vi er på et språk uten arrays, Jeg antar at du er en språkbegynner Uansett, bør ytterligere informasjon redigeres til selve spørsmålet, slik andre brukere gjør det nt må scavenge informasjon fra kommentarene jeg har ikke tid til å gi et komplett svar, men dette burde være mulig med haler zipWith og en liten grense fiddling Zeta 6 november 16 på 10 43. Gjennomsnittlig gjennomsnitt kan beregnes med en mealy maskin, hvor den interne tilstanden er tidligere verdier. Jeg vil vise et glidende gjennomsnitt over tre argumenter, for eksempel, kan du fla deg selv for å gjøre det parametrisk i størrelse. Maskinvare er i utgangspunktet en innledende tilstand, og stat input til ny tilstandsutgangsfunksjon. La oss anta at innledende tilstand er alle nuller, og skriv en funksjon for å flytte gjennomsnittet over 3.Nå har vi alle brikkene, la s kjøre maskinen på inngangen. Du kan slippe først produserte verdier, ettersom maskinens interne tilstand er oppvarming. For vilkårlig størrelse bevegelige gjennomsnittlig maskin, kan du bruke som det er mye bedre datastruktur når du trykker til den ene enden, mens du pop fra en annen, og deretter en enkeltkoblet liste. Hvorfor jeg maler om Mealy-maskinen. På et tidspunkt vil du mest sannsynlig løpe inn i si tuation hvor du trenger å bruke noe streaming-bibliotek i Haskell-rørledning eller - maskiner. Da vil Mealy-maskinens tilnærming være den eneste rimelige løsningen. Du kan også lage autoregressive modeller også.

No comments:

Post a Comment