Friday, October 14, 2016

Matlab Bewegende Gemiddelde Double

Ek probeer om 'n bewegende gemiddelde filter in C taal te doen, Ive aangepas n Matlab program wat korrek werk, die insette van my filter is 'n. pcm argief (a sweep klank-sein), die probleem vir my is die uitset argief van die bewegende gemiddelde in C taal, die uitset verkeerd gaan, die sein verminder net langs die tyd (moenie filtter). My onderstaande C-kode: Die beeld hieronder is die opbrengs van die Matlab program om bewegende gemiddelde met lengte 16: Hierdie beeld is die uitset in C taal met bewegende gemiddelde met lengte 16: Iemand weet wat kan wees onder die kode in Matlab, wat Ive aangepas: Werk 1 (met behulp van die antwoord hierbo): die begin van die sein nog met inmenging, maar vanaf die middel tot die einde van die sein correctly. 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 MurphyDocumentation tsmovavg uitset tsmovavg (tsobj, s, lag) gee terug Die eenvoudige bewegende gemiddeld vir finansiële tydreekse voorwerp, tsobj. lag dui die aantal vorige datapunte gebruik met die huidige data punt by die berekening van die bewegende gemiddelde. uitset tsmovavg (vektor, s, lag, dowwe) gee terug Die eenvoudige bewegende gemiddelde vir 'n vektor. lag dui die aantal vorige datapunte gebruik met die huidige data punt by die berekening van die bewegende gemiddelde. uitset tsmovavg (tsobj, e, timeperiod) gee terug Die eksponensiële geweegde bewegende gemiddelde vir finansiële tydreekse voorwerp, tsobj. Die eksponensiële bewegende gemiddelde is 'n geweegde bewegende gemiddelde, waar timeperiod spesifiseer die tydperk. Eksponensiële bewegende gemiddeldes te verminder die lag deur die toepassing van meer gewig aan onlangse pryse. Byvoorbeeld, 'n 10-tydperk eksponensiële bewegende gemiddelde gewigte die mees onlangse prys deur 18.18. Eksponensiële Persentasie 2 / (TIMEPER 1) of 2 / (WINDOWSIZE 1). uitset tsmovavg (vektor, e, timeperiod, dowwe) gee terug Die eksponensiële geweegde bewegende gemiddelde vir 'n vektor. Die eksponensiële bewegende gemiddelde is 'n geweegde bewegende gemiddelde, waar timeperiod spesifiseer die tydperk. Eksponensiële bewegende gemiddeldes te verminder die lag deur die toepassing van meer gewig aan onlangse pryse. Byvoorbeeld, 'n 10-tydperk eksponensiële bewegende gemiddelde gewigte die mees onlangse prys deur 18.18. (2 / (timeperiod 1)). uitset tsmovavg (tsobj, t, numperiod) gee terug Die driehoekige bewegende gemiddelde vir finansiële tydreekse voorwerp, tsobj. Die driehoekige bewegende gemiddelde dubbel glad die data. tsmovavg word bereken dat die eerste eenvoudige bewegende gemiddelde met venster breedte van oordek (numperiod 1) / 2. Dan bereken dit 'n tweede eenvoudige bewegende gemiddelde op die eerste bewegende gemiddelde met dieselfde venster grootte. uitset tsmovavg (vektor, t, numperiod, dowwe) gee terug Die driehoekige bewegende gemiddelde vir 'n vektor. Die driehoekige bewegende gemiddelde dubbel glad die data. tsmovavg word bereken dat die eerste eenvoudige bewegende gemiddelde met venster breedte van oordek (numperiod 1) / 2. Dan bereken dit 'n tweede eenvoudige bewegende gemiddelde op die eerste bewegende gemiddelde met dieselfde venster grootte. uitset tsmovavg (tsobj, w, gewigte) gee terug Die geweegde bewegende gemiddelde vir die finansiële tydreekse voorwerp, tsobj. deur die verskaffing van gewigte vir elke element in die bewegende venster. Die lengte van die gewig vektor bepaal die grootte van die venster. As groter gewig faktore word gebruik vir meer onlangse pryse en kleiner faktore vir vorige pryse, die neiging is meer ontvanklik vir onlangse wysigings. uitset tsmovavg (vektor, w, gewigte, dowwe) gee terug Die geweegde bewegende gemiddelde vir die vektor deur die verskaffing van gewigte vir elke element in die bewegende venster. Die lengte van die gewig vektor bepaal die grootte van die venster. As groter gewig faktore word gebruik vir meer onlangse pryse en kleiner faktore vir vorige pryse, die neiging is meer ontvanklik vir onlangse wysigings. uitset tsmovavg (tsobj, m, numperiod) gee terug Die gemodifiseerde bewegende gemiddelde vir die finansiële tydreekse voorwerp, tsobj. Die aangepaste bewegende gemiddelde is soortgelyk aan die eenvoudige bewegende gemiddelde. Oorweeg die argument numperiod die lag van die eenvoudige bewegende gemiddelde wees. Die eerste gewysigde bewegende gemiddelde bereken word soos 'n eenvoudige bewegende gemiddelde. Daaropvolgende waardes word bereken deur die toevoeging van die nuwe prys en trek die laaste gemiddelde van die gevolglike bedrag. uitset tsmovavg (vektor, m, numperiod, dowwe) gee terug Die gemodifiseerde bewegende gemiddelde vir die vektor. Die aangepaste bewegende gemiddelde is soortgelyk aan die eenvoudige bewegende gemiddelde. Oorweeg die argument numperiod die lag van die eenvoudige bewegende gemiddelde wees. Die eerste gewysigde bewegende gemiddelde bereken word soos 'n eenvoudige bewegende gemiddelde. Daaropvolgende waardes word bereken deur die toevoeging van die nuwe prys en trek die laaste gemiddelde van die gevolglike bedrag. dowwe 8212 dimensie te bedryf saam positiewe heelgetal met waarde 1 of 2 Dimension te bedryf saam, wat as 'n positiewe heelgetal met 'n waarde van 1 of 2. dowwe is 'n opsionele insette argument, en as dit nie gebruik word as 'n inset, die verstek waarde 2 word aanvaar. Die standaard van dowwe 2 dui op 'n ry-georiënteerde matriks, waar elke ry is 'n veranderlike en elke kolom is 'n waarneming. As dowwe 1. die insette is veronderstel om 'n kolomvektor of-kolom-georiënteerde matriks, waar elke kolom is 'n veranderlike en elke ry 'n waarneming wees. e 8212 aanwyser vir eksponensiële bewegende gemiddelde karakter vektor Eksponensiële bewegende gemiddelde is 'n geweegde bewegende gemiddelde, waar timeperiod is die tydperk van die eksponensiële bewegende gemiddelde. Eksponensiële bewegende gemiddeldes te verminder die lag deur die toepassing van meer gewig aan onlangse pryse. Byvoorbeeld, 'n tydperk van 10 eksponensiële bewegende gemiddelde gewigte die mees onlangse prys deur 18.18. Eksponensiële Persentasie 2 / (TIMEPER 1) of 2 / (WINDOWSIZE 1) timeperiod 8212 Lengte van tyd positiewe getal Kies Jou CountryDouble bewegende gemiddelde filter beskrywing Die DoubleMovingAverageFilter implementeer 'n lae slaagsyfer dubbel bewegende gemiddelde filter. Die DoubleMovingAverageFilter is deel van die Preprocessing Modules. 'N Voorbeeld van 'n sein (sinusgolf ewekansige geluid) gefiltreer deur 'n bewegende gemiddelde filter. Die rooi sein is die oorspronklike sein geraas, die groen sein is die gefilterde sein met behulp van 'n bewegende gemiddelde filter met 'n venster grootte van 5, en die blou sein is die gefilterde sein met behulp van 'n bewegende gemiddelde filter met 'n venster grootte van 20. DoubleMovingAverageFilterExampleImage1. jpg Voordele Die DoubleMovingAverageFilter is goed vir die verwydering van 'n klein hoeveelheid van 'n hoë frekwensie geraas van 'n n-dimensionele sein. Nadele Die grootste nadeel van die DoubleMovingAverageFilter is dat dit in orde om uit te filtreer aansienlik hoë frekwensie geraas, die venster grootte van die filter moet groot wees. Die probleem met 'n groot filter venster is dat dit 'n groot latency in enige sein wat deur die filter, wat nie voordelig vir real-time aansoeke kan gaan veroorsaak. As jy vind dat jy 'n groot filter venster nodig het om uit te filter hoë frekwensie geraas en die latency veroorsaak deur die venster grootte is nie geskik vir jou real-time toepassing, dan kan jy wil om te probeer 'n laaglaatfilter plaas. Voorbeeld Kode / GRT DoubleMovingAverageFilter Voorbeeld Hierdie voorbeelde wys hoe om te skep en te gebruik die GRT DoubleMovingAverageFilter voorverwerkingsmodule. Die DoubleMovingAverageFilter implementeer 'n lae slaagsyfer dubbel bewegende gemiddelde filter. In hierdie voorbeeld te skep ons 'n voorbeeld van 'n DoubleMovingAverageFilter en gebruik dit om 'n paar voorbeelde van data, wat uit 'n sinusgolf ewekansige geraas filter. Die toets sein en gefiltreer seine word dan gered na 'n lêer (sodat jy kan die resultate in Matlab, Excel, ens plot indien nodig). Hierdie voorbeeld wys jou hoe om: - Skep 'n nuwe DoubleMovingAverageFilter byvoorbeeld met 'n spesifieke venster grootte vir 'n 1-dimensionele sein - Filter sommige data met behulp van die DoubleMovingAverageFilter - Slaan die DoubleMovingAverageFilter instellings om 'n lêer - Laai die DoubleMovingAverageFilter instellings van 'n lêer / sluit quotGRT. hquot behulp naamruimte GRT int main 40 int argc. const char argv 91 93 41 123 // Skep 'n nuwe geval van 'n dubbele bewegende gemiddelde filter met 'n venster grootte van 5 vir 'n 1-dimensionele sein DoubleMovingAverageFilter filter 40 5. 1 41 // Skep en 'n lêer om die data fstream lêer te stoor oop lêer. open 40 quotDoubleMovingAverageFilterData. txtquot. fstream. uit 41 // Genereer 'n paar data (sinusgolf geraas) en filtreer dit verdubbel x 0 const UINT M 1000 Nut Nut vir 40 UINT i 0 i LT M i 41 123 dubbel sein sonde 40 x 41 ewekansige. getRandomNumberUniform 40-,2. 0.2 41 dubbel filteredValue filter. filtreer 40 sein 41 lêer ltlt sein ltlt quot t quot ltlt filteredValue ltlt endl x TWOPI / dubbel 40 M 41 10 125 // Maak die lêer lêer. naby 40 41 // Slaan die filter instellings om 'n lêer filter. saveSettingsToFile 40 quotDoubleMovingAverageFilterSettings. txtquot 41 // Ons kan dan laai die instellings later indien nodig filter. loadSettingsFromFile 40 quotDoubleMovingAverageFilterSettings. txtquot 41 terugkeer EXITSUCCESS 125 Die DoubleMovingAverageFilter werk ook met 'n N-dimensionele sein: // Skep 'n nuwe geval van die DoubleMovingAverageFilter met 'n venster grootte van 10 vir 'n 3-dimensionele sein DoubleMovingAverageFilter filter 40 10. 3 41 // Die waarde jy wil vektor Dit filtreer dubbel GT data 40 3 41 data 91 0 93 0 //. Kry waarde van sensor data 91 1 93 0 //. Kry waarde van sensor data 91 2 93 0 //. Kry waarde van sensor // Filter die sein vektor Dit dubbel GT filteredValue filter. filtreer 40 data 41 Moving Gemiddelde Hi Miquel met die beheer parameter, Alpha stel aan nul. Jou bewegende gemiddeldes bereken deur convolving jou insetsein (reeks) met twee eindige impulsrespons filters van lengte N met filter koëffisiënte 1 / N. So het die oproep: movavg (reeks, 3,10,0) sal die data in 'n reeks filter met twee filters, sal een van lengte 3 wees en filter koëffisiënte filt11 / 3 1/3 1/3 3 koëffisiënte Die ander sal lengte het 10 en het filter koëffisiënte filt21 / 10 1/10 1/10 1/10 1/10 1/10 1/10 1/10 1/10 1/10 10 koëffisiënte Jy word dan filter jou insette data met hierdie FIR filters. seriesrandn (100,1) skep 'n paar random data outputfilt1filter (filt1,1, reeks) filter n paar random data outputfilt2filter (filt2,1, reeks) As jy nou plot wat data, sal jy sien dat beide gefiltreer weergawes is gladder as die insette data , maar dat outputfilt2 is gladder as outputfilt1 omdat jy 'n langer bewegende gemiddelde filter gebruik. Ek dont dink jy wil jou lei insetveranderlike te wees 1, want dit isnt gee jou iets. Ek is nie 'n ekonomie persoon, maar 'n mens aansoek van die gebruik van hierdie bewegende gemiddeldes van verskillende lengtes is om die werklike data teenoor die bewegende gemiddeldes van verskillende lengte ( 'n kort of voorste en een langer of nalopend) te vergelyk en te sien waar die werklike mark data val met betrekking tot daardie verskillende bewegende gemiddeldes. Dit word gebruik om afleidings te maak oor die algemene rigting van die tydreeks (mark). Die verandering van die beheer parameter gee jou geweegde bewegende gemiddeldes of eksponensiële. Hoop dit help, Wayne Miguel Moura ltmdNOSPAMmouragmREMOVEailgt geskryf in boodskap ltguahs5lgk1fred. mathworksgt. GT Hallo, GT GT ek nodig het om 'n Eenvoudige bewegende gemiddelde bereken met tydperk 10. GT Hoe kan ek dit doen in Matlab GT GT ek gebruik movavg (reeks, 1,20,0), maar ek is nie seker of dit korrek is. GT GT Wat moet ek gebruik vir lood en lag GT GT Dankie, GT Miguel Wayne King ltwmkingtygmailgt geskryf in boodskap ltgubl6qp821fred. mathworksgt. GT Hi Miquel met die beheer parameter, Alpha stel aan nul. Jou bewegende gemiddeldes bereken deur convolving jou insetsein (reeks) met twee eindige impulsrespons filters van lengte N met filter koëffisiënte 1 / N. So het die oproep: GT movavg (reeks, 3,10,0) GT sal die data in 'n reeks filter met twee filters, een sal lengte 3 wees en filter koëffisiënte GT GT filt11 / 3 1/3 1/3 3 koëffisiënte GT die ander sal lengte 10 het en het filter koëffisiënte GT filt21 / 10 1/10 1/10 1/10 1/10 1/10 1/10 1/10 1/10 1/10 10 koëffisiënte GT GT Jy word dan filter jou insette data met hierdie FIR filters. GT GT seriesrandn (100,1) skep 'n paar random data GT outputfilt1filter (filt1,1, reeks) filter n paar random data GT outputfilt2filter (filt2,1, reeks) gt gt As jy nou plot wat data, sal jy sien dat beide gefiltreer weergawes is gladder as die insette data, maar dit outputfilt2 is gladder as outputfilt1 omdat jy 'n langer bewegende gemiddelde filter gebruik. Ek dont dink jy wil jou lei insetveranderlike te wees 1, want dit isnt gee jou iets. Ek is nie 'n ekonomie persoon, maar 'n mens aansoek van die gebruik van hierdie bewegende gemiddeldes van verskillende lengtes is om die werklike data teenoor die bewegende gemiddeldes van verskillende lengte ( 'n kort of voorste en een langer of nalopend) te vergelyk en te sien waar die werklike mark data val met betrekking tot daardie verskillende bewegende gemiddeldes. Dit word gebruik om afleidings te maak oor die algemene rigting van die tydreeks (mark). Die verandering van die beheer parameter gee jou geweegde bewegende gemiddeldes of eksponensiële. GT GT Hoop dit help, GT Wayne GT GT GT GT GT Miguel Moura ltmdNOSPAMmouragmREMOVEailgt geskryf in boodskap ltguahs5lgk1fred. mathworksgt. GT GT Hallo, GT GT GT GT ek nodig het om 'n Eenvoudige bewegende gemiddelde met tydperk 10. GT GT Hoe kan ek dit doen in Matlab GT GT GT GT ek gebruik movavg (reeks, 1,20,0) te bereken, maar ek is nie seker of dit korrek is. GT GT GT GT Wat moet ek gebruik vir lood en lag GT GT GT GT Dankie, GT GT Miguel ek nodig het om die Eenvoudige bewegende gemiddelde gebruik in sy normale vorm omdat ek 'n C NET biblioteek wat geskep is om dit te doen. En ek gebruik hierdie biblioteek in Matlab en die beheer van die prestasie. Ek wil graag die SMA bereken met behulp van Matlab funksie om die waardes te bevestig. In teorie behoort die SMA waardes dieselfde wees óf met behulp van die C-biblioteek SMA of die Matlab SMA, reg in C my SMA is soos volg: openbare statiese Double SMA (Double-reeks, int32 tydperk) // Gaan argumente int32 lengte series. Length as (lengte 0) gooi nuwe ArgumentException (Series kan nie leeg wees) as (tydperk GT lengte) gooi nuwe ArgumentException (tydperk kan nie groter as reeks lengte) // Bereken eenvoudige bewegende gemiddelde Double SMA nuwe Doublelength dubbel som sma0 vir (int bar 1 bar Dit lengte bar) as (bar LT tydperk) som seriesbar smabar som / (maat 1) anders smabar smabar - 1 (seriesbar - seriesbar - tydperk) / tydperk EK gebruik SMA as 'n voorbeeld vir die toets. Hi Miguel, kan jy jou C-kode maklik vertaal in Matlab. Die neem van die relevante deel van jou C-kode dubbel som sma0 vir (int bar 1 bar Dit lengte bar) as (bar LT tydperk) som seriesbar smabar som / (maat 1) anders smabar smabar - 1 (seriesbar - seriesbar - tydperk) / tydperk Matlab (vinnige vertaling): SMA (1) reeks (1) vir J2: lengte (reeks) -1 indien jltperiod SMA (j) som (reeks (1: j)) / (J1) anders SMA (j) SMA (j-1) (reeks (j) - reeks (j-tydperk)) / tydperk einde einde Maar jy basies dieselfde resultate kry as jy net gebruik filter () met 'n FIR filter bestaande uit 'n vektor van lengte tydperk met koëffisiënte (1/10) seriesrandn (100,1) klip (10,1) hh./10 smamatlabfilter (h, 1, reeks) tydperk SMA (1) reeks (1) vir J2: lengte (reeks) -1 indien jltperiod SMA (j) som (reeks (1: j)) / (J1) anders SMA (j) SMA (j-1) (reeks (j) - reeks (j-tydperk)) / tydperk einde einde plot (smamatlab, b, linewidth, 2) in besit op plot (SMA, r) Daar is 'n paar start-up effekte te hanteer in jou metode, maar jy kry die prentjie. Die nice ding oor Matlab is dat 'n paar groot ontwikkelaars 'n baie werk gedoen vir jou. Jy die vrugte van hul arbeid pluk. Hoop dit help, Wayne Miguel Moura ltmdNOSPAMmouragmREMOVEailgt geskryf in boodskap ltgubrt2l11fred. mathworksgt. GT Wayne King ltwmkingtygmailgt geskryf in boodskap ltgubl6qp821fred. mathworksgt. GT GT Hi Miquel met die beheer parameter, Alpha stel aan nul. Jou bewegende gemiddeldes bereken deur convolving jou insetsein (reeks) met twee eindige impulsrespons filters van lengte N met filter koëffisiënte 1 / N. So het die oproep: GT GT movavg (reeks, 3,10,0) gt gt sal die data in 'n reeks filter met twee filters, sal een van lengte 3 wees en filter koëffisiënte GT GT GT GT filt11 / 3 1/3 1 / 3 3 koëffisiënte GT GT Die ander sal lengte 10 het en het filter koëffisiënte GT GT filt21 / 10 1/10 1/10 1/10 1/10 1/10 1/10 1/10 1/10 1/10 10 koëffisiënte GT GT GT GT Jy word dan filter jou insette data met hierdie FIR filters. GT GT GT GT seriesrandn (100,1) skep 'n paar random data GT GT outputfilt1filter (filt1,1, reeks) filter n paar random data GT GT outputfilt2filter (filt2,1, reeks) gt gt gt gt As jy nou plot wat data, jy sal jy sien dat beide gefiltreer weergawes is gladder as die insette data, maar dit outputfilt2 is gladder as outputfilt1 omdat jy 'n langer bewegende gemiddelde filter gebruik. Ek dont dink jy wil jou lei insetveranderlike te wees 1, want dit isnt gee jou iets. Ek is nie 'n ekonomie persoon, maar 'n mens aansoek van die gebruik van hierdie bewegende gemiddeldes van verskillende lengtes is om die werklike data teenoor die bewegende gemiddeldes van verskillende lengte ( 'n kort of voorste en een langer of nalopend) te vergelyk en te sien waar die werklike mark data val met betrekking tot daardie verskillende bewegende gemiddeldes. Dit word gebruik om afleidings te maak oor die algemene rigting van die tydreeks (mark). Die verandering van die beheer parameter gee jou geweegde bewegende gemiddeldes of eksponensiële. GT GT GT GT Hoop dit help, GT GT Wayne GT GT GT GT GT GT GT GT GT GT Miguel Moura ltmdNOSPAMmouragmREMOVEailgt geskryf in boodskap ltguahs5lgk1fred. mathworksgt. GT GT GT Hallo, GT GT GT GT GT GT ek nodig het om 'n Eenvoudige bewegende gemiddelde bereken met tydperk 10. GT GT GT Hoe kan ek dit doen in Matlab GT GT GT GT GT GT ek gebruik movavg (reeks, 1,20, 0), maar ek is nie seker of dit korrek is. GT GT GT GT GT GT Wat moet ek gebruik vir lood en lag GT GT GT GT GT GT Dankie, GT GT GT Miguel GT GT ek nodig het om die Eenvoudige bewegende gemiddelde gebruik in sy normale vorm, want ek het 'n C NET biblioteek om dit te doen . En ek gebruik hierdie biblioteek in Matlab en die beheer van die prestasie. GT GT Ek wil graag die SMA bereken met behulp van Matlab funksie om die waardes te bevestig. GT GT In teorie die SMA waardes moet dieselfde wees óf met behulp van die C-biblioteek SMA of die Matlab SMA, reg GT GT In C my SMA is soos volg: GT GT openbare statiese Double SMA (Double-reeks, int32 tydperk) gt gt // Gaan argumente GT int32 lengte series. Length GT indien (lengte 0) gooi nuwe ArgumentException GT indien (tydperk GT lengte) (Series kan nie GT leeg wees) gooi nuwe ArgumentException (tydperk GT kan nie groter as reeks lengte) gt gt // Bereken eenvoudige bewegende gemiddelde GT Double SMA nuwe Doublelength GT GT sma0 series0 GT GT dubbel som sma0 GT vir (int bar 1 bar Dit lengte bar) gt gt as (bar LT tydperk) gt gt som seriesbar GT smabar som / (maat 1) gt gt anders GT GT smabar smabar - 1 (seriesbar - seriesbar - GT tydperk) / tydperk GT GT GT GT terugkeer SMA GT GT GT ek gebruik SMA as 'n voorbeeld vir die toets. GT GT Dankie, GT Miguel Hi die rede waarom ek gebruik C is eenvoudig. Ek skep 'n finansiële model. Ek doen die toets in Matlab maar reële tyd sal Ek C gebruik, aangesien dit moeilik is om Matlab te verbind tot die API en om eerlik te wees die meeste API gebruik word of C. So werklike tyd wat dit sal 'n C WPF aansoek. Vir die toets sal wees Matlab. Vir coerency moet beide stelsels dieselfde metodes vir die berekening gebruik. So óf ek skep die algoritmes in C en 'n 3.5 biblioteek gebruik gaan word in Matlab. Of ek alles skep in Matlab, saam te stel om NET (wat ek dink dit is moontlik) om te gebruik in die WPF aansoek. Wat sou jy my advies gee Miskien hierdie nuutste opsie Ek dink dit sal waarskynlik red my 'n baie werk. Maar wat van prestasie, maar hoe kan ek saam te stel byvoorbeeld dat kode in 'n netto biblioteek Enige raad oor dit is baie welkom. Dankie, Miguel Wayne King ltwmkingtygmailgt geskryf in boodskap ltgubuvu71g1fred. mathworksgt. GT jammer Miguel n gek karakter verskyn vir my verklaring GT GT tydperk in die kode uit hieronder. GT GT Wayne GT GT Wayne King ltwmkingtygmailgt geskryf in boodskap ltgubuip7s81fred. mathworksgt. GT GT Hi Miguel, kan jy jou C-kode maklik vertaal in Matlab. Die neem van die relevante deel van jou C-kode GT GT GT GT sma0 series0 GT GT GT GT dubbel som sma0 GT GT vir (int bar 1 bar Dit lengte bar) gt gt gt gt as (bar LT tydperk) gt gt gt gt som seriesbar GT GT smabar som / (maat 1) gt gt gt gt anders GT GT GT GT smabar smabar - 1 (seriesbar - seriesbar - GT GT tydperk) / tydperk GT GT GT GT GT GT GT GT In Matlab (vinnige vertaling): GT GT GT GT SMA (1) reeks (1) gt gt vir J2: lengte (reeks) -1 GT GT as jltperiod GT GT SMA (j) som (reeks (1: j)) / (J1) gt gt anders GT GT SMA (j) SMA (j-1) (reeks (j) - reeks (j-tydperk)) / tydperk GT GT einde GT GT einde GT GT GT GT Maar jy basies dieselfde resultate kry as jy net gebruik filter () met 'n FIR filter bestaande uit 'n vektor van lengte tydperk met koëffisiënte (1/10) gt gt gt gt seriesrandn (100,1) gt gt klip (10,1) gt gt hh./10 GT GT smamatlabfilter (h, 1, reeks ) gt gt tydperk GT GT SMA (1) reeks (1) gt gt vir J2: lengte (reeks) -1 GT GT as jltperiod GT GT SMA (j) som (reeks (1: j)) / (J1) gt gt anders GT GT SMA (j) SMA (j-1) (reeks (j) - reeks (j-tydperk)) / tydperk GT GT einde GT GT einde GT GT plot (smamatlab, b, linewidth, 2) gt gt vashou GT GT plot (SMA, r) gt gt gt gt Daar is 'n paar start-up effekte te hanteer in jou metode, maar jy kry die prentjie. Die nice ding oor Matlab is dat 'n paar groot ontwikkelaars 'n baie werk gedoen vir jou. Jy die vrugte van hul arbeid pluk. GT GT GT GT Hoop dit help, GT GT Wayne GT GT GT GT GT GT Miguel Moura ltmdNOSPAMmouragmREMOVEailgt geskryf in boodskap ltgubrt2l11fred. mathworksgt. GT GT GT Wayne King ltwmkingtygmailgt geskryf in boodskap ltgubl6qp821fred. mathworksgt. GT GT GT GT Hi Miquel met die beheer parameter, Alpha stel aan nul. Jou bewegende gemiddeldes bereken deur convolving jou insetsein (reeks) met twee eindige impulsrespons filters van lengte N met filter koëffisiënte 1 / N. So het die oproep: GT GT GT GT movavg (reeks, 3,10,0) gt gt gt gt sal die data in 'n reeks filter met twee filters, sal een van lengte 3 wees en filter koëffisiënte GT GT GT GT GT GT GT GT filt11 / 3 1/3 1/3 3 koëffisiënte GT GT GT GT Die ander sal lengte 10 het en het filter koëffisiënte GT GT GT GT filt21 / 10 1/10 1/10 1/10 1/10 1/10 1/10 10/01 10/01 10/01 10 koëffisiënte GT GT GT GT GT GT GT GT Jy word dan filter jou insette data met hierdie FIR filters. GT GT GT GT GT GT GT GT seriesrandn (100,1) skep 'n paar random data GT GT GT GT outputfilt1filter (filt1,1, reeks) filter n paar random data GT GT GT GT outputfilt2filter (filt2,1, reeks) gt gt gt gt GT GT GT GT as jy nou plot wat data, sal jy sien dat beide gefiltreer weergawes is gladder as die insette data, maar dit outputfilt2 is gladder as outputfilt1 omdat jy 'n langer bewegende gemiddelde filter gebruik. Ek dont dink jy wil jou lei insetveranderlike te wees 1, want dit isnt gee jou iets. Ek is nie 'n ekonomie persoon, maar 'n mens aansoek van die gebruik van hierdie bewegende gemiddeldes van verskillende lengtes is om die werklike data teenoor die bewegende gemiddeldes van verskillende lengte ( 'n kort of voorste en een langer of nalopend) te vergelyk en te sien waar die werklike mark data val met betrekking tot daardie verskillende bewegende gemiddeldes. Dit word gebruik om afleidings te maak oor die algemene rigting van die tydreeks (mark). Die verandering van die beheer parameter gee jou geweegde bewegende gemiddeldes of eksponensiële. GT GT GT GT GT GT GT GT Hoop dit help, GT GT GT GT Wayne GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT GT Miguel Moura ltmdNOSPAMmouragmREMOVEailgt geskryf in boodskap ltguahs5lgk1fred. mathworksgt. GT GT GT GT GT Hallo, GT GT GT GT GT GT GT GT GT GT ek nodig het om 'n Eenvoudige bewegende gemiddelde bereken met tydperk 10. GT GT GT GT GT Hoe kan ek dit doen in Matlab GT GT GT GT GT GT GT GT GT GT ek gebruik movavg (reeks, 1,20,0), maar ek is nie seker of dit korrek is. GT GT GT GT GT GT GT GT GT GT Wat moet ek gebruik vir lood en lag GT GT GT GT GT GT GT GT GT GT Dankie, GT GT GT GT GT Miguel GT GT GT GT GT GT ek nodig het om die Eenvoudige bewegende gemiddelde gebruik in sy normale vorm, want ek het 'n C NET biblioteek om dit te doen. En ek gebruik hierdie biblioteek in Matlab en die beheer van die prestasie. GT GT GT GT GT GT Ek wil graag die SMA bereken met behulp van Matlab funksie om die waardes te bevestig. GT GT GT GT GT GT In teorie behoort die SMA waardes dieselfde wees óf met behulp van die C-biblioteek SMA of die Matlab SMA, reg GT GT GT GT GT GT In C my SMA is soos volg: GT GT GT GT GT GT openbare statiese Double SMA (Double-reeks, int32 tydperk) gt gt gt gt gt gt // Gaan argumente GT GT GT int32 lengte series. Length GT GT GT indien (lengte 0) gooi nuwe ArgumentException (Series kan nie gt gt gt leë) gt gt gt as (tydperk GT lengte) gooi nuwe ArgumentException (tydperk GT GT GT kan nie groter as reeks lengte) gt gt gt gt gt gt // Bereken eenvoudige bewegende gemiddelde GT GT GT Double SMA nuwe Doublelength GT GT GT GT GT GT sma0 series0 GT GT GT GT GT GT dubbel som sma0 GT GT GT vir (int bar 1 bar Dit lengte bar) gt gt gt gt gt gt as (bar LT tydperk) gt gt gt gt gt gt som seriesbar GT GT GT smabar som / (maat 1) GT GT GT GT GT GT anders GT GT GT GT GT GT smabar smabar - 1 (seriesbar - seriesbar - GT GT GT tydperk) / tydperk GT GT GT GT GT GT GT GT GT GT GT GT terugkeer SMA GT GT GT GT GT GT GT GT GT ek gebruik SMA as 'n voorbeeld vir die toets. GT GT GT GT GT GT Dankie, GT GT GT Miguel Wayne King ltwmkingtygmailgt geskryf in boodskap lth2auivpgk1fred. mathworksgt. GT Hi Ralph, ja die bewegende gemiddelde is geïmplementeer in 'n kousale mode sodat dit agtertoe kyk. In jou oproep movavg (data, 10,10, e) wat jy dieselfde lag vir beide die voorste en agter gemiddeldes sodat jy identies uitgange vir GT GT kort, lang movavg sal kry (data, 10,10, e) gt gt gewoonlik, mense kies verskillende waardes vir diegene bewegende gemiddeldes. GT GT Hoop dit help, GT Wayne GT GT Ralph ltralphjbgmailgt geskryf in boodskap lth2atdf6sc1fred. mathworksgt. GT GT Ja, so in my voorbeeld in sou tyd N wees, N-1. N-9 eksponensiële bewegende gemiddelde. Ek ok om movavg (data, 10,10, e) gebruik GT GT GT GT Baie waardeer GT GT GT GT Ralph Moenie vertrou die EMO dat Matlab implemente. Dit is nie die tradisionele bewegende gemiddelde wat gebruik word in finansies. In werklikheid Ek weet nie of hul weergawe ooit gebruik word. Met ander woorde sy plat uit verkeerde IMO. Hier is wat Matlab gebruik: bereken eksponensiële bewegende gemiddelde bereken glad konstante (alfa) Alfa's 2 / (period1) eerste eksponensiële gemiddelde is eerste prys b (1) bate (1) preallocate matrikse b bzeros (r-tydperk, 1) sloerende gemiddelde Vir groot matrikse van insette data, VIR sirkelroetes is meer doeltreffend as vektorisering. voorste gemiddelde vir j tydperk: r-1 B (J2-tydperk) b (j-period1) Alfa's (bate (J2-tydperk) - b (j-period1)) einde Eerstens, die lyn: is nie goed nie, byvoorbeeld wat gebeur as jou data so gelyk 1, 4, 6 20, 45 dan vra Matlab om te bereken 'n 5 tydperk EMO en dit gee jou 1 as die eerste pt. baie beter is om SMA gebruik vir die eerste punt, en dit nie die geval stop daar kyk na die werklike EMO berekening: bate (J2-tydperk) is die prys X tydperke gelede toe in werklikheid moet dit vandag prys. Elke verwysing Ive gesien gee die formule: EMAtoday EMAyest alfa (PRICEtoday - EMAyest) En vir 'n vergelyking Matlab: EMAtoday EMAyest alfa (PRYS tydperk dae gelede - EMAyest) die korrekte lyn moet lees: Dit is 'n redelik ernstige flater en kan regtig af te gooi jou lei soos in my geval. Cant glo dit is nog nooit aangespreek. Jy kan dink jou lys as drade wat jy geboekmerk. Jy kan etikette, skrywers, drade te voeg, en selfs resultate aan jou lys te soek. Op hierdie manier kan jy maklik die spoor van onderwerpe wat jy belangstel in. Om jou lys te sien hou, kliek op die quotMy Newsreaderquot skakel. Om items na jou horlosie lys voeg, kliek op die quotadd om listquot skakel aan die onderkant van 'n bladsy te sien. Hoe kan ek 'n item by te voeg aan my horlosie lys Soek Om soekkriteria voeg tot jou lys, soek vir die presiese term in die soekkassie. Klik op die quotAdd hierdie soektog na my horlosie listquot skakel op die resultate bladsy. Jy kan ook 'n tag toe te voeg tot jou lys deur te soek vir die tag met die richtlijn quottag: tagnamequot waar merkernaam is die naam van die etiket wat jy wil om te kyk. Skrywer 'n skrywer by jou horlosie lys, gaan na die skrywers profiel bladsy en klik op die quotAdd hierdie skrywer om my horlosie listquot skakel aan die bokant van die bladsy. Jy kan ook 'n skrywer by jou horlosie lys deur te gaan na 'n draad wat die skrywer het gepos word aan en kliek op die quotAdd hierdie skrywer om my horlosie listquot skakel. Jy sal in kennis gestel word wanneer die skrywer maak 'n pos. Draad 'n draad om jou horlosie lys te voeg, gaan na die draad bladsy en klik op die quotAdd hierdie draad om my horlosie listquot skakel aan die bokant van die bladsy. Oor Nuusgroepe, News Readers en MATLAB Sentraal Wat is nuusgroepe Die groepe is 'n wêreldwye forum wat oop is vir almal is. Nuusgroepe word gebruik om 'n groot verskeidenheid onderwerpe bespreek, maak aankondigings, en handel lêers. Besprekings is gestruktureerde, of gegroepeer in 'n manier wat jou toelaat om 'n gepos boodskap en al sy antwoorde in chronologiese volgorde te lees. Dit maak dit maklik om die draad van die gesprek te volg, en om whatrsquos reeds gesê sien voordat jy jou eie antwoord te plaas of 'n nuwe plaas. Nuusgroep inhoud versprei deur bedieners gehuisves word deur verskeie organisasies op die internet. Boodskappe uitgeruil en bestuur met behulp van oop-standaard protokolle. Geen enkele entiteit ldquoownsrdquo die nuusgroepe. Daar is duisende nuusgroepe, wat elk 'n enkele onderwerp of area van belang. Die MATLAB Sentraal nuusleser poste en uitstallings boodskappe in die comp. soft-sys. matlab nuusgroep. Hoe kan ek lees of pos aan die nuusgroepe Jy kan die geïntegreerde nuusleser by die MATLAB Sentraal webwerf gebruik om te lees en post boodskappe in hierdie nuusgroep. MATLAB Sentrale word aangebied deur MathWorks. Boodskappe gepos deur die MATLAB Sentraal nuusleser gesien word deur almal gebruik van die groepe, ongeag hoe hulle toegang tot die groepe. Daar is verskeie voordele aan die gebruik van MATLAB Sentraal. Een rekening Jou MATLAB Sentraal rekening is gekoppel aan jou MathWorks Rekening vir 'n maklike toegang. Gebruik die e-posadres van jou keuse Die MATLAB Sentrale News Reader kan jy 'n alternatiewe e-pos adres as jou boodskap adres definieer, te vermy warboel in jou primêre posbus en die vermindering van spam. Spam beheer Meeste nuusgroep spam gefiltreer deur die MATLAB Sentrale News Reader. Tagging Boodskappe kan gemerk met 'n toepaslike etiket deur 'n aangemelde gebruiker. Tags kan gebruik word as sleutel word om spesifieke lêers van belang vind, of as 'n manier om jou geboekmerk plasings kategoriseer. Jy kan kies om ander toelaat om jou Tags te sien, en jy kan othersrsquo tags sowel as dié van die gemeenskap in sy geheel sien of te soek. Tagging bied 'n manier om beide die groot tendense en die kleiner, meer onduidelik idees en programme te sien. Watch lyste opstel van horlosie lyste kan jy in kennis gestel word van updates gemaak om plasings gekies deur die skrywer, draad, of enige search veranderlike. Jou horlosie lys kennisgewings kan gestuur word per e-pos (daagliks verteer of onmiddellike), vertoon in My nuusleser, of gestuur via RSS feed. Ander maniere om toegang te verkry tot die nuusgroepe Gebruik 'n nuusleser deur jou skool, werkgewer, of die internet diensverskaffer Pay vir nuusgroep toegang van 'n kommersiële verskaffer Gebruik Google Groepe Mathforum. org bied 'n nuusleser met toegang tot die comp. soft sys. matlab nuusgroep Doen jou eie bediener. Vir tipiese instruksies, sien: www. slyck / ngpage2 Kies 'n land


No comments:

Post a Comment