Jeg har en rekke datoer og en måling på hver av disse datoene. Jeg liker å beregne et eksponentielt glidende gjennomsnitt for hver av datoene. Vet noen hvordan å gjøre dette, jeg er ny på python. Det ser ikke ut til at gjennomsnitt er bygget inn i standard pythonbiblioteket, noe som slår meg som et lite merkelig. Kanskje jeg ikke ser på rett sted. Så, gitt følgende kode, hvordan kunne jeg beregne det flytende vektede gjennomsnittet av IQ-poeng for kalenderdatoer (det er sannsynligvis en bedre måte å strukturere dataene på, noe råd ville bli verdsatt) spurte 28. januar kl 18:01 Min python er en litt rustet (noen kan gjerne redigere denne koden for å gjøre rettelser, hvis jeg har slått opp syntaxen på en eller annen måte), men her går det. Denne funksjonen beveges bakover, fra slutten av listen til begynnelsen, beregner eksponentielt glidende gjennomsnitt for hver verdi ved å arbeide bakover til vektkoeffisienten for et element er mindre enn det angitte epsilonet. På slutten av funksjonen reverserer den verdiene før du returnerer listen (slik at de er i riktig rekkefølge for den som ringer). (SIDE MERK: Hvis jeg brukte et annet språk enn python, oppretter jeg en fullstendig tom rekke først, og fyller den deretter på baksiden, slik at jeg ikke ville måtte reversere den på slutten. Men jeg tror ikke du kan erklære et stort tomt utvalg i python. Og i pythonlister er tilkobling mye billigere enn forutsetningen, og derfor bygde jeg opp listen i omvendt rekkefølge. Vennligst rett meg hvis jeg er feil.) Alfa-argumentet er forfallsfaktoren på hver iterasjon. Hvis du for eksempel brukte en alfa på 0,5, ville dagens glidende gjennomsnittsverdi bestå av følgende vektede verdier: Selvfølgelig, hvis du har et stort utvalg av verdier, vil verdiene fra ti eller femten dager siden ikke bidra veldig mye til dagens vektede gjennomsnitt. Epsilon-argumentet lar deg angi et cutoff-punkt, under hvilket du vil slutte å bry deg om gamle verdier (siden deres bidrag til dagens verdi vil være ubetydelig). Youd påkaller funksjonen noe slikt: Besvart 28. jan 09 kl 18:46 Jeg vet ikke Python, men for den gjennomsnittlige delen, mener du et eksponentielt forfallende lavpasfilter i skjemaet der alfa dttau, dt filterets tidstap , tau filterets tidskonstant (variabeltidsformen for dette er som følger, bare klipp dttau til ikke være mer enn 1,0) Hvis du vil filtrere noe som en dato, må du kontrollere at du konverterer til en flytende punktmengde som om sekunder siden 1. januar 1970. Besvart 28. jan kl 18:10 Jeg fant den ovennevnte kodestykket av earino ganske nyttig - men jeg trengte noe som kunne kontinuerlig jevne en strøm av verdier - så jeg refactored det til dette: og jeg bruker det slik: (hvor pin. read () produserer den neste verdien som jeg liker å konsumere). besvart 12. februar 14 klokka 20:35 Jeg beregner alltid EMAer med Pandas: Her er et eksempel på hvordan du gjør det: Mer informasjon om Pandas EWMA: svarte 4. okt 15 kl 12:42 Don39t nyere versjoner av Pandas har nye og bedre funksjoner. ndash Cristian Ciupitu 11 mai 16 kl 14:10 Merk at i motsetning til i regnearket, beregner jeg ikke SMA, og jeg venter ikke på å generere EMA etter 10 prøver. Dette betyr at mine verdier er forskjellige, men hvis du kartlegger det, følger det nøyaktig etter 10 prøver. Under de første 10 prøvene, EMA jeg beregner er riktig jevnt. Hmmm, det virker som dette quoteasy å implementquot funksjonen er faktisk ganske enkelt å bli feil og har fremmet en god diskusjon om minneeffektivitet. Jeg er glad for å ha oppblåst hvis det betyr å vite at noe har blitt gjort riktig. ndash Richard Sep 20 14 kl 19:23 NumPys mangel på en bestemt domenespesifikk funksjon er kanskje på grunn av Core Teams disiplin og troskap til NumPys hoveddirektiv: gi en N-dimensjonal array type. samt funksjoner for å opprette og indeksere disse arrays. Som mange grunnleggende mål er denne ikke liten, og NumPy gjør det glimrende. Den (mye) større SciPy inneholder en mye større samling av domenespesifikke biblioteker (kalt delpakker med SciPy devs) - for eksempel numerisk optimalisering (optimalisering), signalprosessering (signal) og integralkalkulator (integrere). Min gjetning er at funksjonen du er ute etter, er i minst en av SciPy-subpackages (scipy. signal kanskje), men jeg vil se først ut i samlingen av SciPy scikits. identifiser relevante scikit (er) og se etter interessens funksjon der. Scikits er selvstendig utviklede pakker basert på NumPySciPy og rettet mot en bestemt teknisk disiplin (f. Eks. Scikits-image. Scikits-learn etc.) Flere av disse var (spesielt den fantastiske OpenOpt for numerisk optimalisering) høyt ansett, modne prosjekter lange før du velger å bo under de relativt nye scikits rubric. Scikits hjemmeside likte å overliste omtrent 30 slike scikits. selv om minst flere av dem ikke lenger er under aktiv utvikling. Etter dette rådene vil du lede til scikits-timeseries, men denne pakken er ikke lenger under aktiv utvikling. Pandas er faktisk blitt AFAIK, de facto NumPy-baserte tidsserienbiblioteket. Pandas har flere funksjoner som kan brukes til å beregne et glidende gjennomsnitt. Det enkleste av disse er trolig rullende. som du bruker slik: Nå bare ring funksjonen rullende mens passerer i Serie objektet og en vindu størrelse. som i mitt eksempel nedenfor er 10 dager. bekreft at det virket - f. eks. sammenlignet verdier 10-15 i den opprinnelige serien versus den nye serien jevnet med rullende middel Funksjonen rullende mean sammen med omtrent et dusin eller annen funksjon er informelt gruppert i Pandas dokumentasjon under rubrikk flyttingsvinduet fungerer en andre relatert gruppe funksjoner i Pandas refereres til som eksponentielt vektede funksjoner (f. eks. ewma. som beregner eksponentielt flytende vektet gjennomsnitt). Det faktum at denne andre gruppen ikke er inkludert i de første (bevegelige vindufunksjonene), er kanskje at de eksponentielt vektede transformasjonene ikke stole på et fastlengtingsvindu. Eksponentiell flytende gjennomsnitt - EMA BREAKING DOWN Eksponensiell flytende gjennomsnitt - EMA 12- og 26- Dag EMAer er de mest populære kortsiktige gjennomsnittene, og de brukes til å skape indikatorer som den bevegelige gjennomsnittlige konvergensdivergensen (MACD) og prosentvis prisoscillator (PPO). Generelt brukes 50- og 200-dagers EMAer som signaler for langsiktige trender. Traders som ansetter teknisk analyse, finner glidende gjennomsnitt veldig nyttige og innsiktige når de brukes riktig, men skaper kaos når de brukes feil eller blir feilfortolket. Alle de bevegelige gjennomsnittene som vanligvis brukes i teknisk analyse, er av sin natur sakende indikatorer. Følgelig bør konklusjonene fra å bruke et glidende gjennomsnitt til et bestemt markedskart være å bekrefte et markedskryss eller for å indikere dets styrke. Svært ofte, etter hvert har en glidende gjennomsnittlig indikatorlinje endret seg for å reflektere et betydelig trekk i markedet, og det optimale punktet for markedsinngang har allerede gått. En EMA tjener til å lette dette dilemmaet til en viss grad. Fordi EMA-beregningen plasserer mer vekt på de nyeste dataene, klemmer prishandlingen litt strammere og reagerer derfor raskere. Dette er ønskelig når en EMA brukes til å utlede et handelsinngangssignal. Tolke EMA Som alle bevegelige gjennomsnittsindikatorer, er de mye bedre egnet for trending markeder. Når markedet er i en sterk og vedvarende opptrinn. EMA-indikatorlinjen vil også vise en uptrend og vice versa for en nedtrend. En årvåken handelsmann vil ikke bare være oppmerksom på retningen til EMA-linjen, men også forholdet mellom endringshastigheten fra en linje til den neste. For eksempel, da prisvirkningen av en sterk opptrend begynner å flate og reversere, vil EMAs endringshastighet fra en linje til den neste begynne å redusere til den tid som indikatorlinjen flater og endringshastigheten er null. På grunn av den slanke effekten, ved dette punktet, eller til og med noen få barer før, bør prishandlingen allerede ha reversert. Det følger derfor at observere en konsistent reduksjon i endringshastigheten til EMA, kunne seg selv brukes som en indikator som ytterligere kunne motvirke dilemmaet forårsaket av den bølgende effekten av bevegelige gjennomsnitt. Vanlige bruksområder til EMA-EMAer brukes ofte i forbindelse med andre indikatorer for å bekrefte betydelige markedsbevegelser og å måle deres gyldighet. For handelsmenn som handler intradag og rasktflyttende markeder, er EMA mer anvendelig. Ofte bruker handelsmenn EMAer for å bestemme en handelspartiskhet. For eksempel, hvis en EMA på et daglig diagram viser en sterk oppadgående trend, kan en intraday traderstrategi være å handle kun fra langsiden på et intradagskjema.
No comments:
Post a Comment