Flytta genomsnitt: Vad är de Bland de mest populära tekniska indikatorerna används glidande medelvärden för att mäta riktningen för den nuvarande trenden. Varje typ av glidande medelvärde (vanligtvis skrivet i denna handledning som MA) är ett matematiskt resultat som beräknas genom att medelvärda ett antal tidigare datapunkter. När det bestämts är det resulterande genomsnittet plottat på ett diagram för att låta handlare se på jämn data istället för att fokusera på de dagliga prisfluktuationerna som är inneboende på alla finansmarknader. Den enklaste formen av ett glidande medel, lämpligt känt som ett enkelt glidande medelvärde (SMA), beräknas genom att ta det aritmetiska medelvärdet av en given uppsättning värden. För att beräkna ett grundläggande 10-dagars glidande medelvärde skulle du lägga till slutkurserna från de senaste 10 dagarna och sedan dela resultatet med 10. I Figur 1 är summan av priserna under de senaste 10 dagarna (110) dividerat med antalet dagar (10) för att komma fram till 10-dagars genomsnittet. Om en näringsidkare vill se ett 50-dagars medel istället skulle samma typ av beräkning göras, men det skulle inkludera priserna under de senaste 50 dagarna. Det resulterande genomsnittet under (11) tar hänsyn till de senaste 10 datapunkterna för att ge handlare en uppfattning om hur en tillgång prissätts relativt de senaste 10 dagarna. Kanske du undrar varför tekniska handlare kallar det här verktyget ett glidande medelvärde och inte bara en vanlig medelvärde. Svaret är att när de nya värdena blir tillgängliga måste de äldsta datapunkterna släppas från uppsättningen och nya datapunkter måste komma in för att ersätta dem. Således flyttar datasatsen ständigt för att redogöra för nya data när den blir tillgänglig. Denna beräkningsmetod säkerställer att endast den nuvarande informationen redovisas. I figur 2 flyttas den röda rutan (representerande de senaste 10 datapunkterna) till höger om det nya värdet på 5 och det sista värdet av 15 släpps från beräkningen. Eftersom det relativt lilla värdet på 5 ersätter det höga värdet på 15, förväntar du dig att genomsnittet av datamängden minskar, vilket det gör, i det här fallet från 11 till 10. Vad ser Moving Averages Like När värdena på MA har beräknats, de är plottade på ett diagram och sedan anslutna för att skapa en rörlig genomsnittslinje. Dessa kurvor är vanliga på diagrammen för tekniska handlare, men hur de används kan variera drastiskt (mer om detta senare). Som du kan se i Figur 3 är det möjligt att lägga till mer än ett glidande medelvärde till ett diagram genom att justera antalet tidsperioder som används i beräkningen. Dessa böjda linjer kan verka distraherande eller förvirrande först, men du kommer att bli vana vid dem som tiden går vidare. Den röda linjen är helt enkelt genomsnittspriset under de senaste 50 dagarna, medan den blå linjen är genomsnittspriset under de senaste 100 dagarna. Nu när du förstår vad ett rörligt medelvärde är och hur det ser ut, introducera väl en annan typ av rörligt medelvärde och undersöka hur det skiljer sig från det tidigare nämnda enkla glidande medlet. Det enkla glidande medlet är extremt populärt bland handlare, men som alla tekniska indikatorer har det kritiker. Många individer hävdar att användbarheten av SMA är begränsad eftersom varje punkt i dataserien är densamma, oavsett var det inträffar i sekvensen. Kritiker hävdar att de senaste uppgifterna är mer signifikanta än de äldre uppgifterna och bör ha större inverkan på slutresultatet. Som svar på denna kritik började näringsidkare lägga större vikt vid de senaste uppgifterna, som sedan har lett till uppfinningen av olika typer av nya medelvärden, varav den mest populära är det exponentiella rörliga genomsnittet (EMA). (För vidare läsning, se Grunderna för viktade rörliga medelvärden och vad som är skillnaden mellan en SMA och en EMA) Exponentiell rörlig genomsnitts Det exponentiella rörliga genomsnittsvärdet är en typ av rörligt medelvärde som ger större vikt till de senaste priserna i ett försök att göra det mer responsivt till ny information. Att lära sig den något komplicerade ekvationen för att beräkna en EMA kan vara onödig för många handlare, eftersom nästan alla kartläggningspaket gör beräkningarna för dig. Men för dig matte geeks där ute, här är EMA-ekvationen: När du använder formeln för att beräkna den första punkten hos EMA kan du märka att det inte finns något värde tillgängligt för att använda som tidigare EMA. Detta lilla problem kan lösas genom att starta beräkningen med ett enkelt glidande medelvärde och fortsätta med ovanstående formel därifrån. Vi har försett dig med ett provkalkylblad som innehåller verkliga exempel på hur man beräknar både ett enkelt glidande medelvärde och ett exponentiellt glidande medelvärde. Skillnaden mellan EMA och SMA Nu när du har en bättre förståelse för hur SMA och EMA beräknas, kan vi titta på hur dessa genomsnitt skiljer sig åt. Genom att titta på beräkningen av EMA kommer du att märka att större vikt läggs på de senaste datapunkterna, vilket gör det till en typ av vägt genomsnitt. I Figur 5 är antalet tidsperioder som används i varje genomsnitt identiskt (15), men EMA svarar snabbare på de förändrade priserna. Lägg märke till hur EMA har ett högre värde när priset stiger och faller snabbare än SMA när priset sjunker. Denna respons är den främsta anledningen till att många handlare föredrar att använda EMA över SMA. Vad betyder de olika dagarna Medflyttande medelvärden är en helt anpassningsbar indikator, vilket innebär att användaren fritt kan välja vilken tidsram de vill ha när de skapar genomsnittet. De vanligaste tidsperioderna som används i glidande medelvärden är 15, 20, 30, 50, 100 och 200 dagar. Ju kortare tidsintervallet användes för att skapa medelvärdet desto känsligare blir det för prisändringar. Ju längre tidspanelen är, desto mindre känslig eller jämnare blir medeltalet. Det finns ingen rätt tidsram att använda när du ställer in dina glidande medelvärden. Det bästa sättet att ta reda på vilken som passar dig bäst är att experimentera med ett antal olika tidsperioder tills du hittar en som passar din strategi. Flyttande medelvärden: Hur man använder demberäkningsrörande medelvärde Detta VI beräknar och visar det glidande medelvärdet, med ett förinställt nummer. Först initierar VI två skiftregister. Toppskiftregistret initialiseras med ett element och lägger sedan kontinuerligt det föregående värdet med det nya värdet. Detta skiftregister håller summan av de sista x-mätningarna. Efter att ha delat resultaten av add-funktionen med det förinställda värdet beräknar VI det glidande medelvärdet. Det nedre skiftregistret innehåller en array med dimensionen Average. Detta skiftregister håller alla värden av mätningen. Ersättningsfunktionen ersätter det nya värdet efter varje slinga. Detta VI är mycket effektivt och snabbt eftersom det använder funktionen ersättningselement inuti mellanslingan, och den initierar arrayen innan den går in i slingan. Detta VI skapades i LabVIEW 6.1. Bookmark amp ShareSimple Moving Average VI Vanligtvis när folk pratar om ett rörligt medelvärde, menar de ersätt punkt N med medelvärdet av M-punkter som omger punkt N. Anta att jag har 100 poäng vars värden är 1, 2, 3. 100 och jag vill gör ett 5-punkts rörande medelvärde. Det första att notera är att det finns ett glidande medelvärde för den tredje punkten är genomsnittet av 1, 2, 3, 4, 5 3. Medelvärdet av den fjärde punkten är medeltalet 2, 3, 4, 5, 6 4. Detta är dock kanske för enkelt ett exempel. Vad sägs om genomsnittet av en stegfunktion, 0 från 1 till 10, därefter 20 därefter. Återigen, kasta ut poäng 1 och 2. Medelvärdet av poäng 1-5 (för att gå till punkt 3) 0 (eftersom alla punkter är 0). På samma sätt som punkt 4, 5, 6,7 och 8. Men punkt 9 är medeltalet 0, 0, 0, 0, 20 4. Vad sägs om punkt 10 Nå borde det vara medeltalet 0, 0, 0 , 20, 20 8, men kom ihåg att inte skriva över punkt 9 Hmm, verkar som om vi måste behålla två kopior av Array (vilket är i allmänhet dyrt). Det finns flera sätt att undvika att göra detta. Förstår du var problemet uppstår i föregående stycke. Om inte, försök att göra det med penna och papper (eller försök att koda det i LabVIEW). Jag ger dig svaret så att du kan kolla - det rörliga genomsnittet för stegfunktionen är -, -, 0, 0, 0, 0, 0, 0, 0, 4, 8, 12, 16, 20, 20 , 20. -, - (var - är de tomma värdena i slutet av arrayen, punkterna du inte har tillräckliga grannar). P. S. - det skulle inte överraska mig om det finns en LabVIEW-funktion som gör det här för dig. Men om du lär dig LabVIEW och vill ha en bättre förståelse för hur de algoritmer du pluggar i arbetet gör det aldrig ont att spela och prova själv. Du kan till och med komma med en förbättring (flera av oss har gjort det.). tack för sensibilisering när det gäller de fina punkterna i Moving Average-metoden. Detta efteråt är ett statistiskt verktyg som hjälper till att se vad du vill se abstrahera distraktorerna. Så är metoden bunden att ha några brister i vissa situationer eller sammanhang. Men jag antar att den passar perfekt för min snygga DF-datalogging - det är ett tryck eller en temperatur eller en flödessignal - och jag förvärvar på något som 400 samples sek och använder sedan ett genomsnittligt enskilt prov. Och processen är ganska långsam, eftersom min huvudkod körs med högst 20 Hz. Så när jag gör ett 5 provmätningsmedelvärde kommer mitt första prov 5 x 50 m senare, och för varje 50 m får jag ett giltigt prov. I grund och botten är jag mer oroad över trenderna och inte spotvärden. I detta finns det lite oro för missade prov eller skurvärden. Självklart skulle jag inte våga använda detta för en stegfunktion. Det skulle vara grymt. Raghunathan LV2012 till Automate Hydraulic Test riggar. Meddelande 4 av 15 (1,014 Visningar) Re: Simple Moving Average VI 03-30-2016 11:58 Det finns en genomsnittlig ptbypt som gör detsamma. Du kan inspektera koden om du vill. En stor fel i din kod är det faktum att du ständigt växer och krympar en befintlig matris. Du bör försöka hitta en lösning som fungerar på plats i en fast storlek. Måste exempel har publicerats på forumet genom åren (se hee till exempel). Medel bryr sig inte om elementen är i ordning, så du kan helt enkelt ersätta det äldsta elementet, oavsett var den ligger. Du förbereder också det nya elementet till början av en befintlig array, vilket alltid är mycket dyrare än att lägga till i slutet. din urvalsstorlek kan inte ändras när VI körs. Ditt skiftregister bör initialiseras med en tom array, inte en array som redan innehåller ett enda element som är noll. (Denna extra noll ger felaktiga medelvärden) Din kod ska göras i en subVI så att den kan återanvändas (liknar den ptbypt-versionen). Din VI kan aldrig stoppas, bara avbruten. Bra optimeringstips. Poängen att initiera med Zero saknade mig. Och ja, användaren ska inte ändra provstorleken när den börjar köra. Slutligen ska jag göra en SubVI och hantera saker som att stoppa osv. När det gäller punkten för att lägga ut än att lägga till det nya värdet till array, kanske det finns en prestationsstraff, men med tanke på storleken på mitt array är jag säker på att CPU inte bryr sig annorlunda . Men för mig måste det vara så här som jag använder de slutliga data för att rita en trend av en fysisk parameter. Tack för din tid. Raghunathan LV2012 till Automate Hydraulic Test riggar. tack för sensibilisering när det gäller de fina punkterna i Moving Average-metoden. Detta efteråt är ett statistiskt verktyg som hjälper till att se vad du vill se abstrahera distraktorerna. Så är metoden bunden att ha några brister i vissa situationer eller sammanhang. Men jag antar att den passar perfekt för min snygga DF-datalogging - det är ett tryck eller en temperatur eller en flödessignal - och jag förvärvar på något som 400 samples sek och använder sedan ett genomsnittligt enskilt prov. Och processen är ganska långsam, eftersom min huvudkod körs med högst 20 Hz. Så när jag gör ett 5 provmätningsmedelvärde kommer mitt första prov 5 x 50 m senare, och för varje 50 m får jag ett giltigt prov. Aha Så du vill inte ha ett glidande medelvärde, men bara ett enkelt medelvärde. Det är mycket lättare. Hennes idé (som fungerar mycket bättre med en ProducerConsumer Design) - Säg att du är sampling vid 400Hz, vill spara data vid 400 Hz (dvs spara alla data till disk), men vill visa vid 20 Hz (eftersom du vill se trender, en längre tidsbas, etc.). Ställ in ditt AD-system för att samla 20 prover på 400Hz (Observera att du kan samla N-kanaler samtidigt, vilket ger dig en 2D-serie av prover. Då du får data (vid 20 Hz) från AD (gör detta till producenten) Konsumenten börjar med att skriva data till disken (bör inte ta mycket tid). Nu har du en 2D-serie - i en For Loop, i kanal för kanal, genomsnitt 20 poäng. Nu har du en 1D-array med en genomsnittlig punkt för varje kanal. Fortsätt och plott den. Observera att detta schema (a) använder all data, (b) hanterar flerkanalsdata med aplomb (och om du är från Mellanöstern där de växer, kan du också hantera dina data med en saftig plommon), och (c) låter dig samla dina data från AD-utrustningen, spara dina data till disken och hålla alla punkter och visa dina data på skärmen använder alla dina poäng men också medelvärdet för att förbättra visuellt signalförhållande, allt utan att förlora data (jag har gjort exakt detta med 24 kanaler vid 1 KHz, med data tas på ett fjärrsystem och skickas till datorn via TCPIP, så vi har också TCP-bearbetning i loop). Välkommen till den spännande världen av datainsamling och bearbetning med LabVIEW. Lita på mig, det här är ett underbart system för att göra den här typen av arbete. Baserat på den feedback jag fick på mitt ursprungliga VI har jag förfinat Moving Average-koden i en subVI. Jag använde sedan den för att genomsnittsa en simulerad 10Channel-data - bara för att hålla sakerna enkla såg jag till att alla10 kanaler hade identiska data. Man skulle då förvänta sig att få samma glidande medelvärde för alla 10 kanalerna. Jag är förvånad över den lilla variationen jag märker mellan kanaler - i allmänhet är de nära men inte exakta. Och bara för att förklara processen jag försöker har jag också enclsoed en XLS. Så var kommer variationen in från. Det enhetliga skiftregistret i del VI. Raghunathan LV2012 till Automate Hydraulic Test riggar. Meddelande 9 av 15 (917 Visningar) Re: Simple Moving Average VI altenbach 04-01-2016 10:25 Din kod gör fortfarande ingen mening. När du ringer subVI en skalar åt gången får du inte vad du vill, eftersom skiftregistret bara hämtar de sista N-skalärerna, oavsett vilken kanal den är från. Din kod är fortfarande mycket ineffektiv och konvolverad. (t. ex. varför använder du fortfarande inlägg i array för att lägga till (båda i maniken i underdelen). (Du kan använda en reenetrant subVI och en parallell innerlig FOR-loop, men det verkar också för komplicerat) Om du vill göra en köra genomsnittet på varje kanal måste subVI hålla en 2D-array i subVI. Allt detta har gjorts tidigare. Meddelande 10 av 15 (901 Visningar)
Comments
Post a Comment