Wednesday 20 September 2017

Central Glidande Medelvärde Algoritm


Grunderna för algoritmisk handel: Begrepp och exempel En algoritm är en specifik uppsättning tydliga instruktioner som syftar till att utföra en uppgift eller process. Algoritmisk handel (automatiserad handel, blackbox-handel eller helt enkelt algo-trading) är processen med att använda datorer som är programmerade att följa en definierad uppsättning instruktioner för att placera en handel för att generera vinst med en hastighet och frekvens som är omöjligt för en mänsklig näringsidkare. De definierade reglerna baseras på timing, pris, kvantitet eller någon matematisk modell. Bortsett från vinstmöjligheter för näringsidkaren gör algo-trading marknaderna mer likvida och gör handeln mera systematisk genom att utesluta emotionella mänskliga effekter på handelsverksamheten. Antag att en näringsidkare följer dessa enkla handelskriterier: Köp 50 aktier i ett lager när dess 50-dagars glidande medelvärde går över det 200-dagars glidande genomsnittet. Sälj aktier av aktierna när dess 50-dagars glidande medelvärde går under det 200-dagars glidande genomsnittet Med hjälp av denna uppsättning av två enkla instruktioner är det enkelt att skriva ett datorprogram som automatiskt kommer att övervaka aktiekursen (och de rörliga genomsnittliga indikatorerna) och placera köp - och säljorder när de fastställda villkoren är uppfyllda. Näringsidkaren behöver inte längre hålla koll på levande priser och grafer eller lägga in orderen manuellt. Det algoritmiska handelssystemet gör det automatiskt för honom genom att korrekt identifiera handelsmöjligheten. (För mer om glidande medelvärden, se: Enkla rörliga genomsnittsvärden. Trenden utgår.) Algo-trading ger följande fördelar: Handlar utförda till bästa möjliga priser. Instant och exakt orderingång (därmed höga chanser att genomföras på önskade nivåer). tidsbestämd korrekt och omedelbart för att undvika betydande prisförändringar. Minskade transaktionskostnader (se exempel på genomförandebortfall nedan). Samtidiga automatiserade kontroller på flera marknadsförhållanden. Minskad risk för manuella fel vid placering av affärerna. Backtest algoritmen baserat på tillgänglig historisk och realtidsdata. möjligheter till misstag av mänskliga handlare baserade på känslomässiga och psykologiska faktorer Den största delen av dagens algo-trading är högfrekvenshandel (HFT) som försöker kapitalisera att placera ett stort antal order med mycket snabba hastigheter över flera marknader och flera beslut parametrar, baserat på förprogrammerade instruktioner. (För mer om handel med högfrekventa handelar, se: Strategier och hemligheter hos högfrekvenshandeln). Algo-trading används i många former av handels - och investeringsverksamhet, bland annat: Mid till långsiktiga investerare eller köpsidor (pensionsfonder , fonder, försäkringsbolag) som köper aktier i stora mängder men inte vill påverka lagerpriserna med diskreta investeringar i stor volym. Kortfristiga näringsidkare och sälja sidodeltagare (marknadsmäklare, spekulanter och arbitrageare) drar nytta av automatiserad handelstillverkning i tillägg algo-handelshjälpmedel för att skapa tillräcklig likviditet för säljare på marknaden. Systematiska handlare (trendföljare, parhandlare, hedgefonder etc.) finner det mycket effektivare att programmera sina handelsregler och låta programmet handla automatiskt. Algoritmisk handel ger ett mer systematiskt tillvägagångssätt för aktiv handel än metoder baserade på en mänsklig handlare intuition eller instinkt. Algoritmiska handelsstrategier Alla strategier för algoritmisk handel kräver en identifierad möjlighet som är lönsam när det gäller förbättrat resultat eller kostnadsminskning. Följande är vanliga handelsstrategier som används i algo-trading: De vanligaste algoritmiska handelsstrategierna följer trender i glidande medelvärden. kanalbrytningar. prisnivå rörelser och relaterade tekniska indikatorer. Dessa är de enklaste och enklaste strategierna för att genomföra genom algoritmisk handel, eftersom dessa strategier inte innebär att man gör några förutsägelser eller prisprognoser. Trader initieras baserat på förekomsten av önskvärda trender. som är enkla och raka att implementera genom algoritmer utan att komma in i komplexiteten av prediktiv analys. Ovanstående exempel på 50 och 200 dagars glidande medelvärde är en populär trendstrategi. (För mer om trendstrategier se: Enkla strategier för att kapitalisera på trender.) Att köpa ett dubbelt noterat lager till ett lägre pris på en marknad och samtidigt sälja det till ett högre pris på en annan marknad ger prisskillnaden som riskfri vinst eller arbitrage. Samma operation kan replikeras för aktier kontra futuresinstrument, eftersom prisskillnaderna existerar från tid till annan. Genomföra en algoritm för att identifiera sådana prisskillnader och placera orderna möjliggör lönsamma möjligheter på ett effektivt sätt. Indexfonder har definierat perioder av ombalansering för att få sina innehav i nivå med sina respektive referensindex. Detta skapar lönsamma möjligheter för algoritmiska näringsidkare, som utnyttjar förväntad handel som erbjuder 20-80 basispoäng vinst beroende på antalet aktier i indexfonden, precis innan indexfonden ombalanseras. Sådana branscher initieras via algoritmiska handelssystem för snabb genomförande och bästa priser. Många beprövade matematiska modeller, som den delta-neutrala handelsstrategin, som tillåter handel på kombination av alternativ och dess underliggande säkerhet. där affärer placeras för att kompensera positiva och negativa delta så att portföljen delta hålls noll. Medelåtervändningsstrategin bygger på idén att de höga och låga priserna på en tillgång är ett tillfälligt fenomen som regelbundet återgår till deras medelvärde. Identifiera och definiera ett prisklass och en implementeringsalgoritm baserad på det gör det möjligt att placera affärer automatiskt när priset på tillgången bryter in och ut ur sitt definierade intervall. Volymvägd genomsnittsprisstrategi bryter upp en stor order och släpper dynamiskt bestämda mindre bitar av ordern till marknaden med hjälp av stockspecifika historiska volymprofiler. Syftet är att genomföra ordern nära Volymvägd Medelpris (VWAP) och därigenom dra nytta av genomsnittspriset. Tidsvägd genomsnittsprisstrategi bryter upp en stor order och släpper dynamiskt bestämda mindre bitar av ordern till marknaden med jämnt fördelade tidsluckor mellan start - och sluttid. Syftet är att genomföra ordern nära medelpriset mellan start - och sluttiderna och därigenom minimera marknadseffekterna. Till dess att ordern är fullt fylld fortsätter denna algoritm att skicka delbeställningar, enligt det definierade deltagandekvoten och enligt volymen på marknaden. Den relaterade stegstrategin skickar order till en användardefinierad procentandel av marknadsvolymer och ökar eller minskar denna delaktighet när aktiekursen når användardefinierade nivåer. Strategin för genomförandet av underskottet syftar till att minimera genomförandekostnaden för en order genom att handla i realtidsmarknaden och därigenom spara på orderkostnaden och dra nytta av möjlighetskostnaden för försenat genomförande. Strategin kommer att öka den riktade delaktighetsgraden när aktiekursen flyttas positivt och minska den när aktiekursen går negativt. Det finns några speciella klasser av algoritmer som försöker identifiera händelser på andra sidan. Dessa sniffningsalgoritmer, som till exempel används av en försäljningssidor, har den inbyggda intelligensen för att identifiera existensen av några algoritmer på köpesidan av en stor order. Sådan upptäckt genom algoritmer hjälper marknadsmakaren identifiera stora ordermöjligheter och gör det möjligt för honom att dra nytta av att fylla orderna till ett högre pris. Detta identifieras ibland som high-tech front-running. (För mer om handel med högfrekventa handelar och bedrägerier, se: Om du köper aktier online är du involverad i HFT.) Tekniska krav för algoritmisk handel Genom att implementera algoritmen med ett datorprogram är den sista delen, klubbad med backtesting. Utmaningen är att omvandla den identifierade strategin till en integrerad datoriserad process som har tillgång till ett handelskonto för beställning. Följande behövs: Datorprogrammeringskunskap för att programmera den nödvändiga handelsstrategin, de anställda programmörerna eller färdiga handelsprogramvaran Nätverksanslutning och tillgång till handelsplattformar för orderingång Tillgång till marknadsdata feeds som kommer att övervakas av algoritmen för möjligheter att placera order Förmåga och infrastruktur att backtest systemet en gång byggt innan det går live på reala marknader Tillgängliga historiska data för backtesting, beroende på komplexiteten av regler som implementeras i algoritmen Här är ett omfattande exempel: Royal Dutch Shell (RDS) är listat på Amsterdam Fondbörs (AEX) och London Stock Exchange (LSE). Låt oss bygga en algoritm för att identifiera arbitrage möjligheter. Här är några intressanta observationer: AEX handlar i euro, medan LSE handlar i Sterling Pounds På grund av en timmes tidsskillnad öppnar AEX en timme tidigare än LSE, följt av båda börserna samtidigt som de handlas under de närmaste timmarna och sedan endast handlar i LSE under den sista timmen när AEX stängs Kan vi undersöka möjligheten till arbitragehandel på Royal Dutch Shell-börsen som är listad på dessa två marknader i två olika valutor Ett datorprogram som kan läsa aktuella marknadspriser Prismatningar från både LSE och AEX A-valutahastighet för GBP-EUR-växelkurs Beställa placeringskapacitet som kan styra ordern till rätt utbyte Backtestningskapacitet på historiska prismatningar Dataprogrammet ska utföra följande: Läs det inkommande prismatningen av RDS-lager från båda börserna Använda de tillgängliga valutakurser . konvertera priset på en valuta till andra Om det finns en tillräckligt stor prisskillnad (rabatt på mäklarkostnader) som leder till ett lönsamt tillfälle, placerar du köpsordern på lägre prissättning och säljarorder på högre prissättning. Om beställningarna exekveras som Önskad, arbitrage vinsten kommer att följa Enkel och lätt Men övningen av algoritmisk handel är inte så enkelt att upprätthålla och genomföra. Kom ihåg att om du kan placera en algo-genererad handel, så kan andra marknadsaktörer. Följaktligen fluktuerar priserna i milli - och till och med mikrosekunder. I det ovanstående exemplet, vad händer om din köphandel blir verkställd, men sälja handel, eftersom försäljningspriserna ändras när din order träffar marknaden. Du kommer att sluta sitta med en öppen position. göra din arbitrage strategi värdelös. Det finns ytterligare risker och utmaningar: till exempel riskerar systemfel, nätverksanslutningsfel, tidsfördröjningar mellan handelsorder och utförande, och viktigast av allt, ofullkomliga algoritmer. Ju mer komplexa en algoritm krävs, desto strängare backtesting behövs innan den tas i bruk. Kvantitativ analys av algoritmernas prestanda spelar en viktig roll och bör granskas kritiskt. Det är spännande att gå till automatisering med hjälp av datorer med en uppfattning att tjäna pengar utan problem. Men man måste se till att systemet är noggrant testat och att gränserna är nödvändiga. Analytiska handlare bör överväga att lära sig programmering och byggsystem på egen hand, för att vara övertygade om att implementera rätt strategier i idiotsäkert sätt. Försiktig användning och noggrann testning av algo-handel kan skapa lönsamma möjligheter. Artikel 50 är en förhandlings - och avvecklingsklausul i EU-fördraget som beskriver de åtgärder som ska vidtas för något land som. Ett första bud på ett konkursföretagets tillgångar från en intresserad köpare vald av konkursbolaget. Från en pool av budgivare. Beta är ett mått på volatiliteten eller systematisk risk för en säkerhet eller en portfölj i jämförelse med marknaden som helhet. En typ av skatt som tas ut på kapitalvinster som uppkommit av individer och företag. Realisationsvinster är vinsten som en investerare. En order att köpa en säkerhet till eller under ett angivet pris. En köpgränsorder tillåter näringsidkare och investerare att specificera. En IRS-regel (Internal Revenue Service Rule) som tillåter utbetalningar från ett IRA-konto i samband med straff. Regeln kräver det. En närmare titt på Advanced CODAS Moving Average Algorithm Mångsidigt glidande medelvärde i Advanced CODAS-algoritmen filtrerar vågformstrål, extrakt betyder och eliminerar baslinjedrift. Det rörliga genomsnittet är en enkel matematisk teknik som används för att eliminera avvikelser och avslöja den verkliga trenden i en samling datapunkter. Du kanske är bekant med det från medelvärde bullriga data i ett freshman-fysikprov eller från att spåra värdet av en investering. Du kanske inte vet att det rörliga genomsnittsvärdet också är en prototyp av det ändliga impulsresponsfiltret, den vanligaste typen av filter som används i datorbaserad instrumentering. I fall där en given vågform är störd med brus, där ett medel måste extraheras från en periodisk signal eller där en långsamt drivande baslinje behöver elimineras från en högre frekvenssignal, kan ett glidande medelfilter appliceras för att uppnå önskat resultat. Den flytta genomsnittliga algoritmen för Advanced CODAS erbjuder denna typ av vågformsfiltreringsprestanda. Advanced CODAS är ett analyspaket som fungerar på befintliga vågformatfiler skapade av WinDaq eller andra generationens WinDaq-datainsamlingspaket. Förutom den rörliga genomsnittsalgoritmen innehåller Advanced CODAS även en rapportgenerator och programrutiner för vågformsintegration, differentiering, topp - och dalfångande, rätning och aritmetiska operationer. Flytta genomsnittlig filterteori DATAQ Instruments rörlig medelalgoritm möjliggör stor flexibilitet vid vågformsfiltrering. Den kan användas som ett lågpassfilter för att dämpa bruset som är inneboende i många typer av vågformer, eller som ett högpassfilter för att eliminera en drivande baslinje från en högre frekvenssignal. Förfarandet som används av algoritmen för att bestämma mängden filtrering innebär användning av en utjämningsfaktor. Denna utjämningsfaktor, som styrs av dig via mjukvaran, kan ökas eller minskas för att ange antalet faktiska vågformsdatapunkter eller prover som det rörliga genomsnittet kommer att spänna över. Vilken periodisk vågform som helst kan anses vara en lång sträng eller samling av datapunkter. Algoritmen åstadkommer ett glidande medelvärde genom att ta två eller flera av dessa datapunkter från den förvärvade vågformen, addera dem, dividera deras summa med det totala antalet datapunkter som adderas, ersätta den första datapunkten för vågformen med det genomsnittliga justerade beräkningen, och Upprepa stegen med andra, tredje och så vidare datapunkter tills slutet av data uppnås. Resultatet är en andra eller genererad vågform bestående av den genomsnittliga data och med samma antal punkter som den ursprungliga vågformen. Figur 1 8212 Varje periodisk vågform kan ses som en lång sträng eller samling av datapunkter. I ovanstående illustration representeras i följd vågformsdatapunkter av quotyquot för att illustrera hur det rörliga genomsnittet beräknas. I detta fall användes en utjämningsfaktor på tre, vilket innebär att tre på varandra följande datapunkter från den ursprungliga vågformen läggs till, deras summa dividerat med tre, och sedan är denna kvot plottad som den första datapunkten för en genererad vågform. Processen upprepar sig med den andra, tredje och så vidare datapunkterna i den ursprungliga vågformen tills slutet av data uppnås. En speciell quotfeatheringquot-teknik är genomsnittlig början och slutpunkten för den ursprungliga vågformen för att säkerställa att den genererade vågformen innehåller samma antal datapunkter som originalet. Figur 1 illustrerar hur den glidande medelalgoritmen appliceras på vågformade datapunkter (som representeras av y). Illustrationen har en utjämningsfaktor på 3, vilket innebär att medelvärdet (representerat av a) kommer att beräknas över 3 på varandra följande vågformdata. Observera överlappningen som finns i de rörliga medelberäkningarna. Det är denna överlappande teknik, tillsammans med en särskild start - och slutpunktsbehandling som genererar samma antal datapunkter i den genomsnittliga vågformen som existerade i originalet. Hur algoritmen beräknar ett glidande medelvärde förtjänar en närmare titt och kan illustreras med ett exempel. Säg att vi har varit på en diet i två veckor och vi vill beräkna vår genomsnittliga vikt under de senaste 7 dagarna. Vi skulle summera vår vikt på dag 7 med vår vikt på dagarna 8, 9, 10, 11, 12 och 13 och multiplicera sedan med 17. För att formalisera processen kan detta uttryckas som: a (7) 17 (y 7) y (8) y (9). Y (13)) Denna ekvation kan vidare generaliseras. Det rörliga genomsnittet för en vågform kan beräknas med: Var: ett medelvärde n datapunktsläge s utjämningsfaktor y faktiskt datapunktvärde Figur 2 8212 Vågformen för belastningscellens utgång visas ursprungligt och ofiltrerat i toppkanalen och som en 11-punkts Flytta medelvärdet vågform i bottenkanalen. Bullret som uppstod på den ursprungliga vågformen berodde på de intensiva vibrationer som pressen skapade under förpackningsoperationen. Nyckeln till denna flexibilitet i algoritmer är dess brett utbud av utjämnade utjämningsfaktorer (från 2 till 1000). Utjämningsfaktorn bestämmer hur många faktiska datapunkter eller prover som ska beräknas. Att ange en positiv utjämningsfaktor simulerar ett lågpassfilter medan specificering av en negativ utjämningsfaktor simulerar ett högpassfilter. Med tanke på det absoluta värdet av utjämningsfaktorn gäller högre värden för större utjämningsbegränsningar på den resulterande vågformen och omvänt gäller lägre värden mindre utjämning. Med tillämpningen av den korrekta utjämningsfaktorn kan algoritmen också användas för att extrahera medelvärdet av en given periodisk vågform. En högre positiv utjämningsfaktor används vanligtvis för att generera medelvärdesvågformvärden. Tillämpning av den rörliga genomsnittsalgoritmen Ett framträdande inslag i den rörliga medelalgoritmen är att den kan appliceras många gånger till samma vågform om det behövs för att få önskat filtreringsresultat. Vågformsfiltrering är en mycket subjektiv övning. Vad som kan vara en ordentligt filtrerad vågform till en användare kan vara oacceptabelt bullrigt mot en annan. Bara du kan bedöma om antalet genomsnittliga poäng som valts var för högt, för lågt eller bara rätt. Flexibiliteten i algoritmen gör att du kan justera utjämningsfaktorn och göra ett annat pass genom algoritmen när tillfredsställande resultat inte uppnås med det ursprungliga försöket. Ansökan och förmågan hos den glidande medelalgoritmen kan illustreras bäst av följande exempel. Figur 3 8212 EKG-vågformen visades original och ofiltrerad i toppkanalen och som en 97-punkts rörlig medelvärdesvågform i bottenkanalen. Observera frånvaron av baslinjedrift i bottenkanalen. Båda vågformerna visas i komprimerat tillstånd för presentation. En brusreduktionsansökan I fall där en given vågform är störd med brus kan det glidande medelfiltret appliceras för att undertrycka bruset och ge en tydligare bild av vågformen. En avancerad CODAS-kund använde till exempel en press och en lastcell i en förpackningsoperation. Deras produkt skulle komprimeras till en förutbestämd nivå (övervakad av lastcellen) för att minska storleken på det förpackning som krävs för att innehålla produkten. Av kvalitetsskäl beslutade de att övervaka pressoperationen med instrumentation. Ett oväntat problem uppstod när de började se realtidsladdningscellutgången. Eftersom pressmaskinen vibrerades avsevärt under drift var belastningscellens utgångsvågform svår att skilja eftersom den innehöll en stor mängd brus på grund av vibrationen som visas i toppkanalen i figur 2. Detta brus eliminerades genom att generera en 11-punkts rörlig medelkanal som visas i bottenkanalen i Figur 2. Resultatet var en mycket tydligare bild av belastningscellerna. En applikation för att eliminera baslinjedrift I de fall då en långsamt drivande baslinje måste avlägsnas från en högre frekvenssignal, kan det glidande medelfiltret appliceras för att eliminera drivlinjen. Exempelvis uppvisar en EKG-vågform vanligen en viss grad av baslinjevandring, vilket kan ses i toppkanalen i figur 3. Denna baslinjedrift kan elimineras utan att förändra eller störa karaktären hos vågformen som visas i bottenkanalen i Figur 3. Detta åstadkoms genom att man tillämpar en lämplig utjämningsfaktor för negativ värde under den glidande medelberäkningen. Den lämpliga utjämningsfaktorn bestäms genom att dela en vågformsperiod (i sekunder) av kanalintervallintervallet. Kanalprovintervallet är helt enkelt den ömsesidiga av kanalens samplingsfrekvens och visas bekvämt på den glidande genomsnittliga verktygsmenyn. Vågformsperioden bestäms enkelt från bildskärmen genom att placera markören på en lämplig punkt på vågformen, ställa in en tidsmarkör och sedan flytta markören en fullständig cykel bort från den visade tidsmarkören. Tidsskillnaden mellan markör och tidmarkör är en vågformsperiod och visas längst ner på skärmen om några sekunder. I vårt EKG-exempel hade vågformen ett kanalprovintervall på 0,004 sekunder (erhållet från den glidande genomsnittliga användarmenyn) och en vågformsperiod uppmättes till spänningen 0,388 sekunder. Att dela upp vågformsperioden med kanalintervallintervallet gav oss en utjämningsfaktor på 97. Eftersom det är baslinjedriften som vi är intresserade av att eliminera tillämpade vi en negativ utjämningsfaktor (-97) på den glidande medelalgoritmen. Detta subtraherade i själva verket det rörliga genomsnittliga resultatet från den ursprungliga vågformsignalen, vilket eliminerade baslinjedriften utan störande vågformsinformation. Andra vågformsrörande genomsnittsproblem Oavsett tillämpningen är universell orsak för att tillämpa ett glidande medelfilter att kväve utväcka de höga och låga avvikelserna och avslöja ett mer representativt mellanvågformvärde. När du gör det, bör programvaran inte äventyra andra funktioner i den ursprungliga vågformen i processen att generera en rörlig medellång vågform. Till exempel bör mjukvaran automatiskt justera kalibreringsinformationen som är associerad med den ursprungliga datafilen, så att den rörliga genomsnittliga vågformen ligger i lämpliga ingenjörsenheter när den genereras. Alla avläsningar i figurerna togs med WinDaq Data Acquisition softwareMoving Average Function resultmovingmean (data, fönster, dim, alternativ) beräknar ett centrerat glidande medelvärde av datamatrisdata med en fönsterstorlek som anges i fönstret i dim dimension med hjälp av den algoritm som anges i alternativ. Dim och alternativ är valfria ingångar och kommer som standard till 1. Dim och valfria valfria ingångar kan hoppas över helt eller kan ersättas med a. Till exempel kommer flyttade (data, fönster) att ge samma resultat som movingmean (data, fönster, 1,1) eller movingmean (data, fönster ,, 1). Inmatningsmatrisens storlek och dimension begränsas endast av den maximala matrisstorleken för din plattform. Fönstret måste vara ett heltal och ska vara udda. Om fönstret är jämnt, rundas det ner till nästa nedre udda nummer. Funktionen beräknar det glidande medlet som innehåller en mittpunkt och (fönster-1) 2 element före och efter i den angivna dimensionen. Vid kanterna av matrisen reduceras antalet element före eller efter så att den faktiska fönsterstorleken är mindre än det angivna fönstret. Funktionen är uppdelad i två delar, en 1d-2d-algoritm och en 3d-algoritm. Detta gjordes för att optimera lösningshastigheten, speciellt i mindre matriser (dvs 1000 x 1). Vidare tillhandahålls flera olika algoritmer till 1d-2d - och 3d-problemet som i vissa fall är standardalgoritmen inte den snabbaste. Detta händer typiskt när matrisen är väldigt bred (dvs 100 x 100000 eller 10 x 1000 x 1000) och det glidande medlet beräknas i kortare dimension. Den storlek där standardalgoritmen är långsammare beror på datorn. MATLAB 7.8 (R2009a) Taggar för den här filen Vänligen logga in för att tagga filer. Vänligen logga in för att lägga till en kommentar eller ett betyg. Kommentarer och betyg (8) Funktionen handlar om ändamål genom att klippa fönstrets bakre eller ledande del och övergå till ett ledande eller efterföljande glidande medel istället för en centrerad. För att gå med exemplet som du gav i din kommentar om fönstergränsen är 3, då i mitten av 1, är medelvärdena data från punkterna 1 och 2 i mitten av 2 poäng 1, 2 och 3 i genomsnitt i ett center av 9 punkterna 8, 9 och 10 är i medelvärdet och i ett center av 10 (låt oss antar att vektorn har 10 poster) poäng 9 och 10 är medelvärda. Hur handlar det om att hantera ändarna Startar det med en fönsterstorlek som bara omfattar punkt 1 vid 1, sedan 3 poäng vid punkt 2, och ökar sedan i fönsterstorlek tills fönsterstorleken är den som anges i funktionsinmatningen Tack. Trevligt och enkelt. Tack. Bra jobb Mycket användbart som Stephan Wolf sa. Precis vad jag letade efter. Centrerat glidande medelvärde som kan arbeta i en plot över hela bredden utan att behöva leta efter filterets storlek och flytta början. Great Accelererande taktik i teknik och vetenskap MathWorks är den ledande utvecklaren av matematisk dataprogramvara för ingenjörer och forskare. Genomgående genomsnitt - standardavvikelse har jag några tidsseriedata (1x70000 vektor) som jag skulle vilja köra en 12 timme (720 poäng) flytta genomsnittet på. Jag hittade en vektoriserad algoritm för att beräkna det rörliga genomsnittsvärdet: z 0 cumsum (datain) dataavg (z (numpoints1: nlength1) - z (1: nlength-numpoints1)) Nummer där datainne är tidsseriedata, numren är antalet poäng att inkludera medelvärdet och nivån är längden på datavektorn. Mitt huvudmål är emellertid att beräkna standardavvikelsen för varje 12-timmarsmedelvärde, dvs 69280 70000 - 720 standardavvikelser. Eftersom ovanstående algoritm för medelvärdet använder kumulativa summor, är de individuella värdena inte tillgängliga för att beräkna standardavvikelsen inom den. Jag har försökt två lösningar som både innefattar looping: 1) ta en del av data till genomsnittet beräkna standardavvikelse flytta över en punkt och upprepa 2) skapa en array 720x70000 där varje rad är helt enkelt föregående rad flyttad till vänster en punkt beräkna standardavvikelsen för varje kolumn Den andra metoden verkade mest lovande eftersom större delen av behandlingstiden var att skapa den stora array som jag gjorde med en för loop. Har någon några förslag på hur man effektivt skapar denna matris eller några andra helt olika förslag för att lösa detta problem Tack alla Ed On Wed, 11 Sep 2002 16:22:36 -0600, Ed Ross skrev: gt gt gt Den andra metoden verkade mest lovande som huvuddelen av gt behandlingstid var att skapa den stora array som jag gjorde med en för gt loop. Har någon några förslag på hur man effektivt skapar gt det här alternativet gt gt gt Eller något annat helt annat förslag för att lösa detta problem gt Du kan försöka använda filter för att beräkna det glidande medlet. Det verkar vara en favorit i den här nyhetsgruppen. Heres en post som beskriver hur: gt gt Tack alla gt Ed Jag ville bara stressa att det är standardavvikelsen, inte genomsnittet själv, som jag har problem med. Koden jag skrev ovan beräknar det faktiska genomsnittet mycket bra. På Wed, 11 Sep 2002 17:06:55 -0600 skrev Ed Ross: gt Jag ville bara betona att det är standardavvikelsen, inte det genomsnittliga i sig, som jag har problem med. Koden som jag postade ovan gt beräknar det faktiska genomsnittet mycket bra. gt gt Skål, gt Ed Ja, jag inser det. Du frågade om det fanns andra sätt att lösa problemet, så jag gav dig en. Kanske hjälper det att beräkna standardavvikelsen. Kanske inte. I artikeln lteeb20d3.1WebX. raydaftYaTPgt skrev Ed Ross ltedrosscayahoo. cagt: gt Jag ville bara betona att det är standardavvikelsen, inte det genomsnitt som jag själv har, som jag har problem med. Koden jag posted gt ovan beräknar det faktiska genomsnittet mycket bra. Använd den andra formeln för standardavvikelse. s2 (summa (x2) - nxbar2) (n-1) Poängen är att du kan använda samma tillvägagångssätt som du för närvarande använder för att beräkna det glidande medlet, men applicera det på rutorna av elementen och sedan dra av xbar-termen. Dess bara två applikationer av filter, en gång till serien själv och sedan till serien kvadrerade. Ett annat knep. Eftersom standardavvikelsen inte påverkas av en konstant förskjutning, subtraherar du av det övergripande medelvärdet av serien först. Detta kommer att minska beräkningsfelet. Kanske är jag inte väldigt tydlig här. Låt oss prova ett exempel. 100 poäng i en serie med ett fönster med bredd 10. (Obs, jag har noterat denna kod, men den borde vara nära. Jag har inte ens kontrollerat om jag fick formeln för variansen ovanför korrekt.) Några slumpmässiga data m100 x rand (1, m) n10 ett glidande medel, genom att slinga xbarzeros (1, m-n1) i0: (mn) för j1: n xbarxbarx (ij) n ändfilter gör MA enklare men: xbar filter n, 1, x) xbar (1: (n-1)) flyttar SD med filter x2-filter (en (1, n), 1, x.2) V (x2-nxbar.2) ) SDsqrt (V) SD (1: (n-1) HTH, John DErrico Ed Ross ltedrosscayahoo. cagt skrev i nyheter: eeb20d3.-1WebX. raydaftYaTP: gt Hej alla gt gt gt Jag har några tidsseriedata (1x70000 vektor) som jag skulle vilja gt köra ett 12 timmars (720 poäng) glidande medelvärde på. Jag hittade en vektoriserad gt-algoritm för att beräkna det glidande medlet: gt gt gt z 0 cumsum (datainne) gt dataavg (z (numpoints1: nlength1) - z (1: nlength-numpoints1)) gt numpoints gt gt gt där datainnehållet är tidsseriedata, numren är antalet gt-poäng som inkluderar medelvärdet och nivån är längden på data gt-vektorn. gt gt gt Mitt huvudmål är emellertid att beräkna standardavvikelsen för varje gt 12-timmarsmedelvärde, dvs 69280 70000 - 720 standardavvikelse-gtberäkningar. Eftersom ovanstående algoritm för medelvärdet använder gt kumulativa summor, är de individuella värdena inte tillgängliga för att beräkna gt standardavvikelsen inom den. gt gt gt Jag har försökt två lösningar som både omfattar looping: gt gt gt 1) ta en del av data till genomsnittet beräkna standard gt avvikelse flytta över en punkt och upprepa gt gt gt 2) skapa en array 720x70000 där varje rad är helt enkelt flyttades gt föregående rad till vänster en punkt beräkna standard gt avvikelsen för varje kolumn gt gt gt Den andra metoden verkade mest lovande eftersom huvuddelen av gt behandlingstid var att skapa den stora array som jag gjorde med en gt för slinga. Har någon några förslag på hur effektivt du skapar det här alternativet gt gt gt Eller något annat helt annat förslag för att lösa detta problem gt gt gt Tacka alla gt Ed gt Här är lite ganska ogenomskinlig kod för att beräkna en rörlig varians (torget för vad du vill ha. Det går att använda konvolvering, så det är fristående utan loopar. Var snäll och fortsätt utan författarlinjens funktion ymovingvar (X, N) ymovingvar (X, N) Beräknar N-punktsflyttningsvariationen för Vector X Rekommendera att N vara udda (nej Felsökning) Obs: Första och sista N2-poäng kommer att vara opålitliga. Utgången kommer att vara en kolumnvektor. Författare: Scott Seidman (scott. seidmanrochester. edu) 12399 XX (:) XSQRX. X convsigones (1, N) y (conv Convsig, XSQR) - (conv (convsig, X) .2) N) (N-1) - Scott Omvänd första adressfältet för att svara gt Jag ville bara påpeka att det är standardavvikelsen, inte själva genomsnittet, som jag har problem med. Koden jag posted gt ovan beräknar det faktiska genomsnittet mycket bra. Jag har inte tillgång till ditt ursprungliga inlägg, men jag antar att du vill veta hur man får en rörlig standardavvikelse. Om så är fallet kan du använda något som följande (otestad) kod: Den använder formeln E (x-u) 2) Ex2 - Ex2. Hopp som hjälpte till, Vad är en tittlista Du kan tänka på din klocklista som trådar som du har bokmärkt. Du kan lägga till taggar, författare, trådar och till och med sökresultat till din bevakningslista. På så sätt kan du enkelt hålla reda på ämnen som du är intresserad av. För att se din tittellista, klicka på quotMy Newsreaderquot-länken. Om du vill lägga till objekt i din bevakningslista klickar du på citadeln för att titta på listotiklänk längst ner på en sida. Hur lägger jag till ett objekt i min vaktlista För att lägga till sökkriterier i din vaktlista, sök efter önskad term i sökrutan. Klicka på citatetLägg till den här sökningen i min klocklistor på länken på sökresultatsidan. Du kan också lägga till en tagg i din bevakningslista genom att leta efter taggen med direktivet quottag: tagnamequot där tagname är namnet på den tagg du vill titta på. För att lägga till en författare till din bevakningslista, gå till författarens profilsida och klicka på quotAddjär den här författaren till min watch listquot-länk högst upp på sidan. Du kan också lägga till en författare till din bevakningslista genom att gå till en tråd som författaren har publicerat och klicka på quotAdd denna författare till min watch listquot link. Du kommer att få besked när författaren gör ett inlägg. Om du vill lägga till en tråd i din bevakningslista går du till trådsidan och klickar på citatetLägg till den här tråden i min larmlista-länk högst upp på sidan. Om nyhetsgrupper, nyhetsläsare och MATLAB Central Vad är nyhetsgrupper Nyhetsgrupperna är ett globalt forum som är öppet för alla. Nyhetsgrupper används för att diskutera ett stort antal ämnen, göra meddelanden och handelsfiler. Diskussionerna är gängade eller grupperade på ett sätt som låter dig läsa ett upplagd meddelande och alla dess svar i kronologisk ordning. Detta gör det enkelt att följa tråden i samtalet och för att se vad du redan har sagt innan du skickar ditt eget svar eller gör ett nytt inlägg. Nyhetsgruppens innehåll distribueras av servrar som är värd av olika organisationer på Internet. Meddelanden utbyts och hanteras med hjälp av öppna standardprotokoll. Ingen enskild enhet ldquoownsrdquo newsgroups. Det finns tusentals nyhetsgrupper som varje adresserar ett enda ämne eller intresseområde. MATLAB Central Newsreader postar och visar meddelanden i comp. soft-sys. matlab-nyhetsgruppen. Hur läser jag eller postar till nyhetsgrupperna Du kan använda den integrerade nyhetsläsaren på MATLAB Central webbplats för att läsa och skicka meddelanden i den här nyhetsgruppen. MATLAB Central är värd MathWorks. Meddelanden som skickas via MATLAB Central Newsreader ses av alla som använder nyhetsgrupper, oavsett hur de kommer åt nyhetsgrupperna. Det finns flera fördelar med att använda MATLAB Central. Ett konto Ditt MATLAB Central-konto är knutet till ditt MathWorks-konto för enkel åtkomst. Använd E-postadressen till ditt val MATLAB Central Newsreader gör att du kan definiera en alternativ e-postadress som din postadress, för att undvika röran i din primära brevlåda och minska spam. Spamkontroll De flesta nyhetsgruppspamfiler filtreras ut av MATLAB Central Newsreader. Taggningsmeddelanden kan märkas med en relevant etikett av någon inloggad användare. Taggar kan användas som nyckelord för att hitta specifika filer av intresse eller som ett sätt att kategorisera dina bokmärkta inlägg. Du kan välja att låta andra se dina taggar, och du kan visa eller söka otherrsquo-taggar såväl som de i samhället som helhet. Tagging ger ett sätt att se både de stora trenderna och de mindre, mer dunkla idéerna och applikationerna. Vaktlistor Med inställning av vallistor kan du få meddelande om uppdateringar gjorda till inlägg som valts av författare, tråd eller någon sökvariabel. Meddelandena om bevakningslistan kan skickas via e-post (dagligen digest eller omedelbar), visas i My Newsreader, eller skickas via RSS-flöde. Andra sätt att komma åt nyhetsgrupperna Använd en nyhetsläsare via din skola, arbetsgivare eller internetleverantör Betala för nyhetsgruppen tillgång från en kommersiell leverantör Använd Google Groups Mathforum. org ger en nyhetsläsare med tillgång till comp. soft sys. matlab-nyhetsgruppen Kör din egen server. För typiska instruktioner, se: slyckng. phppage2 Välj ditt land

No comments:

Post a Comment