Monday 13 November 2017

Med Bevegelig Gjennomsnitt C Eksemplet


Flytende gjennomsnitt Dette eksemplet lærer deg hvordan du beregner det bevegelige gjennomsnittet av en tidsserie i Excel. Et glidende gjennomsnitt brukes til å utjevne uregelmessigheter (topper og daler) for enkelt å gjenkjenne trender. 1. Først, ta en titt på vår tidsserie. 2. På Data-fanen klikker du Dataanalyse. Merk: kan ikke finne dataanalyseknappen Klikk her for å laste inn add-in for Analysis ToolPak. 3. Velg Flytt gjennomsnitt og klikk OK. 4. Klikk i feltet Inngangsområde og velg området B2: M2. 5. Klikk i intervallboksen og skriv inn 6. 6. Klikk i feltet Utmatingsområde og velg celle B3. 8. Skriv en graf av disse verdiene. Forklaring: fordi vi angir intervallet til 6, er glidende gjennomsnitt gjennomsnittet for de forrige 5 datapunktene og det nåværende datapunktet. Som et resultat blir tinder og daler utjevnet. Grafen viser en økende trend. Excel kan ikke beregne det bevegelige gjennomsnittet for de første 5 datapunktene fordi det ikke er nok tidligere datapunkter. 9. Gjenta trinn 2 til 8 for intervall 2 og intervall 4. Konklusjon: Jo større intervallet jo flere tinder og daler utjevnes. Jo mindre intervallet, jo nærmere de bevegelige gjennomsnittene er de faktiske datapunktene. Gjennomsnittlig gjennomsnitt: Hva er de Blant de mest populære tekniske indikatorene, er glidende gjennomsnitt brukt til å måle retningen for den nåværende trenden. Hver type bevegelige gjennomsnitt (vanligvis skrevet i denne opplæringen som MA) er et matematisk resultat som beregnes ved å beregne et antall tidligere datapunkter. Når det er bestemt, blir det resulterende gjennomsnittet plottet på et diagram for å tillate handelsmenn å se på glatt data, i stedet for å fokusere på de daglige prisfluktuasjonene som er iboende i alle finansmarkeder. Den enkleste formen for et bevegelige gjennomsnitt, riktig kjent som et enkelt glidende gjennomsnitt (SMA), beregnes ved å ta det aritmetiske gjennomsnittet av et gitt sett av verdier. For eksempel, for å beregne et grunnleggende 10-dagers glidende gjennomsnitt vil du legge til sluttkursene fra de siste 10 dagene, og deretter dele resultatet med 10. I figur 1 er summen av prisene for de siste 10 dagene (110) dividert med antall dager (10) for å komme fram til 10-dagers gjennomsnittet. Hvis en forhandler ønsker å se et 50-dagers gjennomsnitt i stedet, vil samme type beregning bli gjort, men det vil inkludere prisene i løpet av de siste 50 dagene. Det resulterende gjennomsnittet under (11) tar hensyn til de siste 10 datapunktene for å gi handelsmenn en ide om hvordan en eiendel er priset i forhold til de siste 10 dagene. Kanskje du lurer på hvorfor tekniske handelsfolk kaller dette verktøyet et bevegelige gjennomsnitt og ikke bare en vanlig gjennomsnitt. Svaret er at når nye verdier blir tilgjengelige, må de eldste datapunktene slippes fra settet og nye datapunkter må komme inn for å erstatte dem. Dermed går datasettet kontinuerlig til å regne for nye data etter hvert som det blir tilgjengelig. Denne beregningsmetoden sikrer at bare den nåværende informasjonen blir regnskapsført. I figur 2 flyttes den røde boksen (som representerer de siste 10 datapunktene) til høyre, og den siste verdien av 15 blir tapt fra beregningen når den nye verdien av 5 er lagt til settet. Fordi den relativt små verdien av 5 erstatter den høye verdien på 15, ville du forvente å se gjennomsnittet av datasettets reduksjon, som det gjør, i dette tilfellet fra 11 til 10. Hva ser Moving Averages Like Når verdiene til MA har blitt beregnet, de er plottet på et diagram og deretter koblet til for å skape en bevegelig gjennomsnittslinje. Disse svingete linjene er vanlige på diagrammer av tekniske handelsfolk, men hvordan de brukes kan variere drastisk (mer om dette senere). Som du kan se i figur 3, er det mulig å legge til mer enn ett glidende gjennomsnitt i et diagram ved å justere antall tidsperioder som brukes i beregningen. Disse svingete linjene kan virke distraherende eller forvirrende i begynnelsen, men du vil bli vant til dem når tiden går videre. Den røde linjen er bare gjennomsnittsprisen de siste 50 dagene, mens den blå linjen er gjennomsnittsprisen de siste 100 dagene. Nå som du forstår hva et glidende gjennomsnitt er, og hvordan det ser ut, kan du godt presentere en annen type glidende gjennomsnitt og undersøke hvordan det er forskjellig fra det tidligere nevnte enkle glidende gjennomsnittet. Det enkle glidende gjennomsnittet er ekstremt populært blant handelsfolk, men som alle tekniske indikatorer har det kritikere. Mange individer hevder at bruken av SMA er begrenset fordi hvert punkt i dataserien vektes det samme, uavhengig av hvor det forekommer i sekvensen. Kritikere hevder at de nyeste dataene er mer signifikante enn de eldre dataene, og bør ha større innflytelse på sluttresultatet. Som svar på denne kritikken begynte handelsmenn å gi mer vekt på nyere data, som siden har ført til oppfinnelsen av ulike typer nye gjennomsnitt, hvorav den mest populære er det eksponentielle glidende gjennomsnittet (EMA). (For videre lesing, se Grunnleggende om vektede bevegelige gjennomsnitt og hva som er forskjellen mellom en SMA og en EMA) Eksponentiell flytende gjennomsnitt Det eksponentielle glidende gjennomsnittet er en type bevegelige gjennomsnitt som gir mer vekt til de siste prisene i et forsøk på å gjøre det mer responsivt til ny informasjon. Å lære den noe kompliserte ligningen for å beregne en EMA kan være unødvendig for mange forhandlere, siden nesten alle kartleggingspakker gjør beregningene for deg. Men for deg matematiske geeks der ute, her er EMA-ligningen: Når du bruker formelen til å beregne det første punktet til EMA, kan det hende du merker at det ikke er noen verdi tilgjengelig for bruk som den forrige EMA. Dette lille problemet kan løses ved å starte beregningen med et enkelt glidende gjennomsnitt og fortsette videre med den ovennevnte formelen derfra. Vi har gitt deg et eksempelkart som inneholder virkelige eksempler på hvordan du kan beregne både et enkelt glidende gjennomsnitt og et eksponentielt glidende gjennomsnitt. Forskjellen mellom EMA og SMA Nå som du har en bedre forståelse av hvordan SMA og EMA beregnes, kan vi se på hvordan disse gjennomsnittene er forskjellige. Ved å se på beregningen av EMA, vil du legge merke til at det legges større vekt på de siste datapunktene, noe som gjør det til en type vektet gjennomsnitt. I figur 5 er antall tidsperioder som brukes i hvert gjennomsnitt identisk (15), men EMA reagerer raskere på de endrede prisene. Legg merke til hvordan EMA har en høyere verdi når prisen stiger, og faller raskere enn SMA når prisen senker. Denne responsen er den viktigste grunnen til at mange handelsmenn foretrekker å bruke EMA over SMA. Hva betyr de forskjellige dagene Gjennomsnittlig flytteverdi er en helt tilpassbar indikator, noe som betyr at brukeren fritt kan velge hvilken tidsramme de vil ha når man lager gjennomsnittet. De vanligste tidsperioder som brukes i bevegelige gjennomsnitt er 15, 20, 30, 50, 100 og 200 dager. Jo kortere tidsrammen som brukes til å skape gjennomsnittet, jo mer følsomt blir det for prisendringer. Jo lengre tidsrom, jo ​​mindre følsomt, eller mer utjevnet, vil gjennomsnittet være. Det er ingen riktig tidsramme som skal brukes når du oppretter dine bevegelige gjennomsnitt. Den beste måten å finne ut hvilken som passer best for deg, er å eksperimentere med en rekke forskjellige tidsperioder til du finner en som passer til din strategi. Jeg vet at dette kan oppnås med boost per: Men jeg vil virkelig unngå å bruke boost . Jeg har googled og ikke funnet noen egnede eller lesbare eksempler. I utgangspunktet vil jeg spore det bevegelige gjennomsnittet av en pågående strøm av en strøm av flytende punktnumre ved å bruke de siste 1000 tallene som en dataprøve. Hva er den enkleste måten å oppnå dette på, jeg eksperimenterte med å bruke et sirkulært array, eksponentielt glidende gjennomsnitt og et enklere glidende gjennomsnitt og fant ut at resultatene fra det sirkulære arrayet passer mine behov best. spurte 12. juni kl 12:38 Hvis dine behov er enkle, kan du bare prøve å bruke et eksponentielt glidende gjennomsnitt. Enkelt sagt, du lager en akkumulatorvariabel, og når koden ser på hver prøve, oppdaterer koden akkumulatoren med den nye verdien. Du velger en konstant alfa som er mellom 0 og 1, og beregner dette: Du trenger bare å finne en verdi av alfa hvor effekten av en gitt prøve bare varer i ca 1000 prøver. Hmm, jeg er egentlig ikke sikker på at dette passer for deg, nå som jeg har sagt det her. Problemet er at 1000 er et ganske langt vindu for et eksponentielt glidende gjennomsnitt. Jeg er ikke sikker på at det finnes en alfa som vil spre gjennomsnittet over de siste 1000 tallene, uten understrøm i flytpunktsberegningen. Men hvis du vil ha et mindre gjennomsnitt, som 30 tall eller så, er dette en veldig enkel og rask måte å gjøre det på. svarte 12. juni kl 12:44 1 på ditt innlegg. Det eksponentielle glidende gjennomsnittet kan la alfa variere. Så dette tillater det å bli brukt til å beregne tidsbasen gjennomsnitt (for eksempel bytes per sekund). Hvis tiden siden den siste akkumulatoroppdateringen er mer enn 1 sekund, lar du alfa være 1,0. Ellers kan du la alpha være (usecs siden sist oppdatering1000000). ndash jxh Jun 12 12 at 6:21 I utgangspunktet vil jeg spore det bevegelige gjennomsnittet av en pågående strøm av en strøm av flytende punktnumre ved å bruke de siste 1000 tallene som en datasample. Vær oppmerksom på at under oppdateringer summen som elementer som addrested, unngå kostbare O (N) traversal å beregne summen som trengs for gjennomsnittet - på forespørsel. Totalt er det laget en annen parameter fra T for å støtte f. eks. bruker en lang lang når totalt 1000 lang s, en int for char s, eller en dobbel til total float s. Dette er litt feil i at numsamples kan gå forbi INTMAX - hvis du bryr deg om at du kan bruke en usignert lang lang. eller bruk et ekstra bool data medlem til å registrere når beholderen først fylles mens sykkel nummeprøver rundt arrayet (best deretter omdøpt noe uskyldig som pos). besvart 12. juni 12 klokka 5:19 en antar at kvote-operatør (T-prøve) kvot er faktisk quotvoid operatorltlt (T-prøve) sitat. ndash oPless 8 Jun 14 kl 11:52 oPless ahhh. godt observert. egentlig mente jeg at det skulle være tomt operatør () (T-prøve), men selvfølgelig kunne du bruke hvilken som helst notasjon du likte. Vil fikse, takk. ndash Tony D Jun 8 14 at 14:27 Jeg vil utvikle beregning for aksjekurs glidende gjennomsnitt. Men mye kompleks beregning er planlagt senere. Mitt første skritt å vite hvordan å beregne Flytende Gjennomsnitt effektivt. Jeg trenger å vite hvordan du tar innspillingen og returnerer effekten effektivt. betraktet innsats Dato og pris. konsumert produksjon Dato, pris og flytende gjennomsnitt. Hvis jeg har 500 poster, og jeg vil beregne Flytte gjennomsnitt i 5 dager, hva er den effektive måten i stedet for å gå frem og tilbake i en rekke Dato og pris igjen, vennligst sugest hva er den beste måten å motta innskriving (ArrayList, Table, array etc) og returnere utgang. Merk: Dagens MA på 5 dager vil være gjennomsnittlig for siste 5 dager, inkludert dagens pris. I går vil MA være gjennomsnittlig de siste 5 dagene fra i går. Jeg vil holde dagene til å være fleksible i stedet for 5 det kan være 9, 14, 20 etc. Torsdag 10. april 2008 kl. 21:21 Hvis du trenger enkel beregning uten innsats enn du kan bruke TA-Lib. Men hvis du vil at beregningen din skal være mer effektiv enn TA-Lib, kan du lage din egen tekniske indikator. TA-Lib er flott, men problemet er at dette biblioteket bare har statiske metoder. Det betyr at når du må beregne SMA-arrayverdier basert på 500 prisbarer, sender du hele spekteret av barer, og det vil returnere en rekke SMA-verdier. Men hvis du mottar ny 501-st verdi, så skal du sende igjen hele arrayet, og TA-Lib vil igjen beregne og returnere SMA-utvalg av verdier. Forestill deg at du trenger en slik indikator på riktig pris, og for hver prisendring trenger du ny indikatorverdi. Hvis du har en indikator, er det ikke et stort problem, men hvis du har hundrevis av indikatorer som fungerer, kan det være et ytelsesproblem. Jeg var i en slik situasjon og begynte å utvikle realtidsindikatorer som er effektive og gjør ytterligere beregninger for ny prislinje eller bare for endret prislinje. Uheldigvis trengte jeg aldri SMA-indikator for mine handelssystemer, men jeg har slike for EMA, WMA, AD og andre. En slik indikator AD er publisert på bloggen min, og du kan se derfra hva er grunnstrukturen til min realtime-indikatorklasse. Jeg håper du trenger små endringer for å implementere SMA-indikatoren, fordi det er en av de enkleste. Logikken er enkel. Å beregne SMA alt du trenger er n siste prisverdier. Så klassetilfelle vil ha samling av priser, som vil lagre, hold bare n siste antall priser ettersom SMA er definert (i ditt tilfelle 5). Så når du har en ny linje, fjerner du den eldste og legger til en ny og lager beregning. Torsdag 10. april 2008 16:04 Alle svar Det er et bibliotek kalt TA-Lib som gjør alt det for deg og det er åpen kildekode. Den har ca 50 indikatorer jeg tror. Weve brukte det i produksjonsmiljø, og det er veldig effektivt og realistisk. Du kan bruke den i C, Java, C, etc. Hvis du trenger enkel beregning uten innsats enn du kan bruke TA-Lib. Men hvis du vil at beregningen din skal være mer effektiv enn TA-Lib, kan du lage din egen tekniske indikator. TA-Lib er flott, men problemet er at dette biblioteket bare har statiske metoder. Det betyr at når du må beregne SMA-arrayverdier basert på 500 prisbarer, sender du hele spekteret av barer, og det vil returnere en rekke SMA-verdier. Men hvis du mottar ny 501-st verdi, så skal du sende igjen hele arrayet, og TA-Lib vil igjen beregne og returnere SMA-utvalg av verdier. Forestill deg at du trenger en slik indikator på riktig pris, og for hver prisendring trenger du ny indikatorverdi. Hvis du har en indikator, er det ikke et stort problem, men hvis du har hundrevis av indikatorer som fungerer, kan det være et ytelsesproblem. Jeg var i en slik situasjon og begynte å utvikle realtidsindikatorer som er effektive og gjør ytterligere beregninger for ny prislinje eller bare for endret prislinje. Uheldigvis trengte jeg aldri SMA-indikator for mine handelssystemer, men jeg har slike for EMA, WMA, AD og andre. En slik indikator AD er publisert på bloggen min, og du kan se derfra hva er grunnstrukturen til min realtime-indikatorklasse. Jeg håper du trenger små endringer for å implementere SMA-indikatoren, fordi det er en av de enkleste. Logikken er enkel. Å beregne SMA alt du trenger er n siste prisverdier. Så klassetilfelle vil ha samling av priser, som vil lagre, hold bare n siste antall priser ettersom SMA er definert (i ditt tilfelle 5). Så når du har en ny linje, fjerner du den eldste og legger til en ny og lager beregning. Torsdag 10. april 2008 16:04 Jeg ville beregne det bevegelige gjennomsnittet i databasen via en lagret prosedyre eller i en terning. Har du sett på Analysis Services, har den muligheten til å beregne bevegelige gjennomsnitt. Torsdag 10. april 2008 16:05 Ja. TA-LIB er bra, men kan ikke være egnet for meg. Når jeg legger til ny verdi eller oppdatert verdi for historien over poster, vil jeg gjøre beregningen i en egen funksjon bare for det nye sitatet og lagre det i database. Jeg planlegger å oppdatere sitatet hver time. Jeg trenger å gjøre rundt 25 til 30 tekniske indikatorer for 2200 aksjer. Torsdag 10. april 2008 17:51 Utførelsestid for et TA-Lib-anrop på en rekkevidde på 10000 elementer tar ca 15 millisekunder (på en Intel Core Duo 2.13 Ghz). Dette er gjennomsnittet av alle funksjonene. Blant de raskeste tar SMA mindre enn 2,5 millisekunder. Den tregeste, HTTRENDMODE, tar 450 millisekunder. Med mindre elementer er det raskere. SMA tar ca 0,22 millisekunder for 1000 inngangselementer. Hastighetsøkningen er nesten lineær (overhead for å utføre funksjonssamtalen er ubetydelig). I sammenheng med søknaden din er TA-Lib svært lite sannsynlig å være flaskehalsen for hastighetsytelse. Også jeg anbefaler vanligvis ikke slik quadrat-løsning. Les nedenfor for detaljer. Først en korreksjon til Boban. s setning Alle funksjoner i TA-Lib kan også beregne en enkelt siste verdi ved å bruke et minimum av quotlast nquot-elementer. Du kan ha en rekkevidde på størrelse 10000, har data initialiseres bare for de første 500 elementene, legg til ett element og ring TA-Lib for å beregne SMA bare for det nye elementet. TA-Lib vil se bakover ikke mer enn nødvendig (hvis SMA er 5, vil TA-Lib beregne en enkelt SMA ved hjelp av de siste 5 verdiene). Dette gjøres mulig med parameteren startIdx og endIdx. Du kan angi et område som skal beregnes, eller en enkelt verdi. I dette scenariet vil du gjøre startIdx endIdx 500 til å beregne 501ste elementet. Hvorfor er slik quotlast nquot-løsning potensielt farlig for noen Uansett å velge Boban. s løsning eller TA-Lib mener det å bruke et lite, begrenset antall tidligere data ikke fungerer bra med de fleste TA-funksjoner. Med SMA er det åpenbart at du bare trenger n element for å beregne et gjennomsnitt over n element. Det er ikke så enkelt med EMA (og mange andre TA-funksjoner). Algoet avhenger ofte av forrige verdi for å beregne den nye verdien. Funksjonen er rekursiv. Det betyr at alle tidligere verdier har innflytelse på fremtidige verdier. Hvis du bestemmer deg for å quotlimitquot ditt algo for å bruke bare en liten mengde fortid n verdi, vil du ikke få det samme resultatet som noen som beregner over et stort antall tidligere verdier. Løsningen er et kompromiss mellom hastighet og presisjon. Jeg har ofte diskutert dette i sammenheng med TA-Lib (jeg kaller det den kvoterte perioden i dokumentasjonen og forumet). For å holde det enkelt, er min generelle anbefaling at du ikke kan gjøre forskjellen mellom et algo med en endelig impulsrespons (FIR) fra et algo med et uendelig impulsrespons (IIR). Du vil være tryggere å beregne over alle dataene du har tilgjengelig. TA-Lib spesifiserer i koden hvilken av dens funksjoner har en ustabil periode (IIR). Redigert av mfortier Fredag ​​15. august 2008 kl. 16:25 Korrekt engelsk setning fredag ​​15. august 2008 kl.

No comments:

Post a Comment