Wednesday, October 5, 2016

Eksponensiële Bewegende Gemiddelde Seinverwerking

Bewegende gemiddelde Die bewegende gemiddelde Tegniese aanwyser toon die gemiddelde instrument prys waarde vir 'n sekere tydperk van die tyd. Wanneer 'n mens word bereken dat die bewegende gemiddelde, een gemiddeldes uit die instrument prys vir hierdie tydperk. As die prys veranderinge, sy bewegende gemiddelde óf verhoog, of verminder. Daar is vier verskillende tipes bewegende gemiddeldes: Eenvoudige (ook na verwys as Rekenkundige), eksponensiële. Reëlmatige en Geweegde. Bewegende gemiddelde kan bereken word vir enige opeenvolgende datastel, insluitend die opening en sluiting pryse, hoogste en laagste pryse, handel volume of enige ander aanwysers. Dit is dikwels die geval wanneer dubbel bewegende gemiddeldes gebruik. Die enigste ding wat waar bewegende gemiddeldes van verskillende tipes divergeer aansienlik van mekaar, is wanneer gewig koëffisiënte, wat die jongste data is opgedra, is anders. In geval praat ons van Simple bewegende gemiddelde. Alle pryse van die tydperk ter sprake is gelyk in waarde. Eksponensiële bewegende gemiddelde en Lineêre Geweegde Moving Gemiddelde heg meer waarde aan die nuutste pryse. Die mees algemene manier om die interpretasie van die prys bewegende gemiddelde is om sy dinamika vergelyk met die prys aksie. Wanneer die instrument prys bo sy bewegende gemiddelde styg, blyk 'n koopsein, indien die prys val onder sy bewegende gemiddelde, wat ons het, is 'n sell sein. Dit handel stelsel, wat gebaseer is op die bewegende gemiddelde, is nie ontwerp om toegang tot die mark te voorsien reg in sy laagste punt, en sy uitgang regs op die piek. Dit maak dit moontlik om op te tree volgens die volgende tendens: te koop kort nadat die pryse die bodem bereik, en om gou te verkoop nadat die pryse hul hoogtepunt bereik het. Bewegende gemiddeldes kan ook toegepas word op aanwysers. Dit is hier waar die interpretasie van aanwyser bewegende gemiddeldes is soortgelyk aan die interpretasie van die prys bewegende gemiddeldes: As die aanwyser styg bo sy bewegende gemiddelde, wat beteken dat die stygende aanwyser beweging is waarskynlik om voort te gaan: as die aanwyser val onder sy bewegende gemiddelde, hierdie beteken dat dit waarskynlik om voort te gaan gaan afwaarts. Hier is die tipes bewegende gemiddeldes op die grafiek: Eenvoudige bewegende gemiddelde (SMA) Eksponensiële bewegende gemiddelde (EMA) Reëlmatige bewegende gemiddelde (SMMA) Lineêre Geweegde bewegende gemiddelde (LWMA) Jy kan die handel seine van hierdie aanwyser te toets deur die skep van 'n kundige adviseur in MQL5 Wizard. Berekening Eenvoudige bewegende gemiddelde (SMA) Eenvoudige, met ander woorde, rekenkundige bewegende gemiddelde word bereken deur 'n opsomming van die pryse van sluiting instrument oor 'n sekere aantal enkele periodes (byvoorbeeld 12 uur). Hierdie waarde word dan gedeel deur die getal van sodanige tydperke. SMA som (naby (i), N) / N som som BESLOTE (i) huidige tydperk naby prys N aantal periodes berekening. Eksponensiële bewegende gemiddelde (EMA) eksponensieel stryk bewegende gemiddelde word bereken deur die toevoeging van 'n sekere deel van die huidige sluitingsprys op die vorige waarde van die bewegende gemiddelde. Met eksponensieel stryk bewegende gemiddeldes, die jongste naby pryse is meer werd. P-persent eksponensiële bewegende gemiddelde sal lyk: EMA (naby (i) P) (EMO (i - 1) (1 - P)) sluit (i) huidige tydperk naby prys EMO (i - 1) waarde van die bewegende gemiddelde van 'n voorafgaande tydperk P die persentasie van die gebruik van die prys waarde. Reëlmatige bewegende gemiddelde (SMMA) Die eerste waarde van hierdie stryk bewegende gemiddelde word bereken as die eenvoudige bewegende gemiddelde (SMA): sum1 som (naby (i), N) Die tweede bewegende gemiddelde word bereken volgens die formule: SMMA (i) (SMMA1 (N-1) sluit (i)) / N Opeenvolgende bewegende gemiddeldes word bereken volgens die onderstaande formule: PREVSUM SMMA (i - 1) N SMMA (i) (PREVSUM - SMMA (i - 1) sluit (i) ) / N som som sum1 totale bedrag van die sluiting van pryse vir n periodes word dit gereken as die vorige bar PREVSUM glad som van die vorige bar SMMA (i-1) glad bewegende gemiddelde van die vorige bar SMMA (i) glad bewegende gemiddelde van die huidige bar (behalwe vir die eerste een) sluit (i) huidige naby prys N glad tydperk. Na rekenkundige Doelskoppe die formule kan vereenvoudig word: SMMA (i) (SMMA (i - 1) (N - 1) sluit (i)) / N Lineêre Geweegde bewegende gemiddelde (LWMA) In die geval van geweegde bewegende gemiddelde, die jongste data is meer werd as meer vroeë data. Geweegde bewegende gemiddelde bereken word deur elkeen van die sluitingstyd pryse binne die oorweeg reeks, deur 'n sekere gewig koëffisiënt: LWMA som (naby (i) i, N) / som (i, N) som som BESLOTE (i) huidige naby prys som (i, n) totale bedrag van die gewig koëffisiënte n glad period. I het 'n verskeidenheid van datums en 'n meting op elk van dié datums. ID graag 'n eksponensiële bewegende gemiddelde te bereken vir elk van die datums. Het enige iemand weet hoe om nuwe te doen hierdie Im om luislang. Dit nie die geval blyk dat gemiddeldes is gebou in die standaard Python biblioteek, wat lyk my as 'n bietjie vreemd. Miskien Im nie op soek in die regte plek. So, gegewe die volgende kode, hoe kon ek bereken die bewegende geweegde gemiddelde van IK-punte vir kalender datums (Theres waarskynlik 'n beter manier om die datastruktuur, enige raad sal waardeer word) vra 28 Januarie 09 by 18:01 My luislang is 'n bietjie verroes (enigiemand kan vry om hierdie kode korreksies aan te bring, indien Ive opgemors die sintaksis een of ander manier te wysig voel), maar hier gaan. Hierdie funksie beweeg agtertoe, van die einde van die lys van die begin af, die berekening van die eksponensiële bewegende gemiddelde vir elke waarde deur agteruit te werk totdat die gewig koëffisiënt vir 'n element minder as die gegewe Epsilon is. Aan die einde van die funksie, dit keer die waardes voordat hy terugkeer die lys (sodat hulle is in die korrekte volgorde vir die oproeper). (Kant nota: As ek met behulp van 'n ander as Python taal, Id skep 'n volle grootte leë reeks eerste en dan vul dit agtertoe-orde, sodat ek wouldnt het om dit te keer aan die einde, maar ek dont dink jy kan verklaar. 'n groot leë reeks in python. En in Python lyste, aanbring is baie goedkoper as prepending, wat is die rede waarom ek die lys in omgekeerde volgorde gebou. korrigeer my as Im verkeerd.) die Alpha argument is die verval faktor op elke iterasie. Byvoorbeeld, as jy 'n alfa van 0,5 gebruik, dan vandag se bewegende gemiddelde waarde sal bestaan ​​uit die volgende geweegde waardes: Natuurlik, as jy het 'n groot verskeidenheid van waardes, die waardes van tien of vyftien dae gelede gewoond bydra baie om vandag se geweegde gemiddelde. Die epsilon argument kan jy 'n afgesnyde punt, onder wie jy sal ophou om te bekommer oor ou waardes (sedert hul bydrae tot vandag waarde gering sal wees) stel. Youd roep die funksie iets soos hierdie: geantwoord 28 Januarie 09 by 18:46 Ek dont weet Python, maar vir die gemiddelde deel, bedoel jy 'n eksponensieel verrottende laaglaatfilter van die vorm waar alfa dt / TLU, dt die tyd stap van die filter, TLU die tydkonstante van die filter (die veranderlike-tyd stap vorm van hierdie is soos volg, net clip dt / TLU om nie meer as 1.0) as jy iets soos 'n datum filter, maak seker dat jy om te skakel na 'n swaai-punt hoeveelheid soos sekondes sedert 1 Januarie 1970.I het 'n verskeidenheid van datums en 'n meting op elk van dié datums. ID graag 'n eksponensiële bewegende gemiddelde te bereken vir elk van die datums. Het enige iemand weet hoe om nuwe te doen hierdie Im om luislang. Dit nie die geval blyk dat gemiddeldes is gebou in die standaard Python biblioteek, wat lyk my as 'n bietjie vreemd. Miskien Im nie op soek in die regte plek. So, gegewe die volgende kode, hoe kon ek bereken die bewegende geweegde gemiddelde van IK-punte vir kalender datums (Theres waarskynlik 'n beter manier om die datastruktuur, enige raad sal waardeer word) vra 28 Januarie 09 by 18:01 My luislang is 'n bietjie verroes (enigiemand kan vry om hierdie kode korreksies aan te bring, indien Ive opgemors die sintaksis een of ander manier te wysig voel), maar hier gaan. Hierdie funksie beweeg agtertoe, van die einde van die lys van die begin af, die berekening van die eksponensiële bewegende gemiddelde vir elke waarde deur agteruit te werk totdat die gewig koëffisiënt vir 'n element minder as die gegewe Epsilon is. Aan die einde van die funksie, dit keer die waardes voordat hy terugkeer die lys (sodat hulle is in die korrekte volgorde vir die oproeper). (Kant nota: As ek met behulp van 'n ander as Python taal, Id skep 'n volle grootte leë reeks eerste en dan vul dit agtertoe-orde, sodat ek wouldnt het om dit te keer aan die einde, maar ek dont dink jy kan verklaar. 'n groot leë reeks in python. En in Python lyste, aanbring is baie goedkoper as prepending, wat is die rede waarom ek die lys in omgekeerde volgorde gebou. korrigeer my as Im verkeerd.) die Alpha argument is die verval faktor op elke iterasie. Byvoorbeeld, as jy 'n alfa van 0,5 gebruik, dan vandag se bewegende gemiddelde waarde sal bestaan ​​uit die volgende geweegde waardes: Natuurlik, as jy het 'n groot verskeidenheid van waardes, die waardes van tien of vyftien dae gelede gewoond bydra baie om vandag se geweegde gemiddelde. Die epsilon argument kan jy 'n afgesnyde punt, onder wie jy sal ophou om te bekommer oor ou waardes (sedert hul bydrae tot vandag waarde gering sal wees) stel. Youd roep die funksie iets soos hierdie: geantwoord 28 Januarie 09 by 18:46 Ek dont weet Python, maar vir die gemiddelde deel, bedoel jy 'n eksponensieel verrottende laaglaatfilter van die vorm waar alfa dt / TLU, dt die tyd stap van die filter, TLU die tydkonstante van die filter (die veranderlike-tyd stap vorm van hierdie is soos volg, net clip dt / TLU om nie meer as 1.0) as jy iets soos 'n datum filter, maak seker dat jy om te skakel na 'n swaai-punt hoeveelheid soos sekondes sedert 1 Januarie 1970.Exponential Bewegende Gemiddeldes vir Onreëlmatige tyd reeks in tydreeksanalise daar is dikwels 'n behoefte aan gladstryking funksies wat vinnig reageer op veranderinge in die sein. In die tipiese aansoek, kan jy die verwerking van 'n insetsein in real-time, en wil sulke dinge te bereken as die onlangse gemiddelde waarde, of kry 'n oombliklike helling daarvoor. Maar die werklike wêreld seine dikwels lawaaierige. 'N Paar lawaaierige monsters sal die huidige waarde van die sein te maak, of sy helling, wissel. Bewegende gemiddeldes Die eenvoudigste glad funksie is 'n met venster bewegende gemiddelde. Soos monsters kom in wat jy neem 'n gemiddeld van die mees onlangse N waardes. Dit sal glad spykers, maar stel 'n vertraging 8211 of latency. Jou gemiddelde sal altyd vertraag word deur die wydte van jou bewegende gemiddelde. Die voorbeeld hierbo is 'n relatief duur om te bereken. Vir elke monster moet jy Itereer oor die hele omvang van die venster. Maar daar is goedkoper maniere 8211 hou die som van al die monsters in die venster in 'n buffer, en pas die bedrag as nuwe monsters kom in: Nog 'n tipe van bewegende gemiddelde is die 8220weighted beweeg average8221 dat gewigte vir elke posisie in die monster venster. Voordat gemiddeld julle te vermenigvuldig elke monster deur die gewig van die venster posisie. Tegnies Dit word 'n 8220convolution8221. Een tipiese gewig funksie pas 'n klok kurwe om die monster venster. Dit gee 'n sein wat meer gestem om die middelpunt van die venster, en nog 'n bietjie verdraagsaam teenoor lawaaierige monsters. In finansiële ontleding gebruik jy dikwels 'n gewig funksie dat waardes onlangse monsters meer, om 'n bewegende gemiddelde wat nader spore onlangse monsters gee. Ouer monsters word progressief minder gewig. Dit verlaag ietwat die gevolge van latency, terwyl hy nog gee redelike goeie smoothing: Met 'n geweegde gemiddelde, jy altyd moet Itereer oor die hele venster grootte vir elke monster (tensy jy die toegelate gewigte om sekere funksies kan dwing). Die eksponensiële bewegende gemiddelde Nog 'n tipe van die gemiddelde is die eksponensiële bewegende gemiddelde, of EMO. Dit word dikwels gebruik waar latency is van kritieke belang, soos in reële tyd finansiële ontleding. In hierdie gemiddelde, die gewigte te verminder eksponensieel. Elke monster word gewaardeer sommige persent kleiner as die volgende mees onlangse voorbeeld. Met hierdie beperking kan jy die bewegende gemiddelde baie effektief te bereken. Waar Alpha is 'n konstante wat beskryf hoe die venster gewigte te verminder met verloop van tyd. Byvoorbeeld, as elke monster was wat gewig van 80 van die waarde van die vorige voorbeeld, sou jy alfa 0,2 stel. Die kleiner Alpha word hoe langer jou bewegende gemiddelde is. (Bv dit gladder, maar minder reaktief om nuwe monsters). Die gewigte vir 'n EMO met alpha0.20 Soos jy kan sien, want elke nuwe monster wat jy nodig het net om dit gemiddeld met die waarde van die vorige gemiddelde. So berekening is baie baie vinnig. In teorie alle vorige monsters bydra tot die huidige gemiddelde, maar hul bydrae word eksponensieel kleiner met verloop van tyd. Dit is 'n baie kragtige tegniek, en waarskynlik die beste as jy wil 'n bewegende gemiddelde wat vinnig reageer op nuwe monsters, het 'n goeie glad eienskappe en is vinnig om te bereken nie. Die kode is triviale: EMA vir Onreëlmatige Tydreekse die standaard EMO is fyn wanneer die sein gemonster op 'n gereelde tyd intervalle. Maar wat as jou monsters kom op ongereelde tussenposes Stel jou 'n deurlopende sein wat bemonster op ongereelde tussenposes. Dit is die gewone situasie in finansiële ontleding. In teorie is daar 'n kontinue funksie vir die waarde van enige finansiële instrument, maar jy kan net hierdie sein wanneer iemand werklik 'n handelsmerk voer proe. So jou datastroom bestaan ​​uit 'n waarde, plus die tyd wat dit is waargeneem. Een manier om dit te hanteer is om die onreëlmatige sein te omskep in 'n gereelde sein, deur interpol tussen waarnemings, en hermonstering. Maar dit verloor data, en dit weer stel latency. Dit is moontlik om 'n EMO vir 'n onreëlmatige tydreekse direk bereken: In hierdie funksie, slaag jy in die huidige monster van jou sein, en die vorige voorbeeld, en die bedrag van die tyd wat verloop het tussen die twee, en die vorige waarde wat deur hierdie funksie. Resultate So hoe goed werk dit te demonstreer I8217ve gegenereer 'n sinusgolf, dan gemonsterde dit op ongereelde tussenposes, en bekendgestel sowat 20 geraas. Dit is die sein sal lukraak wissel - 20 uit die oorspronklike 8220true8221 sinus sein. Hoe goed die onreëlmatige eksponensiële bewegende gemiddelde herstel die sein Die rooi lyn is die oorspronklike sinusgolf 8211 gemonsterde op ongereelde tussenposes. Die blou lyn is die sein by die geluid bygevoeg. Die blou lyn is die enigste sein die EMO sien. Die groen lyn is die reëlmatige EMO. Jy kan sien dit herstel die sein baie goed. is 'n bietjie lomp, maar wat kan jy verwag van so 'n lawaaierige bron sein Dit verskuif ongeveer 15 tot die reg, omdat die EMO doen stel sommige latency. Die gladder jy dit wil hê, hoe meer latency jy sal sien. Maar uit dit wat jy kan byvoorbeeld bereken 'n oombliklike helling vir 'n rumoerige onreëlmatige sein. Wat kan jy doen met daardie Hmm8230. Hulpbronne: Dokumentasie Hierdie voorbeeld wys hoe om te gebruik bewegende gemiddelde filters en hermonstering om die effek van periodieke komponente van die tyd van die dag op uurlikse temperatuurlesings, isoleer asook verwyder ongewenste lyn geraas van 'n oop-lus spanning meting. Die voorbeeld toon ook hoe om die vlakke van 'n kloksein glad terwyl die behoud van die kante deur die gebruik van 'n mediaan filter. Die voorbeeld toon ook hoe om 'n Hampel filter gebruik om groot uitskieters verwyder. Motivering Smoothing is hoe ons ontdek belangrik patrone in ons data, terwyl die verlaat uit dinge wat onbelangrik (bv geraas) is. Ons gebruik filter om hierdie smoothing voer. Die doel van smoothing is om stadige veranderinge in waarde te produseer sodat sy makliker om tendense in ons data te sien. Soms wanneer jy insette data te ondersoek wat jy kan wens om die data te stryk ten einde 'n tendens in die sein te sien. In ons voorbeeld het ons 'n stel van temperatuurlesings in Celsius geneem elke uur by die Logan-lughawe vir die hele maand van Januarie 2011. Let daarop dat ons visueel die effek wat die tyd van die dag het aan die temperatuurlesings kan sien. As jy in die daaglikse temperatuur variasie oor die maand net belangstel, die uurlikse skommelinge net bydra geraas, wat die daaglikse variasies moeilik om te onderskei kan maak. Om die effek van die tyd van die dag verwyder, sou ons nou graag ons data glad met behulp van 'n bewegende gemiddelde filter. 'N bewegende gemiddelde filter in sy eenvoudigste vorm, 'n bewegende gemiddelde filter van lengte N neem die gemiddelde van elke N agtereenvolgende monsters van die golfvorm. Om 'n bewegende gemiddelde filter aan elke datapunt toepassing, bou ons koëffisiënte van ons filter sodat elke punt ewe is geweeg en dra 24/01 tot die totale gemiddelde. Dit gee ons die gemiddelde temperatuur oor elke tydperk van 24 uur. Filter Vertraging Let daarop dat die gefilterde uitset vertraag met sowat twaalf ure. Dit is te danke aan die feit dat ons bewegende gemiddelde filter het 'n vertraging. Enige simmetriese filter van lengte N sal 'n vertraging van (N-1) / 2 monsters het. Ons kan rekening vir die vertraging met die hand. Uittreksels van Gemiddeld Verskille Alternatiewelik, kan ons ook die bewegende gemiddelde filter gebruik om 'n beter skatting van hoe die tyd van die dag beïnvloed die algehele temperatuur verkry. Om dit te doen, in die eerste, trek die stryk data van die uurlikse temperatuur metings. Dan segment die differenced data in dae en neem die gemiddelde oor die hele 31 dae in die maand. Uittreksels van Peak Envelope Soms het ons ook graag 'n vlot wisselende skatting van hoe die hoogte - en laagtepunte van ons temperatuur sein verander daagliks. Om dit te doen, kan ons die koevert funksie gebruik om die uiterste hoogtepunte en laagtepunte bespeur oor 'n subset van die tydperk van 24 uur aan te sluit. In hierdie voorbeeld, verseker ons daar ten minste 16 uur tussen elke uiterste hoë en uiterste lae. Ons kan ook 'n gevoel van hoe die hoogte - en laagtepunte is trending deur die gemiddeld tussen die twee uiterstes kry. Geweegde Moving Gemiddelde filters Ander vorme van bewegende gemiddelde filters doen elke monster nie ewe gewig. Nog 'n algemene filter volg die binomiale uitbreiding van (1 / 2,1 / 2) n Hierdie tipe filter by benadering 'n normale kurwe vir groot waardes van n. Dit is nuttig vir die filter van hoë frekwensie geraas vir klein N. Om die koëffisiënte vind vir die binomiale filter, oprollen 1/2 1/2 met homself en dan iteratief oprollen die uitset met 1/2 1/2 'n voorgeskrewe aantal kere. In hierdie voorbeeld gebruik vyf totale iterasies. Nog 'n filter ietwat soortgelyk aan die Gaussiese uitbreiding filter is die eksponensiële bewegende gemiddelde filter. Hierdie tipe geweeg bewegende gemiddelde filter is maklik om op te rig en nie 'n groot venster grootte vereis. Jy pas 'n eksponensieel geweeg bewegende gemiddelde filter deur 'n alfa parameter tussen nul en een. 'N Hoër waarde van alfa sal minder glad nie. Zoom in op die lesings vir een dag. Kies jou land


No comments:

Post a Comment