Sunday, 12 November 2017

Moving Average Embedded


Meta Trader 4 - Voorbeelde Secrets van die Meta Trader 4 kliënt Terminal: Aanwysers 'n Mens kan nie die ontleding van finansiële markte dink sonder tegniese aanwysers op die oomblik. Jy kan jou eie aanwysers te skep of gebruik die ingeboude kinders. Die ingeboude aanwysers werk vinniger as die persoonlike kinders en het 'n aantal funksies wat nie in persoonlike aanwysers geïmplementeer kan word. Byvoorbeeld, daar is aanduidings dat 'n grafiek beide in die hoof venster en in 'n subwindow kan aangeheg word. Naas, kan aanwyser bereken nie op prys en / of volume waardes, maar op die waardes van 'n ander aanwyser. Slim gebruik van die ingeboude aanwysers sal help om ver te gaan sonder duik in die programmering van die eie kinders. Daar is dertig ingesluit aanwysers in die Meta Trader 4 kliënt Terminal. Voorwaardelik, kan al aanwysers word in vier groepe verdeel: ossillators tendens aanwysers Bill Williams aanwysers volumes. Tendens aanwysers help om die prys beweging toe te ken in een rigting en op te spoor, synchroniously of vertraag, die oomblikke wanneer tendense draai. Ossillators toelaat om sulke draaie synchroniously of vooruit te spoor. Bill Williams aanwysers het eienskappe van beide ossillators en tendens aanwysers. Volumes analiseer nie die prysbewegings soos hulle is, maar die bedrag van bosluise wat inkomste gedurende die kroeg het. Opsomming Table of Embedded Indicators Eienskappe Gebruik die skakels in die tabel, kan jy die kode bron van 'n persoonlike aanwyser wat correponds met die ingeboude een besigtig. Table veld beskrywings o ossillator t tendens aanwyser b Bill Williams aanwyser v volume. s aanwyser is aangeheg in 'n subwindow by verstek m aanwyser in die hoof venster by verstek is aangeheg. Assosiasie met s / m. Of die aanwyser kan of nie verband hou met die aanwyser reeds in 'n subwindow (s) of in die hoof venster (m) aangeheg. Bykomende lyne. Bykomende lyne, Vorige Indicators Data en eerste aanduidings Data, verskyn in die Pas aan akker in die venster aanwysers eienskappe wanneer die aanwyser is gesleep. Vorige Indicators Data - data van die jongste aanwyser verbonde aan die hoof venster of 'n subwindow. As daar is geen aangeheg aanwysers, die vorige Indicators Data is die term data. En die aanwyser moet aangeheg word gebou op grond van die Beslote prys van die grafiek. Eerste Indicators Data - data van die aanwyser wat aangeheg as die eerste na die hoof venster of 'n subwindow. As daar is geen aangeheg aanwysers, die eerste aanduidings Data is die term data. En die aanwyser moet aangeheg word gebou op grond van die Beslote prys van die grafiek. Tydperk / verskuiwing. Beskikbaarheid van velde met ooreenstemmende name in die blad Parameters van die venster aanwysers eienskappe. Van toepassing op. Beskikbaarheid van die Pas aan akker voeg in op die blad Parameters van die venster aanwysers eienskappe. Metode. Beskikbaarheid van die veld met dieselfde naam in die blad Parameters (keuse van bewegende gemiddelde boumetode). Vlakke. Beskikbaarheid van die blad vlakke. Hoe om Indicators Heg 'n Grafiek 'n aanwyser kan in ses maniere om 'n grafiek aangeheg: gebruik van die hoof spyskaart opdrag: dubbel kliek op die naam aanwyser in die venster Navigator kies die Navigator venster konteks kieslys opdrag: die gebruik van die voorafbepaalde warm sleutels te sleep die wyser met die muis in die hoof venster of in die ander aanwysers subwindow (drag-and-drop).Die eerste vyf maniere nie fundamenteel verskil van mekaar. Kom ons noem hulle standaard vorme van aanwyser heg. Op hierdie, sal die aanwyser óf in die grafiek of in 'n aparte subwindow getrek, soos deur default. The vyfde metode, die sleep is meer interessant. Sommige aanwysers, toe gesleep in die grafiek, kan bereken word uit waardes van 'n ander aanwyser reeds verbonde aan die grafiek. Daar is sewe spesiale aanwysers: Bollinger Bands Commodity Channel Index Koeverte Momentum bewegende gemiddelde relatiewe sterkte-indeks standaardafwyking. Embedded aanwysers kan gekombineer word met ander aanwysers of bereken op waardes van ander aanwysers. Op die kombinasie, die aanwyser moet aangeheg word net vertoon oor die aanwyser reeds aangeheg, maar het sy eie skaal en grense. In hierdie geval, die waardes van die aanwyser moet aangeheg word bereken vanaf die grafiek prys waardes. 'N geïntegreerde aanduiding dat in 'n subwindow vertoon by verstek kan gekombineer word met die aanwyser reeds aangeheg in die subwindow. An ingesluit aanduiding dat in die hoof venster vertoon by verstek kan gekombineer word met die aanwyser reeds in die hoof venster aangeheg. Die meeste ingebed aanwysers kan slegs aangeheg as in die verstek. Diegene sewe spesiale aanwysers kan beide aan die hoof venster en 'n subwindow aangeheg word. Hoe om te heg aan die hoof venster Indicators wat in 'n Subwindow oopgemaak deur verstek Indicators hieronder in 'n subwindow geopen by verstek: Bedryfs Channel Index Momentum relatiewe sterkte-indeks standaardafwyking Kom ons eienskappe van hierdie aanwysers te bestudeer deur die voorbeeld van Commodity Channel Index. Soos dit reeds hierbo genoem is, sal hierdie aanwyser in 'n aparte venster oopgemaak word by verstek: Om CCI heg aan die hoof venster, 'n mens moet dit te sleep na die grafiek. Die aanwysers eiendomme sal kyk as gegee onder: Eintlik is die grafiek is terselfdertyd die aanwyser. So, as daar geen ander aanwysers is beskikbaar, eerste aanduidings Data en Vorige Indicators Data - is data van die grafiek self, en die tekening metode op die vorige aanwysers waardes nie verskil van dié op die eerste aanwysers waardes op enige manier. So, om aanwyser heg in die grafiek venster, 'n mens moet sleep-en-drop dit na die grafiek en kies eerste aanduidings Data of Vorige Indicators Data. Die verkry gevolg: Aanwysers Momentum, relatiewe sterkte-indeks en standaardafwyking is verbonde aan die grafiek venster op dieselfde manier. Hoe om te heg aan 'n Subwindow Aanwysers wat in die hoof venster oopgemaak deur verstek Aanduiders van hierdie groep word hieronder gelys: Kom ons kyk na bewegende gemiddelde as 'n voorbeeld. By verstek, hierdie aanwyser lyk soos volg: Beslaglegging op die MA om 'n aparte subwindow, is dit nodig om 'n paar meer aksies te maak as vir die vorige voorbeeld. In die eerste plek, moet 'n aparte venster geskep word. Vir hierdie, laat ons heg aan die grafiek 'n aanduiding dat oopgemaak kan word in 'n subwindow. Byvoorbeeld, MACD. Nou kan ons die bewegende gemiddelde sleep in die venster MACD en kies Vorige Indicators Data of Eerste Indicators Data in die venster eienskappe (want daar is net een aanwyser in die subwindow, die MACD, dit sal beide die eerste en die laaste aanwyser wees) . Wanneer 'n aantal aanwysers is aan een subwindow, dit is altyd moontlik om op te spoor, wat hulle op wat gebou is. Seleksie van Vorige Indicators data vertoon word as - gt, dié van Eerste Indicators Data - as GT. Ons het MACD verkry met bewegende gemiddelde bo-op dit. Ons kan stop by hierdie, maar ons kan ook so dat slegs bewegende gemiddelde sal in die venster bly. Om dit te doen, is dit nodig om die MACD verwyder. Maar, as ons net verwyder dit, die bewegende gemiddelde, as aanwyser gebou op die MACD waardes, sal verwyder word, sowel. So, laat ons los bewegende gemiddelde van MACD eerste. Kom ons bereken op, byvoorbeeld, in die buurt waardes. Nou, die MACD verwyder kan word, sal die bewegende gemiddelde in die aparte venster bly. So, 'n kombinasie eienskappe van verskillende aanwysers, kan 'n mens 'n ingewikkelde stelsel te bou. 'N paar algemene eienskappe van Indicators Heg As die aanwyser moet aangeheg word bereken op waardes van die aanduiding dat 'n hele paar lyne (meer as een) het, sal dit bereken word op waardes van nul lyn of die hooflyn. In die kode word hierdie lyn opgespoor met behulp van waardes van die eerste parameter van die SetIndexStyle funksie. So, byvoorbeeld, as die aanwyser moet aangeheg word bereken op die MACD, die histogram waardes sal geneem word as die waardes vir berekeninge aangesien dit bepaal in die MACD kode: SetIndexStyle (0, DRAWHISTOGRAM). Baie aanwysers het, by verstek, vaste maksimum en minimum, byvoorbeeld, RSI het. In hierdie geval, nadat dit aan 'n ander aanwyser is aangeheg, byvoorbeeld, MACD, hul grense kan misalign, maw RSI sal net nie ooreen met die venster MACD. Om dit reg te stel, is dit nodig om die velde van maksimum en minimum aktiveer, en die aanwysers skale sal onafhanklik wees op mekaar. Wanneer 'n aantal aanwysers is aan een subwindow, dit is altyd moontlik om op te spoor, wat hulle op wat gebou is. Seleksie van Vorige Indicators data vertoon word as - gt, dié van Eerste Indicators Data - as gt. In die voorbeeld hierbo, die aanwysers is gebou op die volgende wyse: aangeheg MACD bereken MA op die eerste aanduidings Data, dit wil sê op waardes van die MACD bereken RSI op die eerste aanduidings Data, dws weer op waardes van die MACD gekombineer CCI met MACD bereken Momentum op die vorige Indicators Data, dit wil sê op waardes van die CCI. Embedded aanwysers kan gesuperponeer op nie net ander ingebed aanwysers, maar ook op persoonlike aanwysers. Die bevestiging van beginsels is dieselfde. Byvoorbeeld: Hoe om Vlakke Bou Sommige aanwysers toelaat bou van vlakke. Vir MA, kan 'n mens 'n kanaal te bou met behulp van vlakke. Om dit te doen, is dit nodig om te gaan na die blad vlakke en 'n paar waardes met behulp van die knoppie Voeg. Nou, as ons die MA lyn gekleurde dieselfde as die agtergrond, sal ons kanaal gebou op die bewegende gemiddelde te verkry. Visualisering Tab Op die ou end, laat ons kyk na nog 'n eiendom van aanwysers in die Meta Trader 4 kliënt Terminal. Alle aanwysers, beide ingesluit en persoonlike kinders, het hierdie eiendom. Daarbenewens kan dit van toepassing is op voorwerpe, asook, dit wil sê om grafiese en tegniese analitiese gereedskap. Daar is geen geheim dat data geanaliseer op verskillende tydsraamwerke van dieselfde simbool kan verskil. Verskillende tegniese gereedskap kan gebruik word, insluitende verskillende aanwysers met verskillende instellings. Die volgende kan gedoen word ten einde nie weer aan te pas aanwysers weer en weer wanneer jy tussen tydsraamwerke: Spesifiseer in die aanwyser eienskappe venster wat tydraamwerk, waartoe die gekose aanwyser sal geanker. En so aan vir alle aanwysers en op al tydsraamwerke. In die toekoms, wanneer skakel tussen hulle, sal ons in staat wees om verskillende aanwysers sien op verskillende tydsraamwerke. Dit bly net om die sjabloon te gebruik in die toekoms vir ander simbole te red. Voorbeeld. Op tydsraamwerke van H1 en M15, dieselfde aanwysers, MACD en MA, is aangeheg, maar met verskillende tydperke. Op H1: MACD met waardes van 12, 26, 9 MA met die tydperk van 7 word bereken op die MACD MA met die tydperk van 5 word bereken op die MA (7). Op M15: MACD met waardes van 24, 52, 18 MA met die tydperk van 28 word bereken op die MACD MA met die tydperk van 20 word bereken op die MA (28).Soos ander genoem het, jy moet oorweeg om 'n IIR (oneindige impulsrespons) filter eerder as die FIR (eindige impulsrespons) filter jy nou met behulp van. Daar is meer as dit, maar met die eerste oogopslag FIR filters word toegepas as eksplisiete konvolusie en IIR filters met vergelykings. Die besondere IIR filter Ek gebruik 'n baie in mikrobeheerders is 'n enkele paal laaglaatfilter. Dit is die digitale ekwivalent van 'n eenvoudige R-C analoog filter. Vir die meeste aansoeke, sal hierdie beter eienskappe as die boks filter wat jy gebruik het. Die meeste gebruike van 'n boks filter wat ek teëgekom het is 'n gevolg van iemand nie aandag in digitale seinverwerking klas, nie as gevolg van die behoefte van hul besondere eienskappe. As jy net wil 'n hoë frekwensies dat jy weet is geraas te verminder, 'n enkele paal laaglaatfilter is beter. Die beste manier om 'n digitaal te implementeer in 'n mikrobeheerder is gewoonlik: filt lt-- filt VF (NEW - filt) filt is 'n stukkie van die aanhoudende staat. Dit is die enigste aanhoudende veranderlike wat jy nodig het om hierdie filter te bereken. NUWE is die nuwe waarde wat die filter word opgedateer met hierdie iterasie. VF is die filter fraksie. wat pas 'n bekommernis vir die filter. Kyk na hierdie algoritme en sien dat vir 0 VF die filter is oneindig swaar sedert die uitset verander nooit. Vir 1 VF, sy werklik geen filter glad sedert die uitset volg net die insette. Nuttige waardes van die twee. Op klein stelsels haal jy VF om 1/2 N wees sodat die vermenigvuldig met VF bereik kan word as 'n reg verskuiwing deur N stukkies. Byvoorbeeld, kan VF wees 16/1 en die vermenigvuldig met VF dus 'n reg verskuiwing van 4 stukkies. Andersins hierdie filter moet net een aftrek en een byvoeging, hoewel die getalle gewoonlik nodig om wyer as die invoerwaarde (meer op numeriese presisie in 'n aparte afdeling hieronder) wees. Ek neem gewoonlik A / D lesings aansienlik vinniger as dit nodig is en pas twee van hierdie filters kaskade. Dit is die digitale ekwivalent van twee R-C filters in reeks, en verswak met 12 dB / oktaaf ​​bokant die rolloff frekwensie. Maar vir A / D lesings sy gewoonlik meer relevant om te kyk na die filter in die tydgebied deur die oorweging van sy stap reaksie. Dit vertel jou hoe vinnig jou stelsel 'n verandering sal sien wanneer die ding is wat jy meet veranderinge. Om die ontwerp van hierdie filters (wat net beteken pluk VF en besluit hoeveel van hulle waterval) te fasiliteer, ek gebruik my program FILTBITS. Jy gee die aantal verskuiwing stukkies vir elke VF in die kaskade reeks filters, en dit bere die stap reaksie en ander waardes. Eintlik het ek gewoonlik loop dit via my wrapper script PLOTFILT. Dit loop FILTBITS, wat 'n CSV-lêer maak, dan plotte die CSV. Byvoorbeeld, hier is die resultaat van PLOTFILT 4 4: Die twee parameters om PLOTFILT beteken daar twee filters kaskade van die hierbo beskryf tipe. Die waardes van 4 dui die aantal verskuiwing stukkies om die vermenigvuldig met VF besef. Die twee VF waardes is dus 1/16 in hierdie geval. Die rooi spoor is die eenheid stap reaksie, en is die belangrikste ding om te kyk na. Byvoorbeeld, hierdie vir jou vertel dat as die insette onmiddellik verander, die opbrengs van die gekombineerde filter sal vestig tot 90 van die nuwe waarde in 60 iterasies. As jy omgee vir 95 wegsterftyd dan moet jy wag sowat 73 iterasies, en vir 50 wegsterftyd slegs 26 iterasies. Die groen spoor wys jou die uitset van 'n enkele volle amplitude piek. Dit gee jou 'n idee van die ewekansige geraas onderdrukking. Dit lyk soos geen enkele voorbeeld meer as 'n 2.5 verandering in die uitset sal veroorsaak. Die blou spoor is 'n subjektiewe gevoel van wat hierdie filter doen met 'n wit geraas te gee. Dit is nie 'n streng toets, want daar is geen waarborg wat presies die inhoud was van die ewekansige getalle opgetel as die wit geraas insette vir hierdie lopie van PLOTFILT. Sy net om jou 'n rowwe gevoel van hoeveel dit sal platgedruk en hoe glad dit is. PLOTFILT, miskien FILTBITS, en baie van die ander nuttige dinge, veral vir PIC firmware ontwikkeling is beskikbaar in die PIC Ontwikkeling tools sagteware vrylating op my bladsy sagteware afgelaai. Bygevoeg oor numeriese presisie Ek sien uit die kommentaar en nou 'n nuwe antwoord dat daar belangstelling in die bespreking van die aantal bisse wat nodig is om hierdie filter te implementeer. Let daarop dat die vermenigvuldig met VF log 2 (VF) sal skep nuwe stukkies onder die binêre punt. Op klein stelsels, is VF gewoonlik gekies om 1/2 N wees sodat dit vermeerder eintlik besef deur 'n regte verskuiwing van N stukkies. Filt is dus gewoonlik 'n vaste punt heelgetal. Let daarop dat hierdie een van die wiskunde nie die geval te verander van die verwerkers oogpunt. Byvoorbeeld, as jy die filter 10 bis A / D lesings en N 4 (1/16 VF), dan moet jy 4 fraksie stukkies onder die 10 bis integriteit A / D lesings. Een meeste verwerkers, youd doen 16 bis integriteit bedrywighede weens die 10 bis A / D lesings. In hierdie geval is, kan jy nog doen presies dieselfde 16 bis integriteit opertions, maar begin met die A / D lesings links verskuif deur 4 stukkies. Die verwerker nie die geval is die verskil en nie die geval is weet moet. Doen die wiskunde op hele 16 bit heelgetalle werk of jy dit as '12.4 vaste punt of ware 16 bit heelgetalle (16.0 vaste punt) wees. In die algemeen, moet jy N stukkies elke filter paal voeg as jy dit nie wil geraas voeg as gevolg van die numeriese verteenwoordiging. In die voorbeeld hierbo, sal die tweede filter van twee moet 1044 18 stukkies inligting nie verloor het. In die praktyk op 'n 8 bit masjien wat youd gebruik 24 bit waardes beteken. Tegnies slegs die tweede paal van twee sou die wyer waarde nodig nie, maar vir firmware eenvoud Ek gebruik gewoonlik dieselfde verteenwoordiging, en sodoende dieselfde kode, vir alle pole van 'n filter. Gewoonlik skryf ek 'n subroutine of makro een filter paal aksie uit te voer, dan aansoek doen dat elke paal. Of 'n subroutine of makro hang af of siklusse of program geheue is belangriker in daardie spesifieke projek. In ieder geval, ek gebruik 'n paar kras staat om nuwe pas in die subroutine / makro wat filt updates, maar ook belastings wat in dieselfde kras staat NUWE in. Dit maak dit maklik om verskeie pale toe te pas, aangesien die opgedateer filt van een pool is die NUWE van die volgende een. Wanneer 'n subroutine, sy nuttig om 'n wyser punt om filt op die manier, wat net ná filt op die pad uit is opgedateer. Op dié manier die subroutine bedryf outomaties op agtereenvolgende filters in die geheue as meer as een keer genoem. Met 'n makro hoef jy nodig het 'n wyser omdat jy slaag in die adres te werk op elke iterasie. Kode Voorbeelde Hier is 'n voorbeeld van 'n makro soos hierbo beskryf vir 'n PIC 18: En hier is 'n soortgelyke makro vir 'n PIC 24 of dsPIC 30 of 33: Beide hierdie voorbeelde is geïmplementeer as makros met behulp van my PIC assembler voorverwerker. wat is meer in staat is as een van die ingeboude makro fasiliteite. clabacchio: Nog 'n probleem wat ek moes genoem is implementering firmware. Jy kan 'n enkele paal laaglaatfilter subroutine keer skryf, dan pas dit meer as een keer. Om die waarheid te gewoonlik skryf ek so 'n subroutine om 'n wyser te neem in die geheue om die filter staat, dan is dit bevorder die wyser sodat dit kan genoem word in die reeks maklik om 'n multi-paal filters te realiseer. â € Olin Lathrop 20 April 12 by 15:03 1. Baie dankie vir jou antwoorde - almal van hulle. Ek het besluit om hierdie IIR Filter gebruik, maar dit Filter is nie gebruik word as 'n Standard laagdeurlaatfilter, want ek moet Counter Waardes gemiddeld en vergelyk kan word om veranderinge in 'n sekere omvang te spoor. aangesien hierdie waardes van baie verskillende dimensies afhangende van Hardware wees Ek wou 'n gemiddelde te neem ten einde in staat te wees om outomaties te reageer op hierdie Hardware spesifieke veranderinge. â € sensslen 21 12 Mei om 12:06 As jy kan lewe met die beperking van 'n bevoegdheid van twee aantal items te Gemiddeld (dws 2,4,8,16,32 ens) dan is die kloof kan maklik en doeltreffend gedoen word op 'n lae prestasie mikro sonder toegewyde verdeel, want dit kan gedoen word as 'n bietjie skuif. Elke skof reg is 'n krag van twee bv: Die OP het gedink hy het twee probleme, verdeel in 'n PIC16 en geheue vir sy ring buffer. Hierdie antwoord dui daarop dat die skeidslyn is nie moeilik. Toegegee dit spreek nie die geheue probleem, maar die SE stelsel kan gedeeltelike antwoorde, en gebruikers kan iets uit elke antwoord neem vir hulself, of selfs wysig en kombineer other39s antwoorde. Aangesien sommige van die ander antwoorde vereis dat 'n kloof werking, hulle is soortgelyk onvolledig omdat hulle nie wys hoe om doeltreffend hierdie op 'n PIC16 bereik. â € Martin 20 April 12 by 13:01 Daar is 'n antwoord vir 'n ware bewegende gemiddelde filter (aka wagon filter) met minder geheue vereistes, as jy verstand downsampling hoef. Die sogenaamde kaskade integreerder-kam filter (CIC). Die idee is dat jy 'n integreerder wat jy verskille oor 'n tydperk, en die sleutel-geheue te bespaar, is dat deur downsampling, dont jy elke waarde van die integreerder stoor. Dit kan toegepas word met behulp van die volgende pseudokode: Jou effektiewe bewegende gemiddelde lengte is decimationFactorstatesize maar jy moet net om statesize monsters te hou. Dit is duidelik dat jy kan 'n beter prestasie kry as jou statesize en decimationFactor magte van 2 is, sodat die afdeling en restant operateurs kry vervang deur skofte en masker-ands. Naskrif: Ek stem saam met Olin dat jy altyd in ag moet neem eenvoudig IIR filters voor 'n bewegende gemiddelde filter. As jy dit nie nodig het die frekwensie-nulls van 'n wagon filter, sal 'n 1-paal of 2-paal laaglaatfilter waarskynlik werk boete. Aan die ander kant, as jy die filter vir die doeleindes van uitkap (neem 'n hoë-monster-koers insette en gemiddeld dit vir gebruik deur 'n lae-koers proses) dan 'n CIC filter kan wees net wat jy soek. (Veral as jy statesize1 kan gebruik en heeltemal te vermy die ringbuffer met net 'n enkele vorige integreerder waarde) Daar is 'n paar in-diepte analise van die wiskunde agter die gebruik van die eerste orde IIR filter wat Olin Lathrop reeds oor beskryf op die Digitale Seinverwerking stapel ruil (sluit baie mooi foto's.) die vergelyking vir hierdie IIR filter is: dit kan toegepas word met behulp van slegs heelgetalle en geen verdeeldheid onder die volgende kode (dalk 'n debugging nodig as ek tik uit die geheue.) hierdie filter by benadering 'n bewegende gemiddelde van die laaste K monsters deur die oprigting van die waarde van alfa tot 1 / K. Doen dit in die voorafgaande kode deur te definieer ing BITS om log2 (K), dit wil sê vir K 16 stel BITS tot 4, vir K 4 stel BITS tot 2, ens (Ill verifieer die kode hier gelys word sodra ek 'n verandering te kry en hierdie antwoord wysig indien nodig.) antwoord 23 Junie 12 aan 04:04 Hier is 'n enkel-paal laaglaatfilter (bewegende gemiddelde, met afsnyfrekwensie CutoffFrequency). Baie eenvoudig, baie vinnig, werk baie goed, en byna geen geheue oorhoofse. Let wel: Alle veranderlikes omvang buite die filter funksie, behalwe die geslaag in newInput Nota: Hierdie is 'n enkele stadium filter. Veelvuldige fases kan saam kaskade die skerpte van die filter te verhoog. As jy meer as een stadium gebruik, sal jy moet DecayFactor pas (soos verwys na die afsny-Frequency) te vergoed. En natuurlik al wat jy nodig het, is die twee lyne oral geplaas, hulle dont hul eie funksie het. Hierdie filter het wel 'n oprit-up tyd voor die bewegende gemiddelde verteenwoordig dié van die insetsein. As jy nodig het om dit oprit-up tyd omseil, kan jy net inisialiseer MovingAverage om die eerste waarde van newInput in plaas van 0, en hoop dat die eerste newInput isnt 'n uitskieter. (CutoffFrequency / SampleRate) het 'n reeks van tussen 0 en 0,5. DecayFactor is nie 'n waarde tussen 0 en 1, gewoonlik naby aan 1. Enkellopend-presisie dryf is goed genoeg vir die meeste dinge, ek verkies net dubbelspel. As jy nodig het om te hou met heelgetalle, kan jy sit DecayFactor en Amplitude Factor in fraksionele heelgetalle, waarin die teller gestoor as die heelgetal, en die deler is 'n heelgetal krag van 2 (sodat jy kan bietjie-verskuiwing na regs as die deler eerder as om te verdeel in die filter lus). Byvoorbeeld, as DecayFactor 0.99, en jy wil om heelgetalle gebruik, jy kan stel DecayFactor 0.99 65536 64881. En dan wanneer jy vermenigvuldig met DecayFactor in jou filter lus, net skuif die gevolg 16. Vir meer inligting oor hierdie, 'n uitstekende boek dis aanlyn, hoofstuk 19 op rekursiewe filters: www. dspguide / ch19.htm PS Vir die bewegende gemiddelde paradigma, 'n ander benadering tot die opstel van DecayFactor en AmplitudeFactor wat meer relevant is vir jou behoeftes kan wees, kan sê wat jy wil die vorige, sowat 6 items saam gemiddeld, doen dit strategies, youd 6 items en deel te voeg met 6, sodat jy kan die AmplitudeFactor stel om 1/6, en DecayFactor om (1.0 - AmplitudeFactor). antwoord 14 Mei 12 aan 22:55 Almal het deeglik kommentaar op die nut van IIR teen FIR, en op krag-van-twee-afdeling. ID net graag 'n paar implementering besonderhede gee. Die onderstaande werk goed op klein mikrobeheerders met geen FPU. Theres geen vermenigvuldiging, en as jy N hou 'n krag van twee, al die afdeling is enkel-siklus bietjie-verskuiwing. Basiese FIR ring buffer: hou 'n lopende buffer van die laaste N waardes, en 'n lopende som van al die waardes in die buffer. Elke keer as 'n nuwe monster kom in, trek die oudste waarde in die buffer van som, vervang dit met die nuwe monster, voeg die nuwe monster te som, en uitset som / N. Gewysig IIR ring buffer: hou 'n lopende totaal van die laaste N waardes. Elke keer as 'n nuwe monster kom in, som - som / N, voeg in die nuwe monster, en uitset som / N. antwoord 28 Augustus 13 aan 13:45 As I39m jy lees reg, you39re beskrywing van 'n eerste-orde IIR filtreer die waarde you39re trek isn39t die oudste waarde wat uitval, maar is in plaas van die gemiddelde van die vorige waardes. Eerste-orde IIR filters kan beslis nuttig wees, maar I39m nie seker wat jy bedoel wanneer jy suggereer dat die uitset is dieselfde vir alle periodiese seine. Op 'n 10kHz sample rate, voer 'n 100Hz vierkante golf in 'n 20-stadium boks filter sal 'n teken dat eenvormig styg vir 20 monsters oplewer, sit hoog vir 30, daal eenvormig vir 20 monsters, en sit laag vir 30. 'n eerste-orde IIR filter. â € supercat 28 Augustus 13 aan 15:31 sal 'n golf wat skerp begin oplewer stygende en geleidelik afplat naby (maar nie by) die maksimum insette, dan skerp begin val en geleidelik afplat naby (maar nie by) die insette minimum. Baie verskillende gedrag. â € supercat 28 Augustus 13 by 15:32 Een probleem is dat 'n eenvoudige bewegende gemiddelde mag of nie mag nuttig wees. Met 'n IIR filter, kan jy 'n lekker filter met relatief min calcs kry. Die FIR jy beskryf kan net gee jou 'n reghoek in die tyd - 'n sed in freq - en jy can39t die kant lobbe te bestuur. Dit kan die moeite werd om te gooi in 'n paar heelgetal vermeerder sodat dit 'n mooi simmetriese verstelbare FIR as jy kan spaar die klok bosluise wees. uitvoering maak Scott Seidman 29 Augustus 13 by 13:50 ScottSeidman: Nie nodig vir vermeerder as 'n mens het net elke stadium van die FIR óf uitset die gemiddelde van die insette op daardie stadium en sy vorige gestoor waarde, en dan slaan die insette (indien 'n mens die numeriese reeks, kan 'n mens die som eerder as die gemiddelde gebruik). Of that39s beter as 'n boks filter hang af van die aansoek (die stap reaksie van 'n boks filter met 'n totale vertraging van 1ms, byvoorbeeld, sal 'n nare d2 het / dt piek wanneer die insette verander, en weer 1ms later, maar sal moet die minimum moontlike d / dt vir 'n filter met 'n totale 1ms vertraging). â € supercat 29 Augustus 13 aan 15:25 Soos mikeselectricstuff gesê, as jy regtig nodig het om jou geheue behoeftes te verminder, en jy dit nie omgee jou impulsrespons om 'n eksponensiële (in plaas van 'n vierkantige pols), sou ek gaan vir 'n eksponensiële bewegende gemiddelde filter . Ek gebruik dit op groot skaal. Met hierdie tipe filter, hoef jy geen buffer nodig het. Jy hoef nie te N afgelope monsters te stoor. Slegs een. So, kry jou geheue vereistes kap met 'n faktor van N. Ook, moenie jy nodig het 'n afdeling vir daardie. Slegs vermenigvuldiging. As jy toegang tot swaai-punt rekenkundige het, gebruik swaai-punt vermenigvuldiging. Anders, doen heelgetal vermenigvuldiging en skuif na regs. Ons is egter in 2012, en ek sal u aanbeveel om opstellers (en MCUs) wat u toelaat om te werk met swaai-punt getalle gebruik. Behalwe dat meer geheue doeltreffend en vinniger (jy hoef nie te items in enige omsendbrief buffer werk), sou ek sê dit is ook meer natuurlike. omdat 'n eksponensiële impulsrespons wedstryde beter soos die natuur optree, in die meeste gevalle. antwoord 20 April 12 aan 09:59 Een probleem met die IIR filter as byna aangeraak deur Olin en supercat maar blykbaar geïgnoreer deur ander is dat die afronding af stel sommige onakkuraatheid (en potensieel vooroordeel / afkorting). veronderstelling dat N is 'n krag van twee, en net heelgetal rekenkunde gebruik word, die verskuiwing reg nie stelselmatig uit te skakel die LSBs van die nuwe monster. Dit beteken dat hoe lank die reeks ooit kon wees, die gemiddelde sal nooit neem diegene in ag neem. Byvoorbeeld, veronderstel 'n stadig afneem reeks (8,8,8. 8,7,7,7. 7,6,6,) en neem die gemiddelde is inderdaad 8 aan die begin. Die vuis 7 monster sal die gemiddelde bring tot 7, ongeag die filter sterkte. Net vir 'n monster. Dieselfde storie vir 6, ens Nou dink aan die teenoorgestelde. die reeks styg. Die gemiddelde sal bly op 7 ewig, totdat die monster is groot genoeg om dit te verander. Natuurlik, kan jy reg vir die vooroordeel deur die byvoeging van 1 / 2N / 2, maar dit sal nie regtig los die akkuraatheid probleem. In daardie geval die dalende reeks sal vir ewig bly, 8 tot en met die monster is 8-1 / 2 (N / 2). Vir N4 byvoorbeeld 'n monster bo nul sal die gemiddelde onveranderd te hou. Ek glo dat 'n oplossing vir dit sou impliseer 'n akkumulator van die verlore LSBs hou. Maar ek didnt maak dit ver genoeg om kode gereed te hê, en ek is nie seker of dit sal nie skade aan die IIR krag in sommige ander gevalle van 'n reeks (byvoorbeeld of 7,9,7,9 sal gemiddeld tot 8 dan). Olin, jou twee-stadium waterval ook sou 'n verduideliking nodig. Bedoel jy hou twee gemiddelde waardes met die uitslag van die eerste gevoer in die tweede plek in elke iterasie. Wat is die voordeel van hierdie Hierdie funksie is eksperimentele en kan verander word of heeltemal verwyder in 'n toekomstige vrystelling. Gegewe 'n geordende reeks data, sal die bewegende gemiddelde samevoeging n venster in die data skuif en stoot die gemiddelde waarde van die venster. Byvoorbeeld, gegewe die data 1, 2, 3, 4, 5, 6, 7, 8, 9, 10. Ons kan 'n eenvoudige bewegende gemiddelde met vensters grootte van 5 soos volg bereken: bewegende gemiddeldes is 'n eenvoudige metode om opeenvolgende glad data. Bewegende gemiddeldes is tipies aangewend om tydgebaseerde data, soos aandele pryse of bediener statistieke. Die smoothing kan gebruik word om 'n hoë frekwensie skommelinge of ewekansige geraas, wat toelaat dat die laer frekwensie tendense makliker om gevisualiseer, soos seisoenaliteit te skakel. Syntaxedit Linearedit Die lineêre model ken 'n lineêre gewig punte in die reeks, soos wat ouer datapunte (bv diegene wat aan die begin van die venster) 'n lineêr minder bedrag bydra tot die totale gemiddelde. Die lineêre gewig help verminder die lag agter die data in beteken, aangesien ouer punte minder invloed. 'N Lineêre model het geen spesiale instellings in te stel soos die eenvoudige model, kan venster grootte van die gedrag van die bewegende gemiddelde verander. Byvoorbeeld, 'n klein venster (window: 10) sal nou hou die data en net glad kleinskaalse skommelinge: Figuur 3. Lineêre bewegende gemiddelde met venster van grootte 10 In teenstelling hiermee het 'n liniêre bewegende gemiddelde met groter venster (window: 100) sal glad al hoër-frekwensie skommelinge, sodat net 'n lae-frekwensie, langtermyn tendense. Dit is ook geneig om agter die werklike data deur 'n aansienlike bedrag, alhoewel tipies minder as die eenvoudige model: Figuur 4. Lineêre bewegende gemiddelde met venster van grootte 100 Multiplikatiewe Holt-Wintersedit Multiplikatiewe gespesifiseer deur die oprigting type: mult. Hierdie verskeidenheid is verkies as die seisoenale invloed vermenigvuldig teen jou data. Bv As die seisoenale invloed is X5 die data, eerder as om net dit uit te brei. Die verstek waardes van alfa en gamma is 0,3 terwyl beta is 0.1. Die instellings aanvaar geen float 0-1 ingesluit. Die standaard waarde van tydperk is 1. Die vermenigvuldiging Holt-Winters model kan beperk Multiplikatiewe Holt-Winters werk word deur elke datapunt deur die seisoenale waarde. Dit is problematies as enige van jou data is nul, of indien daar gapings in die data (aangesien dit lei tot 'n divid-vir-nul). Om dit te bekamp, ​​die mult Holt-Winters pads alle waardes deur 'n baie klein hoeveelheid (110 -10) sodat alle waardes is nie-nul. Dit raak die resultaat, maar slegs minimaal. As jou data is nie-nul, of jy verkies om NaN sien wanneer nulle ondervind, kan jy dit gedrag met pad versper: valse Predictionedit Al die bewegende gemiddelde model ondersteun 'n voorspelling af, wat sal probeer om te ekstrapoleer na die toekoms, gegewe die huidige stryk, bewegende gemiddelde. Afhangende van die model en parameter, hierdie voorspellings mag of nie mag nie akkuraat wees. Voorspellings in staat gestel word deur die byvoeging van 'n voorspel parameter om enige bewegende gemiddelde samevoeging, spesifiseer die aantal voorspellings wat jy wil bygevoeg aan die einde van die reeks. Hierdie voorspellings word gespasieer uit op dieselfde interval as jou emmers: Die eenvoudige. lineêre en ewma modelle al produseer plat voorspellings: hulle wese konvergeer op die gemiddelde van die laaste waarde in die reeks, die vervaardiging van 'n plat: Figuur 11. Eenvoudige bewegende gemiddelde met venster van grootte 10, voorspel 50 In teenstelling, kan die Holt model ekstrapoleer gebaseer op plaaslike of globale konstante neigings. As ons 'n hoë beta waarde stel, kan ons ekstrapoleer gebaseer op plaaslike konstante tendense (in hierdie geval die voorspellings kop af, want die data aan die einde van die reeks was op pad in 'n afwaartse rigting): Figuur 12. Holt-Linear bewegende gemiddelde met venster van grootte 100, voorspel 20, Alpha 0.5, beta 0,8 In teenstelling, as ons kies 'n klein beta. die voorspellings is gebaseer op die globale konstante tendens. In hierdie reeks, die wêreldwye tendens is effens positief, sodat die voorspelling maak 'n skerp U-draai en begin 'n positiewe helling: Figuur 13. Double Eksponensiële bewegende gemiddelde met venster van grootte 100, voorspel 20, Alpha 0.5, beta 0,1 Die holtwinters model het die potensiaal om die beste voorspellings te lewer, aangesien dit ook inkorporeer seisoenale skommelinge in die model: Figuur 14. Holt-Winters bewegende gemiddelde met venster van grootte 120, voorspel 25, Alpha 0.8, beta 0,2, gamma 0.7, tydperk 30Moving Gemiddeld Inhoud DEFINISIE bewegende gemiddelde (MA) is 'n prys wat gebaseer is, agter (of reaktiewe) aanduiding dat die gemiddelde prys van 'n sekuriteit vertoon oor 'n bepaalde tydperk van die tyd. 'N bewegende gemiddelde is 'n goeie manier om momentum te meet, asook om tendense te bevestig. en definieer areas wat ondersteuning en weerstand. In wese, Bewegende Gemiddeldes gladde uit die geraas wanneer ek probeer om kaarte te interpreteer. Geraas is saamgestel uit skommelinge van beide prys en volume. Omdat 'n bewegende gemiddelde is 'n sloerende aanwyser en reageer op gebeure wat reeds gebeur het, is dit nie gebruik word as 'n voorspelbare aanwyser maar eerder 'n interpretatiewe een, wat gebruik word vir bevestiging en ontleding. Trouens, Bewegende Gemiddeldes vorm die basis van 'n paar ander bekende tegniese ontleding gereedskap soos Bollinger Bands en die MACD. Daar is 'n paar verskillende tipes Bewegende Gemiddeldes wat al neem dieselfde basiese uitgangspunt en voeg 'n variasie. Mees noemenswaardig is die Eenvoudige bewegende gemiddelde (SMA), die eksponensiële bewegende gemiddelde (EMA) en die Geweegde bewegende gemiddelde (WBA) Dit is 'n interaktiewe kaart. Gebruikers het die vermoë om deur middel van die ingeboude grafiek blaai of klik op Maak dit uitleef grafiek oop in 'n aparte venster. TIPES Bewegende Gemiddeldes visualiseer die gemiddelde prys van 'n finansiële instrument oor 'n bepaalde tydperk van die tyd. Daar is egter 'n paar verskillende tipes bewegende gemiddeldes. Hulle verskil gewoonlik in die manier waarop verskillende datapunte word geweeg of gegee betekenis. Eenvoudige bewegende gemiddelde (SMA) Eenvoudige bewegende gemiddelde is 'n ongeweegde bewegende gemiddelde. Dit beteken dat elke dag in die datastel het ewe belangrik en is ewe geweeg. Soos elke nuwe dag eindig, is die oudste data punt gedaal en die nuutste een is by die begin. BEREKENING Geweegde bewegende gemiddelde (WBA) Geweegde bewegende gemiddelde is soortgelyk aan die SMA, behalwe die WBG voeg betekenis aan meer onlangse data punte. Elke punt binne die tydperk is 'n vermenigvuldiger opgedra (grootste vermenigvuldiger vir die nuutste data punt en dan daal ten einde) wat die gewig of belangrikheid van daardie spesifieke data punt verander. Dan, net soos die SMA, een keer 'n nuwe data punt word by die begin, die oudste data punt is uitgegooi. BEREKENING Eksponensiële bewegende gemiddelde (EMA) Eksponensiële bewegende gemiddelde is baie soortgelyk aan (en is 'n soort van) WBG. Die groot verskil met die EMO is dat ou datapunte nooit die gemiddelde verlaat. Om te verduidelik, ou data punte te behou 'n vermenigvuldiger (hoewel dalende tot amper niks) selfs al is hulle buite die geselekteerde data reeks lengte. BEREKENING Double Eksponensiële bewegende gemiddelde BEREKENING Drie Eksponensiële bewegende gemiddelde BEREKENING die basiese beginsels Bewegende Gemiddeldes neem 'n stel data (sluitingsdatum pryse oor 'n bepaalde tydperk) en uitgange hul gemiddelde prys. Nou, in teenstelling met 'n ossillator. Bewegende gemiddeldes is nie beperk tot 'n aantal binne 'n band of 'n stel reeks getalle. Die MA kan skuif na regs saam met die prys. Die tydraamwerk of tydperke gebruik kan aansienlik wissel, afhangende van die tipe van tegniese ontleding gedoen. Een feit dat die meeste altyd egter in gedagte gehou word, is dat die verskuiwing van gemiddeldes het lag inherent gebou in hulle. Wat dit beteken is eintlik redelik eenvoudig. Hoe langer die tydperk wat gebruik word, hoe meer lag daar sal wees. Net so, hoe korter die tydperk, hoe minder been daar sal wees nie. Eintlik, bewegende gemiddeldes met korter tydsraamwerke geneig naby pryse te bly en sal skuif na regs na pryse beweeg. Langer tydperke het baie meer omslagtig data en hul bewegings agter die markte veel meer betekenisvol te beweeg. Soos vir watter tyd rame gebruik moet word, is dit werklik aan die handelaars diskresie. Tipies enige tydperk onder 20 dae sal oorweeg word op kort termyn, enigiets tussen 20 en 60 sal mediumtermyn en natuurlik niks langer as 60 dae sal beskou word as 'n lang termyn wees. Dit is 'n interaktiewe kaart. Gebruikers het die vermoë om deur middel van die ingeboude grafiek blaai of klik op Maak dit uitleef grafiek oop in 'n aparte venster. Nog 'n opsie wat neerkom op die handelaars voorkeur is watter tipe bewegende gemiddelde om te gebruik. Terwyl al die verskillende tipes van Moving gemiddeldes eerder soortgelyk, het hulle 'n paar verskille wat die handelaar moet bewus wees van. Byvoorbeeld, die EMO het baie minder lag as die SMA (want dit plaas 'n groter belang op meer onlangse pryse) en dus draai vinniger as die SMA. Maar sedert die SMA gee 'n gelyke gewig aan al datapunte, maak nie saak hoe onlangse, die SMA het 'n baie nader verhouding tot areas van belang soos tradisionele ondersteuning en weerstand. Dit is 'n interaktiewe kaart. Gebruikers het die vermoë om deur middel van die ingeboude grafiek blaai of klik op Maak dit uitleef grafiek oop in 'n aparte venster. Wat om te kyk vir wanneer die ondersoek sommige van hierdie algemene gebruike vir Bewegende Gemiddeldes, in gedagte hou dat dit is die handelaars diskresie wat Gemiddeld veral wat hulle wil gebruik beweeg. In die volgende voorbeelde, sal daar geskryf gevalle van Moving Gemiddeldes (MA), Simple bewegende gemiddeldes (SMA), eksponensiële Bewegende Gemiddeldes (EMA) en Geweegde bewegende gemiddeldes (WBA). Tensy anders vermeld, kan hierdie aanwysers verwissel oorweeg word in terme van die regerende beginsels agter hul basiese gebruike. Basiese Trend identifiseer met bewegende gemiddelde om 'n tendens in die prys te bevestig is regtig een van die mees basiese, maar die bewerkstelliging van maniere om die aanwyser. Is van mening dat deur ontwerp, Bewegende Gemiddeldes verslag te doen oor wat reeds gebeur het en dat hulle ook in ag 'n hele reeks van gebeure in die verlede by die berekening van hul formule. Dit is wat 'n bewegende gemiddelde so 'n goeie tegniese ontleding gereedskap vir tendens bevestig. Die algemene reëls van die duim is soos volg: 'n langtermyn-bewegende gemiddelde wat duidelik op die opswaai is bevestiging van n bullish tendens. 'N langtermyn-bewegende gemiddelde wat duidelik op die afswaai is bevestiging van n lomp tendens. As gevolg van die groot hoeveelhede data in ag geneem by die berekening van 'n langtermyn-bewegende gemiddelde, dit neem 'n aansienlike bedrag van beweging in die mark te veroorsaak dat die MA om sy gang te verander. 'N langtermyn-MA is nie baie vatbaar vir 'n vinnige prysveranderings met betrekking tot die algehele tendens. Dit is 'n interaktiewe kaart. Gebruikers het die vermoë om deur middel van die ingeboude grafiek blaai of klik op Maak dit uitleef grafiek oop in 'n aparte venster. Dit is 'n interaktiewe kaart. Gebruikers het die vermoë om deur middel van die ingeboude grafiek blaai of klik op Maak dit uitleef grafiek oop in 'n aparte venster. Ondersteuning en weerstand Nog redelik basiese gebruik vir Bewegende Gemiddeldes is die identifisering van areas wat ondersteuning en weerstand. Oor die algemeen, bewegende gemiddeldes kan ondersteuning bied in 'n uptrend en ook kan hulle weerstand bied in 'n verslechtering neiging. Terwyl dit kan werk vir korter tydperke termyn (20 dae of minder), die ondersteuning en weerstand voorsien deur die beweging van gemiddeldes, kan selfs meer geredelik in langer termyn situasies. Dit is 'n interaktiewe kaart. Gebruikers het die vermoë om deur middel van die ingeboude grafiek blaai of klik op Maak dit uitleef grafiek oop in 'n aparte venster. Dit is 'n interaktiewe kaart. Gebruikers het die vermoë om deur middel van die ingeboude grafiek blaai of klik op Maak dit uitleef grafiek oop in 'n aparte venster. CROSSOVER CROSSOVER vereis dat die gebruik van twee bewegende gemiddeldes van wisselende lengte op dieselfde grafiek. Die twee bewegende gemiddeldes moet van twee verskillende termyn lengtes wees. Byvoorbeeld 'n 50-dag Eenvoudige bewegende gemiddelde (medium termyn) en 'n 200-dag Eenvoudige bewegende gemiddelde (langtermyn) Die seine of potensiële handel geleenthede vind plaas wanneer die korter termyn SMA bo of onder die langer termyn SMA kruis. Bullish Crossover Kom voor wanneer die korter termyn SMA kruis bo die langer termyn SMA. Ook bekend as 'n Golden Cross. Dit is 'n interaktiewe kaart. Gebruikers het die vermoë om deur middel van die ingeboude grafiek blaai of klik op Maak dit uitleef grafiek oop in 'n aparte venster. Lomp Crossover Kom voor wanneer die korter termyn SMA kruisies onder die langer termyn SMA. Ook bekend as 'n Dooie Kruis. Dit is 'n interaktiewe kaart. Gebruikers het die vermoë om deur middel van die ingeboude grafiek blaai of klik op Maak dit uitleef grafiek oop in 'n aparte venster. Dit is noodsaaklik egter dat die handelaar besef die inherente tekortkominge in hierdie seine. Dit is 'n stelsel wat is geskep deur die kombinasie van nie net een nie, maar twee sloerende aanwysers. Beide van hierdie aanwysers reageer net op wat reeds gebeur het en is nie ontwerp om voorspellings te maak. 'N stelsel soos hierdie een beslis die beste werk in 'n baie sterk tendens. Terwyl hy in 'n sterk tendens, kan hierdie stelsel of 'n soortgelyke een eintlik baie waardevol. Prys CROSSOVER As jy die twee bewegende gemiddeldes stelsel kies wat in die vorige afdeling bespreek is en voeg in die derde element van die prys te neem, is daar 'n ander tipe van opset bekend as 'n prys Crossover. Met 'n prys Crossover begin jy met twee bewegende gemiddeldes van verskillende termyn lengtes (net soos met die voorheen genoem Crossover). Jy gebruik basies die langer termyn bewegende gemiddelde langtermyn tendens bevestig. Die seine dan optree wanneer Prys kruisies bo of onder die korter termyn bewegende gemiddelde gaan in dieselfde rigting van die belangrikste, langer termyn tendens. Net soos in die vorige voorbeeld, kan gebruik om 'n 50-dag Eenvoudige bewegende gemiddelde en 'n 200-dag Eenvoudige bewegende gemiddelde. Bullish Prys Crossover Prys kruis bo die 50 SMA terwyl die 50 SMA is bo die 200 SMA. Die 200 SMA is die bevestiging van die tendens. Prys en korttermyn SMA genereer seine in dieselfde rigting as die tendens. Dit is 'n interaktiewe kaart. Gebruikers het die vermoë om deur middel van die ingeboude grafiek blaai of klik op Maak dit uitleef grafiek oop in 'n aparte venster. Lomp Prys Crossover - Prys kruise onder die 50 SMA terwyl die 50 SMA is onder die 200 SMA. Die 200 SMA is die bevestiging van die tendens. Prys en korttermyn SMA genereer seine in dieselfde rigting as die tendens. Dit is 'n interaktiewe kaart. Gebruikers het die vermoë om deur middel van die ingeboude grafiek blaai of klik op Maak dit uitleef grafiek oop in 'n aparte venster. OPSOMMING 'n ervaring tegniese ontleder sal weet dat hulle versigtig moet wees met die gebruik van Moving Gemiddeldes (Net soos met enige aanduiding). Daar is geen twyfel oor die feit dat hulle tendens identifiseerders. Dit kan nogal 'n waardevolle stukkie inligting. Dit is egter belangrik om altyd bewus te wees dat hulle agter of reaktiewe aanwysers. Bewegende gemiddeldes sal nooit wees op die voorpunt wanneer dit kom by die voorspelling van die mark beweeg. Wat kan hulle al doen, is net soos baie ander aanwysers wat die toets van die tyd deurstaan, bied 'n bykomende vlak van vertroue 'n handel strategie of stelsel. Wanneer dit gebruik word in samewerking met meer aktief aanwysers, kan jy ten minste seker wees dat met betrekking tot die langtermyn tendens, is jy op soek na die handel in die regte rigting. HOE OM IN TRADINGVIEW Navigeer na www. tradingview / Op die landing page, gaan 'n simbool en klik Begin Chart Binne die Toolbar langs die top van die grafiek kies Aanwysers en kies die een wat jy wil by jou grafiek. Om veranderinge aan jou aanwyser maak wat jy nodig het om toegang tot die venster Formatering. Jy kan toegang tot die venster Formatering deur óf klik op die Blou formaat knoppie in die Chart Selected langs die naam aanwyser, of deur regs te klik op die aanwyser in die grafiek self en kies Format. INSETTE Duur Die tydperk wat gebruik word in die berekening van die bewegende gemiddelde. 9 dae is die standaard. Bron bepaal watter data van elke staaf sal gebruik word in berekeninge. Close is die standaard. Offset verandering hierdie nommer sal die bewegende gemiddelde óf vorentoe of agtertoe relatiewe na die huidige mark. 0 is die standaard. STYL MA Kan die sigbaarheid van die MA asook die sigbaarheid van 'n prys lyn toon die werklike huidige waarde van die MA wissel. Kan ook kies Mas kleur, lyn dikte en lyn styl. EIENSKAPPE laaste waarde op prys skaal of verberg die Laaste Waardes vir die bewegende gemiddelde op die prys skaal. Argumente ten Selected verberg die naam en instellings aanwysers in die boonste linker hoek van die kaart. Skalering Scales die aanwyser om óf die regte koers Left. Improve jou wortel-gemiddelde berekeninge Slaan by My Biblioteek Volg Kommentaar Brian NeunaberFebruary 16, 2006 Real-time digitale stelsels vereis dikwels die berekening van 'n wortel-gemiddelde, soos 'n wortel - beteken vierkante (RMS) vlak of gemiddelde grootte van 'n komplekse sein. Terwyl gemiddelde doeltreffend deur die meeste mikroverwerkers geïmplementeer kan word, kan die vierkantswortel nie - veral met 'n lae-koste hardeware. As die verwerker nie die geval te implementeer 'n vinnige vierkantswortelfunksie, moet dit in sagteware geïmplementeer hoewel dit akkurate resultate lewer, kan dit nie doeltreffend wees. Een algemene metode vir die berekening van die vierkantswortel is Newton metode, wat iteratief konvergeer op 'n oplossing met behulp van 'n aanvanklike skatting. Sedert die vierkantswortel van 'n stadig wisselende gemiddelde waarde is die berekening van die vorige wortel-gemiddelde waarde maak 'n goeie skatting. Verder kan ons die iteratiewe Newton metode kombineer met 'n eerste-orde rekursiewe Averager, wat lei tot 'n super-doeltreffende metode vir die berekening van die wortel-gemiddelde van 'n sein. In hierdie artikel, ek sal ontwikkel en aan te bied drie doeltreffende rekursiewe algoritmes vir die berekening van die wortel-gemiddelde, elke metode met seinvloeidiagramme en voorbeeld kode illustreer. Tot 'n mate, elk van hierdie metodes ambagte hardeware kompleksiteit vir foute. Siek vergelyk die computational prestasie en dwaling van elke metode en stel geskikte hardeware vir elke implementering. Wortel-gemiddelde Die wortel-gemiddelde word bereken as die vierkantswortel van die gemiddelde oor 'n tydperk van sy insette. Dit gemiddelde mag rekursiewe of nie-rekursiewe wees, en ek sal kortliks kyk na die algemene geval vir beide. Nie-rekursiewe gemiddelde Die nie-rekursiewe gemiddelde, of bewegende gemiddelde. is die geweegde som van N insette: die huidige insette en N -1 vorige insette. In digitale filter terminologie, dit is 'n eindige impulsrespons genoem. of FIR filter: Die mees algemene gebruik van die bewegende gemiddelde stel gewoonlik die gewigte so dat 'n n 1 / N. As ons hierdie gewigte teenoor tyd te stip, sou ons die venster van die insetsein wat gemiddeld op 'n gegewe tydstip te sien. Dit 1 / N venster staan ​​bekend as 'n reghoekige venster omdat sy vorm 'n N - per-1 / N reghoek. Daar is 'n truuk vir die berekening van die 1 / N gemiddelde sodat almal N monsters hoef nie geweeg en opgesom met elke uitset berekening. Sedert die gewigte hoef verandering, kan jy eenvoudig voeg die nuutste geweegde insette en trek die n de geweegde insette van die vorige som: Terwyl hierdie tegniek is computationeel doeltreffende, dit stoor en omsendbrief-buffer bestuur van N monsters vereis. Natuurlik is daar baie ander venster vorms wat algemeen gebruik word. Tipies, hierdie venster vorms lyk, of is 'n variasie van 'n verhoogde kosinus tussen 8211pi / 2 en pi / 2. Hierdie vensters gewig van die monsters in die sentrum meer as die monsters naby die kante. Oor die algemeen, moet jy net een van hierdie vensters wanneer daar 'n spesifieke behoefte te, soos die toepassing van 'n spesifieke filter om die sein. Die nadeel van hierdie vensters is dat rekenkundige kompleksiteit en stoor vereistes verhoog met N. Rekursiewe gemiddelde Die rekursiewe gemiddelde is die geweegde som van die insette, N vorige insette, en M vorige uitsette: Die eenvoudigste van hierdie in terme van rekenkundige kompleksiteit en stoor (terwyl hy nog in bruikbare) is die eerste-orde rekursiewe gemiddelde. In hierdie geval, is die gemiddelde bereken as die geweegde som van die huidige insette en die vorige uitset. Die eerste-orde rekursiewe gemiddelde leen hom ook tot 'n optimalisering wanneer dit gekombineer met die berekening van die vierkantswortel, wat goed kort bespreek. In teenstelling met die nie-rekursiewe gemiddelde, die venster eerste-orde rekursiewe gemiddeldes is 'n vervalle eksponensiële (Figuur 1). Tegnies, die rekursiewe gemiddelde het 'n oneindige venster, aangesien dit nooit verval al die pad na nul. In digitale filter terminologie, staan ​​dit bekend as 'n oneindige impulsrespons, of IIR filter. Uit Figuur 1, sien ons dat vroeër monsters meer word geweeg as later monsters, wat ons toelaat om 'n bietjie arbitrêr definieer 'n gemiddelde tyd vir die rekursiewe gemiddelde. Vir die eerste-orde geval, ons definieer die gemiddelde tyd en wyl die tydstip waarop die impulsrespons het verval tot 'n faktor van 1 / e. of ongeveer 37, van sy aanvanklike waarde. 'N ekwivalente definisie is die tydstip waarop die stap reaksie bereik 18.211 (1 / e), of ongeveer 63, van sy finale waarde. Ander definisies is moontlik, maar sal nie hier gedek word. Die gewig van die som bepaal hierdie gemiddelde tyd om eenheid gewin te verseker, moet die som van die gewigte een gelyk. As 'n gevolg, net een koëffisiënt moet vermeld om die gemiddelde tyd beskryf. Daarom, vir eerste-orde rekursiewe gemiddelde, bereken ons die gemiddelde vlak as: waar x (N) is die insette, m (N) is die gemiddelde waarde, en 'n is die gemiddelde koëffisiënt. Die gemiddelde koëffisiënt word gedefinieer as: waar t die gemiddelde tyd, en f S is die monsterfrekwensie. Die wortel-gemiddelde kan dan bereken word deur die neem van die vierkantswortel van vergelyking 4: waar y (N) is die wortel-gemiddelde. Doeltreffende berekening metodes Googlen vinnig vierkantswortel sal jy 'n oorvloed van inligting en stukkies kode op die implementering van 'n vinnige vierkante-wortel algoritmes. Terwyl hierdie metodes net mooi kan werk, hulle dont rekening hou met die aansoek waarin die vierkantswortel word vereis. Dikwels kan jy nie presies presisie moet die laaste bietjie, of die algoritme self gemanipuleer kan word om die berekening van die vierkantswortel optimaliseer. Ek bied 'n paar basiese benaderings hier. Slegs bereken wanneer jy dit nodig het Waarskynlik die maklikste optimalisering is slegs bereken die vierkantswortel wanneer jy absoluut nodig het. Alhoewel hierdie voor die hand liggend mag lyk, kan dit maklik misgekyk word wanneer die berekening van die wortel-gemiddelde van alle insette monster. Wanneer jy dit nie nodig het 'n uitset waarde vir elke insette monster, dit maak meer sin om net die vierkantswortel bereken wanneer jy die uitset waarde te lees. Een voorbeeld van 'n aansoek toe hierdie tegniek kan gebruik word is RMS meting van 'n sein. 'N Meter waarde wat visueel vertoon mag slegs 'n update elke 50 tot 100ms, wat veel minder dikwels as die insetsein word getoets kan word vereis. Hou in gedagte, maar dat rekursiewe gemiddelde moet nog bereken word op die Nyquist tempo. Logaritmes Onthou dat: As jy sal die berekening van die logaritme van 'n vierkantswortel, sy veel minder bestryk duur om net halveer die resultaat in plaas. 'N Algemene voorbeeld van hierdie optimalisering is die berekening van 'n WGK vlak in dB, wat soos volg kan vereenvoudig word: Newton Metode Newton Metode (ook bekend as die Newton-Rapson Metode) is 'n bekende iteratiewe metode vir die beraming van die wortel van 'n vergelyking. 1 Newton metode kan baie doeltreffend wees wanneer jy 'n redelike raming van die resultaat. Verder, as die akkuraatheid van die laaste bietjie nie vereis word nie, die aantal iterasies kan vasgestel word om die algoritme deterministiese hou. Ons kan die wortel van f (x) benader deur iteratief bereken: (9) As ons wil om uit te vind, dan moet ons die wortel van die vergelyking f (y) y 2 vind - m. Vervang f (y) in vergelyking 9, kry ons: Herrangskikking vergelyking 9, kry ons: waar y (N) is die aanpassing van die vierkantswortel van m (N). Vergelyking 11 vereis 'n kloof operasie, wat ongerieflik vir 'n paar verwerkers kan wees. As 'n alternatief, kan ons bereken en vermenigvuldig die resultaat met m te kry. Weer met Newton Metode, vind ons dat ons iteratief kan bereken die wedersydse vierkantswortel as: en bereken die vierkantswortel as: Hoewel Newton Metode vir die wedersydse vierkantswortel elimineer die kloof operasie, kan dit problematies vir vaste punt verwerkers wees. buite die omvang van verteenwoordiging vir heelgetalle - die veronderstelling dat m (n) 'n positiewe heelgetal groter as 1, sal jr (N) 'n positiewe getal minder as een wees. Implementering vervul moet word: die gebruik van swaai-punt of gemengde heelgetal / fraksionele aantal verteenwoordiging. Wortel-gemiddelde gebruik van Newton Metode A subtiele verskil tussen Vergelykings 10 en 11 is dat m raak m (N), betekenis wat 'n poging om die vierkantswortel van 'n bewegende teiken te vind. Maar sedert m (N) is 'n gemiddelde waarde, of stadig wissel, kan dit as byna konstante tussen iterasies beskou. Sedert y (N) ook stadig wisselende sal wees, y (N -1) sal 'n goeie benadering om y (n) en vereis minder iterasies - een, ons hoop - 'n goeie raming bereik. Om die wortel-gemiddelde te bereken, kan 'n mens net van toepassing Newton Metode vir die berekening van die vierkantswortel van die gemiddelde waarde. Solank as wat die gemiddelde tyd lank in vergelyking met die monster tydperk (t 6262 1 / f S), moet 'n mens iterasie van die vierkantswortel berekening genoeg vir redelike akkuraatheid. Dit lyk eenvoudig genoeg, maar ons kan eintlik die computational doeltreffendheid, wat in een van die volgende afdelings bespreek sal word verbeter. Die gebruik van wedersydse vierkantswortel In teenstelling met die iteratiewe vierkante-wortel metode egter die iteratiewe wedersydse vierkante-wortel vereis geen kloof. Hierdie implementering is die beste geskik is vir swaai-punt verwerking, wat doeltreffend kan hanteer getalle beide groter en minder as een. Ons bied hierdie implementering as 'n sein vloeidiagram in Figuur 2. Die gemiddelde koëffisiënt, a. gedefinieer deur vergelyking 5 en Z 82111 verteenwoordig 'n eenheid monster vertraging. 'N Kode lys vir 'n C-klas wat die berekening in Figuur 2 implemente word in Listing 1. In hierdie voorbeeld klas, is inisialisering uitgevoer in die klas konstruktor, en elke oproep om CalcRootMean () voer een iterasie van gemiddelde en vierkante-wortel berekening . Notering 1. C-klas wat die wortel-gemiddelde gebruik van Newton Metode vir die wedersydse vierkantswortel Gebruik direkte vierkantswortel Kom terug te gaan en neem 'n nader kyk na bere vergelyking 11. Newton metode konvergeer op die oplossing so gou as moontlik sonder ossillerende rondom dit, maar as ons hierdie koers van konvergensie stadig, sal die iteratiewe vergelyking konvergeer op die vierkantswortel van die gemiddelde van sy insette. Die toevoeging van die gemiddelde koëffisiënt resultate in die volgende wortel-gemiddelde vergelyking: waar 'n gedefinieer deur vergelyking 5. Nou y (N) konvergeer na die vierkantswortel van die gemiddelde van x (N). 'N ekwivalente sein-vloei voorstelling van vergelyking 14 word in Figuur 3. Hier is 'n bykomende y (N 82111) term word opgesom sodat slegs een gemiddelde koëffisiënt word vereis. Let daarop dat x (N) en y (N 82111) moet groter as nul wees. 'N Kode lys vir 'n C-klas wat die berekening getoon in figuur 3 implemente word in Listing 2. Soos in die vorige voorbeeld, is inisialisering uitgevoer in die klas konstruktor, en elke oproep om CalcRootMean () voer een iterasie van gemiddelde / vierkant - wortel berekening. Aanbieding 2. C-klas wat die swaai-punt weergawe van figuur 3 Met 'n bietjie sorg implemente, figuur 3 kan ook in vaste punt rekenkundige geïmplementeer soos in die lys van 3. In hierdie voorbeeld is skalering geïmplementeer om te verseker geldige resultate. Wanneer voldoende woord grootte teenwoordig is, is x afgeskaal deur nAvgCoeff voor afdeling om die akkuraatheid van die resultaat te maksimeer. Aanbieding 3. C-klas wat die vaste punt weergawe van figuur 3 Verdeel-vrye RMS met behulp van normalisering Nou goed kyk na die spesiale geval van die berekening van 'n WGK waarde op vaste punt hardeware wat nie 'n vinnige kloof werking het nie, wat is 'n tipiese implemente vir lae-koste ingesluit verwerkers. Hoewel baie van hierdie verwerkers afdeling kan verrig, doen hulle dit 'n bietjie op 'n tyd, wat ten minste een siklus vir elke bietjie woordlengte. Verder moet sorg gedra word om te verseker dat die RMS berekening geïmplementeer met voldoende numeriese presisie. Met vaste punt hardeware, die vierkant van 'n waarde vereis twee keer die aantal bisse na die oorspronklike data in presisie behou. Met dit in gedagte, manipuleer ons Vergelyking 14 in die volgende: Hoewel die uitdrukking x (n) 2 8211 y (N 82111) 2 moet bereken word met 'n dubbele presisie, hierdie implementering leen hom tot 'n beduidende optimalisering. Let daarop dat 'n / 2 y (N 82111) tree op soos 'n vlak-afhanklike gemiddelde koëffisiënt. As 'n effense tydafhanklike variansie in die gemiddelde tyd geduld kan word nie - dit is dikwels die geval - 1 / y (N 82111) kan erg benader. Op 'n swaai-punt verwerker, die verskuiwing van die gemiddelde koëffisiënt na links deur die negatiewe van die eksponent by benadering die kloof werking. Hierdie proses word algemeen na verwys as normalisering. Sommige vaste punt ADVs kan normalisering verrig deur die tel van die voorste stukkies van die akkumulator en die verskuiwing van die akkumulator deur dat die getal bisse. 2 In beide gevalle, sal die gemiddelde koëffisiënt word afgekap om die naaste krag van twee, sodat die koëffisiënt moet vermenigvuldig word met 3/2 die resultaat te rond. Dit implementering word in vergelyking 16. Figuur 4 is die sein-vloeidiagram wat Vergelyking 16. verteenwoordig Net soos in Figuur 3, x (N) en y (N 82111) moet groter as nul wees. 'N Monster-kode aanbieding wat implemente Figuur 4 word in Listing 4. Hierdie implementering vergadering-taal is vir die Freescale (voorheen Motorola) DSP563xx 24-bit vaste punt verwerker. Notering 4. Freescale DSP563xx vergadering implementering van verdeel-vrye RMS met behulp van normalisering van die kursus, kan hierdie metode toegepas word, selfs sonder 'n vinnige normalisering. Jy kan 'n lus implementeer om x (n) 2 8211 y (N 82111) 2 skuif na links vir elke voorste bietjie in y (N 82111). Dit sal stadiger wees, maar geïmplementeer kan word met selfs die eenvoudigste van verwerkers. Hoërorde Berekening van gemiddelde hoër orde rekursiewe gemiddelde kan bereik word deur die invoeging van addisionele gemiddelde filters voor die iteratiewe vierkantswortel. Hierdie filters kan net een of meer kaskade eerste-orde rekursiewe afdelings. Eerste-orde artikels het die voordeel van die vervaardiging geen oorskiet in die stap reaksie. Daarbenewens is daar is net een koëffisiënt te pas en kwantisering effekte (in die eerste plek van kommer vir vaste punt implementering) is veel minder as dié van hoër-orde filters. Die implementeerder moet bewus wees dat die waterval eerste-orde artikels verander die definisie van 'n gemiddelde tyd. 'N eenvoudige, maar bruto benadering wat die vorige definisie van stap reaksie handhaaf is om eenvoudig te verdeel die gemiddelde tyd van elke eerste-orde artikel deur die totale aantal afdelings. Dit is egter die implementeerders verantwoordelikheid om te kontroleer dat hierdie benadering is geskik vir die toepassing. Tweede-orde artikels kan ook gebruik word, as jy wil (byvoorbeeld) 'n Bessel-Thomson filter reaksie. As tweede-orde artikels word gebruik, sy bes om 'n vreemde-orde saamgestelde reaksie kies sedert die gemiddelde vierkante-wortel filter by benadering die finale eerste-orde filter met Q 0.5. Sorg moet gedra word om die oorskiet van hierdie gemiddelde filter verminder. die gemiddelde tyd van die filter in real-time aanpassing sal bewys moeiliker, want daar is 'n aantal koëffisiënte wat in harmonie moet aangepas word om stabiliteit te verseker. Resultate Drie metodes van die berekening van die RMS vlak met mekaar vergelyk word in Figuur 5. Die gemiddelde tyd is ingestel op 100ms en die insette is 'n sekonde van 1 / f geraas met 'n 48kHz monsterfrekwensie. Die eerste spoor is die ware WGK waarde bereken word deur vergelyking 6. Die tweede spoor is die RMS berekening met behulp van vergelyking 14. Die derde spoor is die nie-kloof berekening van vergelyking 16. Die vierde spoor is die WGK waarde met behulp van die wedersydse vierkante-wortel metode van vergelyking 13. Vir die grootste deel, die vier spore line-up mooi. Al vier benaderings blyk te konvergeer teen dieselfde tempo as die ware WGK waarde. Soos verwag, het die grootste afwyking van die ware WGK waarde is die aanpassing van die vergelyking 16. Dit benadering sal die grootste fout tydens groot veranderinge in die vlak van die insetsein het, hoewel hierdie fout tydelike is: die optimale benadering sal konvergeer op die ware WGK waarde wanneer die vlak van die insetsein konstant. Die foute tussen die drie benaderings en die ware WGK waarde word in Figuur 6. Die fout van die RMS benadering met behulp van vergelyking 14 stadig afneem totdat dit onder 1E82117, wat voldoende is vir 24-bis akkuraatheid. Die optimale aanpassing van vergelyking 16 is aansienlik erger, omstreeks 1E82114, maar nog steeds goed genoeg vir baie toepassings. Die benadering wat die wedersydse vierkantswortel gebruik is in die geraas - minder as 1E82119. Vir baie krities swaai-punt aansoeke, dit is die doeltreffende metode van keuse. Soos jy sou verwag, sal die foute wat hierbo bespreek is erger met korter gemiddelde tye en beter met langer gemiddeld tye. Tabel 1 gee 'n opsomming van die geskatte fout teenoor gemiddeld tyd van hierdie drie metodes, saam met 'n geskikte hardeware argitektuur vereistes. Geskik vir die gemiddelde leser Deur die kombinasie van rekursiewe gemiddelde met Newton metode vir die berekening van die vierkantswortel, sal jy kry 'n baie doeltreffende metode vir die berekening van die wortel-gemiddelde. Hoewel die drie metodes ek hier aangebied word ontwikkel vir verskillende hardeware en elk, tot 'n mate, handel dryf af hardeware vermoëns vir foute, moet die meeste van julle een van hierdie metodes wat geskik is vir jou aansoek te vind. Brian Neunaber is tans digitale stelsels argitek van sagteware en firmware op QSC klank produkte. Hy het real-time digitale klank algoritmes en stelsels wat ontwerp is vir QSC en St Louis Musiek en het 'n MSEE van Suider-Illinois University. Jy kan hom kontak by brianneunaberqscaudio. Eindnote: 1. D. G. Zill. Calculus met Analitiese Meetkunde, 2nd ed. . PWS-Kent, Boston, pp. 170-176, 1988. 2. Motorola. DSP56300 Familie Handleiding, ds 3, Motorola literatuur verspreiding, Denver, 2000. In 1996, 'n artikel in dr Dobbs tydskrif het 'n vierkantswortel algoritme wat net skofte gebruik en voeg - geen vermeerder en beslis nie verdeel. Dit kan hier gevind word: www. ddj / dokumente / s962 / ddj9604l / (registrasie vereis). Ive is die gebruik van hierdie in elke werk en elke projek sedertdien - sy by verre die vinnigste heelgetal vierkantswortel rondom, en Im verbaas dat sy nog so min bekend. Probeer dit - jy sal nooit terugkyk - Paul Hills LandisGyr Ltd Verenigde Koninkryk

No comments:

Post a Comment