Saturday 18 November 2017

Flytting Gjennomsnitt Eksempel I C


Jeg vet at dette er mulig med boost per: Men jeg vil virkelig unngå å bruke boost. Jeg har googled og ikke funnet noen egnede eller lesbare eksempler. I utgangspunktet vil jeg spore det bevegelige gjennomsnittet av en pågående strøm av en strøm av flytende punktnumre ved å bruke de siste 1000 tallene som en dataprøve. Hva er den enkleste måten å oppnå dette på, jeg eksperimenterte med å bruke et sirkulært array, eksponentielt glidende gjennomsnitt og et enklere glidende gjennomsnitt og fant ut at resultatene fra det sirkulære arrayet passer mine behov best. spurte 12. juni kl 12:38 Hvis dine behov er enkle, kan du bare prøve å bruke et eksponentielt glidende gjennomsnitt. Enkelt sagt, du lager en akkumulatorvariabel, og når koden ser på hver prøve, oppdaterer koden akkumulatoren med den nye verdien. Du velger en konstant alfa som er mellom 0 og 1, og beregner dette: Du trenger bare å finne en verdi av alfa hvor effekten av en gitt prøve bare varer i ca 1000 prøver. Hmm, jeg er egentlig ikke sikker på at dette passer for deg, nå som jeg har sagt det her. Problemet er at 1000 er et ganske langt vindu for et eksponentielt glidende gjennomsnitt. Jeg er ikke sikker på at det finnes en alfa som vil spre gjennomsnittet over de siste 1000 tallene, uten understrøm i flytpunktsberegningen. Men hvis du vil ha et mindre gjennomsnitt, som 30 tall eller så, er dette en veldig enkel og rask måte å gjøre det på. svarte 12. juni kl 12:44 1 på ditt innlegg. Det eksponentielle glidende gjennomsnittet kan la alfa variere. Så dette tillater det å bli brukt til å beregne tidsbasen gjennomsnitt (for eksempel bytes per sekund). Hvis tiden siden den siste akkumulatoroppdateringen er mer enn 1 sekund, lar du alfa være 1,0. Ellers kan du la alpha være (usecs siden sist oppdatering1000000). ndash jxh Jun 12 12 at 6:21 I utgangspunktet vil jeg spore det bevegelige gjennomsnittet av en pågående strøm av en strøm av flytende punktnumre ved å bruke de siste 1000 tallene som en datasample. Vær oppmerksom på at under oppdateringer summen som elementer som addrested, unngå kostbare O (N) traversal å beregne summen som trengs for gjennomsnittet - på forespørsel. Totalt er det laget en annen parameter fra T for å støtte f. eks. bruker en lang lang når totalt 1000 lang s, en int for char s, eller en dobbel til total float s. Dette er litt feil i at numsamples kan gå forbi INTMAX - hvis du bryr deg om at du kan bruke en usignert lang lang. eller bruk et ekstra bool data medlem til å registrere når beholderen først fylles mens sykkel nummeprøver rundt arrayet (best deretter omdøpt noe uskyldig som pos). besvart 12. juni 12 klokka 5:19 en antar at kvote-operatør (T-prøve) kvot er faktisk quotvoid operatorltlt (T-prøve) sitat. ndash oPless 8 Jun 14 kl 11:52 oPless ahhh. godt observert. egentlig mente jeg at det skulle være tomt operatør () (T-prøve), men selvfølgelig kunne du bruke hvilken som helst notasjon du likte. Vil fikse, takk. ndash Tony D Jun 8 14 at 14:27Is det mulig å implementere et bevegelige gjennomsnitt i C uten behov for et vindu med prøver Ive fant at jeg kan optimalisere litt, ved å velge et vindu størrelse som er en kraft på to for å tillate litt - skifting i stedet for å dele, men ikke trenger en buffer ville være fint. Er det en måte å uttrykke et nytt glidende gjennomsnittsresultat bare som en funksjon av det gamle resultatet og den nye prøven. Definer et eksempel glidende gjennomsnitt, over et vindu på 4 prøver å være: Legg til ny prøve e: Et glidende gjennomsnitt kan implementeres rekursivt , men for en nøyaktig beregning av det bevegelige gjennomsnittet må du huske den eldste innsatsprøven i summen (dvs. a i eksempelet ditt). For et lengde N bevegelige gjennomsnitt beregner du: hvor yn er utgangssignalet og xn er inngangssignalet. Eq. (1) kan skrives rekursivt som Så du må alltid huske prøven xn-N for å beregne (2). Som påpekt av Conrad Turner, kan du bruke et (uendelig langt) eksponensielt vindu i stedet, som gjør det mulig å beregne utgangen bare fra tidligere utgang og gjeldende inngang: men dette er ikke et standard (uvevet) glidende gjennomsnitt, men eksponentielt vektet glidende gjennomsnitt, hvor prøver tidligere i det siste får en mindre vekt, men (i det minste i teorien) glemmer du aldri noe (vektene blir bare mindre og mindre for prøver langt i det siste). Jeg implementerte et glidende gjennomsnitt uten individuelt elementminne for et GPS-sporingsprogram jeg skrev. Jeg starter med 1 prøve og deler med 1 for å få dagens avg. Jeg legger til en prøve og deler med 2 til den nåværende avg. Dette fortsetter til jeg kommer til lengden av gjennomsnittet. Hver gang etterpå legger jeg til den nye prøven, får gjennomsnittet og fjerner det gjennomsnittet fra totalen. Jeg er ikke en matematiker, men dette virket som en god måte å gjøre det på. Jeg skjønte at det ville slå magen til en ekte matte fyr, men det viser seg at det er en av de aksepterte måtene å gjøre det på. Og det fungerer bra. Bare husk at jo høyere lengden jo tregere følger det du vil følge. Det kan ikke være noe som helst mesteparten av tiden, men når du følger satellitter, hvis du er treg, kan stien være langt fra den faktiske posisjonen, og det vil se dårlig ut. Du kan ha et mellomrom mellom lørdager og de etterfølgende prikkene. Jeg valgte en lengde på 15 oppdatert 6 ganger i minuttet for å få tilstrekkelig utjevning og ikke komme for langt fra den faktiske lette stillingen med glattestrekpunktene. besvart 16 nov 16 kl 23:03 initialiser totalt 0, count0 (hver gang vi ser en ny verdi) En innskriving (scanf), en legger til totalnewValue, ett inkrement (telle), en del av gjennomsnitt (totalt antall) Dette ville være et bevegelige gjennomsnitt over alle innganger For å beregne gjennomsnittet over bare de siste 4 inngangene, ville det kreve 4 inngangsvariabler, kanskje kopiering av hvert inngang til en eldre inputvariable og deretter beregning av det nye glidende gjennomsnittet. Som summen av de 4 inngangsvariablene delt på 4 (høyre skift 2 ville være bra hvis alle inngangene var positive for å gjøre gjennomsnittlig beregning besvart 3. februar klokken 4:06 som faktisk vil beregne gjennomsnittet og IKKE det bevegelige gjennomsnittet. Etter hvert som tellingen blir større, blir virkningen av en ny inngangsprøve forsvunnet liten ndash Hilmar Feb 3 15 kl 13:53 Ditt svar 2017 Stack Exchange, IncMoving Averages - Enkle og eksponentielle Moving Averages - Enkel og eksponentiell introduksjon Flytte gjennomsnitt øker prisdataene for å danne en trend-indikator. De forutsier ikke p ris retning, men heller definere den nåværende retningen med et lag. Flytte gjennomsnittlig forsinkelse fordi de er basert på tidligere priser. Til tross for denne tøysen, beveger bevegelige gjennomsnitt en jevn prishandling og filtrerer ut støyen. De danner også byggesteinene for mange andre tekniske indikatorer og overlegg, for eksempel Bollinger Bands. MACD og McClellan Oscillator. De to mest populære typene av bevegelige gjennomsnittsverdier er Simple Moving Average (SMA) og Exponentential Moving Average (EMA). Disse bevegelige gjennomsnittsverdiene kan brukes til å identifisere retningen til trenden eller definere potensielle støtte - og motstandsnivåer. Here039s et diagram med både en SMA og en EMA på den: Simple Moving Average Calculation Et enkelt bevegelige gjennomsnitt er dannet ved å beregne gjennomsnittsprisen på en sikkerhet over et bestemt antall perioder. De fleste bevegelige gjennomsnitt er basert på sluttkurs. Et 5-dagers enkelt glidende gjennomsnitt er den fem dagers summen av sluttkurs dividert med fem. Som navnet antyder, er et glidende gjennomsnitt et gjennomsnitt som beveger seg. Gamle data blir droppet da nye data kommer til rådighet. Dette får gjennomsnittet til å bevege seg langs tidsskalaen. Nedenfor er et eksempel på et 5-dagers glidende gjennomsnitt som utvikler seg over tre dager. Den første dagen i det bevegelige gjennomsnittet dekker de siste fem dagene. Den andre dagen i glidende gjennomsnitt dråper det første datapunktet (11) og legger til det nye datapunktet (16). Den tredje dagen i det bevegelige gjennomsnittet fortsetter ved å slippe det første datapunktet (12) og legge til det nye datapunktet (17). I eksemplet ovenfor øker prisene gradvis fra 11 til 17 over totalt syv dager. Legg merke til at det bevegelige gjennomsnittet også stiger fra 13 til 15 over en tre-dagers beregningsperiode. Legg også merke til at hver glidende gjennomsnittsverdi ligger like under siste pris. For eksempel er det bevegelige gjennomsnittet for første dag 13 og siste pris 15. Prisene de foregående fire dagene var lavere, og dette medfører at det bevegelige gjennomsnittet går til lag. Eksponentiell Flytende Gjennomsnittlig Beregning Eksponentielle glidende gjennomsnitt reduserer forsinkelsen ved å bruke mer vekt til de siste prisene. Vektingen som brukes på den siste prisen, avhenger av antall perioder i glidende gjennomsnitt. Det er tre trinn for å beregne et eksponentielt glidende gjennomsnitt. Først beregner du det enkle glidende gjennomsnittet. Et eksponentielt glidende gjennomsnitt (EMA) må starte et sted slik at et enkelt glidende gjennomsnitt blir brukt som forrige periode039s EMA i den første beregningen. For det andre, beregne vektingsmultiplikatoren. Tredje, beregne eksponentielt glidende gjennomsnitt. Formelen nedenfor er for en 10-dagers EMA. Et 10-års eksponentielt glidende gjennomsnitt bruker en 18,18 vekting til den siste prisen. En 10-årig EMA kan også kalles en 18.18 EMA. En 20-årig EMA gjelder en vei på 9,52 til den siste prisen (2 (201) .0952). Legg merke til at vektingen for kortere tidsperiode er mer enn vektingen for lengre tidsperiode. Faktisk faller vekten halvparten hver gang den bevegelige gjennomsnittlige perioden fordobles. Hvis du vil ha en bestemt prosentandel for en EMA, kan du bruke denne formelen til å konvertere den til tidsperioder, og deretter angi verdien som EMA039-parameteren: Nedenfor er et regneark eksempel på et 10-dagers enkelt glidende gjennomsnitt og en 10- dag eksponentiell glidende gjennomsnitt for Intel. Enkle bevegelige gjennomsnitt er rett frem og krever liten forklaring. 10-dagers gjennomsnittet beveger seg ganske enkelt som nye priser blir tilgjengelige og gamle priser faller av. Det eksponentielle glidende gjennomsnittet begynner med den enkle glidende gjennomsnittsverdien (22,22) i den første beregningen. Etter den første beregningen tar den normale formelen over. Fordi en EMA begynner med et enkelt bevegelig gjennomsnittsmål, blir dens virkelige verdi ikke realisert før 20 eller så perioder senere. Med andre ord kan verdien på Excel-regnearket avvike fra diagramverdien på grunn av den korte tilbakekallingsperioden. Dette regnearket går bare tilbake 30 perioder, noe som betyr at påvirkning av det enkle glidende gjennomsnittet har hatt 20 perioder å forsvinne. StockCharts går tilbake minst 250 perioder (vanligvis mye lenger) for beregningene, slik at effektene av det enkle glidende gjennomsnittet i den første beregningen er fullstendig forsvunnet. Lagfaktoren Jo lengre det bevegelige gjennomsnittet, desto mer lagret. Et 10-dagers eksponensielt glidende gjennomsnitt vil krame prisene ganske tett og ta kort tid etter at prisene svinger. Kortflytende gjennomsnitt er som fartbåter - skumle og raske å forandre seg. I motsetning til dette, inneholder et 100-dagers glidende gjennomsnitt mange tidligere data som reduserer det. Lengre bevegelige gjennomsnitt er som havskipskip - sløv og sakte å forandre. Det tar en større og lengre prisbevegelse for et 100-dagers glidende gjennomsnitt for å bytte kurs. Tabellen over viser SampP 500 ETF med en 10-dagers EMA tett følgende priser og en 100-dagers SMA-sliping høyere. Selv med januar-februar-tilbakegangen holdt 100-dagers SMA kurset og gikk ikke ned. 50-dagers SMA passer et sted mellom 10 og 100 dagers glidende gjennomsnitt når det gjelder lagfaktoren. Enkel vs eksponentiell flytende gjennomsnitt Selv om det er klare forskjeller mellom enkle glidende gjennomsnitt og eksponentielle glidende gjennomsnitt, er det ikke nødvendigvis bedre enn det andre. Eksponentielle glidende gjennomsnitt har mindre forsinkelse og er derfor mer følsomme overfor siste priser - og de siste prisendringene. Eksponentielle glidende gjennomsnitt vil slå før enkle glidende gjennomsnitt. Enkle bevegelige gjennomsnitt, derimot, representerer et sant gjennomsnitt av priser for hele tidsperioden. Som sådan kan enkle bevegelige gjennomsnitt være bedre egnet til å identifisere støtte - eller motstandsnivåer. Flytte gjennomsnittlig preferanse avhenger av mål, analytisk stil og tidshorisont. Chartister bør eksperimentere med begge typer bevegelige gjennomsnitt samt forskjellige tidsrammer for å finne den beste passformen. Tabellen nedenfor viser IBM med 50-dagers SMA i rødt og 50-dagers EMA i grønt. Begge toppet i slutten av januar, men nedgangen i EMA var skarpere enn nedgangen i SMA. EMA dukket opp i midten av februar, men SMA fortsatte å bli lavere til slutten av mars. Legg merke til at SMA dukket opp over en måned etter EMA. Lengder og tidsrammer Lengden på det bevegelige gjennomsnittet avhenger av de analytiske målene. Kortvarige gjennomsnitt (5-20 perioder) passer best for kortsiktige trender og handel. Chartister interessert i langsiktige trender ville velge lengre bevegelige gjennomsnitt som kan utvide 20-60 perioder. Langsiktig investorer vil foretrekke å flytte gjennomsnitt med 100 eller flere perioder. Noen bevegelige gjennomsnittlige lengder er mer populære enn andre. 200-dagers glidende gjennomsnitt er kanskje den mest populære. På grunn av lengden er dette klart et langsiktig glidende gjennomsnitt. Deretter er det 50-dagers glidende gjennomsnittet ganske populært for den langsiktige trenden. Mange diagrammer bruker de 50-dagers og 200-dagers glidende gjennomsnittene sammen. Kortsiktig, et 10-dagers glidende gjennomsnitt var ganske populært tidligere, fordi det var lett å beregne. Man lagde bare tallene og flyttet desimaltegnet. Trend Identification De samme signalene kan genereres ved hjelp av enkle eller eksponentielle glidende gjennomsnitt. Som nevnt ovenfor er preferansen avhengig av hver enkelt person. Disse eksemplene nedenfor vil bruke både enkle og eksponentielle glidende gjennomsnitt. Begrepet glidende gjennomsnitt gjelder både enkle og eksponentielle glidende gjennomsnitt. Retningen av det bevegelige gjennomsnittet gir viktig informasjon om priser. Et stigende glidende gjennomsnitt viser at prisene generelt øker. Et fallende glidende gjennomsnitt indikerer at prisene i gjennomsnitt faller. Et stigende langsiktig glidende gjennomsnitt reflekterer en langsiktig opptrend. Et fallende langsiktig glidende gjennomsnitt reflekterer en langsiktig nedtrend. Tabellen over viser 3M (MMM) med et 150-dagers eksponensielt glidende gjennomsnitt. Dette eksempelet viser hvor godt bevegelige gjennomsnittsverdier fungerer når trenden er sterk. Den 150-dagers EMA avslått i november 2007 og igjen i januar 2008. Legg merke til at det tok 15 tilbakegang å reversere retningen av dette bevegelige gjennomsnittet. Disse forsinkende indikatorene identifiserer trendendringer som de oppstår (i beste fall) eller etter at de oppstår (i verste fall). MMM fortsatte ned til mars 2009 og økte deretter 40-50. Legg merke til at 150-dagers EMA ikke viste seg før etter denne bølgen. Når det gjorde det, fortsatte MMM høyere de neste 12 månedene. Flytte gjennomsnitt arbeider briljant i sterke trender. Double Crossovers To bevegelige gjennomsnitt kan brukes sammen for å generere crossover-signaler. I teknisk analyse av finansmarkedene. John Murphy kaller dette den dobbelte crossover-metoden. Dobbeltoverganger innebærer et relativt kort glidende gjennomsnitt og et relativt langt bevegelige gjennomsnitt. Som med alle bevegelige gjennomsnitt, definerer den generelle lengden på det bevegelige gjennomsnittet tidsrammen for systemet. Et system som bruker en 5-dagers EMA og 35-dagers EMA, vil bli ansett som kortsiktige. Et system som bruker en 50-dagers SMA og 200-dagers SMA, vil bli vurdert på mellomlang sikt, kanskje til og med på lang sikt. Et kystovergang skjer når kortere bevegelige gjennomsnittsværdier krysser over lengre bevegelige gjennomsnitt. Dette er også kjent som et gyldent kors. Et bearish crossover oppstår når kortere bevegelige gjennomsnitt krysser under lengre bevegelige gjennomsnitt. Dette er kjent som et dødt kryss. Flytte gjennomsnittsoverganger gir relativt sent signaler. Tross alt har systemet to forsinkende indikatorer. Jo lengre bevegelige gjennomsnittsperioder, desto større er lagringen i signalene. Disse signalene fungerer bra når en god trend tar tak. Imidlertid vil et glidende gjennombruddssystem produsere mange whipsaws i fravær av en sterk trend. Det er også en trippel crossover metode som involverer tre bevegelige gjennomsnitt. Igjen genereres et signal når det korteste bevegelige gjennomsnittet krysser de to lengre bevegelige gjennomsnittene. Et enkelt tredelt crossover-system kan innebære 5-dagers, 10-dagers og 20-dagers glidende gjennomsnitt. Tabellen over viser Home Depot (HD) med en 10-dagers EMA (grønn prikket linje) og 50-dagers EMA (rød linje). Den svarte linjen er den daglige lukkingen. Å bruke en glidende gjennomsnittsovergang ville ha resultert i tre whipsaws før du fikk en god handel. Den 10-dagers EMA brøt under 50-dagers EMA i slutten av oktober (1), men dette var ikke lenge da 10-dagene flyttet tilbake over midten av november (2). Dette krysset varet lengre, men neste bearish crossover i januar (3) skjedde nær prisnivået i slutten av november, noe som resulterte i en annen whipsaw. Dette bearish krysset varede ikke lenge da 10-dagers EMA flyttet tilbake over 50-dagen noen dager senere (4). Etter tre dårlige signaler forløste det fjerde signalet et sterkt trekk når aksjene økte over 20. Det er to takeaways her. For det første er crossovers utsatt for whipsaw. Et pris - eller tidsfilter kan brukes for å forhindre whipsaws. Traders kan kreve crossover til siste 3 dager før du handler eller krever at 10-dagers EMA skal flytte over 50-dagers EMA med en viss mengde før du handler. For det andre kan MACD brukes til å identifisere og kvantifisere disse kryssene. MACD (10,50,1) viser en linje som representerer forskjellen mellom de to eksponentielle glidende gjennomsnittene. MACD blir positiv under et gyldent kors og negativt under et dødt kryss. Prosentpris Oscillatoren (PPO) kan brukes på samme måte som prosentandeler. Vær oppmerksom på at MACD og PPO er basert på eksponentielle glidende gjennomsnitt og stemmer ikke overens med enkle glidende gjennomsnitt. Dette diagrammet viser Oracle (ORCL) med 50-dagers EMA, 200-dagers EMA og MACD (50,200,1). Det var fire bevegelige gjennomsnittsoverskridelser over en 12-årig periode. De første tre resulterte i whipsaws eller dårlige handler. En vedvarende trend begynte med fjerde crossover som ORCL avansert til midten av 20-tallet. Nok en gang jobber glidende gjennomsnittsoverganger godt når trenden er sterk, men produserer tap i fravær av en trend. Prisoverskridelser Flytte gjennomsnitt kan også brukes til å generere signaler med enkle prisoverskridelser. Et bullish signal genereres når prisene går over det bevegelige gjennomsnittet. Et bearish signal genereres når prisene flytter under det bevegelige gjennomsnittet. Prisoverskridelser kan kombineres for å handle innenfor den større trenden. Det lengre bevegelige gjennomsnittet setter tonen for den større trenden, og det kortere glidende gjennomsnittet brukes til å generere signalene. Man ville se etter bullish prisoverganger bare når prisene allerede er over det lengre bevegelige gjennomsnittet. Dette ville være handel i harmoni med den større trenden. For eksempel, hvis prisen ligger over 200-dagers glidende gjennomsnitt, vil kartleggere bare fokusere på signaler når prisen beveger seg over 50-dagers glidende gjennomsnitt. Åpenbart vil et trekk under 50-dagers glidende gjennomsnitt forutse et slikt signal, men slike bearish kryss vil bli ignorert fordi den større trenden er oppe. Et bearish kryss ville bare foreslå en tilbaketrekking i en større opptrinn. Et kryss tilbake over 50-dagers glidende gjennomsnitt ville signalere en oppgang i prisene og fortsettelsen av den store opptrenden. Neste diagram viser Emerson Electric (EMR) med 50-dagers EMA og 200-dagers EMA. Aksjen flyttet over og holdt over 200-dagers glidende gjennomsnitt i august. Det var dips under 50-dagers EMA tidlig i november og igjen tidlig i februar. Prisene flyttet raskt over 50-dagers EMA for å gi bullish signaler (grønne piler) i harmoni med større opptrinn. MACD (1,50,1) vises i indikatorvinduet for å bekrefte priskryss over eller under 50-dagers EMA. Den 1-dagers EMA er lik sluttkurs. MACD (1,50,1) er positiv når lukkingen er over 50-dagers EMA og negativ når lukkingen er under 50-dagers EMA. Støtte og motstand Flytte gjennomsnitt kan også fungere som støtte i en uptrend og motstand i en downtrend. En kortsiktig opptrend kan finne støtte nær 20-dagers enkeltflytende gjennomsnitt, som også brukes i Bollinger Bands. Et langsiktig opptrend kan finne støtte nær det 200-dagers enkle glidende gjennomsnittet, som er det mest populære langsiktige glidende gjennomsnittet. Faktisk kan 200-dagers glidende gjennomsnitt gi støtte eller motstand bare fordi den er så mye brukt. Det er nesten som en selvoppfyllende profeti. Figuren over viser NY Composite med det 200-dagers enkle glidende gjennomsnittet fra midten av 2004 til slutten av 2008. 200-dagene ga støtte mange ganger under forskudd. Når trenden reverserte med en dobbel toppstøt, virket det 200-dagers glidende gjennomsnittet som motstand rundt 9500. Forvent ikke eksakte støtte - og motstandsnivåer fra bevegelige gjennomsnitt, spesielt lengre bevegelige gjennomsnitt. Markeder er drevet av følelser, noe som gjør dem utsatt for overskudd. I stedet for eksakte nivåer kan bevegelige gjennomsnittsverdier brukes til å identifisere støtte - eller motstandssoner. Konklusjoner Fordelene ved å bruke bevegelige gjennomsnitt må veies mot ulempene. Flytte gjennomsnitt er trenden som følger eller forsinker, indikatorer som alltid vil være et skritt bakover. Dette er ikke nødvendigvis en dårlig ting skjønt. Tross alt er trenden din venn, og det er best å handle i retning av trenden. Flytte gjennomsnitt sikrer at en næringsdrivende er i tråd med den nåværende trenden. Selv om trenden er din venn, legger verdipapirer mye tid i handelsområder, noe som gjør flytteverdier ineffektive. En gang i en trend vil glidende gjennomsnitt holde deg i, men også gi sent signal. Don039t forventer å selge på toppen og kjøpe på bunnen ved hjelp av bevegelige gjennomsnitt. Som med de fleste tekniske analyseverktøy, bør bevegelige gjennomsnitt ikke brukes alene, men i forbindelse med andre komplementære verktøy. Chartister kan bruke bevegelige gjennomsnitt for å definere den overordnede trenden og deretter bruke RSI til å definere overkjøpte eller oversolgte nivåer. Legge til bevegelige gjennomsnitt til StockCharts-diagrammer Flytte gjennomsnitt er tilgjengelig som en prisoverleggsfunksjon på SharpCharts arbeidsbenk. Med rullegardinmenyen Overlays kan brukerne velge enten et enkelt glidende gjennomsnitt eller et eksponentielt glidende gjennomsnitt. Den første parameteren brukes til å angi antall tidsperioder. En valgfri parameter kan legges til for å spesifisere hvilket prisfelt som skal brukes i beregningene - O for Åpen, H for Høy, L for Lav og C for Lukk. Et komma brukes til å skille mellom parametere. En annen valgfri parameter kan legges til for å skifte de bevegelige gjennomsnittene til venstre (tidligere) eller høyre (fremtidige). Et negativt tall (-10) ville skifte det bevegelige gjennomsnittet til venstre 10 perioder. Et positivt tall (10) ville skifte det bevegelige gjennomsnittet til høyre 10 perioder. Flere bevegelige gjennomsnitt kan overlappes prisplottet ved ganske enkelt å legge til en annen overleggslinje til arbeidsbenken. StockCharts medlemmer kan endre farger og stil for å skille mellom flere bevegelige gjennomsnitt. Når du har valgt en indikator, åpner du Avanserte alternativer ved å klikke på den lille grønne trekant. Avanserte alternativer kan også brukes til å legge til et glidende gjennomsnittlig overlegg til andre tekniske indikatorer som RSI, CCI og Volume. Klikk her for et live diagram med flere forskjellige bevegelige gjennomsnitt. Bruke Flytte Gjennomsnitt med StockCharts-skanninger Her er noen prøve-skanninger som StockCharts-medlemmer kan bruke til å skanne etter ulike bevegelige gjennomsnittlige situasjoner: Bullish Moving Average Cross: Denne skanningen ser etter aksjer med et stigende 150-dagers enkelt glidende gjennomsnitt og et bullish kryss av 5 - dag EMA og 35-dagers EMA. Det 150-dagers glidende gjennomsnittet stiger så lenge det handler over nivået for fem dager siden. Et bullish kryss oppstår når 5-dagers EMA beveger seg over 35-dagers EMA på over gjennomsnittet. Bearish Moving Average Cross: Denne skanningen ser etter aksjer med et fallende 150-dagers enkelt glidende gjennomsnitt og et bearish kryss av 5-dagers EMA og 35-dagers EMA. Det 150-dagers glidende gjennomsnittet faller så lenge det handler under nivået for fem dager siden. Et bearish kryss oppstår når 5-dagers EMA beveger seg under 35-dagers EMA på over gjennomsnittet. Videre studie John Murphy039s bok har et kapittel viet til bevegelige gjennomsnitt og deres ulike bruksområder. Murphy dekker fordeler og ulemper ved å flytte gjennomsnitt. I tillegg viser Murphy hvordan bevegelige gjennomsnitt arbeider med Bollinger Bands og kanalbaserte handelssystemer. Teknisk analyse av de finansielle markedene John Murphy Jeg vil utvikle beregning for aksjekurs glidende gjennomsnitt. Men mye kompleks beregning er planlagt senere. Mitt første skritt å vite hvordan å beregne Flytende Gjennomsnitt effektivt. Jeg trenger å vite hvordan du tar innspillingen og returnerer effekten effektivt. betraktet innsats Dato og pris. konsumert produksjon Dato, pris og flytende gjennomsnitt. Hvis jeg har 500 poster, og jeg vil beregne Flytte gjennomsnitt i 5 dager, hva er den effektive måten i stedet for å gå frem og tilbake i en rekke Dato og pris igjen, vennligst sugest hva er den beste måten å motta innskriving (ArrayList, Table, array etc) og returnere utgang. Merk: Dagens MA på 5 dager vil være gjennomsnittlig for siste 5 dager, inkludert dagens pris. I går vil MA være gjennomsnittlig de siste 5 dagene fra i går. Jeg vil holde dagene til å være fleksible i stedet for 5 det kan være 9, 14, 20 etc. Torsdag 10. april 2008 kl. 21:21 Hvis du trenger enkel beregning uten innsats enn du kan bruke TA-Lib. Men hvis du vil at beregningen din skal være mer effektiv enn TA-Lib, kan du lage din egen tekniske indikator. TA-Lib er flott, men problemet er at dette biblioteket bare har statiske metoder. Det betyr at når du må beregne SMA-arrayverdier basert på 500 prisbarer, sender du hele spekteret av barer, og det vil returnere en rekke SMA-verdier. Men hvis du mottar ny 501-st verdi, så skal du sende igjen hele arrayet, og TA-Lib vil igjen beregne og returnere SMA-utvalg av verdier. Forestill deg at du trenger en slik indikator på riktig pris, og for hver prisendring trenger du ny indikatorverdi. Hvis du har en indikator, er det ikke et stort problem, men hvis du har hundrevis av indikatorer som fungerer, kan det være et ytelsesproblem. Jeg var i en slik situasjon og begynte å utvikle realtidsindikatorer som er effektive og gjør ytterligere beregninger for ny prislinje eller bare for endret prislinje. Uheldigvis trengte jeg aldri SMA-indikator for mine handelssystemer, men jeg har slike for EMA, WMA, AD og andre. En slik indikator AD er publisert på bloggen min, og du kan se derfra hva er grunnstrukturen til min realtime-indikatorklasse. Jeg håper du trenger små endringer for å implementere SMA-indikatoren, fordi det er en av de enkleste. Logikken er enkel. Å beregne SMA alt du trenger er n siste prisverdier. Så klassetilfelle vil ha samling av priser, som vil lagre, hold bare n siste antall priser ettersom SMA er definert (i ditt tilfelle 5). Så når du har en ny linje, fjerner du den eldste og legger til en ny og lager beregning. Torsdag 10. april 2008 16:04 Alle svar Det er et bibliotek kalt TA-Lib som gjør alt det for deg og det er åpen kildekode. Den har ca 50 indikatorer jeg tror. Weve brukte det i produksjonsmiljø, og det er veldig effektivt og realistisk. Du kan bruke den i C, Java, C, etc. Hvis du trenger enkel beregning uten innsats enn du kan bruke TA-Lib. Men hvis du vil at beregningen din skal være mer effektiv enn TA-Lib, kan du lage din egen tekniske indikator. TA-Lib er flott, men problemet er at dette biblioteket bare har statiske metoder. Det betyr at når du må beregne SMA-arrayverdier basert på 500 prisbarer, sender du hele spekteret av barer, og det vil returnere en rekke SMA-verdier. Men hvis du mottar ny 501-st verdi, så skal du sende igjen hele arrayet, og TA-Lib vil igjen beregne og returnere SMA-utvalg av verdier. Forestill deg at du trenger en slik indikator på riktig pris, og for hver prisendring trenger du ny indikatorverdi. Hvis du har en indikator, er det ikke et stort problem, men hvis du har hundrevis av indikatorer som fungerer, kan det være et ytelsesproblem. Jeg var i en slik situasjon og begynte å utvikle realtidsindikatorer som er effektive og gjør ytterligere beregninger for ny prislinje eller bare for endret prislinje. Uheldigvis trengte jeg aldri SMA-indikator for mine handelssystemer, men jeg har slike for EMA, WMA, AD og andre. En slik indikator AD er publisert på bloggen min, og du kan se derfra hva er grunnstrukturen til min realtime-indikatorklasse. Jeg håper du trenger små endringer for å implementere SMA-indikatoren, fordi det er en av de enkleste. Logikken er enkel. Å beregne SMA alt du trenger er n siste prisverdier. Så klassetilfelle vil ha samling av priser, som vil lagre, hold bare n siste antall priser ettersom SMA er definert (i ditt tilfelle 5). Så når du har en ny linje, fjerner du den eldste og legger til en ny og lager beregning. Torsdag 10. april 2008 16:04 Jeg ville beregne det bevegelige gjennomsnittet i databasen via en lagret prosedyre eller i en terning. Har du sett på Analysis Services, har den muligheten til å beregne bevegelige gjennomsnitt. Torsdag 10. april 2008 16:05 Ja. TA-LIB er bra, men kan ikke være egnet for meg. Når jeg legger til ny verdi eller oppdatert verdi for historien over poster, vil jeg gjøre beregningen i en egen funksjon bare for det nye sitatet og lagre det i database. Jeg planlegger å oppdatere sitatet hver time. Jeg trenger å gjøre rundt 25 til 30 tekniske indikatorer for 2200 aksjer. Torsdag 10. april 2008 17:51 Utførelsestid for et TA-Lib-anrop på en rekkevidde på 10000 elementer tar ca 15 millisekunder (på en Intel Core Duo 2.13 Ghz). Dette er gjennomsnittet av alle funksjonene. Blant de raskeste tar SMA mindre enn 2,5 millisekunder. Den tregeste, HTTRENDMODE, tar 450 millisekunder. Med mindre elementer er det raskere. SMA tar ca 0,22 millisekunder for 1000 inngangselementer. Hastighetsøkningen er nesten lineær (overhead for å utføre funksjonssamtalen er ubetydelig). I sammenheng med søknaden din er TA-Lib svært lite sannsynlig å være flaskehalsen for hastighetsytelse. Også jeg anbefaler vanligvis ikke slik quadrat-løsning. Les nedenfor for detaljer. Først en korreksjon til Boban. s setning Alle funksjoner i TA-Lib kan også beregne en enkelt siste verdi ved å bruke et minimum av quotlast nquot-elementer. Du kan ha en rekkevidde på størrelse 10000, har data initialiseres bare for de første 500 elementene, legg til ett element og ring TA-Lib for å beregne SMA bare for det nye elementet. TA-Lib vil se bakover ikke mer enn nødvendig (hvis SMA er 5, vil TA-Lib beregne en enkelt SMA ved hjelp av de siste 5 verdiene). Dette gjøres mulig med parameteren startIdx og endIdx. Du kan angi et område som skal beregnes, eller en enkelt verdi. I dette scenariet vil du gjøre startIdx endIdx 500 til å beregne 501ste elementet. Hvorfor er slik quotlast nquot-løsning potensielt farlig for noen Uansett å velge Boban. s løsning eller TA-Lib mener det å bruke et lite, begrenset antall tidligere data ikke fungerer bra med de fleste TA-funksjoner. Med SMA er det åpenbart at du bare trenger n element for å beregne et gjennomsnitt over n element. Det er ikke så enkelt med EMA (og mange andre TA-funksjoner). Algoet avhenger ofte av forrige verdi for å beregne den nye verdien. Funksjonen er rekursiv. Det betyr at alle tidligere verdier har innflytelse på fremtidige verdier. Hvis du bestemmer deg for å quotlimitquot ditt algo for å bruke bare en liten mengde fortid n verdi, vil du ikke få det samme resultatet som noen som beregner over et stort antall tidligere verdier. Løsningen er et kompromiss mellom hastighet og presisjon. Jeg har ofte diskutert dette i sammenheng med TA-Lib (jeg kaller det den kvoterte perioden i dokumentasjonen og forumet). For å holde det enkelt, er min generelle anbefaling at du ikke kan gjøre forskjellen mellom et algo med en endelig impulsrespons (FIR) fra et algo med et uendelig impulsrespons (IIR). Du vil være tryggere å beregne over alle dataene du har tilgjengelig. TA-Lib spesifiserer i koden hvilken av dens funksjoner har en ustabil periode (IIR). Redigert av mfortier Fredag ​​15. august 2008 kl. 16:25 Korrekt engelsk setning fredag ​​15. august 2008 kl.

No comments:

Post a Comment