Det finns en stor litteratur om framgången med tillämpningen av evolutionära algoritmer i allmänhet och den genetiska algoritmen i synnerhet till de finansiella marknaderna. Men jag känner mig obekväm när jag läser den här litteraturen. Genetiska algoritmer kan överträffa befintliga data Med Så många kombinationer är det lätt att komma fram till några regler som fungerar. Det kan inte vara robust och det har inte en konsekvent förklaring till varför denna regel fungerar och de reglerar inte längre än det bara cirkulära argumentet att det fungerar eftersom testningen Visar att det fungerar. Vad är den nuvarande konsensusen om tillämpningen av den genetiska algoritmen i ekonomi. Skriven 18 feb 11 kl 9 00. Jag har arbetat i en hedgefond som tillåter GA-härledda strategier För säkerhet krävde det att alla modeller skickades in Långt före produktion för att se till att de fortfarande arbetade i backtests Så det kan vara en försening i upp till flera månader innan en modell skulle tillåtas att springa. Det är också till hjälp att skilja provuniverset oss Ea slumpmässig hälften av de möjliga lagren för GA-analys och den andra hälften för bekräftelse backtests. Is det en annan process än du skulle använda innan du litar på någon annan handelsstrategi. Om så är fallet, är det inte klart för mig vad du får från att göra en GA-modell Använder data till tid t, sedan testar tills t N innan du litar på det, jämfört med att använda data till tid tN, testning från tN till t, och använder det omedelbart Darren Cook 23 november kl 11 08. DarrenCook ett problem jag ser är att om du Test från tN till t och hitta det fungerar inte bra, då kommer du att skapa en annan modell som testas under samma tidsperiod tN till t ad infinitum Det introducerar sannolikheten för meta-överfitting under modellen skapande processen Chan-Ho Suh Jul 22 15 på 5 24.Regarding data-snooping, om en GA är implementerad korrekt, det borde inte vara en oro. Mutationsfunktioner är specifikt inkluderade för att slumpmässigt söka igenom problemutrymmet och undvika datautbildning. Det sägs att du hittar rätt Mutationsnivåer c En vara något av en konst och om mutationsnivåerna är för låga så är det som om funktionen inte genomfördes i första hand BioinformaticsGal 6 apr 11 kl 16 28. BoinformaticsGal Jag förstår inte hur införandet av mutationsfunktioner tillåter oss För att undvika datasnutning Efter sökningen finns det en träningsfunktion som gör att varje generation passar data någonsin mer eller förstår jag inte dig korrekt Vishal Belsare 15 september 11 på 18 05. Det finns många människor som talar om hur GAs är empiriska, Jag har inte teoretiska grundvalar, svarta lådor och liknande. Jag ber om att skilja. Det är en hel gren av ekonomi som ägnas åt att titta på marknader när det gäller evolutionära metaforer Evolutionary Economics. Jag rekommenderar starkt Dopferboken, The Evolutionary Foundations of Economics, Som en intro. Om din filosofiska uppfattning är att marknaden är i grunden ett jätte casino eller spel, då är en GA enbart en svart låda och har ingen teoretisk grund. Men om din filosofi Är att marknaden är en överlevnad av den mest fina ekologin, så har GA s gott om teoretiska fundament och det är helt rimligt att diskutera saker som företagsspecialisering, marknadsekonomi, portföljgenom, handelsklimat och liknande. Apr 5 11 på 15 42. På korta tidsskalor är det mer ett kasino Liksom natur, faktiskt quantdev 5 april 11 på 20 46. quantdev, problemet med detta är att GA - som alla andra kvantitativa metoder - fungerar bara med Kort tidsskala om jag inte misstänker att om aktiemarknaden är mer som en aktiemarknaden så skulle GA vara helt värdelös Graviton 6 apr kl 8 56. Graviton Det finns ingen inneboende orsak till att man inte kunde programmera en GA för att göra analys Vid längre tidspaneler Tidens domän för en GA är uppmätt i generationer, inte år eller dagar Så man skulle helt enkelt behöva definiera en befolkning som innehåller individer vars generationer är år eller årtionden, dvs företag. Det har definitivt varit något arbete som närmar sig att definiera företag Genomes av Deras produktionsprocesser I en sådan modell skulle man optimera för en effektiv företags affärsmodell med tanke på ett visst marknadsklimat. Det är inte en aktiekursportföljmodell, men BioinformaticsGal 6 april 11 på 15 12.Assuming du undviker data-snooping bias och alla De potentiella fallgroparna med att använda förflutna för att förutsäga framtiden, förtroende för genetiska algoritmer för att hitta den rätta lösningen, sätter i stort sett lika mycket vad du gör när du aktivt hanterar en portfölj, oavsett kvantitativ eller diskretionär. Om du tror på marknadseffektivitet ökar din Transaktionskostnaderna från den aktiva förvaltningen är illogiska Om du menar att det finns strukturella psykologiska mönster eller brister som ska utnyttjas och avbetalningen är värt tid och pengar för att undersöka och genomföra en strategi är det logiska valet en aktiv förvaltning. Att bedriva en GA-strategi är En implicit satsning mot marknadseffektivitet Du säger i grund och botten att jag tycker att det finns missvärderingar som uppstår från vissa Anledningen massor av irrationella människor, fondsmedel herding på grund av felinriktad incitament, etc. och kör denna GA kan sortera denna massa data ut långt snabbare än jag kan. Svarade 18 februari 11 på 15 49. hantering av en aktiv portfölj innebär att man använder alla Den information vi har och härleda en logisk slutsats om marknaden och sedan genomföra strategier på den här är en rationell aktivitet OTOH, med hjälp av GA använder vi ett svartboksverktyg kan vi inte förklara resultatet som härrör från det från alla accepterade principer jag m inte Förvisso om dessa två verkligen är samma Graviton Feb 18 11 på 15 57. Graviton Ja men överväga likheterna mellan GAs och hur vi människor lär sig om marknader, utveckla strategier, lära av misstag och anpassa sig till förändrade marknadsförhållanden När du forskar Vilka vinnande och förlorande aktier har gemensamt, eller vilka volym - och prismönster skapar bra affärer eller vilken modell som är mest exakt för värdering av derivat vad du gör är datautvinning det förflutna på ett sätt när Marknadsförhållanden förändrar dig antingen handla nya strategier eller så småningom gå i konkurs Om det finns exploerbara kanter på marknaden är den enda skillnaden mellan dig och en GA Joshua Chance 18 feb 11 kl 16 46. Graviton i mycket vid mening är att du Ha en berättelse, en historia att gå med din strategi Vi människor riskerar att hitta ett till synes återkommande mönster och sedan rationalisera det och skapa en berättande GAs riskerar samma sak, bara deras potentiellt falska modell använder inte ord, de använder matematik och logik Joshua Chance Feb 18 11 på 16 54. Den sena Thomas Cover, som är den ledande informationsteoretikern i sin generation, ansåg universella tillvägagångssätt till saker som datakomprimering och portföljallokeringar som sanna genetiska algoritmer. Evolution har inga parametrar att passa eller träna Varför ska äkta genetiska algoritmer. Universala tillvägagångssätt gör inga antaganden om den underliggande fördelningen av data De gör inga försök att förutsäga framtiden från mönster eller något annat. Teoretisk Cal effektivitet av universella strategier de presenterar betydande implementeringsutmaningar se min senaste fråga Geometri för universella portföljer följer från dem som gör vad evolutionen kräver Den snabbaste, smartaste eller starkaste behöver inte nödvändigtvis överleva i nästa generation Evolution gynnar den genen, organismen, meme, portföljen , Eller datakomprimeringsalgoritm som är positionerad för att lättast kunna anpassa sig till vad som händer nästa. Också eftersom dessa metoder inte gör några antaganden och fungerar icke parametriskt kan man överväga alla tester, även på alla historiska data, som out-of-sample. Definitivt De har begränsningar. Sannerligen kan de inte arbeta för varje sort ett problem vi möter på vår domän, men ge, vilket intressant sätt att tänka på sakerna. Svarade 14 juli 13 på 15 42. Väl, målet med ett genetiskt algo är Att hitta den bästa lösningen utan att gå igenom alla möjliga scenarier eftersom det skulle vara för långt Så det är självklart det är kurvanpassning, det är målet. ansvarat den 6 mars kl. Det finns en signifikant skillnad mellan att överfatta provet dåligt och passa befolkningen bra. Det är därför som många föreslår att du överstiger valideringen av din algoritm med provtagning utan test. Joshua 17 juli kl. 13 34. Ditt svar.2017 Stack Exchange, Inc. ARIMA GARCH Handelsstrategi på S P500 börsindex med hjälp av R. I den här artikeln vill jag visa dig hur du applicerar all kunskap som erhållits i tidigare serier för analys av tidsserier till en handelsstrategi på S P500: s aktiemarknadsindex. Vi ser att genom att kombinera ARIMA - och GARCH-modellerna kan vi på lång sikt betydligt överträffa en Buy-and-Hold-strategi. Strategiöversikt. Tanken av strategin är relativt enkel, men om du vill experimentera med det, rekommenderar jag starkt att läsa De tidigare inläggen i tidsserierna för att förstå vad du skulle modifiera. Strategin utförs på rullande basis. För varje dag är n, de tidigare k dagarna av den olika logaritmiska avkastningen på ett börsindex Används som ett fönster för montering av en optimal ARIMA - och GARCH-modell. Den kombinerade modellen används för att göra en prognos för nästa dag tillbaka. Om förutsägelsen är negativ, förkortas beståndet vid föregående stängning, medan det är positivt om det är positivt . Om förutsägelsen är samma riktning som föregående dag ändras ingenting. För denna strategi har jag använt den maximalt tillgängliga data från Yahoo Finance för S P500 Jag har tagit k 500 men det här är en parameter som kan optimeras i ordning För att förbättra prestanda eller minska drawdown. The backtest utförs på ett rakt vektoriserat sätt med hjälp av R Det har inte implementerats i Python event-driven backtester som ännu. Därför är prestationen uppnådd i ett riktigt handelssystem sannolikt något mindre än du Kan uppnå här på grund av kommission och slippa. Strategi Genomförande. För att genomföra strategin kommer vi att använda en del av koden som vi tidigare skapat i tidsserieanalysartikeln Som några nya bibliotek inklusive Rugarch som jag har föreslagit av Ilya Kipnis över på QuantStrat Trader. Jag kommer att gå igenom syntaxen i ett steg för steg och sedan presentera den fullständiga implementeringen i slutet, samt en länk till Min dataset för ARIMA GARCH-indikatorn Jag har inkluderat den senare eftersom det har tagit mig ett par dagar på min dekstop-dator för att generera signalerna. Du borde kunna replikera mina resultat i sin helhet eftersom själva koden inte är för komplex, även om Det tar lite tid att simulera om du utför det fullt ut. Den första uppgiften är att installera och importera nödvändiga bibliotek i R. Om du redan har biblioteken installerade kan du helt enkelt importera dem. Med det gjort kommer du att tillämpa Strategi för S P500 Vi kan använda quantmod för att få data som går tillbaka till 1950 för indexet Yahoo Finance använder symbolen GPSC. We kan sedan skapa den olika logaritmiska avkastningen på slutkursen för S P500 och ta bort det ursprungliga NA-värdet. Vi måste skapa Te en vektor, prognoser för att lagra våra prognosvärden vid specifika datum Vi ställer längden för längden lika med längden på handelsdata vi har minus k, fönstrets längd. I det här skedet behöver vi slingra igenom varje dag i handelsdata Och passa en lämplig ARIMA - och GARCH-modell till rullfönstret med längd k Eftersom vi försöker 24 separata ARIMA-passar och passar en GARCH-modell, kan indikatorn ta en lång tid att generera. Vi använder index d som en Looping variabel och loop från k till längden på trading data. We skapar sedan rullande fönster genom att ta tillbaka S P500 och välja värdena mellan 1 d och kd, där k 500 för denna strategi. Vi använder samma procedur som i ARIMA-artikeln för att söka igenom alla ARMA-modeller med p in och q in, med undantag för p, q 0.We wrap arimaFit-samtalet i ett R tryCatch-undantagshanteringsblock för att säkerställa att om vi inte får en passform för en viss Värdet på p och q, ignorerar vi det och går vidare till nästa combina P och q. Not att vi ställer in det integrerade värdet av d 0 är detta en annan d till vår indexeringsparameter och som sådan är vi verkligen anpassade till en ARMA-modell snarare än en ARIMA. Loopproceduren ger oss den bästa passningen ARMA-modellen, i form av Akaike Information Criterion, som vi sedan kan använda för att mata in till vår GARCH-modell. I nästa kodblock kommer vi att använda rugarchbiblioteket, med GARCH 1,1-modellen. Syntaxen för detta kräver Oss för att skapa ett ugarchspec-specifikationsobjekt som tar en modell för variansen och medelvärdet. Variansen tar emot GARCH 1,1-modellen medan medelvärdet tar en ARMA p, q-modell, där p och q väljs ovan. Vi väljer också sged Distributionen för felen. När vi har valt specifikationen utför vi den faktiska anpassningen av ARMA GARCH med kommandot ugarchfit, vilket tar specifikationsobjektet, K-återgången till S P500 och en numerisk optimeringslösare. Vi har valt att använda hybrid som Försöker olika lösare För att öka sannolikheten för konvergens. Om GARCH-modellen inte konvergerar så ställer vi helt enkelt in dagen för att producera en lång prediktion, vilket tydligt är ett gissning. Men om modellen konvergerar, matar vi ut datum och morgondagens prediktionsriktning 1 eller -1 som en sträng vid vilken punkt slingan stängs av. För att förbereda utdata för CSV-filen har jag skapat en sträng som innehåller data separerad av ett kommatecken med prognosriktningen för den följande dagen. Den näst sista Steg är att mata ut CSV-filen till disken Detta gör det möjligt för oss att ta indikatorn och använda den i alternativ backtesting-programvara för vidare analys, om så önskas. Dock finns det ett litet problem med CSV-filen som den står just nu. Filen innehåller En lista över datum och en förutsägelse för morgondagens riktning Om vi skulle ladda in detta i backtestkoden nedan som det står skulle vi faktiskt introducera en framåtblickande bias eftersom prediktionsvärdet skulle representera data som inte är kända vid t Han tid för förutsägelsen. För att kunna redogöra för detta behöver vi helt enkelt flytta det förutspådda värdet en dag framåt. Jag har funnit det här att vara enklare med Python Eftersom jag inte vill anta att du har installerat några speciella bibliotek som pandaer , Jag har hållit den till ren Python. Här är det korta skriptet som bär denna procedur ut. Se till att köra den i samma katalog som filen. Vid denna punkt har vi nu den korrigerade indikeringsfilen lagrad i Eftersom detta tar en betydande mängd Av tid för att beräkna har jag tillhandahållit hela filen här för att ladda ner dig själv. Strategiska resultat. Nu när vi har genererat vår indikator CSV-fil måste vi jämföra dess prestanda till Buy Hold. We läser först i indikatorn från CSV-filen Och lagra den som spArimaGarch. We skapar sedan ett skärningspunkt för datumen för ARIMA GARCH-prognoserna och den ursprungliga uppsättningen avkastning från S P500. Vi kan sedan beräkna avkastningen för ARIMA GARCH-strategin genom att multiplicera prognostecknet eller - med själva avkastningen. När vi har avkastningen från ARIMA GARCH-strategin kan vi skapa aktiekurvor för både ARIMA GARCH-modellen och Buy Hold Finally, vi kombinerar dem i en enda datastruktur. Vi kan slutligen använda kommandot xyplot till Plotta båda aktiekurvorna på samma tomt. Aktiekurvan fram till den 6 oktober 2015 är enligt följande. Kvalitetskurvan för ARIMA GARCH-strategin mot Buy Hold för S P500 från 1952. Som du kan se över 65 år har ARIMA GARCH-strategin har betydligt överträffat Buy Hold Men du kan också se att majoriteten av vinsten uppstod mellan 1970 och 1980. Observera att volatiliteten i kurvan är ganska minimal fram till början av 80-talet, vid vilken tidpunkt volatiliteten ökar avsevärt och den genomsnittliga avkastningen Är mindre imponerande. Klart lovar kapitalkurven stor prestanda under hela perioden. Men skulle den här strategin verkligen ha varit tradeable. First of all, låt oss överväga det faktum att ARMA-modellen bara publicerades 1951 jag Det var inte riktigt utnyttjat förrän 1970-talet när Box Jenkins diskuterade det i sin bok. För övrigt upptäcktes ARCH-modellen inte offentligt fram till början av 80-talet av Engle och GARCH själv publicerades av Bollerslev 1986. För det tredje, denna backtest Har faktiskt genomförts på aktiemarknadsindex och inte ett fysiskt omsättningsbart instrument För att få tillgång till ett index som detta skulle det ha varit nödvändigt att handla S P500-futures eller en replika Exchange Traded Fund ETF som SPDR. Det är verkligen lämpligt att tillämpa sådana modeller på en historisk serie före deras uppfinning Ett alternativ är att börja använda modellerna till nyare data Faktum är att vi kan överväga prestanda de senaste tio åren, från 1 januari 2005 till idag. Kurva för ARIMA GARCH-strategin vs Köp Hold för S P500 från 2005 till idag. Som du kan se aktiekurvan är under en Buy Hold-strategi i nästan 3 år, men under börskraschen 2008 2009 Det här är meningsfullt eftersom det sannolikt kommer att bli en betydande seriell korrelation under denna period och det kommer att bli välfångat av ARIMA - och GARCH-modellerna. När marknaden återhämtade sig efter 2009 och går in som ser ut att vara mer en stokastisk trend, Modell prestanda börjar lida igen. Notera att denna strategi lätt kan tillämpas på olika aktiemarknadsindex, aktier eller andra tillgångsklasser jag uppmanar dig starkt att försöka undersöka andra instrument, eftersom du kan få betydande förbättringar på de resultat som presenteras här. Nu Att vi har slutat diskutera ARIMA - och GARCH-modellen, vill jag fortsätta tidsserieanalysdiskussionen genom att överväga långvariga processer, state-space-modeller och samordnade tidsserier. Dessa efterföljande tidsområden kommer att introducera oss till modeller som Kan förbättra våra prognoser utöver vad jag har presenterat här, vilket väsentligt ökar vår lönsamhet och minskar risken. Här är den fullständiga noteringen f Eller indikatorns generering, backtesting och plotting. And Python-koden ska tillämpas på innan den återimporteras. Bara att komma igång med kvantitativ handel. Genomföra handelsstrategier för prognosmodeller. Citat 7.References References 7.It har sedan länge använts i många studier till Förutsäga de dagliga aktiekursrörelserna och har visat sig överträffa neurala nätverk Tay och Cao, 2001 Kim, 2003 Huang m fl 2005 Chen and Shih, 2006 En mängd andra maskininlärningsmetoder inklusive förstärkningslärande O et al 2006, evolutionär bootstrapping Lebaron, 1998 och principen komponentanalys Towers och Burgess 1999 har använts för att prognostisera finansmarknaderna. Även om många av dessa studier tyder på att de överträffar sina riktmärken har vi funnit att de flesta tillvägagångssätt uppvisar stora drawdowns 2 i vinst och stort och överdrivet byte beteende resulterar i Mycket höga transaktionskostnader. Visa abstrakta Dölj abstrakta ABSTRAKT Säsongseffekter och empiriska regelbundenheter i finansiella data har dokumenterats väl i ekonomisk litteratur i över sju årtionden. I det här dokumentet föreslås ett expertsystem som använder nya maskininlärningstekniker för att förutse prisavkastningen över dessa säsongshändelser och därefter Använder dessa förutsägelser för att utveckla en lönsam handelsstrategi. Medan enkla metoder för handel kan dessa regelbundenhet visa sig lönsamma, leder denna handel till potentiella stora neddragningar topp-till-igenom avkastning på en investering uppmätt som en procentandel mellan topp och vinstdrog. Papper introducerar vi ett automatiserat handelssystem baserat på prestationsviktiga ensembler av slumpmässiga skogar som förbättrar lönsamheten och stabiliteten i handelssäsongshändelser. En analys av olika regressionstekniker utförs såväl som en utforskning av fördelarna med olika tekniker för expertvägning. Av modellerna är analys Ed använder ett stort urval av bestånd från DAX Resultaten visar att genvägsvägda ensembler av slumpmässiga skogar ger överlägsna resultat både vad gäller lönsamhet och prediktionsnoggrannhet jämfört med andra ensembleteknik. Det framgår också att med användning av säsongens effekter ger överlägsen resultat än inte Ha dem modellerat explicit. Fulltext Artikel Jun 2014.Ash Booth Enrico Gerding Frank McGroarty. LeBaron 47 tillämpade bootstrapping för att fånga arbitrage möjligheter på valutamarknaden och sedan använde ett neuralt nätverk där dess nätverksarkitektur bestämdes genom en evolutionär process Slutligen , Towers och Burgess 62 använde huvudkomponenter för att fånga arbitrage möjligheter. Visa abstrakt Dölj abstrakt ABSTRAKT Vi föreslår ett automatiserat handelssystem med flera lager som bygger på en lagrad struktur bestående av en maskininlärningsalgoritm, ett online-lärningsverktyg och en riskhanteringsöverlägg. Alternativt beslutstreet ADT, som implementeras med Logitboost, valdes ut Som den underliggande algoritmen En av styrkorna i vårt tillvägagångssätt är att algoritmen kan välja den bästa kombinationen av regler som härrör från välkända tekniska analysindikatorer och även kan välja de bästa parametrarna för de tekniska indikatorerna. Dessutom har online-lärandet Lager kombinerar produktionen av flera ADT och föreslår en kort eller lång position Slutligen kan riskhanteringsskiktet validera handelssignalen när den överstiger ett angivet tröskelvärde på noll och begränsa tillämpningen av vår handelsstrategi när den inte är lönsam. Vi testar Expertviktningsalgoritm med data från 100 slumpmässigt utvalda företag i SP 500-indexet under perioden 2003 -2005 Vi finner att denna algoritm genererar onormala avkastningar under testperioden. Våra experiment visar att stimuleringsförmågan kan förbättra förutsägelsekapaciteten när indikatorer kombineras och aggregeras som en enda prediktor. Ännu mer visade kombinationen av indikatorer för olika lager att Vara tillräcklig för att minska användningen av beräkningsresurser och fortfarande behålla en tillräcklig förutsägbar kapacitet. Artikkel april 2010.German Creamer Yoav Freund.
No comments:
Post a Comment