För att generera autoregressiv modell har vi kommandot aryule () och vi kan också använda filtersEstimating AR-modellen. Men hur genererar jag MA-modell Till exempel kan någon visa hur man genererar MA (20) modell Jag kunde inte hitta någon lämplig teknik för att göra det. Bullret genereras från en icke-linjär karta Så, MA-modellen kommer att regressera över epsilon-termer. Q1: Ska vara mycket användbart om koden och funktionen för en MA-modell visas helst MA (20) med hjälp av ovanstående ljudmodell. Q2: Så här genererade jag en AR (20) med slumpmässigt brus men vet inte hur man använder ovanstående ekvation som bruset istället för att använda rand för både MA och AR frågade aug 15 14 kl 17:30 mitt problem är användningen av filtrera. Jag är inte bekant med överföringsfunktionskonceptet, men du nämnde att täljare B39s är MA koefficienterna så att B skulle vara de 20 elementen och inte A39s. Låt oss sedan säga att modellen har ett avsnittspunkt på 0,5, kan du visa med koden hur jag kan skapa en MA-modell med 0,5 avlyssning (hur man nämner avlyssningen i filtret () och med hjälp av ingången som definieras i min fråga tack du för filterlänken, som verkligen rensade tvivlen om hur du använder filter. ndash SKM Aug 19 14 kl 16:36 Filtrera filtret (b, a, X) filtrerar data i vektor X med filtret som beskrivs av täljare koefficientvektor b och nämnare koefficientvektor a. Om a (1) inte är lika med 1, normaliserar filtret filterkoefficienterna med a (1). Om a (1) motsvarar 0, returnerar filter ett error. quot (mathworkshelpmatlabreffilter. html) problemområdet som jag inte förstår hur man specificerar a, b (filterkoefficienter) när det finns ett avlyssning på säga 0.5 eller avlyssning av 1. Kan du vänligen visa ett exempel på MA med filter och en icke-nollpunktsavlyssning med hjälp av ingången som jag nämnde i Question ndash SKM Aug 19 14 kl 17:45Använd MATLAB, hur kan jag hitta 3-dagars flytta medelvärdet av en viss kolumn i en matris och lägga till det glidande medlet till den matrisen. Jag försöker att beräkna det 3-dagars glidande medlet från botten till toppen av matrisen. Jag har angivit min kod: Med tanke på följande matris a och mask: Jag har försökt implementera kommandot conv men jag får ett fel. Här är conv kommandot jag har försökt använda på 2: a kolumnen av matris a: Utgången jag önskar ges i följande matris: Om du har några förslag, skulle jag verkligen uppskatta det. Tack För kolumn 2 i matris a, beräknar jag 3-dagars glidande medelvärde enligt följande och placerar resultatet i kolumn 4 i matris a (jag byttes matris a som 39desiredOutput39 bara för illustration). 3-dagarsgenomsnittet 17, 14, 11 är 14 3-dagarsgenomsnittet 14, 11, 8 är 11 3-dagarsgenomsnittet 11, 8, 5 är 8 och 3-dagarsgenomsnittet 8, 5, 2 är 5. Det finns inget värde i botten 2 rader för den 4: e kolumnen eftersom beräkningen för 3-dagars glidande medel börjar längst ner. Den 39valid39-utgåvan visas inte förrän minst 17, 14 och 11. Förhoppningsvis är det här meningsfullt Aaron Jun 12 13 at 1:28 Generellt skulle det hjälpa om du skulle visa felet. I det här fallet gör du två saker fel: Först måste din konvolver delas av tre (eller längden på det glidande medlet) För det andra märker du storleken på c. Du kan inte bara passa c till en. Det typiska sättet att få ett glidande medelvärde skulle vara att använda samma: men det ser inte ut som du vill ha. Istället är du tvungen att använda ett par rader: Första glidande Simulink-handelsmodell till C-koden Kodkod Första glidande Simulink-handelsmodell till C-källkod Finally8230it är här fullständigt slutet till slutet Visuell representation (skapad inom Matlab8217s Simulink och Stateflow) av din handelside till C i något operativsystem inklusive Windows, Linux eller till och med Mac OSX. Av alla åren i utforskning och undersökning är detta det ultimata sättet att bygga ditt höghastighets självständiga handelssystem. Det är därför jag är helt fokuserad 100 på detta helt nya tillvägagångssätt i motsats till de andra bullriga och störande 8216secondary8217-tillvägagångssätt som jag inte ska namnge. Inte bara det, du kan ta samma visuella modell och kod generera till något maskinvarubeskrivningsspråk (HDL) till din FPGA-tillverkare med VHDL eller Verilog. Eftersom jag inte är någon expert i detta utrymme, lämnar jag det till experterna som jag har tillgång till för att hjälpa till vid behov. Bara en FYI att FPGA är den ultralågaste latensen möjlig via specialiserad hårdvara. Jag hoppas att den här videon hjälper till att demonstrera dessa möjligheter. För dem som är intresserade av provfilerna kan de hämtas via min ELITE Membership sektion n. Nu när den här metoden har slutförts kan vi gå vidare till nästa prototyperingsstadium några riktiga världsstrategier som: Kom ihåg att den här förfrågan också finns där: Alla framtida handelsstrategier utvecklade via Simulink kommer att ges till alla Quant Elite-medlemmar NOTERA Jag skickar nu mina TRADING ALERTS till min personliga FACEBOOK ACCOUNT och TWITTER. Oroa dig inte eftersom jag inte lägger upp dumma kattvideor eller vad jag äter Dela det här: Om författaren Hej jag där Jag heter Bryan Downing. Jag är en del av ett företag som heter QuantLabs. Det här är specifikt ett företag med en hög profilblogg om teknik, handel, ekonomi, investering, kvant etc. Det postar saker om hur man gör jobbintervjuer med stora företag som Morgan Stanley, Bloomberg, Citibank , och IBM. Det lägger också in olika unika tips och tricks på Java, C eller C programmering. Det postar om olika tekniker för att lära sig om Matlab och bygga modeller eller strategier. Det finns mycket här om du vill satsa in i den finansiella världen som kvant eller teknisk analys. Det diskuterar också den framtida generationen av handel och programmering Specialiteter: C, Java, C, Matlab, kvant, modeller, strategier, teknisk analys, Linux, Windows P. S. Jag har varit känd för att vara den värsta maskinskrivaren. Bli inte förolämpad av det som jag gillar att smälla ut saker och lägga priorty av vad jag gör över att skriva. Kanske en dag kan jag få en fulltext kopioredigerare för att hjälpa till. Lägg märke till att jag föredrar videor eftersom de är mycket enklare att producera så kolla in mina många videor på youtubequantlabs Vill du handla som en chef Lär dig hur Algo Secrets kan förbättra ditt liv Din information är 100 säker med oss och kommer aldrig att delas. Ladda ner movAv. m ( se även movAv2 - en uppdaterad version som tillåter viktning) Beskrivning Matlab innehåller funktioner som kallas movavg och tsmovavg (tidsserie glidande medelvärde) i Financial Toolbox, movAv är utformad för att replikera den grundläggande funktionaliteten för dessa. Koden här ger ett bra exempel på hantering av index inom slingor, vilket kan vara förvirrande till att börja med. Ive hålls medvetet koden kort och enkel att hålla processen klar. movAv utför ett enkelt glidande medelvärde som kan användas för att återställa bullriga data i vissa situationer. Det fungerar genom att ta en medelvärde av ingången (y) över ett glidande tidsfönster, vars storlek anges av n. Ju större n är, desto större blir utjämningen av effekten av n i förhållande till längden på ingångsvektorn y. och effektivt (bra slags) skapar ett lågpassfrekvensfilter - se avsnittet exempel och överväganden. Eftersom mängden utjämning som tillhandahålls av varje värde av n är relativt längden på ingångsvektorn, är det alltid värt att testa olika värden för att se vad som är lämpligt. Kom också ihåg att n poäng går förlorade vid varje genomsnitt om n är 100, innehåller de första 99 punkterna i ingångsvektorn inte tillräckligt med data för ett 100pt-medelvärde. Detta kan undvikas något genom att stapla medelvärden, till exempel, koden och grafen nedan jämför ett antal olika längdfönstermedelvärden. Lägg märke till hur jämn 1010pt jämförs med ett enda 20pt-medelvärde. I båda fallen förloras totalt 20 data. Skapa xaxis x1: 0.01: 5 Generera brusbrusReps 4 ljud repmat (randn (1, ceil (numel (x) noiseReps)), noiseReps, 1) brusreformer (brus, 1, längd (brus) noiseReps) Generera ydata noise yexp x) 10noise (1: längd (x)) Per genomsnittvärden: y2 movAv (y, 10) 10 pt y3 movAv (y2, 10) 1010 pt y4 movAv (y, 20) 20 pt y5 movAv (y, 40) 40 pt y6 movAv (y, 100) 100 pt Plottbildsplot (x, y, y2, y3, y4, y5, y6) legend (Rådata, 10pt glidande medelvärde, 1010pt, 20pt, 40pt, 100pt) xlabel (x) ylabel y) titel (Jämförelse av rörliga medelvärden) movAv. m-kod genomgångsfunktion output movAv (y, n) Den första raden definierar funktionsnamn, ingångar och utgångar. Inmatningen x borde vara en vektor med data för att utföra medelvärdet, n skulle vara antalet punkter som ska utföra det genomsnittliga överutmatningen kommer att innehålla den genomsnittliga data som returneras av funktionen. Fördela utgångsutgångNaN (1, numel (y)) Hitta mittpunkten i n midPoint-runda (n2) Funktionens huvuduppgift görs i loopbandet, men innan man börjar startas två saker. För det första fördelas utdelningen som NaNs, detta tjänade två syften. För det första är förallokering i allmänhet god praxis eftersom det minskar minnes jonglering Matlab måste göra, för det andra gör det mycket enkelt att placera den genomsnittliga data i en utgång som är lika stor som ingångsvektorn. Det betyder att samma xaxis kan användas senare för båda, vilket är lämpligt för plottning, alternativt kan NaN: erna tas bort senare i en rad kod (utgångsutgången (Den variabla midPoint kommer att användas för att rikta in data i utmatningsvektorn. n 10, 10 poäng kommer att gå vilse eftersom för de första 9 punkterna av ingångsvektorn finns det inte tillräckligt med data för att ta 10 poäng. Eftersom utmatningen kommer att vara kortare än ingången måste den justeras korrekt. användas så att en lika stor mängd data går förlorad vid start och slut, och ingången hålls inriktad med utgången av NaN-buffertarna som skapas vid preallokering av utgången. För en 1: längd (y) - n Hitta indexintervall för att ta medeltal över (a: b) förbud Beräkna medelvärde (amidpunkt) medelvärde (y (a: b)) slutet I själva loopbandet tas ett medel över varje på varandra följande segment av ingången. Slingan körs för a. definierad som 1 upp till längden på ingången (y), minus de data som kommer att gå vilse (n). Om ingången är 100 poäng lo ng och n är 10 kommer slingan att springa från (a) 1 till 90. Detta betyder att det första segmentets index blir genomsnittligt. Det andra indexet (b) är helt enkelt an-1. Så vid första iterationen, a1. n10. så b 11-1 10. Det första genomsnittet tas över y (a: b). eller x (1:10). Medelvärdet för det här segmentet, som är ett enda värde, lagras i utgången på index amidPoint. eller 156. Vid den andra iterationen, a2. b 210-1 11. så medelvärdet tas över x (2:11) och lagras i utgången (7). Vid den sista iterationen av slingan för en ingång av längden 100, a91. b 9010-1 100 så medelvärdet tas över x (91: 100) och lagras i utgången (95). Detta lämnar utdata med totalt n (10) NaN-värden vid index (1: 5) och (96: 100). Exempel och överväganden Flytta medelvärden är användbara i vissa situationer, men de är inte alltid det bästa valet. Här är två exempel där de inte nödvändigtvis är optimala. Mikrofonkalibrering Denna uppsättning data representerar nivåerna för varje frekvens som produceras av en högtalare och inspelad av en mikrofon med känt linjärt svar. Högtalarens utgång varierar med frekvens, men vi kan korrigera för denna variation med kalibreringsdata - utgången kan justeras på nivå för att beräkna fluktuationerna i kalibreringen. Observera att de råa data är bullriga - det betyder att en liten förändring i frekvens tycks kräva en stor, ojämn, förändring i nivå för att redogöra för. Är detta realistiskt eller är detta en produkt av inspelningsmiljön. Det är rimligt att i detta fall tillämpa ett glidande medelvärde som släpper ut nivåfrekvenskurvan för att ge en kalibreringskurva som är något mindre ojämn. Men varför är det inte optimalt i det här exemplet? Mer data skulle vara bättre - flera kalibreringar körs i genomsnitt tillsammans skulle förstöra bruset i systemet (så länge det är slumpmässigt) och ge en kurva med mindre subtila detaljer förlorade. Det rörliga genomsnittet kan bara approximera detta och kan ta bort några högre frekvensdips och toppar från den kurva som verkligen existerar. Sinvågor Med hjälp av ett rörligt medelvärde på sinusvågor framhävs två punkter: Den allmänna frågan om att välja ett rimligt antal poäng för att utföra medelvärdet över. Det är enkelt, men det finns mer effektiva metoder för signalanalys än genomsnittliga oscillerande signaler i tidsdomänen. I denna graf kartläggs den ursprungliga sinusvågen i blått. Buller läggs till och ritas som apelsinskurvan. Ett glidande medel utförs vid olika antal punkter för att se om den ursprungliga vågen kan återvinnas. 5 och 10 poäng ger rimliga resultat, men ta inte bort bullret helt, där så större antal punkter börjar förlora amplituddetalj som medeltalet sträcker sig över olika faser (kom ihåg att vågoscillerar runt noll och medelvärdet (-1 1) 0) . Ett alternativt tillvägagångssätt skulle vara att konstruera ett lågpassfilter än vad som kan appliceras på signalen i frekvensdomänen. Jag tänker inte gå in i detalj eftersom det går utöver omfattningen av denna artikel, men eftersom bruset är betydligt högre frekvens än vågens grundläggande frekvens, skulle det vara ganska lätt att i detta fall konstruera ett lågpassfilter än att avlägsna högfrekvensen ljud.
Comments
Post a Comment