Sunday, 22 October 2017

Flytte Gjennomsnittet Algoritme Java


Jeg har i hovedsak en rekke verdier som dette. Ovenstående matrise er oversimplified, jeg samler 1 verdi per millisekund i min ekte kode og jeg må behandle utdataene på en algoritme jeg skrev for å finne nærmeste topp før et tidspunkt logikken feiler fordi i mitt eksempel ovenfor er 0 36 den virkelige toppen, men min algoritme vil se bakover og se det siste tallet 0 25 som toppen, da det er en reduksjon til 0 24 før det. Målet er å ta disse verdiene og bruk en algoritme til dem som vil glatte dem ut litt, slik at jeg har mer lineære verdier, det vil si at resultatene mine skal være svingete, ikke ekgedy. Jeg har blitt fortalt å bruke et eksponentielt glidende gjennomsnittsfilter til mine verdier. Hvordan kan jeg gjør dette Det er veldig vanskelig for meg å lese matematiske ligninger. Jeg behandler mye bedre med kode. Hvordan behandler jeg verdier i mitt array, og bruker en eksponentiell glidende gjennomsnittlig beregning for å utjevne dem ut. Skrevet 8. februar 12 kl 20 27. For å beregne et eksponentielt glidende gjennomsnitt må du holde noen tilstand rundt og du trenger en innstillingsparameter Dette krever en liten klasse forutsatt at du bruker Java 5 eller nyere. Installer med nedbrytingsparameteren du vil ha, må innstille skal være mellom 0 og 1 og bruk deretter gjennomsnittlig for å filtrere. Når du leser en side på noen matematiske gjentagelse, alt du virkelig trenger å vite når du setter det i kode er at matematikere liker å skrive indekser i arrays og sekvenser med abonnementer. De har også noen andre notasjoner, men det hjelper ikke. EMA er ganske enkelt som du bare trenger å huske en gammel verdi ingen kompliserte statlige arrays required. answered 8 februar 12 på 20 42. TKKocheran Ganske mye Er det ikke bra når ting kan være enkelt Hvis du starter med en ny sekvens, får du en ny bruker. Legg merke til at de første begrepene i gjennomsnittlig sekvens vil hoppe rundt litt på grunn av grenseeffekter, men du får de med andre bevegelige gjennomsnitt også. En god fordel er imidlertid at du kan pakke den bevegelige gjennomsnittlige logikken inn i gjennombrukeren og eksperimentere uten å forstyrre t han hviler på programmet for mye Donal Fellows 9 februar 12 på 0 06. Jeg har det vanskelig å forstå dine spørsmål, men jeg vil prøve å svare uansett.1 Hvis algoritmen din fant 0 25 i stedet for 0 36, så er det feil Det er feil fordi det forutsetter en monotonisk økning eller reduksjon som alltid går opp eller alltid går ned, med mindre du gjennomsnittlig ALLE dine data, dine datapunkter --- som du presenterer dem --- er ikke-lineære Hvis du virkelig vil finne maksimum verdi mellom to poeng i tid, så skjær din rekkefølge fra tmin til tmax og finn maksimum for det subarray.2 Nå er begrepet bevegelige gjennomsnitt veldig enkle å forestille at jeg har følgende liste 1 4, 1 5, 1 4, 1 5, 1 5 Jeg kan glatte det ut ved å ta gjennomsnittet av to tall 1 45, 1 45, 1 45, 1 5 Legg merke til at det første tallet er gjennomsnittet av 1 5 og 1 4 sekund og første nummer den andre nye listen er gjennomsnittet av 1 4 og 1 5 tredje og andre gamle liste den tredje nye listen gjennomsnittet 1 5 og 1 4 fjerde og tredje, og så videre kunne jeg har gjort det perioden tre eller fire, eller n Legg merke til hvordan dataene er mye jevnere En god måte å se glidende gjennomsnitt på jobben, er å gå til Google Finance, velg et lager, prøv Tesla Motors ganske flyktige TSLA og klikk på technicals nederst på diagrammet Velg Moving Average med en gitt periode, og eksponentiell glidende gjennomsnitt for å sammenligne forskjellene deres. Eksponentielt glidende gjennomsnitt er bare en annen utbygging av dette, men veier de eldre dataene mindre enn de nye dataene, dette er en måte å forvirre utjevningen mot baksiden Vennligst les Wikipedia-oppføringen. Så dette er mer en kommentar enn et svar, men den lille kommentarboksen var bare for liten Lykke til. Hvis du har problemer med matematikken, kan du gå med et enkelt glidende gjennomsnitt i stedet for eksponentiell. Så utdataene du får vil være de siste x-vilkårene delt med x Ikke-testet pseudokode. Merk at du må håndtere start - og sluttdelene av dataene, siden du tydeligvis ikke kan t gjennomsnitts de siste 5 vilkårene når du er på ditt andre datapunkt. , den re er mer effektive måter å beregne denne glidende gjennomsnittlige summen - eldste nyeste, men dette er for å få konseptet om hva som skjer overfor. Ansatt 8. februar kl. 20 41. Jeg trenger å holde oversikt over de siste 7 dagene arbeidstid i en flat filleseløsning Det brukes til å måle utmattingen av arbeidsrooster. Rikt nå har jeg noe som fungerer, men det virker ganske ordentlig og jeg er ikke sikker på om det er et mønster som er mer kortfattet. I øyeblikket har jeg en Java-klasse med en statisk matrise for å holde de siste x-dagene dataene, da jeg leser gjennom filen, hugger jeg av det første elementet og flytter de andre 6 i en ukes rullende total tilbake av en. Behandlingen av denne statiske matrisen er gjort i sin egen Metode ie. My spørsmålet er dette en rimelig design tilnærming, eller er det noe blindingly åpenbart og enkelt å gjøre denne oppgaven Takk guys. asked Aug 30 11 på 14 33.Thanks mange folkens jeg har fått meldingen bruke et høyere nivå objekt og utnytte de relevante metodene eller en sirkulær buffer. Gode svar, alle o f dem Når du tenker på det, trenger du alltid tilgang til hele oppstillingen, slik at du kan kvitte deg med den første oppføringen - som jeg ikke var sikker på selv jeg er lettet over at jeg ikke hadde savnet noen liner og egentlig var på en rimelig, om ikke effektiv og tverrlig spor Dette er hva jeg elsker om dette nettstedet av høy kvalitet, relevante svar fra folk som kjenner deres sh t Pete855217 Aug 30 11 på 15 05. Hvorfor starter du runningTotal til null Hva er dens type Hvor det er erklært Det ville være bra hvis du legger noen kodeprøver som ligner på faktisk Java-kode. På grunn av vil min kritikk være følgende, din funksjon gjør for mye. En funksjon, eller metode, skal være sammenhengende. Mer hensiktsmessig, bør de gjøre en ting og en ting only. Worse fortsatt, hva skjer i din forløp når x 5 Du kopierer runningTotal 6 til runningTotal 5, men da har du to kopier av samme verdi i posisjon 5 og 6. I ditt design, din funksjon. moves shuffles elementene i ditt array. calculates total. prints ting til standard error. returns total. Det gjør for mye. Mitt første forslag er ikke å flytte ting rundt i matrisen i stedet, implementere en sirkulær buffer og bruk den i stedet for arrayet Det vil forenkle designet mitt andre forslag er å bryte ned ting i sammenhengende funksjoner. Har en datastruktur en sirkulær buffer som lar deg legge til det, og det faller den eldste oppføringen når den når sin kapasitet. Har datastrukturen implementere en interator. have en funksjon som beregner summen på iterator du ikke bryr deg om du beregner summen ut av en matrise, liste eller sirkulær bufer. don t ring det totalt Ring det summen, som er hva du beregner. Det er det jeg gjør. Det er flott info luis, men husk at denne funksjonen er en liten del av klassens funksjonalitet, og det ville være overkill å legge til for mye kode for å gjøre det perfekt. Du er teknisk riktig, og jeg forstår at koden min gjør for mye, men samtidig er det s bedre å feile på si de av mindre, klarere kode enn å gå for perfeksjon Gitt min Java ferdigheter, selv om du gjør pseudokoden du beskriver kompilere, ville jeg få meg til å blåse budsjettet på dette, men takk for den klare beskrivelsen Pete855217 31 aug 11 kl 2 23. Hmmm, det er ikke om perfektion, men om etablerte industripraksis som vi har kjent de siste 3 årene. Ren kode er alltid en som er delt. Vi har flere tiår med bevis som tyder på at dette er veien å gå i det generelle tilfellet når det gjelder kostnadseffektivitet, mangel reduksjon, forståelse, osv. med mindre det er kaste-koden for en engangs-type ting. Det er aldri dyrt å gjøre dette når man starter en problemanalyse på denne måten Koding 101, bryter ned problemet og koden følger, heller ikke overkill eller vanskelig 31. aug 11 på 15 55. Din oppgave er for enkel og det du har vedtatt, er sikkert bra for jobben. Men hvis du vil bruke et bedre design, må du kvitte deg med all den nummerbevegelsen du bedre bruker en FIFO kø og lage God bruk av push - og pop-metoder, slik at koden ikke reflekterer databevegelser, bare de to logiske handlingene til nye data og fjern data eldre enn 7 dager. Ansatt 30. august kl 14 14. Gjennomsnittlig gjennomsnitt - MA. BREAKING DOWN Flytte gjennomsnitt - MA. Som et SMA-eksempel, betrakt en sikkerhet med følgende lukkepriser over 15 dager. Vei 1 5 dager 20, 22, 24, 25, 23.Veek 2 5 dager 26, 28, 26, 29, 27.Veek 3 5 dager 28, 30, 27, 29, 28. En 10-dagers MA vil gjennomsnittlig utgående sluttpriser for de første 10 dagene som første datapunkt. Det neste datapunktet ville gå den tidligste prisen, legge til prisen på dag 11 og ta gjennomsnittet og så videre som vist nedenfor. Som tidligere nevnt, lagrer MAs nåværende prishandling fordi de er basert på tidligere priser, jo lengre tidsperioden for MA, jo større er lagret. Således vil en 200-dagers MA ha en mye Større grad av forsinkelse enn en 20-dagers MA fordi den inneholder priser for de siste 200 dagene. Lengden på MA som skal brukes avhenger av handelsmålene, med kortere MAs som brukes til shor Tidsbegrenset handel og langsiktig MAs mer egnet for langsiktige investorer 200-dagers MA er mye etterfulgt av investorer og forhandlere, med pauser over og under dette bevegelige gjennomsnittet regnes som viktige handelssignaler. MAs gir også viktige handelssignaler alene eller når to gjennomsnitt krysser over. En stigende MA indikerer at sikkerheten er i en uptrend mens en fallende MA indikerer at den er i en downtrend. På samme måte er oppadgående momentum bekreftet med en bullish crossover som oppstår når en kortvarig MA Kryss over en langsiktig MA Nedadgående momentum er bekreftet med en bearish crossover, som oppstår når en kortsiktig MA krysser under en langsiktig MA.

No comments:

Post a Comment