Tuesday 7 November 2017

Flytte Gjennomsnittet Med Labview


Flytte 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. Flytte gjennomsnitt: Slik bruker du demKalkulerende Flytende Gjennomsnitt Denne VI beregner og viser det bevegelige gjennomsnittet, ved hjelp av et forhåndsvalgt nummer. For det første initierer VI to skiftregister. Toppskiftregisteret initialiseres med ett element, og legger kontinuerlig den forrige verdien med den nye verdien. Dette skiftregisteret beholder summen av de siste x-målingene. Etter å ha delt resultatene av add-funksjonen med den forvalgte verdien, beregner VI VI den bevegelige gjennomsnittsverdien. Bunnskiftregisteret inneholder en matrise med dimensjonen Gjennomsnitt. Dette skiftregisteret holder alle verdier av målingen. Byttefunksjonen erstatter den nye verdien etter hver løkke. Denne VI er veldig effektiv og rask fordi den bruker erstatningselementfunksjonen i løpet av mens sløyfen, og den initialiserer oppstillingen før den går inn i sløyfen. Denne VI ble opprettet i LabVIEW 6.1. Bookmark amp ShareSimple Moving Average VI Vanligvis når folk snakker om en Moving Average, betyr de Bytt punkt N med gjennomsnittet av M poeng rundt Point N. Anta at jeg har 100 poeng hvis verdier er 1, 2, 3. 100, og jeg vil Gjør en 5-punkts flytende gjennomsnitt. Første ting å merke seg er at det er et glidende gjennomsnitt på det tredje punktet er gjennomsnittet av 1, 2, 3, 4, 5 3. Gjennomsnittet av det fjerde punktet er gjennomsnittet av 2, 3, 4, 5, 6 4. Dette er imidlertid kanskje for enkelt et eksempel. Hva med gjennomsnittet av en trinnfunksjon, 0 fra 1 til 10, deretter 20 deretter. Igjen, kast ut poeng 1 og 2. Gjennomsnittet av poeng 1-5 (for å gå inn i punkt 3) 0 (siden alle poengene er 0). På samme måte som punkt 4, 5, 6,7 og 8. Imidlertid er punkt 9 gjennomsnittet 0, 0, 0, 0, 20 4. Hva med punkt 10 Vel, det skal være gjennomsnittet på 0, 0, 0 , 20, 20 8, men husket du ikke å overskrive Punkt 9 Hmm, virker som om vi må beholde to kopier av Array (som generelt er dyrt). Det er flere måter du kan unngå å gjøre dette på. Forstår du hvor problemet oppstår i forrige avsnitt Hvis ikke, prøv å gjøre dette med blyant og papir (eller prøv å kode det i LabVIEW). Jeg gir deg svaret slik at du kan sjekke - det bevegelige gjennomsnittet av trinnfunksjonen er -, -, 0, 0, 0, 0, 0, 0, 0, 4, 8, 12, 16, 20, 20 , 20. -, - (hvor - er de tomme verdiene i enden av arrayet, poengene du ikke har sufficent naboer). PS! - det ville ikke overraske meg hvis det var en LabVIEW-funksjon som gjør dette for deg. Men hvis du lærer LabVIEW og vil ha en bedre forståelse av hvordan algoritmene du plugger i arbeid, gjør det aldri vondt å spille og prøve det selv. Du kan til og med komme med en forbedring (flere av oss har gjort det.). takk for sensibiliserende angående de finere punktene i Moving Average-metoden. Dette etterpå er et statistisk verktøy som bidrar til å se hva du vil se abstraherer distraktorene. Så metoden er bundet til å ha noen mangler i enkelte situasjoner eller kontekst. Men jeg antar at den passer perfekt til min slags DOS-datalogging - det er et trykk eller et temperatur - eller flyt-signal - og jeg kjøper på noe som 400 eksemplarer sek og bruker deretter en gjennomsnittlig enkeltprøve. Og prosessen er ganske treg da hovedkoden kjører på ikke mer enn 20 Hz. Så når jeg gjør et 5 eksempelslagende gjennomsnitt, kommer min første prøve 5 x 50 ms senere, så for hver 50 ms får jeg en gyldig prøve. I utgangspunktet er jeg mer opptatt av trender og ikke spotverdier. I dette er det lite å bekymre seg om ubesvarte prøver eller falske verdier. Selvfølgelig ville jeg ikke tør å bruke dette til en Step-funksjon. Det ville være grusomt. Raghunathan LV2012 å automatisere hydrauliske test rigger. Melding 4 av 15 (1,014 Visninger) Re: Simple Moving Average VI 03-30-2016 11:58 Det er gjennomsnittlig ptbypt som gjør det samme. Du kan inspisere koden hvis du vil. En stor feil i koden er det faktum at du stadig vokser og krymper et eksisterende utvalg. Du bør prøve å finne en løsning som fungerer på plass på en fast størrelse-array. Kan eksempler være lagt ut på forumet gjennom årene (se hee for eksempel). Den gjennomsnittlige bryr seg ikke om elementene er ute av drift, så du kan bare erstatte det eldste elementet, uansett hvor det er plassert. Du forbereder også det nye elementet til begynnelsen av et eksisterende utvalg, som alltid er mye dyrere enn å legge til i slutten. Eksempelstørrelsen din kan ikke endres når VI kjører. Skiftregisteret ditt skal initialiseres med en tom matrise, ikke en matrise som allerede inneholder et enkeltelement som er null. (Denne ekstra null vil gi feil gjennomsnitt) Koden din skal gjøres til en subVI, slik at den kan brukes på nytt (ligner ptbypt-versjonen). Din VI kan aldri stoppes, bare avbrutt. Gode ​​optimaliseringstips. Poenget med å initialisere med null mistet meg. Og ja, brukeren bør ikke endre prøveformatet når den begynner å løpe. Til slutt vil jeg lage en SubVI og håndtere ting som stopper osv. Når det gjelder poenget med å legge ut på forhånd enn å legge til den nye verdien til array, er det kanskje en ytelsesstraff, men gitt størrelsen på mitt array, er jeg sikker på at CPUen ikke bryr seg annerledes . Men for meg må det være slik at jeg bruker de endelige dataene for å tegne en trend av en fysisk parameter. Takk for din tid. Raghunathan LV2012 å automatisere hydrauliske test rigger. takk for sensibiliserende angående de finere punktene i Moving Average-metoden. Dette etterpå er et statistisk verktøy som bidrar til å se hva du vil se abstraherer distraktorene. Så metoden er bundet til å ha noen mangler i enkelte situasjoner eller kontekst. Men jeg antar at den passer perfekt til min slags DOS-datalogging - det er et trykk eller et temperatur - eller flyt-signal - og jeg kjøper på noe som 400 eksemplarer sek og bruker deretter en gjennomsnittlig enkeltprøve. Og prosessen er ganske treg da hovedkoden kjører på ikke mer enn 20 Hz. Så når jeg gjør et 5 eksempelslagende gjennomsnitt, kommer min første prøve 5 x 50 ms senere, så for hver 50 ms får jeg en gyldig prøve. Aha Så du vil ikke ha et glidende gjennomsnitt, men bare et enkelt gjennomsnitt. Det er mye enklere. Heres ideen (som fungerer mye bedre med en ProducerConsumer Design) - Si at du er prøvetaking ved 400Hz, vil lagre dataene ved 400 Hz (dvs. lagre alle dataene til disken), men vil vise ved 20 Hz (fordi du ønsker å se trender, en lengre tidsbase, etc.). Sett opp ditt AD-system for å samle 20 prøver ved 400Hz (merk at du kan samle N-kanaler samtidig, og gi deg et 2D utvalg av prøver. Da du får dataene (ved 20 Hz) fra AD (gjør dette til produsenten) Forbrukeren begynner med å skrive dataene til disk (burde ikke ta mye tid). Nå har du en 2D-serie - i en For Loop, på kanal for kanal, gjennomsnittlig de 20 poengene. Nå har du en 1D-array, med et gjennomsnittspunkt for hver kanal. Gå videre og plott den. Merk at denne ordningen (a) bruker alle dataene, (b) håndterer flerkanalsdata med aplomb (og hvis du er fra Midt-Østen hvor de vokser, kan du også håndtere dataene dine med en saftig plomme), og (c) lar deg samle dataene dine fra AD-utstyret, lagre dataene dine til disken, holde alle poengene og vise dataene dine på skjermen ved hjelp av alle poengene dine, men også gjennomsnittlig for å forbedre det visuelle signalet til støyforholdet, alt uten å miste data (jeg har gjort det nøyaktig med 24 kanaler ved 1KHz, med dataene blir tatt på et eksternt system og sendt til PCen via TCPIP, så vi har også TCP-behandling i loop). Velkommen til den spennende verden av dataoppkjøp og behandling med LabVIEW. Stol på meg, dette er et flott system for å gjøre denne typen arbeid Basert på tilbakemeldingene jeg fikk på min opprinnelige VI, har jeg raffinert Moving Average-koden til en subVI. Jeg brukte den til å gjennomsnittlig en simulert 10Channel-data - bare for å holde ting enkelt, sørget jeg for at all10 kanaler hadde identiske data. Man regner med å få det samme glidende gjennomsnittet for alle 10 kanaler. Jeg er overrasket over den lille variansen jeg legger merke til mellom kanaler - generelt er de nært, men ikke eksakte. Og bare for å forklare prosessen jeg prøver, har jeg også enclsoed en XLS. Så hvor kommer variasjonen inn fra. Det enhetlige skiftregisteret i del VI. Raghunathan LV2012 å automatisere hydrauliske test rigger. Melding 9 av 15 (917 Visninger) Re: Simple Moving Average VI altenbach 04-01-2016 10:25 Koden din gir fortsatt ingen mening. Når du ringer til subVI en skalar av gangen, får du ikke det du vil, fordi skiftregisteret bare rememeberer de siste N-skalarene, uansett hvilken kanal den er fra. Koden din er fortsatt svært ineffektiv og innviklet. (f. eks. hvorfor bruker du fortsatt innsats i array for å legge til (både i mani nad i underdelen). (Du kan bruke en reenetrant subVI og en parallell innerste FOR-sløyfe, men det virker altfor komplisert også) Hvis du vil gjøre en kjører gjennomsnitt på hver kanal, trenger subVI å holde en 2D-array i subVI. Alt dette har blitt gjort før. Melding 10 av 15 (901 Visninger)

No comments:

Post a Comment