Friday, October 7, 2016

Bewegende Gemiddelde C Kode

Bewegende gemiddelde - MA afbreek bewegende gemiddelde - MA As SMA voorbeeld, kyk na 'n sekuriteit met die volgende sluitingsdatum pryse meer as 15 dae: Week 1 (5 dae) 20, 22, 24, 25, 23 Week 2 (5 dae) 26, 28, 26, 29, 27 Week 3 (5 dae) 28, 30, 27, 29, 28 A 10-dag MA sou gemiddeld uit die sluitingsdatum pryse vir die eerste 10 dae as die eerste data punt. Die volgende data punt sal daal die vroegste prys, voeg die prys op dag 11 en neem die gemiddelde, en so aan, soos hieronder getoon. Soos voorheen verduidelik, MA lag huidige prys aksie omdat dit gebaseer is op vorige pryse hoe langer die tydperk vir die MA, hoe groter is die lag. So sal 'n 200-dag MA 'n veel groter mate van lag as 'n 20-dag MA het omdat dit pryse vir die afgelope 200 dae bevat. Die lengte van die MA om te gebruik, hang af van die handel doelwitte, met korter MA gebruik vir 'n kort termyn handel en langer termyn MA meer geskik vir 'n lang termyn beleggers. Die 200-dag MA word wyd gevolg deur beleggers en handelaars, met onderbrekings bo en onder hierdie bewegende gemiddelde beskou as belangrike handel seine wees. MA ook mee belangrik handel seine op hul eie, of wanneer twee gemiddeldes kruis. 'N stygende MA dui daarop dat die sekuriteit is in 'n uptrend. terwyl 'n dalende MA dui daarop dat dit in 'n verslechtering neiging. Net so, is opwaartse momentum bevestig met 'n lomp crossover. wat gebeur wanneer 'n korttermyn-MA kruisies bo 'n langer termyn MA. Afwaartse momentum bevestig met 'n lomp crossover, wat plaasvind wanneer 'n kort termyn MA kruisies onder 'n langer termyn MA. Moving gemiddeldes - Eenvoudige en Eksponensiële Bewegende Gemiddeldes - Eenvoudige en Eksponensiële Inleiding bewegende gemiddeldes glad die prys data om 'n tendens volgende aanwyser vorm . Hulle het nie die prys rigting voorspel nie, maar eerder die huidige rigting met 'n lag te definieer. Bewegende gemiddeldes lag omdat hulle op grond van vorige pryse. Ten spyte hiervan lag, bewegende gemiddeldes te help gladde prys aksie en filter die geraas. Hulle vorm ook die boustene vir baie ander tegniese aanwysers en overlays, soos Bollinger Bands. MACD en die McClellan Ossillator. Die twee mees populêre vorme van bewegende gemiddeldes is die Eenvoudige bewegende gemiddelde (SMA) en die eksponensiële bewegende gemiddelde (EMA). Hierdie bewegende gemiddeldes gebruik kan word om die rigting van die tendens te identifiseer of definieer potensiaal ondersteuning en weerstand vlakke. Here039s n grafiek met beide 'n SMA en 'n EMO daarop: Eenvoudige bewegende gemiddelde Berekening 'n Eenvoudige bewegende gemiddelde is wat gevorm word deur die berekening van die gemiddelde prys van 'n sekuriteit oor 'n spesifieke aantal periodes. Die meeste bewegende gemiddeldes is gebaseer op sluitingstyd pryse. 'N 5-dag eenvoudig bewegende gemiddelde is die vyf dag som van die sluiting pryse gedeel deur vyf. Soos die naam aandui, 'n bewegende gemiddelde is 'n gemiddelde wat beweeg. Ou data laat val as nuwe data kom beskikbaar. Dit veroorsaak dat die gemiddelde om te beweeg langs die tydskaal. Hieronder is 'n voorbeeld van 'n 5-daagse bewegende gemiddelde ontwikkel met verloop van drie dae. Die eerste dag van die bewegende gemiddelde dek net die laaste vyf dae. Die tweede dag van die bewegende gemiddelde daal die eerste data punt (11) en voeg die nuwe data punt (16). Die derde dag van die bewegende gemiddelde voort deur die val van die eerste data punt (12) en die toevoeging van die nuwe data punt (17). In die voorbeeld hierbo, pryse geleidelik verhoog 11-17 oor 'n totaal van sewe dae. Let daarop dat die bewegende gemiddelde styg ook 13-15 oor 'n driedaagse berekening tydperk. Let ook op dat elke bewegende gemiddelde waarde is net onder die laaste prys. Byvoorbeeld, die bewegende gemiddelde vir die eerste dag is gelyk aan 13 en die laaste prys is 15. Pryse die vorige vier dae laer was en dit veroorsaak dat die bewegende gemiddelde te lag. Eksponensiële bewegende gemiddelde Berekening eksponensiële bewegende gemiddeldes te verminder die lag deur die toepassing van meer gewig aan onlangse pryse. Die gewig van toepassing op die mees onlangse prys hang af van die aantal periodes in die bewegende gemiddelde. Daar is drie stappe om die berekening van 'n eksponensiële bewegende gemiddelde. Eerstens, bereken die eenvoudige bewegende gemiddelde. 'N eksponensiële bewegende gemiddelde (EMA) moet iewers begin so 'n eenvoudige bewegende gemiddelde word gebruik as die vorige period039s EMO in die eerste berekening. Tweede, bereken die gewig vermenigvuldiger. Derde, bereken die eksponensiële bewegende gemiddelde. Die onderstaande formule is vir 'n 10-dag EMO. 'N 10-tydperk eksponensiële bewegende gemiddelde van toepassing 'n 18,18 gewig na die mees onlangse prys. 'N 10-tydperk EMO kan ook 'n 18,18 EMO genoem. A 20-tydperk EMO geld 'n 9,52 weeg om die mees onlangse prys (2 / (201) 0,0952). Let daarop dat die gewig vir die korter tydperk is meer as die gewig vir die langer tydperk. Trouens, die gewig daal met die helfte elke keer as die bewegende gemiddelde tydperk verdubbel. As jy wil ons 'n spesifieke persentasie vir 'n EMO, kan jy hierdie formule gebruik om dit te omskep in tydperke en gee dan daardie waarde as die parameter EMA039s: Hier is 'n spreadsheet voorbeeld van 'n 10-dag eenvoudig bewegende gemiddelde en 'n 10- dag eksponensiële bewegende gemiddelde vir Intel. Eenvoudige bewegende gemiddeldes is reguit vorentoe en verg min verduideliking. Die 10-dag gemiddeld net beweeg as nuwe pryse beskikbaar raak en ou pryse af te laai. Die eksponensiële bewegende gemiddelde begin met die eenvoudige bewegende gemiddelde waarde (22,22) in die eerste berekening. Na die eerste berekening, die normale formule oorneem. Omdat 'n EMO begin met 'n eenvoudige bewegende gemiddelde, sal sy werklike waarde nie besef tot 20 of so tydperke later. Met ander woorde, kan die waarde van die Excel spreadsheet verskil van die term waarde as gevolg van die kort tydperk kyk terug. Hierdie sigblad gaan net terug 30 periodes, wat beteken dat die invloed van die eenvoudige bewegende gemiddelde het 20 periodes om te ontbind het. StockCharts gaan terug ten minste 250-tydperke (tipies veel verder) vir sy berekeninge sodat die gevolge van die eenvoudige bewegende gemiddelde in die eerste berekening volledig verkwis. Die sloerfaktor Hoe langer die bewegende gemiddelde, hoe meer die lag. 'N 10-dag eksponensiële bewegende gemiddelde pryse sal baie nou omhels en draai kort ná pryse draai. Kort bewegende gemiddeldes is soos spoed bote - ratse en vinnige te verander. In teenstelling hiermee het 'n 100-daagse bewegende gemiddelde bevat baie afgelope data wat dit stadiger. Meer bewegende gemiddeldes is soos see tenkwaens - traag en stadig om te verander. Dit neem 'n groter en meer prysbewegings vir 'n 100-daagse bewegende gemiddelde kursus te verander. bo die grafiek toon die SampP 500 ETF met 'n 10-dag EMO nou na aanleiding van pryse en 'n 100-dag SMA maal hoër. Selfs met die Januarie-Februarie afname, die 100-dag SMA gehou deur die loop en nie draai. Die 50-dag SMA pas iewers tussen die 10 en 100 dae bewegende gemiddeldes wanneer dit kom by die lag faktor. Eenvoudige vs Eksponensiële Bewegende Gemiddeldes Hoewel daar duidelike verskille tussen eenvoudige bewegende gemiddeldes en eksponensiële bewegende gemiddeldes, een is nie noodwendig beter as die ander. Eksponensiële bewegende gemiddeldes minder lag en is dus meer sensitief vir onlangse pryse - en onlangse prysveranderings. Eksponensiële bewegende gemiddeldes sal draai voor eenvoudige bewegende gemiddeldes. Eenvoudige bewegende gemiddeldes, aan die ander kant, verteenwoordig 'n ware gemiddelde van die pryse vir die hele tydperk. As sodanig, kan eenvoudig bewegende gemiddeldes beter geskik wees om ondersteuning of weerstand vlakke te identifiseer. Bewegende gemiddelde voorkeur hang af van doelwitte, analitiese styl en tydhorison. Rasionele agente moet eksperimenteer met beide tipes bewegende gemiddeldes, asook verskillende tydsraamwerke om die beste passing te vind. Die onderstaande grafiek toon IBM met die 50-dag SMA in rooi en die 50-dag EMO in groen. Beide 'n hoogtepunt bereik in die einde van Januarie, maar die daling in die EMO was skerper as die afname in die SMA. Die EMO opgedaag het in die middel van Februarie, maar die SMA voortgegaan laer tot aan die einde van Maart. Let daarop dat die SMA opgedaag het meer as 'n maand nadat die EMO. Lengtes en tydsraamwerke Die lengte van die bewegende gemiddelde is afhanklik van die analitiese doelwitte. Kort bewegende gemiddeldes (20/05 periodes) is die beste geskik vir tendense en handel kort termyn. Rasionele agente belangstel in medium termyn tendense sou kies vir langer bewegende gemiddeldes wat 20-60 periodes kan verleng. Langtermyn-beleggers sal verkies bewegende gemiddeldes met 100 of meer periodes. Sommige bewegende gemiddelde lengtes is meer gewild as ander. Die 200-daagse bewegende gemiddelde is miskien die mees populêre. As gevolg van sy lengte, dit is duidelik 'n langtermyn-bewegende gemiddelde. Volgende, die 50-dae - bewegende gemiddelde is baie gewild vir die medium termyn tendens. Baie rasionele agente gebruik die 50-dag en 200-dae - bewegende gemiddeldes saam. Korttermyn, 'n 10-dae bewegende gemiddelde was baie gewild in die verlede, want dit was maklik om te bereken. Een van die nommers bygevoeg eenvoudig en verskuif die desimale punt. Tendens Identifikasie Dieselfde seine gegenereer kan word met behulp van eenvoudige of eksponensiële bewegende gemiddeldes. Soos hierbo aangedui, die voorkeur hang af van elke individu. Hierdie voorbeelde sal onder beide eenvoudige en eksponensiële bewegende gemiddeldes gebruik. Die term bewegende gemiddelde is van toepassing op beide eenvoudige en eksponensiële bewegende gemiddeldes. Die rigting van die bewegende gemiddelde dra belangrike inligting oor pryse. 'N stygende bewegende gemiddelde wys dat pryse oor die algemeen is aan die toeneem. A val bewegende gemiddelde dui daarop dat pryse gemiddeld val. 'N stygende langtermyn bewegende gemiddelde weerspieël 'n langtermyn - uptrend. A val langtermyn bewegende gemiddelde weerspieël 'n langtermyn - verslechtering neiging. bo die grafiek toon 3M (MMM) met 'n 150-dag eksponensiële bewegende gemiddelde. Hierdie voorbeeld toon hoe goed bewegende gemiddeldes werk wanneer die neiging is sterk. Die 150-dag EMO van die hand gewys in November 2007 en weer in Januarie 2008. Let daarop dat dit 'n 15 weier om die rigting van hierdie bewegende gemiddelde om te keer. Hierdie nalopend aanwysers identifiseer tendens terugskrywings as hulle voorkom (op sy beste) of nadat hulle (in die ergste geval) voorkom. MMM voortgegaan laer in Maart 2009 en daarna gestyg 40-50. Let daarop dat die 150-dag EMO nie opgedaag het nie eers na hierdie oplewing. Sodra dit gedoen het, maar MMM voortgegaan hoër die volgende 12 maande. Bewegende gemiddeldes werk briljant in sterk tendense. Double CROSSOVER twee bewegende gemiddeldes kan saam gebruik word om crossover seine op te wek. In tegniese ontleding van die finansiële markte. John Murphy noem dit die dubbele crossover metode. Double CROSSOVER behels een relatief kort bewegende gemiddelde en een relatiewe lang bewegende gemiddelde. Soos met al die bewegende gemiddeldes, die algemene lengte van die bewegende gemiddelde definieer die tydraamwerk vir die stelsel. 'N Stelsel met behulp van 'n 5-dag EMO en 35-dag EMO sal geag kort termyn. 'N Stelsel met behulp van 'n 50-dag SMA en 200-dag SMA sal geag medium termyn, miskien selfs 'n lang termyn. N bullish crossover vind plaas wanneer die korter bewegende gemiddelde kruise bo die meer bewegende gemiddelde. Dit is ook bekend as 'n goue kruis. N lomp crossover vind plaas wanneer die korter bewegende gemiddelde kruise onder die meer bewegende gemiddelde. Dit staan ​​bekend as 'n dooie kruis. Bewegende gemiddelde CROSSOVER produseer relatief laat seine. Na alles, die stelsel werk twee sloerende aanwysers. Hoe langer die bewegende gemiddelde periodes, hoe groter is die lag in die seine. Hierdie seine werk groot wanneer 'n goeie tendens vat. Dit sal egter 'n bewegende gemiddelde crossover stelsel baie whipsaws produseer in die afwesigheid van 'n sterk tendens. Daar is ook 'n driedubbele crossover metode wat drie bewegende gemiddeldes behels. Weereens, is 'n sein gegenereer wanneer die kortste bewegende gemiddelde kruisies die twee langer bewegende gemiddeldes. 'N Eenvoudige trippel crossover stelsel kan 5-dag, 10-dag en 20-dae - bewegende gemiddeldes te betrek. bo die grafiek toon Home Depot (HD) met 'n 10-dag EMO (groen stippellyn) en 50-dag EMO (rooi lyn). Die swart lyn is die daaglikse naby. Met behulp van 'n bewegende gemiddelde crossover gevolg sou gehad het drie whipsaws voor 'n goeie handel vang. Die 10-dag EMO gebreek onder die 50-dag EMO die einde van Oktober (1), maar dit het nie lank as die 10-dag verhuis terug bo in die middel van November (2). Dit kruis duur langer, maar die volgende lomp crossover in Januarie (3) het plaasgevind naby die einde van November prysvlakke, wat lei tot 'n ander geheel verslaan. Dit lomp kruis het nie lank geduur as die 10-dag EMO terug bo die 50-dag 'n paar dae later (4) verskuif. Na drie slegte seine, die vierde sein voorafskaduwing n sterk beweeg as die voorraad oor 20. gevorderde Daar is twee wegneemetes hier. In die eerste plek CROSSOVER is geneig om geheel verslaan. 'N Prys of tyd filter toegepas kan word om te voorkom dat whipsaws. Handelaars kan die crossover vereis om 3 dae duur voordat waarnemende of vereis dat die 10-dag EMO hierbo beweeg / onder die 50-dag EMO deur 'n sekere bedrag voor waarnemende. In die tweede plek kan MACD gebruik word om hierdie CROSSOVER identifiseer en te kwantifiseer. MACD (10,50,1) sal 'n lyn wat die verskil tussen die twee eksponensiële bewegende gemiddeldes te wys. MACD draai positiewe tydens 'n goue kruis en negatiewe tydens 'n dooie kruis. Die persentasie Prys ossillator (PPO) kan op dieselfde manier gebruik word om persentasie verskille te wys. Let daarop dat die MACD en die PPO is gebaseer op eksponensiële bewegende gemiddeldes en sal nie ooreen met eenvoudige bewegende gemiddeldes. Hierdie grafiek toon Oracle (ORCL) met die 50-dag EMO, 200-dag EMO en MACD (50,200,1). Daar was vier bewegende gemiddelde CROSSOVER oor 'n tydperk 2 1/2 jaar. Die eerste drie gelei tot whipsaws of slegte ambagte. A opgedoen tendens begin met die vierde crossover as ORCL gevorder tot die middel van die 20s. Weereens, bewegende gemiddelde CROSSOVER werk groot wanneer die neiging is sterk, maar produseer verliese in die afwesigheid van 'n tendens. Prys CROSSOVER bewegende gemiddeldes kan ook gebruik word om seine met 'n eenvoudige prys CROSSOVER genereer. N bullish sein gegenereer wanneer pryse beweeg bo die bewegende gemiddelde. N lomp sein gegenereer wanneer pryse beweeg onder die bewegende gemiddelde. Prys CROSSOVER kan gekombineer word om handel te dryf in die groter tendens. Hoe langer bewegende gemiddelde gee die toon aan vir die groter tendens en die korter bewegende gemiddelde word gebruik om die seine te genereer. 'N Mens sou kyk vir bullish prys kruise net vir pryse is reeds bo die meer bewegende gemiddelde. Dit sou wees die handel in harmonie met die groter tendens. Byvoorbeeld, as die prys is hoër as die 200-daagse bewegende gemiddelde, rasionele agente sal net fokus op seine wanneer prysbewegings bo die 50-dae - bewegende gemiddelde. Dit is duidelik dat, sou 'n skuif onder die 50-dae - bewegende gemiddelde so 'n sein voorafgaan, maar so lomp kruise sou word geïgnoreer omdat die groter tendens is up. N lomp kruis sou net dui op 'n nadeel binne 'n groter uptrend. 'N kruis terug bo die 50-dae - bewegende gemiddelde sou 'n opswaai in pryse en voortsetting van die groter uptrend sein. Die volgende grafiek toon Emerson Electric (EMR) met die 50-dag EMO en 200-dag EMO. Die voorraad bo verskuif en bo die 200-daagse bewegende gemiddelde gehou in Augustus. Daar was dips onder die 50-dag EMO vroeg in November en weer vroeg in Februarie. Pryse het vinnig terug bo die 50-dag EMO te lomp seine (groen pyle) voorsien in harmonie met die groter uptrend. MACD (1,50,1) word in die aanwyser venster te prys kruise bo of onder die 50-dag EMO bevestig. Die 1-dag EMO is gelyk aan die sluitingsprys. MACD (1,50,1) is positief wanneer die naby is bo die 50-dag EMO en negatiewe wanneer die einde is onder die 50-dag EMO. Ondersteuning en weerstand bewegende gemiddeldes kan ook dien as ondersteuning in 'n uptrend en weerstand in 'n verslechtering neiging. 'N kort termyn uptrend kan ondersteuning naby die 20-dag eenvoudig bewegende gemiddelde, wat ook gebruik word in Bollinger Bands vind. 'N langtermyn-uptrend kan ondersteuning naby die 200-dag eenvoudig bewegende gemiddelde, wat is die mees gewilde langtermyn bewegende gemiddelde vind. As Trouens, die 200-daagse bewegende gemiddelde ondersteuning of weerstand bloot omdat dit so algemeen gebruik word aan te bied. Dit is amper soos 'n self-fulfilling prophecy. bo die grafiek toon die NY Saamgestelde met die 200-dag eenvoudig bewegende gemiddelde van middel 2004 tot aan die einde van 2008. Die 200-dag voorsien ondersteuning talle kere tydens die vooraf. Sodra die tendens omgekeer met 'n dubbele top ondersteuning breek, die 200-daagse bewegende gemiddelde opgetree as weerstand rondom 9500. Moenie verwag presiese ondersteuning en weerstand vlakke van bewegende gemiddeldes, veral langer bewegende gemiddeldes. Markte word gedryf deur emosie, wat hulle vatbaar vir overschrijdingen maak. In plaas van presiese vlakke, kan bewegende gemiddeldes gebruik word om ondersteuning of weerstand sones identifiseer. Gevolgtrekkings Die voordele van die gebruik bewegende gemiddeldes moet opgeweeg word teen die nadele. Bewegende gemiddeldes is tendens volgende, of nalopend, aanwysers wat altyd 'n stap agter sal wees. Dit is nie noodwendig 'n slegte ding al is. Na alles, die neiging is jou vriend en dit is die beste om handel te dryf in die rigting van die tendens. Bewegende gemiddeldes te verseker dat 'n handelaar is in ooreenstemming met die huidige tendens. Selfs al is die tendens is jou vriend, sekuriteite spandeer 'n groot deel van die tyd in die handel reekse, wat bewegende gemiddeldes ondoeltreffend maak. Sodra 'n tendens, sal bewegende gemiddeldes jy hou in nie, maar ook gee laat seine. Don039t verwag om te verkoop aan die bokant en koop aan die onderkant met behulp van bewegende gemiddeldes. Soos met die meeste tegniese ontleding gereedskap, moet bewegende gemiddeldes nie gebruik word op hul eie, maar in samewerking met ander aanvullende gereedskap. Rasionele agente kan gebruik bewegende gemiddeldes tot die algehele tendens definieer en gebruik dan RSI om oorkoop of oorverkoop vlakke te definieer. Toevoeging van bewegende gemiddeldes te StockCharts Charts bewegende gemiddeldes is beskikbaar as 'n prys oortrek funksie op die SharpCharts werkbank. Die gebruik van die Overlays aftrekkieslys, kan gebruikers kies óf 'n eenvoudige bewegende gemiddelde of 'n eksponensiële bewegende gemiddelde. Die eerste parameter word gebruik om die aantal tydperke stel. 'N opsionele parameter kan bygevoeg word om te spesifiseer watter prys veld moet gebruik word in die berekeninge - O vir die Ope, H vir die High, L vir die lae, en C vir die buurt. 'N Komma word gebruik om afsonderlike parameters. Nog 'n opsionele parameter kan bygevoeg word om die bewegende gemiddeldes te skuif na links (verlede) of regs (toekomstige). 'N negatiewe getal (-10) sou die bewegende gemiddelde skuif na links 10 periodes. 'N Positiewe nommer (10) sou die bewegende gemiddelde na regs skuif 10 periodes. Veelvuldige bewegende gemiddeldes kan oorgetrek die prys plot deur eenvoudig 'n ander oortrek lyn aan die werkbank. StockCharts lede kan die kleure en styl verander om te onderskei tussen verskeie bewegende gemiddeldes. Na die kies van 'n aanduiding, oop Advanced Options deur te kliek op die klein groen driehoek. Gevorderde Opsies kan ook gebruik word om 'n bewegende gemiddelde oortrek voeg tot ander tegniese aanwysers soos RSI, CCI, en Deel. Klik hier vir 'n lewendige grafiek met 'n paar verskillende bewegende gemiddeldes. Die gebruik van bewegende gemiddeldes met StockCharts skanderings Hier is 'n paar monster skanderings wat StockCharts lede kan gebruik om te soek na verskeie bewegende gemiddelde situasies: Bul bewegende gemiddelde Kruis: Dit skanderings lyk vir aandele met 'n stygende 150 dae eenvoudige bewegende gemiddelde en 'n lomp kruis van die 5 - Day EMO en 35-dag EMO. Die 150-daagse bewegende gemiddelde is stygende solank dit handel bo sy vlak vyf dae gelede. N bullish kruis vind plaas wanneer die 5-dag EMO bo die 35-dag EMO op bogemiddelde volume beweeg. Lomp bewegende gemiddelde Kruis: Dit skanderings lyk vir aandele met 'n dalende 150 dae eenvoudige bewegende gemiddelde en 'n lomp kruis van die 5-dag EMO en 35-dag EMO. Die 150-daagse bewegende gemiddelde val solank dit handel onder sy vlak vyf dae gelede. N lomp kruis vind plaas wanneer die 5-dag EMO beweeg onder die 35-dag EMO op bogemiddelde volume. Verdere Studie John Murphy039s boek het 'n hoofstuk gewy aan bewegende gemiddeldes en hul onderskeie gebruike. Murphy dek die voor - en nadele van bewegende gemiddeldes. Daarbenewens Murphy wys hoe bewegende gemiddeldes met Bollinger Bands en kanaal gebaseer handel stelsels. Tegniese ontleding van die finansiële markte John MurphyMoving Gemiddeld tegniese aanwyser bewegende gemiddeldes 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 Lineêre Geweegde. Bewegende gemiddeldes 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 'n eenvoudige bewegende gemiddelde, alle pryse van die tydperk ter sprake, is gelyk in waarde. Eksponensiële en Lineêre Geweegde bewegende gemiddeldes 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) 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. Waar: N is die aantal periodes berekening. Eksponensiële bewegende gemiddelde (EMA) eksponensieel stryk bewegende gemiddelde word bereken deur die bewegende gemiddelde van 'n sekere deel van die huidige sluitingsprys op die vorige waarde. Met eksponensieel stryk bewegende gemiddeldes, die jongste pryse is meer werd. P-persent eksponensiële bewegende gemiddelde sal lyk: Waar: BESLOTE (i) die prys van die huidige tydperk sluiting EMO (i-1) eksponensieel bewegende gemiddelde van die vorige tydperk sluiting 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): Die tweede en daaropvolgende bewegende gemiddeldes word bereken volgens die formule: Waar: sum1 is die totale bedrag van die sluiting van pryse vir N tydperke PREVSUM is die reëlmatige som van die vorige bar SMMA1 is die reëlmatige bewegende gemiddelde van die eerste bar SMMA (i) is die reëlmatige bewegende gemiddelde van die huidige bar (behalwe vir die eerste een) sluit (i) is die huidige sluitingsprys N is die smoothing tydperk. 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. Waar: som (i, N) is die totale bedrag van die gewig koëffisiënte. Bronkode Full MQL4 bron van Moving gemiddeldes is beskikbaar in die Kode Base: Moving Gemiddeldes Waarskuwing: Alle regte op hierdie materiaal word voorbehou deur MetaQuotes Software Corp. kopiëring of herdruk van hierdie materiaal in sy geheel of gedeeltelik is prohibited. Is dit moontlik om te implementeer 'n bewegende gemiddelde in C sonder die behoefte aan 'n venster van monsters Ive het bevind dat ek 'n bietjie kan optimaliseer, deur die keuse van 'n venster grootte dis 'n krag van twee voorsiening te maak vir bietjie-verskuiwing in plaas van verdeel, maar nie dat daar 'n buffer sal lekker wees . Is daar 'n manier om 'n nuwe bewegende gemiddelde resultaat slegs as 'n funksie van die ou gevolg en die nuwe monster te druk definieer 'n voorbeeld bewegende gemiddelde, oor 'n venster van 4 monsters te wees: Voeg nuwe monster e: 'n bewegende gemiddelde kan rekursief geïmplementeer , maar vir 'n presiese berekening van die bewegende gemiddelde jy die oudste insette monster in die som (dws die 'n in jou voorbeeld) onthou. Vir 'n lengte N bewegende gemiddelde wat jy bereken: waar yn is die uitsetsein en xn is die insetsein. Aand. (1) kan rekursief geskryf word as sodat jy altyd moet die monster xn-N onthou om te bereken (2). Soos uitgewys deur Conrad Turner, kan jy 'n (oneindig lank) eksponensiële venster plaas, wat dit moontlik maak om die uitset net uit die verlede uitset en die huidige insette te bereken gebruik, maar dit is nie 'n standaard (ongeweegde) bewegende gemiddelde, maar 'n eksponensieel geweegde bewegende gemiddelde, waar monsters verder in die verlede kry 'n kleiner gewig, maar (ten minste in teorie) wat jy nooit iets vergeet nie (die gewigte kry net kleiner en kleiner vir monsters ver in die verlede). inisialiseer totale 0, count0 (elke keer sien 'n nuwe waarde toe een insette (scanf), een totalnewValue, een inkrement (telling), een kloof gemiddelde (totale / telling voeg) Dit sou 'n bewegende gemiddelde oor alle insette Om die gemiddelde bereken word oor net die laaste 4 insette, sal vereis 4 inputvariables, miskien kopiëring elke insette om 'n ouer inputvariable, dan berekening van die nuwe bewegende gemiddelde. as som van die 4 inputvariables, gedeel deur 4 (regs skuif 2 sal goed wees as al die insette was positiewe te maak die gemiddelde calculationI ek probeer om die bewegende gemiddelde van 'n sein te bereken. die sein waarde ( 'n dubbel) is opgedateer na willekeur keer. Ek is op soek na 'n doeltreffende manier om sy tyd geweegde gemiddelde oor 'n tyd venster te bereken, in die werklike tyd. Ek kan dit doen my self, maar dit is meer uitdagend as wat ek gedink het. die meeste van die hulpbronne Ive gevind oor die internet is die berekening van bewegende gemiddelde van periodieke sein, maar my updates na willekeur tyd. is daar iemand weet goed hulpbronne vir daardie die truuk is die volgende: Jy kry updates na willekeur keer per leemte update (int tyd, float waarde). Maar jy moet ook ook dop wanneer 'n update val af die tyd venster, sodat jy 'n alarm wat genoem ten tye N wat die vorige update van wat ooit in die berekening weer oorweeg verwyder gestel. As dit gebeur in real-time kan jy die bedryfstelsel versoek om 'n oproep om 'n metode leemte dropoffoldestupdate (int tyd) genoem te word ten tye N As dit 'n simulasie, kan jy nie die hulp van die bedryfstelsel te kry en wat jy nodig het om die hand te doen nie. In 'n simulasie sal jy metodes met die verskaf as 'n argument (wat nie ooreenstem met die werklike tyd) tyd bel. Maar 'n redelike aanname is dat die oproepe is gewaarborg sodanig dat die tyd argumente is aan die toeneem is. In hierdie geval moet jy 'n gesorteerde lys van alarm tyd waardes te handhaaf, en vir elke werk en lees noem jy kyk of die tyd argument is groter as die hoof van die alarm lys. Terwyl dit is 'n groter doen jy die alarm verwante verwerking (drop off die oudste update), verwyder die kop en kyk weer totdat al alarms voor die gegewe tyd verwerk. Doen dan die update oproep. Ek het tot dusver aanvaar is dit duidelik wat jy vir die werklike berekening sou doen, maar ek sal uitbrei net in geval. Ek neem aan jy het 'n metode float lees (int tyd) wat jy gebruik om die waardes te lees. Die doel is hierdie oproep so doeltreffend as moontlik te maak. So jy hoef nie te bereken die bewegende gemiddelde elke keer as die lees metode genoem. In plaas jy precompute die waarde soos op die laaste update of die laaste alarm, en tweak die waarde van 'n paar drywende punt bedrywighede om rekenskap te gee van die verloop van tyd sedert die laaste update. (I. E. 'N konstante aantal operasies behalwe miskien die verwerking van 'n lys van opgestapel alarms). Hopelik is dit duidelik - dit moet 'n baie eenvoudige algoritme en baie doeltreffend wees. Verdere optimalisering. een van die oorblywende probleme is as 'n groot aantal updates binne die venster gebeur, dan is daar 'n lang tyd waarvoor daar nie lees of updates, en dan 'n lees of werk kom saam. In hierdie geval, sal die bogenoemde algoritme ondoeltreffende in inkrementeel opdatering van die waarde vir elk van die updates wat val af wees. Dit is nie nodig nie, want ons het net omgee vir die laaste update oor die tyd venster so as daar 'n manier om al ouer updates doeltreffend af te laai, sal dit help. Om dit te doen, kan ons die algoritme om te doen 'n binêre soek na updates vir die mees onlangse update voor die tyd venster vind verander. As daar relatief min updates wat gevolg moet word laat val dan kan 'n mens geleidelik werk die waarde vir elke gedaal update. Maar as daar is baie opgraderings wat aangespreek moet word laat val dan kan 'n mens die waarde recompute van nuuts af na die val van die ou updates. Addendum op Inkrementele Berekening: Ek moet verduidelik wat ek bedoel met inkrementele berekening hierbo in die sin aanpas hierdie waarde met 'n paar drywende punt bedrywighede om rekenskap te gee van die verloop van tyd sedert die laaste update. Aanvanklike nie-inkrementele berekening Toe Itereer oor relevantupdates in volgorde van toenemende tyd: movingaverage (som lastupdate timesincelastupdate) / windowlength. Nou as presies een update val af by die venster uit, maar geen nuwe updates kom, pas som as: (let op dit priorupdate wat sy tyd stempel het verander om te begin van verlede venster begin). En as presies een werk gaan by die venster uit, maar geen nuwe updates afval, pas som as: Soos duidelik behoort te wees, dit is 'n rowwe skets, maar hopelik sal dit wys hoe jy die gemiddelde sodanig dat dit O (1) operasies per update kan handhaaf op 'n geamortiseerdekostebasis. Maar let op verdere optimalisering is in die vorige paragraaf. Let ook op stabiliteit kwessies verwys na in 'n ouer antwoord, wat beteken dat drywende punt foute kan versamel oor 'n groot aantal van sulke inkrementele bedrywighede soos dat daar 'n afwyking van die uitslag van die volle berekening wat wesenlik tot die aansoek. As 'n benadering is OK en Theres 'n minimum tyd tussen monsters, kan jy probeer super-steekproefneming. Het jy 'n skikking wat eweredig gespasieer tydintervalle wat korter as die minimum is verteenwoordig, en by elke tydperk winkel die nuutste monster wat ontvang is. Hoe korter die interval, sal die nader die gemiddelde wees om die werklike waarde. Die tydperk moet nie groter as die helfte van die minimum wees of daar is 'n kans van die vermiste 'n monster. antwoord 15 Desember 11 van die 18:12 beantwoord 15 Desember 11 van die 22:38 Dankie vir die antwoord. Een verbetering wat dit nodig sou wees om werklik quotcachequot die waarde van die totale gemiddelde sodat ons don39t lus al die tyd. Ook, kan dit 'n geringe punt nie, maar sal dit nie meer doeltreffend om 'n deque of 'n lys te gebruik om die waarde te stoor, aangesien ons aanvaar dat werk sal in die korrekte volgorde te kom. Invoeging sal vinniger as in die kaart wees. â € Arthur 16 Desember 11 van die 08:55 Ja, jy kan die waarde van som kas. Trek die waardes van die monsters wat jy vee, voeg die waardes van die monsters wat jy voeg. Ook, ja, 'n dequeltpairltSample, Dategtgt kan meer doeltreffend wees. Ek verkies kaart vir leesbaarheid, en die gemak van beroep kaart :: Maximum. Soos altyd, skryf die korrekte kode eerste, dan profiel en inkrementele veranderinge meet. uitvoering maak Rob 16 Desember 11 om 15:00 Nota: Blykbaar is dit nie die manier om dit te benader. Verlaat dit hier vir verwysing op wat fout is met hierdie benadering is. Kyk op die kommentaar. UPDATED - gebaseer op Olis kommentaar. nie seker oor die onstabiliteit wat hy al praat. Gebruik 'n gesorteer kaart van aankoms tye teen waardes. By aankoms van 'n waarde toe te voeg die aankoms tyd om die gesorteerde kaart saam met die waarde daarvan en werk die bewegende gemiddelde. waarsku dit is pseudo-kode: Daar. Nie ten volle aangevul maar jy kry die idee. Dinge om daarop te let. Soos ek gesê het die bogenoemde is pseudo-kode. Jy moet 'n geskikte kaart te kies. Moenie verwyder die pare as jy Itereer deur as jy die iterator sal ongeldig en moet weer begin. Sien Olis kommentaar hieronder ook. antwoord 15 Desember 11 van die 12:22 Dit doesn39t werk: dit doesn39t in ag neem watter gedeelte van die venster-lengte elke waarde bestaan ​​vir. Ook hierdie benadering van die toevoeging en dan trek net stabiel vir heelgetal tipes, nie dryf. uitvoering maak Oliver Charles 15 Desember 11 by 00:29 OliCharlesworth - jammer ek gemis 'n paar belangrike punte in die beskrywing (dubbel en-time geweeg). Ek sal werk. Dankie. â € Dennis 15 Desember 11 by 12:33 Die tydbeswaringsfaktor is nog 'n probleem. Maar that39s nie wat I39m praat. Ek het verwys na die feit dat wanneer 'n nuwe waarde eers die tyd venster binnekom, sy bydrae tot die gemiddelde is minimaal. Sy bydrae gaan voort om te verhoog tot 'n nuwe waarde betree. uitvoering maak Oliver Charles 15 Desember 11 by 00:35


No comments:

Post a Comment