Monday, October 3, 2016

C Taal Moving Average

Ek het 'n 4000 hoeveelheid data van voorraad, en Tring die bewegende gemiddelde vir alle data waardes te bereken, maar aangesien die bewegende gemiddelde is gebaseer op vorige data en ek kan nie bereken die 15-dag SMA vir die eerste 14 dae, slaan die eerste 14 dae en bereken die SMA op die res van die data. En dit is moet gebruik word om LINQ te bereik. Kan iemand gee 'n monsters of wenk hoe om met behulp van LINQ te bereken bewegende gemiddelde Die uitset vir die gemiddelde waardes is almal rondom 500s Ek het regtig nie verstaan ​​hoe is dit moontlik dat 'n hoë waarde te kry. Moving Averager met somme verskeidenheid: 06/07/2012 562,49 571,72 06/08/2012 565,84 580,32 06/11/2012 568,56 571,17 06/12/2012 569,55 576,16 06/13/2012 570,56 572,16 06/14/2012 570,63 571,53 06 / 15/2012 571,21 574,13 06/18/2012 572,78 585,78 06/19/2012 573,79 587,41 06/20/2012 574,23 585,74 06/21/2012 574,22 577,67 06/22/2012 575,63 582,10 06/25/2012 576,06 570,77 06/26 / 2012 576,68 572,03 06/27/2012 576,88 574,50 06/28/2012 576,7 569,05 06/29/2012 576,95 584,00 07/02/2012 578,37 592,52 07/03/2012 579,92 599,41 07/03/2012 581,74 599,41 Edited by Leemx Vrydag , November 16, 2012 02:59 geraak deur Lisa Zhu Microsoft voorwaardelike personeel Maandag, November 19, 2012 07:38 linq verwante (Uit: Visual C Algemene) Vrydag, November 16, 2012 02:42 Om 'n bewegende gemiddelde skep , sou ek begin deur die skep van 'n reeks van 0 tot (lengte van data lys - lengte van bewegende tydperk), dan vir elke waarde in die reeks kies elemente x x 43 lengte van bewegende tydperk en bereken die gemiddelde. Alles in 'n mooi LINQ stelling: Let daarop dat dit nie baie doeltreffend nie, aangesien jy basies Itereer oor die lys data vir elke waarde in die reeks .. Hey, kyk hierdie stelsel kan handtekeninge van meer as 60 cha Edited by Arno Brouwer Vrydag November 23, 2012 16:42 Labeled as antwoord deur Alexander Sun Vrydag 7 Desember, 2012 02:44 Vrydag, November 23, 2012 16:41 Alle antwoorde 'n monster van jou LINQ verklaring sal help. quotPremature optimalisering is die wortel van alle evil. quot - Knuth Om 'n bewegende gemiddelde skep, sou ek begin deur die skep van 'n reeks van 0 tot (lengte van data lys - lengte van bewegende tydperk), dan vir elke waarde in die reeks kies elemente x om x 43 lengte van bewegende tydperk en bereken die gemiddelde. Alles in 'n mooi LINQ stelling: Let daarop dat dit nie baie doeltreffend nie, aangesien jy basies Itereer oor die lys data vir elke waarde in die reeks .. Hey, kyk hierdie stelsel kan handtekeninge van meer as 60 cha Edited by Arno Brouwer Vrydag November 23, 2012 16:42 Labeled as antwoord deur Alexander Sun Vrydag 7 Desember, 2012 02:44 Vrydag, November 23, 2012 16:41 Microsoft is besig met 'n aanlyn-opname te dink jy van die webwerf van MSDN verstaan. As jy kies om deel te neem, sal die aanlyn-opname word aan jou wanneer jy die webwerf van MSDN verlaat. Wil jy om deel te neem Help ons verbeter MSDN. Besoek ons ​​UserVoice Page in te dien en te stem oor ideasHow te Bereken bewegende gemiddelde in R taal en Python n bewegende gemiddelde gebruik te stryk 'n tydreeks. Berekening van bewegende gemiddelde is 'n tipiese geval van geordende data rekenaar. Die basiese rekenaar metode is om 'n subset bestaan ​​uit N agtereenvolgende lede van 'n tydreeks te skep, te bereken die gemiddeld van die stel en skuif die subset vorentoe een vir een. Die volgende voorbeeld leer jy hoe om te bereken bewegende gemiddelde in R taal. Data raam verkope het twee velde: salesDate en Bedrag van hierdie datum nie. Vereiste: bereken die bewegende gemiddelde oor drie dae. Computing stappe insluit op soek na verkope bedrag gemiddeld van die vorige dag, die huidige dag en die volgende dag, en skuif vorentoe langs die datums. 'N Deel van die bron data is soos volg: filter (salesAmount / 3, rep (1, 3)) kan filter funksie gebruik word in R taal te bewegende gemiddelde, wat bondige kode produseer bereken. Hierdie metode is baie gerieflik. Ten spyte van die gerief van die filter funksie. Dit is moeilik om te verstaan ​​vir beginners. Byvoorbeeld, salesAmount / 3means die huidige waarde van die veld bedrag deur drie, maar wanneer dit gebruik word in die filter funksie, kan dit beteken bymekaar te tel die drie agtereenvolgende waardes, dan verdeel die som deur drie. 1,1,1 is die waarde van uitdrukking rep (1,3), wat hier gebruik word om die omvang van die data haal spesifiseer. Verder, omdat nie die naam of die parameters van filter funksie bevat die woorde gemiddelde en beweeg, selfs baie ontwikkelaars van R taal dont weet sy gebruik vir die berekening van bewegende gemiddelde. Trouens, filter funksie is 'n universele lineêre filter. Die gebruik daarvan is meer as die berekening van bewegende gemiddelde. Die volledige funksie verwysing filter (x, filter, metode c (konvolusie, rekursiewe), kante 2, omsendbrief ONWAAR, init). Enige wysiging van die vereiste sal die kode moeiliker om te verstaan. Byvoorbeeld, kan die kode vir die berekening van bewegende gemiddelde van die huidige dag en die vorige twee dae nie geskryf word as filter (salesAmount / 3, rep (0,2)), moet dit befilter (salesAmount / 3, rep (1,3 ), kante 1). R taal kan bereken bewegende gemiddelde, maar sy kode is eerder ontwykende. Ons kan ook gebruik Python, esProc en Perl om hierdie saak te hanteer. Soos R taal, kan al hierdie tale data statistieke en analise uit te voer en te bereken bewegende gemiddelde. Die volgende stel oplossings van 'n afgestorwene en esProc kortliks. Pandas is Luislange derde party biblioteek funksie. Dit is 'n kragtige in die verwerking van gestruktureerde data met basiese tipe data navolg R dataframe. Op die oomblik is die nuutste weergawe is 0,14. Die kode vir die hantering van hierdie geval is soos volg: Die naam van rollingmean funksie is duidelik, kan selfs 'n ontwikkelaar sonder ervaring met pandas dit maklik verstaan. Die gebruik funksies is te eenvoudig. Die eerste parameter is die volgorde wat bereken en die tweede parameter is N, wat is die aantal dae in die soeke na bewegende gemiddelde. esProc is goed in die uitdrukking van besigheid logika vrylik met ratse sintaksis. Die uitdrukkings vir relatiewe posisie kan computational probleme van maklik bestel data op te los. Die kode is soos volg: in die kode 'n familielid interval verteenwoordig, dit wil sê die drie dae van die vorige dag, die huidige dag en die volgende dag. Dit kan gesien word dat bewegende gemiddelde duidelik en sonder huiwering kan uitgewerk word deur die gebruik van 'n familielid interval. As dit nodig is, byvoorbeeld, om die bewegende gemiddelde van die huidige dag en die vorige twee dae bereken, moet ons net die interval verander om in esProc. 'N Familielid interval is 'n stel. esProc kan ook 'n element van relatiewe posisie te druk. Byvoorbeeld, kan dit verkoop groeikoers met (Bedrag - Amount-1) gerieflik bereken. In teenstelling, die kode in R taal en Python is moeilik om understand. Averages / Eenvoudige bewegende gemiddelde Gemiddeldes / Eenvoudige bewegende gemiddelde U word aangemoedig om hierdie taak op te los volgens die taakbeskrywing, die gebruik van enige taal wat jy kan weet. Berekening van die eenvoudige bewegende gemiddelde van 'n reeks van getalle. Skep 'n Stateful funksie / klas / instansie wat 'n tydperk neem en gee 'n roetine dat 'n aantal neem as argument en gee 'n eenvoudige bewegende gemiddelde van sy argumente tot dusver. 'N Eenvoudige bewegende gemiddelde is 'n metode vir die berekening van 'n gemiddelde van 'n stroom van getalle met slegs gemiddeld die afgelope 160 P 160 nommers van die stroom, 160 waar 160 P 160 is bekend as die tydperk. Dit kan toegepas word deur die roeping van 'n parafering roetine met 160 P 160 as sy argument, 160 I (P), 160 wat dan 'n roetine dat wanneer geroep met individuele, opeenvolgende lede van 'n stroom van getalle, bere die gemiddelde van sou terugkeer (up om), die laaste 160 P 160 van hulle, kan noem dit 160 SMA (). Die woord 160 Stateful 160 in die taak beskrywing verwys na die behoefte aan 160 SMA () 160 om sekere inligting tussen oproepe onthou om dit: 160 Die tydperk, 160 P 160 N bestel houer van ten minste die laaste 160 P 160 nommers uit elk van sy individuele oproepe. Stateful 160 beteken ook dat opeenvolgende oproepe na 160 I (), 160 die initializer, 160 moet afsonderlike roetines wat doen 160 nie 160 aandele gered staat sodat hulle kan gebruik word op twee onafhanklike strome van data terugkeer. Pseudo-kode vir die implementering van 160 SMA 160 is: Hierdie weergawe maak gebruik van 'n aanhoudende tou om die mees onlangse p waardes hou. Elke funksie teruggekeer van init-bewegende-gemiddelde het sy toestand in 'n atoom met 'n tou waarde. Dit implementering gebruik 'n omsendbrief lys van die nommers in die venster op te slaan aan die begin van elke iterasie wyser verwys na die lys sel wat hou die waarde net beweeg by die venster uit en vervang moet word met die net toegevoegde waarde. Met behulp van 'n afsluiting wysig Tans hierdie SMA cant nogc wees omdat dit 'n sluiting op die wal ken. Sommige ontsnapping analise kan die hoop toekenning te verwyder. Met behulp van 'n struct wysig Hierdie weergawe vermy die hoop toekenning van die sluiting behoud van die data in die stapel raamwerk van die hooffunksie. Dieselfde uitset: Om te verhoed dat die drywende punt benaderings hou opstapel en groei, kan die kode 'n periodieke som uit te voer op die hele ronde tou skikking. Dit implementering produseer twee (funksie) voorwerpe deel staat. Dit is idiomatiese in E te skei insette van uitset (lees en skryf) eerder as om dit kombineer in een voorwerp. Die struktuur is dieselfde as die implementering van Standard DeviationE. Die onderstaande elikser program genereer 'n anonieme funksie met 'n ingeboude tydperk p, wat gebruik word as die tydperk van die eenvoudige bewegende gemiddelde. Die aanloop funksie lees numeriese insette en gee dit aan die nuutgeskepte anonieme funksie, en dan inspekteer die resultaat te STDOUT. Die uitset word hieronder getoon, met die gemiddelde, gevolg deur die gegroepeer insette, wat die basis vorm van elke bewegende gemiddelde. Erlang het sluitings, maar onveranderlike veranderlikes. 'N Oplossing is dan om prosesse en 'n eenvoudige boodskap verby gebaseer API te gebruik. Matrix tale roetines om die sweef avarages vir 'n gegewe volgorde van items bereken. Dit is minder doeltreffend te loop as in die volgende opdragte. Voortdurend gevra vir 'n inset ek. wat by die einde van 'n lys T1. T1 kan gevind word deur te druk 2ND / 1, en gemiddelde kan gevind word in Lys / OPS druk op die program te beëindig. Funksie wat 'n lys met die gemiddeld data van die verskaf argument program wat 'n eenvoudige waarde terug by elke aanroeping terug: lys is die lys word gemiddeld: p is die tydperk: 5 opbrengste die gemiddeld lys: Voorbeeld 2: Die gebruik van die program movinav2 (i , 5) - Inisialiseer bewegende gemiddelde berekening, en definieer tydperk van 5 movinav2 (3, x): x - nuwe data in die lys (waarde 3), en gevolg sal word gestoor op veranderlike x, en vertoon movinav2 (4 x) : x - nuwe data (waarde 4), en die nuwe gevolg sal gestoor word op veranderlike x, en vertoon (43) / 2. Beskrywing van die funksie movinavg: veranderlike r - is die gevolg (die gemiddeld lys) wat veranderlike sal teruggestuur word ek - is die indeks veranderlike, en dit dui op die einde van die sub-lys die lys word gemiddeld. veranderlike Z - 'n helper veranderlike Die funksie gebruik veranderlike i om vas te stel watter waardes van die lys sal in die volgende gemiddelde berekening in ag geneem word. By elke iterasie, veranderlike i dui op die laaste waarde in die lys wat gebruik sal word in die gemiddelde berekening. So ons moet net om uit te vind wat die eerste waarde in die lys sal wees. Gewoonlik goed moet p elemente oorweeg, sodat die eerste element sal die een geïndekseer deur (i-P1) te wees. Maar op die eerste iterasies wat berekening gewoonlik negatief sal wees, sodat die volgende vergelyking negatiewe indekse sal vermy: Max (i-p1,1) of, reël die vergelyking, Max (i-p, 0) 1. of, die reël van die vergelyking, (i - (Max (IP, 0) 1) 1), en dan - maar die aantal elemente op die eerste iterasies sal ook kleiner wees, sal die korrekte waarde (begin indeks 1 einde indeks) wees , (i-Max (IP, 0)). Veranderlike Z hou die algemene waarde (maksimum (IP), 0) sodat die beginindex sal wees (Z1) en die numberofelements sal wees (iz) die middel (lys, Z1, iz) sal die lys van waarde wat sal gemiddeld som terugkeer ( .) sal hulle som som () / (iz) ri hulle sal gemiddeld en stoor die resultaat in die toepaslike plek in die lys gevolg behulp van 'n sluiting en die skep van 'n functionC:. eenvoudige bewegende gemiddelde berekening van die eenvoudige bewegende gemiddelde van 'n reeks van getalle . Skep 'n Stateful funksie / klas / instansie wat 'n tydperk neem en gee 'n roetine dat 'n aantal neem as argument en gee 'n eenvoudige bewegende gemiddelde van sy argumente tot dusver. Beskrywing 'n eenvoudige bewegende gemiddelde is 'n metode vir die berekening van 'n gemiddelde van 'n stroom van getalle deur net die laaste P nommers van die stroom, waar P staan ​​bekend as die tydperk gemiddeld. Dit kan toegepas word deur die roeping van 'n parafering roetine met P as sy argument, I (P), wat dan 'n roetine moet terugkeer dat wanneer hy met individuele, opeenvolgende lede van 'n stroom van getalle, bere die gemiddelde van (tot), die laaste P van hulle, kan noem dit SMA (). Die woord Stateful in die taak beskrywing verwys na die behoefte aan SMA () om sekere inligting tussen oproepe om dit te onthou: die tydperk, P 'n geordende houer van ten minste die laaste P getalle uit elk van die individuele oproepe. Stateful beteken ook dat opeenvolgende oproepe na ek (), die initializer, aparte roetines wat nie deel nie gered staat sodat hulle kan gebruik word op twee onafhanklike strome van data moet terugkeer. Pseudokode vir 'n uitvoering van SMA is: Seine van die aanwyser Drie Eksponensiële bewegende gemiddelde Die prys het die aanwyser gekruis afwaarts (die Open prys van die ontleed bar bo die aanwyser en die buurt prys is laer as die aanwyser) en die aanwyser styg (swak sein van 'n roll-back van die aanwyser lyn). Bewegende gemiddelde crossover. Die prys het die aanwyser opwaarts gekruis (die Open prys van die ontleed bar is onder die aanwyser en die Beslote prys is hoër as die aanwyser) en die aanwyser styg (sterk sein). Gevorm tempo. Die laer skaduwee van die kroeg het die aanwyser (die oop en toe pryse van die ontleed bar bo die aanwyser, en die Lae prys is laer as die aanwyser) en die aanwyser styg (swak sein van 'n roll-back uit die aanwyser lyn oorgesteek ). Kon tempo. Die prys het die aanwyser opwaarts gekruis (die Open prys van die ontleed bar is onder die aanwyser en die Beslote prys is hoër as die aanwyser) en die aanwyser val (swak sein van 'n roll-back uit die aanwyser lyn). Bewegende gemiddelde crossover. Die prys het die aanwyser afwaarts gekruis (die Open prys van die ontleed bar bo die aanwyser en die Beslote prys is laer as die aanwyser) en die aanwyser val (sterk sein). Gevorm tempo. Die boonste skaduwee van die kroeg het die aanwyser gekruis (die oop en toe pryse van die ontleed bar is onder die aanwyser, en die hoë prys is hoër as die aanwyser) en die aanwyser val (swak sein van 'n roll-back uit die aanwyser lyn ). Geen besware teen die koop


No comments:

Post a Comment