Wednesday, 13 September 2017

Glidande Medelvärde Exempel I C


Jag vet att detta kan uppnås med boost enligt: ​​Men jag vill verkligen undvika att använda boost. Jag har googled och inte hittat några lämpliga eller läsbara exempel. I grund och botten vill jag spåra det rörliga genomsnittet av en pågående ström av en ström av flytande punkttal med de senaste 1000 siffrorna som ett dataprov. Vad är det enklaste sättet att uppnå detta jag experimenterade med att använda ett cirkulärt array, exponentiellt glidande medelvärde och ett enklare glidande medelvärde och fann att resultaten från den cirkulära gruppen passade mina behov bäst. Frågade 12 juni 12 kl 4:38 Om dina behov är enkla kan du bara försöka använda ett exponentiellt glidande medelvärde. Enkelt, du gör en ackumulatorvariabel, och när din kod tittar på varje prov uppdateras koden med ackumulatorn med det nya värdet. Du väljer en konstant alfa som ligger mellan 0 och 1 och beräknar det här: Du behöver bara hitta ett värde av alfa där effekten av ett visst prov endast varar för cirka 1000 prover. Hmm, jag är inte säker på att det här passar dig, nu när jag har lagt den här. Problemet är att 1000 är ett ganska långt fönster för ett exponentiellt rörligt medelvärde. Jag är inte säker på att det finns en alfa som skulle sprida genomsnittet över de senaste 1000 siffrorna, utan underflöde i flytpunktsberäkningen. Men om du ville ha ett mindre medelvärde, som 30 nummer eller så, är det här ett mycket enkelt och snabbt sätt att göra det. Svarade 12 jun 12 kl 4:44 1 på ditt inlägg. Det exponentiella glidande medlet kan tillåta att alfabetet är variabelt. Så det här låter det användas för att beräkna tidbasvärdena (t ex byte per sekund). Om tiden sedan den senaste ackumulatorns uppdatering är mer än 1 sekund, låter du alfa vara 1,0. Annars kan du låta alpha vara (usecs sedan senaste uppdateringen1000000). ndash jxh Jun 12 12 at 6:21 I grund och botten vill jag spåra det rörliga genomsnittet av en pågående ström av en ström av flytande punkttal med de senaste 1000 numren som ett dataprov. Observera att nedanstående uppdaterar summan som element som läggs till, vilket undviker kostnadskrävande O (N) - korsning för att beräkna summan som behövs för genomsnittet - efterfrågan. Totalt görs en annan parameter från T för att stödja t. ex. Använder en lång lång när totalt 1000 lång s, ett int för char s, eller en dubbel till totalt float s. Det här är lite bristfälligt, eftersom numsamples kan gå förbi INTMAX - om du bryr dig att du kan använda en unsigned long long. eller använd en extra bool data medlem för att spela in när behållaren fylls första gången medan cykeltalsprover runt arrayen (bäst omnämndes något oskadd som pos). svarade den 12 juni 12 kl 5:19 antar man att kvoträttsoperatören (T-prov) citationstecken är faktiskt quotvoid operatorltlt (T-prov) citat. Ndash oPless 8 juni 14 kl 11:52 oPless ahhh. Välspotted. egentligen menade jag att det skulle vara tomt operatör () (T-prov) men självklart kan du använda vilken anteckning du helst tyckte. Kommer att fixa, tack. ndash Tony D Jun 8 14 at 14:27 Det är möjligt att genomföra ett glidande medelvärde i C utan att det behövs ett fönster i prover. Jag har funnit att jag kan optimera lite, genom att välja en fönsterstorlek som är en kraft av två för att tillåta lite - växling istället för att dela men inte behövde en buffert skulle vara trevligt. Finns det ett sätt att uttrycka ett nytt glidande medelresultat endast som en funktion av det gamla resultatet och det nya provet Definiera ett exempel glidande medelvärde, över ett fönster med 4 prov att vara: Lägg till nytt prov e: Ett glidande medel kan implementeras rekursivt , men för en exakt beräkning av glidande medelvärde måste du komma ihåg det äldsta inmatningsprovet i summan (dvs. a i ditt exempel). För ett längd N rörligt medelvärde beräknar du: var yn är utsignalen och xn är ingångssignalen. Eq. (1) kan skrivas rekursivt som Så du måste alltid komma ihåg provet xn-N för att beräkna (2). Som påpekat av Conrad Turner kan du använda ett (oändligt långt) exponentiellt fönster istället, vilket gör det möjligt att beräkna utmatningen endast från tidigare utmatning och aktuell ingång: men det här är inte ett vanligt (obetydligt) glidande medelvärde men exponentiellt viktade glidande medelvärde, där prov i det förflutna får en mindre vikt, men (åtminstone teoretiskt) glömmer du aldrig någonting (vikterna blir bara mindre och mindre för prover långt ifrån). Jag implementerade ett glidande medelvärde utan individuellt objektminne för ett GPS-spårningsprogram som jag skrev. Jag börjar med 1 prov och dela med 1 för att få nuvarande avg. Sedan lägger jag till ett exempel och delar upp med 2 till den nuvarande avg. Detta fortsätter tills jag når längden på medeltalet. Varje gång efteråt lägger jag till i det nya provet, får medelvärdet och tar bort det genomsnittet från summan. Jag är inte matematiker men det verkade som ett bra sätt att göra det. Jag tänkte att det skulle vända på magen på en riktig matte kille men det visar sig att det är ett av de accepterade sätten att göra det. Och det fungerar bra. Kom bara ihåg att ju högre längden desto långsammare följer du vad du vill följa. Det kan inte ha betydelse för det mesta, men när du följer satelliter, kan du vara långsiktig, om det är långt ifrån det faktiska läget och det kommer att se dåligt ut. Du kan ha ett mellanrum mellan mitten och de efterföljande prickarna. Jag valde en längd på 15 uppdaterad 6 gånger per minut för att få tillräcklig utjämning och inte komma för långt från den faktiska lätta positionen med de släta spårpunkterna. svarat 16 november 16 kl 23:03 initialisera totalt 0, count0 (varje gång vi ser ett nytt värde) Då en inmatning (scanf), en lägg till totalnevValue, en ökning (räkning), en delningsgenomsnitt (totalantal) Detta skulle vara ett glidande medelvärde över alla ingångar För att beräkna medelvärdet över endast de senaste 4 ingångarna, skulle det behöva 4 ingångsvariabler, kanske kopiering av varje ingång till en äldre ingångsvariabel och sedan beräkning av det nya glidande medlet. Som summan av de fyra ingångsvariablerna dividerad med 4 (höger skift 2 skulle vara bra om alla ingångar var positiva för att få den genomsnittliga beräkningen besvarad 3 feb 15 kl 4:06 som faktiskt kommer att beräkna det totala genomsnittet och INTE det glidande genomsnittet. När räkningen blir större blir effekten av ett nytt ingångsprov försvinnande liten ndash Hilmar Feb 3 15 kl 13:53 Ditt svar 2017 Stack Exchange, IncMoving Averages - Enkla och exponentiella rörliga medelvärden - Enkel och exponentiell introduktion Flyttande medelvärden släpper prisdata för att bilda en trendföljande indikator. De förutsäger inte p Risriktning, men definiera snarare den aktuella riktningen med en fördröjning. Flyttande medelvärden försenas eftersom de är baserade på tidigare priser. Trots denna fördröjning hjälper glidande medelvärden till en jämn prisåtgärd och filtrerar bort bullret. De utgör också byggstenar för många andra tekniska indikatorer och överlagringar, som Bollinger Bands. MACD och McClellan Oscillatorn. De två mest populära typerna av glidande medelvärden är Simple Moving Average (SMA) och Exponentential Moving Average (EMA). Dessa rörliga medelvärden kan användas för att identifiera riktningens riktning eller definiera potentiella stöd - och motståndsnivåer. Här är ett diagram med både en SMA och en EMA på den: Enkel rörlig medelberäkning Ett enkelt glidande medelvärde bildas genom att beräkna det genomsnittliga priset på en säkerhet över ett visst antal perioder. De flesta glidande medelvärden är baserade på slutkurs. Ett 5-dagars enkelt glidande medelvärde är den fem dagars summan av slutkurserna dividerad med fem. Som namnet antyder är ett glidande medelvärde ett medel som rör sig. Gamla data släpps när nya data kommer att finnas tillgängliga. Detta medför att medelvärdet flyttas längs tidsskalan. Nedan är ett exempel på ett 5-dagars glidande medelvärde som utvecklas över tre dagar. Den första dagen i det rörliga genomsnittet täcker helt enkelt de senaste fem dagarna. Den andra dagen i glidande medel faller den första datapunkten (11) och lägger till den nya datapunkten (16). Den tredje dagen i glidande medel fortsätter genom att släppa den första datapunkten (12) och lägga till den nya datapunkten (17). I exemplet ovan ökar priserna gradvis från 11 till 17 över totalt sju dagar. Observera att det rörliga genomsnittet också stiger från 13 till 15 över en tre dagars beräkningsperiod. Observera också att varje glidande medelvärde ligger strax under det sista priset. Till exempel är det rörliga genomsnittet för dag ett lika med 13 och det sista priset är 15. Priserna för de föregående fyra dagarna var lägre och det medför att det rörliga genomsnittet fördröjs. Exponentiell rörlig medelberäkning Exponentiell glidande medelvärden minskar fördröjningen genom att tillämpa mer vikt på de senaste priserna. Den vikt som tillämpas på det senaste priset beror på antalet perioder i glidande medelvärde. Det finns tre steg för att beräkna ett exponentiellt rörligt medelvärde. Beräkna först det enkla glidande medlet. Ett exponentiellt rörligt medelvärde (EMA) måste starta någonstans så att ett enkelt glidande medelvärde används som föregående period039s EMA i den första beräkningen. För det andra, beräkna viktnings multiplikatorn. Tredje, beräkna exponentiell glidande medelvärde. Formeln nedan är för en 10-dagars EMA. Ett 10-årigt exponentiellt glidande medel gäller en 18,18 viktning till det senaste priset. En 10-årig EMA kan också kallas en 18.18 EMA. En 20-årig EMA tillämpar en vägar på 9,52 till det senaste priset (2 (201) .0952). Observera att viktningen för den kortare tidsperioden är mer än vikten för den längre tidsperioden. I själva verket sjunker vikten med hälften varje gång den glidande medeltiden fördubblas. Om du vill ha en viss procentandel för en EMA kan du använda denna formel för att konvertera den till tidsperioder och ange det där värdet som EMA039-parametern: Nedan är ett kalkylblad exempel på ett 10-dagars enkelt glidande medelvärde och en 10- Dag exponentiell glidande medelvärde för Intel. Enkla glidande medelvärden är rakt framåt och kräver liten förklaring. 10-dagars genomsnittet rör sig helt enkelt eftersom nya priser blir tillgängliga och gamla priser faller av. Det exponentiella rörliga medlet börjar med det enkla glidande medelvärdet (22,22) i den första beräkningen. Efter den första beräkningen tar den normala formeln över. Eftersom en EMA börjar med ett enkelt rörligt medelvärde, kommer det sanna värdet inte att realiseras förrän 20 eller senare perioder senare. Med andra ord kan värdet på Excel-kalkylbladet skilja sig från diagramvärdet på grund av den korta återkallningsperioden. Detta kalkylblad går bara tillbaka 30 perioder, vilket innebär att påverkan av det enkla glidande medlet har haft 20 perioder att sprida. StockCharts går tillbaka åtminstone 250-perioder (vanligtvis mycket längre) för sina beräkningar så effekterna av det enkla glidande medlet i den första beräkningen har helt försvunnit. Lagfaktorn Ju längre glidande medelvärde desto mer är fördröjningen. Ett 10-dagars exponentiellt glidande medelvärde kommer att krama priserna ganska nära och vända sig strax efter att priserna vänder. Korta glidande medelvärden är som fartygsbåtar - snygga och snabba att byta. Däremot innehåller ett 100-dagars glidande medelvärde massor av tidigare data som saktar ner det. Längre rörliga medelvärden är som havs tankfartyg - slö och långsam att förändras. Det tar en större och längre prisrörelse för ett 100-dagars glidande medelvärde för att ändra kursen. Diagrammet ovan visar SampP 500 ETF med en 10-dagars EMA nära följande priser och en 100-dagars SMA-slipning högre. Även med nedgången i januari-februari höll den 100-dagars SMA kursen och avstod inte. 50-dagars SMA passar någonstans mellan 10 och 100 dagars glidande medelvärden när det gäller lagfaktorn. Enkelt mot exponentiella rörliga medelvärden Även om det finns tydliga skillnader mellan enkla glidande medelvärden och exponentiella glidmedel är en inte nödvändigtvis bättre än den andra. Exponentiella glidande medelvärden har mindre fördröjning och är därför mer känsliga för de senaste priserna - och de senaste prisförändringarna. Exponentiella glidande medelvärden kommer att vända före enkla glidande medelvärden. Enkla glidande medelvärden representerar däremot ett sannt genomsnitt av priserna under hela tidsperioden. Som sådana kan enkla glidande medelvärden vara bättre lämpade för att identifiera stöd - eller motståndsnivåer. Flyttande medelpreferens beror på mål, analysstil och tidshorisont. Chartister ska experimentera med båda typerna av glidande medelvärden samt olika tidsramar för att hitta den bästa passformen. Diagrammet nedan visar IBM med 50-dagars SMA i rött och 50-dagars EMA i grönt. Båda toppade i slutet av januari, men nedgången i EMA var skarpare än minskningen i SMA. EMA vände sig upp i mitten av februari, men SMA fortsatte lägre till slutet av mars. Observera att SMA visade sig över en månad efter EMA. Längder och tidsplaner Längden på glidande medel beror på de analytiska målen. Korta glidande medelvärden (5-20 perioder) passar bäst för kortsiktiga trender och handel. Chartister intresserade av medellångtidsutveckling skulle välja längre glidmedel som kan sträcka sig 20-60 perioder. Långsiktiga investerare föredrar att flytta medeltal med 100 eller flera perioder. Vissa glidande medellängder är mer populära än andra. Det 200-dagars glidande medlet är kanske det mest populära. På grund av dess längd är detta tydligt ett långsiktigt glidande medelvärde. Därefter är det 50-dagars glidande medlet ganska populärt för den medellånga trenden. Många kartläggare använder de 50 dagars och 200 dagars glidande medelvärdena tillsammans. På kort sikt var ett 10-dagars glidande medelvärde ganska populärt tidigare eftersom det var lätt att beräkna. Man lade bara till siffrorna och flyttade decimalpunkten. Trendidentifikation Samma signaler kan genereras med hjälp av enkla eller exponentiella glidande medelvärden. Som ovan nämnts beror preferensen på varje individ. Dessa exempel nedan kommer att använda både enkla och exponentiella glidande medelvärden. Termen glidande medel gäller både enkla och exponentiella glidande medelvärden. Rörelsens genomsnittliga riktning ger viktig information om priserna. Ett stigande glidande medelvärde visar att priserna i allmänhet ökar. Ett fallande rörligt genomsnitt indikerar att priserna i genomsnitt faller. Ett stigande långsiktigt glidande medelvärde speglar en långsiktig uppgång. Ett fallande långsiktigt glidande medel återspeglar en långsiktig nedåtgående trend. Diagrammet ovan visar 3M (MMM) med ett 150-dagars exponentiellt rörligt medelvärde. I det här exemplet visas hur bra glidande medelvärden fungerar när trenden är stark. 150-dagars EMA avslogs i november 2007 och igen i januari 2008. Observera att det tog 15 nedgångar för att vända riktningen för detta glidande medelvärde. Dessa eftersläpande indikatorer identifierar trendbackbacker när de uppträder (i bästa fall) eller efter att de uppträder (i värsta fall). MMM fortsatte under mars 2009 och ökade sedan 40-50. Observera att 150-dagars EMA inte vände sig fram till efter denna överskott. En gång det gjorde emellertid MMM fortsatt de närmaste 12 månaderna. Rörliga medelvärden arbetar briljant i starka trender. Double Crossovers Två glidande medelvärden kan användas tillsammans för att generera crossover-signaler. I Teknisk Analys av Finansmarknaden. John Murphy kallar det för dubbla crossover-metoden. Dubbelkorsningar omfattar ett relativt kort glidande medelvärde och ett relativt långt glidande medelvärde. Som med alla glidande medelvärden definierar den allmänna längden på glidande medel tidsramen för systemet. Ett system som använder en 5-dagars EMA och 35-dagars EMA skulle anses vara kortsiktig. Ett system med en 50-dagars SMA och 200-dagars SMA skulle anses vara på medellång sikt, kanske till och med på lång sikt. En hausseig crossover uppträder när det kortare rörliga genomsnittet passerar över det längre glidande medlet. Detta är också känt som ett gyllene kors. En baisse crossover uppträder när det kortare glidande medelvärdet korsar det längre glidande medlet. Detta är känt som ett dött kors. Flyttande genomsnittliga övergångar ger relativt sena signaler. Systemet använder trots allt två nedslagsindikatorer. Ju längre de rörliga genomsnittliga perioderna desto större är fördröjningen i signalerna. Dessa signaler fungerar bra när en bra trend tar tag i. Ett glidande medelvärdesöverföringssystem kommer emellertid att producera massor av whipsaws i avsaknad av en stark trend. Det finns också en trippel crossover-metod som innefattar tre glidande medelvärden. Återigen genereras en signal när det kortaste glidande medelvärdet passerar de två längre glidande medelvärdena. Ett enkelt tredubbelt crossover-system kan innebära 5 dagars, 10-dagars och 20-dagars glidande medelvärden. Diagrammet ovan visar Home Depot (HD) med en 10-dagars EMA (grön prickad linje) och 50-dagars EMA (röd linje). Den svarta linjen är den dagliga stängningen. Genom att använda ett glidande medelvärde skulle det ha resulterat i tre whipsaws innan man fick en bra handel. 10-dagars EMA bröt sig under 50-dagars EMA i slutet av oktober (1), men det varade inte länge då 10-dagarna flyttade tillbaka ovan i mitten av november (2). Detta kors varade längre, men nästa bearish crossover i januari (3) inträffade nära prisnivåerna i slutet av november, vilket resulterade i en annan whipsaw. Detta baisse kors varade inte länge då 10-dagars EMA flyttade tillbaka över 50-dagen några dagar senare (4). Efter tre dåliga signaler föreslog den fjärde signalen ett starkt drag när stocken avancerade över 20. Det finns två takeaways här. För det första är korsningar benägna att piska. Ett pris - eller tidsfilter kan användas för att undvika whipsaws. Handlare kan kräva att crossover ska vara 3 dagar före skådespel eller kräva att 10-dagars EMA flyttar överbelasta 50-dagars EMA med en viss mängd före skådespel. För det andra kan MACD användas för att identifiera och kvantifiera dessa övergångar. MACD (10,50,1) visar en linje som representerar skillnaden mellan de två exponentiella glidande medelvärdena. MACD blir positiv under ett gyllene kors och negativt under ett dött kors. Percentageprisoscillatorn (PPO) kan användas på samma sätt för att visa procentuella skillnader. Observera att MACD och PPO är baserade på exponentiella glidmedel och matchar inte med enkla glidande medelvärden. Detta diagram visar Oracle (ORCL) med 50-dagars EMA, 200-dagars EMA och MACD (50,200,1). Det fanns fyra glidande medelvärde över en 2 12-årig period. De första tre resulterade i whipsaws eller dåliga affärer. En hållbar trend började med fjärde crossover som ORCL avancerade till mitten av 20-talet. Återigen fungerar glidande genomsnittliga övergångar bra när trenden är stark, men producerar förluster i avsaknad av en trend. Prisövergångar Flyttande medelvärden kan också användas för att generera signaler med enkla prisövergångar. En bullish signal genereras när priserna rör sig över det glidande medlet. En bearish signal genereras när priserna går under det glidande medlet. Prisövergångar kan kombineras för att handla inom den större trenden. Det längre glidande mediet sätter tonen för den större trenden och det kortare glidande medlet används för att generera signalerna. Man skulle leta efter hausse priskryssningar endast när priserna redan ligger över det längre glidande genomsnittet. Detta skulle handla i harmoni med den större trenden. Till exempel, om priset ligger över 200-dagars glidande medelvärde, skulle kartläggare bara fokusera på signaler när priset rör sig över 50-dagars glidande medelvärde. Självklart skulle ett drag under 50-dagars glidande medelvärde föregå en sådan signal, men sådana baisseövergångar skulle ignoreras eftersom den större trenden är uppe. Ett baisse kors skulle helt enkelt föreslå en återhämtning inom en större uptrend. Ett kors bakom 50-dagars glidande medelvärde skulle signalera en uppgång i priserna och fortsättningen av den större uptrenden. Nästa diagram visar Emerson Electric (EMR) med 50-dagars EMA och 200-dagars EMA. Aktien rörde sig över och hölls över det 200-dagars glidande genomsnittet i augusti. Det fanns dips under 50-dagars EMA i början av november och igen i början av februari. Priserna flyttade sig snabbt tillbaka över 50-dagars EMA för att ge positiva signaler (gröna pilar) i harmoni med den större uptrenden. MACD (1,50,1) visas i indikatorfönstret för att bekräfta prisövergångar över eller under 50-dagars EMA. Den 1-dagars EMA är lika med slutkursen. MACD (1,50,1) är positiv när stängningen ligger över 50-dagars EMA och negativ när stängningen ligger under 50-dagars EMA. Stöd och motstånd Flyttande medelvärden kan också fungera som stöd i en uptrend och motstånd i en downtrend. En kortsiktig uppgång kan hitta stöd nära det 20-dagars enkla glidande medlet, vilket också används i Bollinger Bands. En långsiktig uppgång kan hitta stöd nära det 200-dagars enkla glidande genomsnittet, vilket är det mest populära långsiktiga glidande medeltalet. Om faktum kan det 200-dagars glidande genomsnittet erbjuda stöd eller motstånd helt enkelt för att den används så mycket. Det är nästan som en självuppfyllande profetia. Diagrammet ovan visar NY Composite med det 200-dagars enkla glidande medlet från mitten av 2004 till slutet av 2008. Den 200-dagarslevererade supporten talar flera gånger under förskottet. När trenden var omvänd med en dubbelstöd, var det 200 dagars glidande medelvärdet som motstånd runt 9500. Förvänta dig inte exakt stöd och motståndsnivåer från glidande medelvärden, särskilt längre glidande medelvärden. Marknader drivs av känslor, vilket gör dem benägna att överskridas. I stället för exakta nivåer kan rörliga medelvärden användas för att identifiera stöd - eller motståndszoner. Slutsatser Fördelarna med att använda glidande medelvärden måste vägas mot nackdelarna. Flyttande medelvärden är trenden som följer eller sänker indikatorer som alltid kommer att vara ett steg bakom. Detta är dock inte nödvändigtvis en dålig sak. Trenden är trots allt din vän och det är bäst att handla i riktning mot trenden. Rörliga medelvärden försäkrar att en näringsidkare är i linje med den nuvarande trenden. Trots att trenden är din vän, spenderar värdepapper mycket tid i handelsområdena, vilket gör rörliga medeltal ineffektiva. En gång i en trend kommer glidande medelvärden att hålla dig i, men också ge sena signaler. Don039t förväntar sig att sälja högst upp och köpa i botten med hjälp av glidande medelvärden. Som med de flesta tekniska analysverktyg bör rörliga medelvärden inte användas på egen hand, men i kombination med andra kompletterande verktyg. Chartister kan använda glidande medelvärden för att definiera den övergripande trenden och sedan använda RSI för att definiera överköpta eller överlämnade nivåer. Lägga till rörliga medelvärden till StockCharts-diagrammen Flyttande medelvärden är tillgängliga som prisöverlagringsfunktion på SharpCharts arbetsbänk. Med hjälp av rullgardinsmenyn Överlag kan användarna välja ett enkelt glidande medelvärde eller ett exponentiellt glidande medelvärde. Den första parametern används för att ställa in antalet tidsperioder. En valfri parameter kan läggas till för att ange vilket prisfält som ska användas i beräkningarna - O för Öppna, H för Hög, L för Låg och C för Stäng. Ett komma används för att separera parametrar. En annan valfri parameter kan läggas till för att flytta de glidande medelvärdena till vänster (tidigare) eller höger (framtid). Ett negativt tal (-10) skulle flytta det glidande medlet till de vänstra 10 perioderna. Ett positivt tal (10) skulle flytta det glidande medlet till de högra 10 perioderna. Flera glidande medelvärden kan överlagras prissättet genom att helt enkelt lägga till en annan överlagringslinje till arbetsbänken. StockCharts medlemmar kan ändra färger och stil för att skilja mellan flera glidande medelvärden. När du har valt en indikator öppnar du Avancerade alternativ genom att klicka på den lilla gröna triangeln. Avancerade alternativ kan också användas för att lägga till ett glidande genomsnittligt överlag till andra tekniska indikatorer som RSI, CCI och Volume. Klicka här för ett live-diagram med flera olika glidande medelvärden. Använda Flyttmedelvärden med StockCharts-skanningar Här följer några exempelskannor som StockCharts-medlemmar kan använda för att söka efter olika rörliga genomsnittssituationer: Bullish Moving Average Cross: Dessa skanningar letar efter lager med ett stigande 150-dagars enkelt glidande medelvärde och ett hausseartat kors på 5 - dag EMA och 35-dagars EMA. Det 150-dagars glidande genomsnittet stiger så länge det handlar över sin nivå för fem dagar sedan. Ett hausseartat kors inträffar när 5-dagars EMA rör sig över 35-dagars EMA på över genomsnittlig volym. Bearish Moving Average Cross: Dessa skanningar letar efter lager med ett fallande 150-dagars enkelt glidande medelvärde och ett baisse kors på 5-dagars EMA och 35-dagars EMA. Det 150-dagars glidande medlet faller så länge det handlar under sin nivå för fem dagar sedan. Ett baisse kors uppstår när 5-dagars EMA rör sig under 35-dagars EMA på över genomsnittlig volym. Ytterligare studie John Murphy039s bok har ett kapitel som ägnas åt glidande medelvärden och deras olika användningsområden. Murphy täcker för och nackdelar med glidande medelvärden. Dessutom visar Murphy hur glidande medelvärden arbetar med Bollinger Bands och kanalbaserade handelssystem. Teknisk analys av de finansiella marknaderna John Murphy Jag vill utveckla beräkningen för aktiekurs glidande medelvärde. Men mycket komplex beräkning har planerats senare. Mitt första steg för att veta hur man beräknar rörligt medelvärde effektivt. Jag behöver veta hur man tar in ingången och returnerar effekten effektivt. anses ingående datum och pris. Consudered output Datum, Pris och Flyttande Genomsnitt. Om jag har 500 poster och jag vill beräkna Rörande medelvärde i 5 dagar, vad är det effektiva sättet istället för att gå fram och tillbaka i arrayet med datum och pris igen, snälla söka vad är det bästa sättet att få inmatning (ArrayList, Table, array etc) och returutgång. Obs! Dagens MA på 5 dagar kommer att vara genomsnittet för senaste 5 dagarna inklusive dagens pris. Igår kommer MA att vara genomsnittlig för de senaste 5 dagarna från igår. Jag vill hålla dagarna flexibla istället för 5 det kan vara 9, 14, 20 etc. Torsdag 10 april 2008 15:21 Om du behöver enkel beräkning utan din ansträngning än du kan använda TA-Lib. Men om du vill att din beräkning ska vara effektivare än TA-Lib, kan du skapa din egen tekniska indikator. TA-Lib är bra, men problemet är att det här biblioteket bara har statiska metoder. Det betyder att när du behöver beräkna SMA-arrayvärden baserat på 500 prisstänger, skickar du hela satsen med staplar och det kommer att returnera en rad SMA-värden. Men om du får ett nytt 501-st värde så ska du skicka igen hela arrayen och TA-Lib kommer igen att beräkna och returnera SMA-arrayen av värden. Föreställ dig nu att du behöver en sådan indikator på realt prismatning, och för varje prisändring behöver du nytt indikatorvärde. Om du har en indikator är inte ett stort problem, men om du har hundratals indikatorer som fungerar kan det vara ett prestandaproblem. Jag var i en sådan situation och börja utveckla realtidsindikatorer som är effektiva och gör ytterligare beräkningar för ny prisfält eller endast för ändrade prisfält. Tyvärr behövde jag aldrig SMA-indikator för mina handelssystem, men jag har sådana för EMA, WMA, AD och andra. En sådan indikator AD publiceras på min blogg och du kan se därifrån vad är den grundläggande strukturen i min realtime-indikatorklass. Jag hoppas att du behöver små förändringar för att genomföra SMA-indikatorn, för att det är en av de enklaste. Logiken är enkel. För att beräkna SMA behöver du bara n sista prisvärden. Så klassen instans kommer att ha samling av priser, som kommer att lagra hålla bara sista n antal priser som SMA definieras (i ditt fall 5). Så när du har en ny stapel tar du bort äldsta och lägger till en ny och skapar beräkning. Torsdag 10 april 2008 16:04 Alla svar Det finns ett bibliotek som heter TA-Lib som gör allt det för dig och det är öppen källkod. Den har ungefär 50 indikatorer som jag tror. Weve använde det i produktionsmiljö och det är mycket effektivt och realiserbart. Du kan använda den i C, Java, C, etc. Om du behöver enkel beräkning utan din ansträngning än du kan använda TA-Lib. Men om du vill att din beräkning ska vara effektivare än TA-Lib, kan du skapa din egen tekniska indikator. TA-Lib är bra, men problemet är att det här biblioteket bara har statiska metoder. Det betyder att när du behöver beräkna SMA-arrayvärden baserat på 500 prisstänger, skickar du hela satsen med staplar och det kommer att returnera en rad SMA-värden. Men om du får ett nytt 501-st värde så ska du skicka igen hela arrayen och TA-Lib kommer igen att beräkna och returnera SMA-arrayen av värden. Föreställ dig nu att du behöver en sådan indikator på realt prismatning, och för varje prisändring behöver du nytt indikatorvärde. Om du har en indikator är inte ett stort problem, men om du har hundratals indikatorer som fungerar kan det vara ett prestandaproblem. Jag var i en sådan situation och börja utveckla realtidsindikatorer som är effektiva och gör ytterligare beräkningar för ny prisfält eller endast för ändrade prisfält. Tyvärr behövde jag aldrig SMA-indikator för mina handelssystem, men jag har sådana för EMA, WMA, AD och andra. En sådan indikator AD publiceras på min blogg och du kan se därifrån vad är den grundläggande strukturen i min realtime-indikatorklass. Jag hoppas att du behöver små förändringar för att genomföra SMA-indikatorn, för att det är en av de enklaste. Logiken är enkel. För att beräkna SMA behöver du bara n sista prisvärden. Så klassen instans kommer att ha samling av priser, som kommer att lagra hålla bara sista n antal priser som SMA definieras (i ditt fall 5). Så när du har en ny stapel tar du bort äldsta och lägger till en ny och skapar beräkning. Torsdag 10 april 2008 16:04 Jag skulle beräkna det glidande genomsnittet i databasen via en lagrad procedur eller i en kub. Har du tittat på Analysis Services, har den möjlighet att beräkna glidande medelvärden. Torsdag 10 april 2008 16:05 Ja. TA-LIB är bra men kanske inte lämplig för mig. När jag lägger till nytt värde eller uppdaterat värde för historik över poster kommer jag att göra beräkningen i en separat funktion endast för det nya citatet och lagra det i databasen. Jag planerar att uppdatera citatet varje timme. Jag behöver göra ca 25-30 tekniska indikatorer för 2200 aktier. Torsdagen den 10 april 2008 17:51 Utförandetiden för ett TA-Lib-samtal på en serie av 10000 element tar cirka 15 millisekunder (på en Intel Core Duo 2.13 Ghz). Detta är medelvärdet av alla funktioner. Bland de snabbaste tar SMA mindre än 2,5 millisekunder. Den långsammaste, HTTRENDMODE, tar 450 millisekunder. Med mindre element är det snabbare. SMA tar cirka 0,22 millisekunder för 1000 ingångselement. Hastighetsförstärkningen är nästan linjär (överhuvudet för att utföra funktionsanropet är försumbar). I samband med din ansökan är TA-Lib mycket osannolikt att vara din flaskhals för snabb prestanda. Också jag rekommenderar inte generellt en sådan quadrat-lösning. Läs nedan för detaljer. Först en korrigering till Boban. s uttalande Alla funktioner i TA-Lib kan också beräkna ett enda slutvärde genom att använda ett minimum av kvoterade nquot-element. Du kan ha en uppsättning av storlek 10000, ha data initialiserad endast för de första 500 elementen, lägg till ett element och ring TA-Lib för att beräkna SMA endast för det nya elementet. TA-Lib kommer att se bakåt inte mer än behövs (om SMA med 5, kommer TA-Lib att beräkna en enda SMA med de senaste 5 värdena). Detta görs möjligt med parametern startIdx och endIdx. Du kan ange ett intervall som ska beräknas eller ett enda värde. I detta scenario skulle du göra startIdx endIdx 500 för att beräkna 501st-elementet. Varför är en sådan kvotas nquot-lösning potentiellt farlig för vissa Oavsett val av Boban. s lösning eller TA-Lib anser att det med ett litet ändligt antal tidigare data inte fungerar bra med de flesta TA-funktioner. Med SMA är det uppenbart att du bara behöver n element för att beräkna ett medelvärde över n element. Det är inte lika enkelt med EMA (och många andra TA-funktioner). Algoet beror ofta på föregående värde för att beräkna det nya värdet. Funktionen är rekursiv. Det betyder att alla tidigare värden påverkar framtida värden. Om du bestämmer dig för att quotlimitquot ditt algo för att bara använda en liten mängd tidigare n-värde, får du inte samma resultat som någon som beräknar över ett stort antal tidigare värden. Lösningen är en kompromiss mellan hastighet och precision. Jag har ofta diskuterat detta i samband med TA-Lib (jag kallar det det citronerade kvartalet i dokumentationen och forumet). För att hålla det enkelt är min allmänna rekommendation om du inte kan göra skillnaden mellan ett algo med ett ändlöst impulsrespons (FIR) från ett algo med ett oändligt impulsrespons (IIR), du kommer att vara säkrare att beräkna över alla data du har tillgängliga. TA-Lib anger i koden vilken av dess funktioner har en instabil period (IIR). Redigerad av mfortier Fredag ​​15 augusti 2008 4:25 Korrekt engelsk mening Fredag ​​den 15 augusti 2008 4:20 AM

No comments:

Post a Comment