Ett Forex trading system baserat på en genetisk algoritm Citera denna artikel som: Mendes, L. Godinho, P. Dias, J. J Heuristics (2012) 18: 627. doi: 10.1007s10732-012-9201-y I det här dokumentet genetisk algoritm kommer att beskrivas som syftar till att optimera en uppsättning regler som utgör ett handelssystem för valutamarknaden. Varje individ i befolkningen representerar en uppsättning av tio tekniska handelsregler (fem för att gå in i en position och fem andra att gå ut). Dessa regler har totalt 31 parametrar, vilket motsvarar individerna. Befolkningen kommer att utvecklas i en given miljö, definierad av en tidsserie för ett specifikt valutapar. En viss individs skicklighet representerar hur väl den har kunnat anpassa sig till miljön och beräknas genom att tillämpa motsvarande regler på tidsserierna och sedan beräkna förhållandet mellan vinst och maximal drawdown (Stirling-förhållandet) . Två valutapar har använts: EURUSD och GBPUSD. Olika data användes för befolkningens utveckling och för att testa de bästa individerna. Resultaten som uppnås av systemet diskuteras. De bästa individerna kan uppnå mycket bra resultat i träningsserien. I testserien visar de utvecklade strategierna lite svårighet att uppnå positiva resultat om du tar hänsyn till transaktionskostnader. Om du ignorerar transaktionskostnaderna är resultaten mest positiva, vilket visar att de bästa individerna har viss prognosförmåga. Genetiska algoritmer Ekonomi Tekniska handelsregler Valutakurser Referenser Alvarez-Diaz, M. Alvarez, A. Prognoser för växelkurserna med hjälp av genetiska algoritmer. Appl. Mag. Lett. 10 (6), 319322 (2003) CrossRef Google Scholar Brabazon, A. ONeill, M. Utveckla tekniska handelsregler för valutamarknader med hjälp av grammatisk utveckling. Comput. Manag. Sci. 1 (3), 311327 (2004) MATH CrossRef Google Scholar Davis, L. Handbok för genetiska algoritmer. Van Nostrand-Reinhold, New York (1991), Google Scholar Dempster, M. A.H. Jones, C. M. Ett realtids adaptivt handelssystem med genetisk programmering. Quant. Finans 1 (4), 397413 (2001) CrossRef Google Scholar Dunis, C. Harris, A. et al. Optimera intraday trading modeller med genetiska algoritmer. Neural Netw. World 9 (3), 193223 (1999) Google Scholar Eling, M. Schuhmacher, F. Valar valet av prestationsåtgärder utvärderingen av hedgefonder J. Bank. Finans 31 (9), 26322647 (2007) CrossRef Google Scholar Fama, E. F. Effektiva kapitalmarknader: en översyn av teori och empiriskt arbete. J. Finance 25 (2), 383417 (1970) CrossRef Google Scholar Goldberg, D. Genetiska Algoritmer i Sök, Optimering och Maskininlärning. Addison-Wesley, Reading (1989) MATH Google Scholar Grefenstette, J. J. Genetiska algoritmer för att ändra miljöer. I: Parallell Problemlösning från Nature 2, Bryssel (1992) Google Scholar Harding, D. Nakou, G. et al. Fördelarna med nackdelarna som en statistisk mått på risk för investeringar. AIMA Journal, april 1617 (2003) Google Scholar Hirabayashi, A. Aranha, C. et al. Optimering av handelsregeln i utländsk valuta med hjälp av genetisk algoritm. I: Förlopp av den 11: e årliga konferensen om genetisk och evolutionell beräkning GECCO09 (2009) Google Scholar Hryshko, A. Downs, T. System för valutahandel med hjälp av genetiska algoritmer och förstärkningslärande. Int. J. Syst. Sci. 35 (13), 763774 (2004) MATH CrossRef Google Scholar Kaboudan, M. A. Genetisk programmering förutsägelse av aktiekurserna. Comput. Mag. 16 (3), 207236 (2000) MATH CrossRef Google Scholar LeBaron, B. Teknisk handelsregel lönsamhet och utländsk valuta intervention. J. Int. Mag. 49 (1), 125143 (1999) CrossRef Google Scholar LeBaron, B. Teknisk handel lönsamhet på valutamarknaderna på 1990-talet (2002) Levich, R. M. Thomas, L. R. Betydelsen av teknisk trading-regel vinster på valutamarknaden: en bootstrap tillvägagångssätt. J. Int. Money Financ. 12 (5), 451474 (1993) CrossRef Google Scholar Menkhoff, L. Taylor, M. P. Den otroliga passionen hos utländska valutafolk: teknisk analys. J. Econ. Belyst. 45 (4), 936972 (2007) CrossRef Google Scholar Meyers, T. A. Kursen för teknisk analys. McGraw-Hill, New York (1989) Google Scholar Mitchell, M. En introduktion till genetiska algoritmer. MIT Press, Cambridge (1996) Google Scholar Neely, C. Weller, P. Intradag teknisk handel på valutamarknaden. J. Int. Money Financ. 22 (2), 223237 (2003) CrossRef Google Scholar Neely, C. Weller, P. et al. Är teknisk analys på valutamarknaden lönsam En genetisk programmeringsmetod. J. Financ. Quant. Anal. 32 (4), 405426 (1997) CrossRef Google Scholar Neely, C. J. Weller, P. A. et al. Den adaptiva marknadens hypotes: Bevis från valutamarknaden. J. Financ. Quant. Anal. 44 (02), 467488 (2009) CrossRef Google Scholar Olson, D. Har handelsregeln vinster på valutamarknaden minskade med tiden J. Bank. Finans 28 (1), 85105 (2004) CrossRef Google Scholar Osman, I. H. Kelly, J. P. Meta-Heuristics: Teoriförstärkare. Kluwer Academic, Dordrecht (1996) MATH Google Scholar Park, C.-H. Irwin, S. H. Vad vet vi om lönsamheten hos teknisk analys J. Econ. Surv. 21 (4), 786826 (2007) CrossRef Google Scholar Pictet, O. V. Dacorogna, M. M. et al. Använda genetiska algoritmer för robust optimering i finansiella applikationer. Neural Netw. World 5 (4), 573587 (1995) Google Scholar Reeves, C. R. Använda genetiska algoritmer med små populationer. I: Förlopp av den femte internationella konferensen om genetiska algoritmer. Morgan Kaufmann, San Mateo (1993) Google Scholar Rothlauf, F. Goldberg, D. Redundanta representationer i evolutionär beräkning. Illinois Genetic Algorithms Laboratory (IlliGAL) Rapport (2002) Schulmeister, S. Komponenter av lönsamheten för teknisk valuta handel. Appl. Financ. Mag. 18 (11), 917930 (2008) CrossRef Google Scholar Sweeney, R. J. Slår valutamarknaden. J. Finance 41 (1), 163182 (1986) Google Scholar Wilson, G. Banzhaf, W. Interday valutahandel med hjälp av linjär genetisk programmering. I: Förlopp av den 12: e årliga konferensen om genetisk och evolutionsk beräkning GECCO10 (2010) Google Scholar Upphovsrätt information Springer ScienceBusiness Media, LLC 2012 Författare och anslutningar Lus Mendes 1 Pedro Godinho 2 Joana Dias 3 E-post författare 1. Faculdade de Economia Universidade de Coimbra Coimbra Portugal 2. Faculdade de Economia och GEMF Universidade de Coimbra Coimbra Portugal 3. Faculdade de Economia och Inesc-Coimbra Universidade de Coimbra Coimbra Portugal Om den här artikeln Använda genetiska algoritmer till prognostiserade finansiella marknader Burton föreslog i sin bok En slumpmässig Walk Down Wall Street, 1973) att en blindfoldad apa kasta dart på tidningar finansiella sidor kunde välja en portfölj som skulle göra lika bra som en noggrant utvald av experter. Medan utvecklingen kan ha gjort människan inte mer intelligent vid att plocka lager, har Charles Darwins teori ganska effektiv när den tillämpas mer direkt. (För att hjälpa dig att välja lager, kolla Hur man väljer ett lager.) Vad är genetiska algoritmer Genetiska algoritmer (GAs) är problemlösningsmetoder (eller heuristik) som efterliknar processen med naturlig utveckling. Till skillnad från artificiella neurala nätverk (ANNs), utformade för att fungera som neuroner i hjärnan, använder dessa algoritmer begreppen naturligt urval för att bestämma den bästa lösningen för ett problem. Som ett resultat brukar GAs vanligtvis användas som optimeringsmedel som anpassar parametrar för att minimera eller maximera viss återkopplingsmått, som sedan kan användas oberoende eller i konstruktionen av en ANN. På de finansiella marknaderna. genetiska algoritmer används oftast för att hitta de bästa kombinationen av parametrar i en handelsregel, och de kan byggas in i ANN-modeller som är utformade för att välja lager och identifiera affärer. Flera studier har visat att dessa metoder kan visa sig effektiva, inklusive genetiska algoritmer: Genesis of Stock Evaluation (2004) av Rama, och tillämpningarna av genetiska algoritmer i Stock Market Data Mining Optimization (2004) av Lin, Cao, Wang, Zhang. (För att lära dig mer om ANN, se Neurala nätverk: Prognoser.) Hur genetiska algoritmer fungerar. Genetiska algoritmer skapas matematiskt med hjälp av vektorer, vilka är kvantiteter som har riktning och storleksordning. Parametrar för varje handelsregel är representerade med en endimensionell vektor som kan betraktas som en kromosom i genetiska termer. Under tiden kan värdena som används i varje parameter betraktas som gener, vilka sedan modifieras med naturligt val. Exempelvis kan en handelsregel innefatta användningen av parametrar som Moving Average Convergence-Divergence (MACD). Exponentiell rörande medelvärde (EMA) och stokastik. En genetisk algoritm skulle sedan mata in värden i dessa parametrar med målet att maximera vinsten. Med tiden införs små förändringar och de som ger en önskad inverkan behålls för nästa generation. Det finns tre typer av genetiska operationer som sedan kan utföras: Crossovers representerar reproduktion och biologisk korsning som ses i biologi, där ett barn tar på sig vissa egenskaper hos sina föräldrar. Mutationer representerar biologisk mutation och används för att upprätthålla genetisk mångfald från en generation av en population till nästa genom att introducera slumpmässiga små förändringar. Urval är det stadium där enskilda genomer väljs från en population för senare uppfödning (rekombination eller crossover). Dessa tre operatörer används sedan i en femstegsprocess: Initiera en slumpmässig population där varje kromosom är n-längd, där n är antalet parametrar. Det vill säga ett slumpmässigt antal parametrar upprättas med n element vardera. Välj kromosomer, eller parametrar, som ökar önskvärda resultat (förmodligen nettovinst). Använd mutation eller crossover operatörer till de valda föräldrarna och generera en avkomma. Rekombinera avkomman och nuvarande befolkning för att bilda en ny befolkning med urvalsoperatören. Upprepa steg två till fyra. Med tiden kommer processen att leda till alltmer fördelaktiga kromosomer (eller parametrar) för användning i en handelsregel. Processen avslutas sedan när ett stoppkriterium är uppfyllt, vilket kan innehålla körtid, träning, antal generationer eller andra kriterier. (För mer om MACD, läs Trading MACD Divergence.) Använda genetiska algoritmer i handel Medan genetiska algoritmer används främst av institutionella kvantitativa handlare. enskilda näringsidkare kan utnyttja kraften i genetiska algoritmer - utan examen i avancerad matematik - med flera mjukvarupaket på marknaden. Dessa lösningar sträcker sig från fristående mjukvarupaket riktad mot finansmarknaderna till Microsoft Excel-tillägg som kan underlätta mer praktisk analys. När man använder dessa applikationer kan handlare definiera en uppsättning parametrar som optimeras sedan med en genetisk algoritm och en uppsättning historiska data. Vissa applikationer kan optimera vilka parametrar som används och värdena för dem, medan andra främst är inriktade på att helt enkelt optimera värdena för en viss uppsättning parametrar. (För mer information om dessa program härledda strategier, se Power of Program Trades.) Viktiga optimerings tips och tricks Kurvmontering (övermontering), utforma ett handelssystem kring historiska data istället för att identifiera repeterbart beteende, utgör en potentiell risk för att handlare använder genetiska algoritmer. Alla handelssystem som använder GA bör provprövas på papper före direktanvändning. Att välja parametrar är en viktig del av processen, och handlare bör söka parametrar som korrelerar med förändringar i priset på en viss säkerhet. Testa till exempel olika indikatorer och se om det verkar korrelera med stora marknadssvingningar. Genetiska algoritmer är unika sätt att lösa komplexa problem genom att utnyttja naturens kraft. Genom att tillämpa dessa metoder för att förutsäga värdepapperspriser kan handlare optimera handelsregler genom att identifiera de bästa värdena som ska användas för varje parameter för en viss säkerhet. Men dessa algoritmer är inte heliga graden, och handlare bör vara noga med att välja rätt parametrar och inte kurva passform (över passform). (För att läsa mer om marknaden, kolla in Lyssna på marknaden, inte dess pundits.) En typ av ersättningsstruktur som hedgefondsförvaltare brukar anställa i vilken del av ersättningen prestationsbaserad. Ett skydd mot inkomstförlust som skulle uppstå om den försäkrade gick bort. Den namngivna mottagaren tar emot. Ett mått på förhållandet mellan en förändring i den mängd som krävdes av ett visst gott och en förändring i dess pris. Pris. Det totala dollarns marknadsvärde för alla bolagets utestående aktier. Marknadsvärdet beräknas genom att multiplicera. Frexit kort för quotFrench exitquot är en fransk spinoff av termen Brexit, som uppstod när Storbritannien röstade till. En order placerad med en mäklare som kombinerar funktionerna i stopporder med de i en gränsvärde. En stop-limit order will. SnowCron Genetic Algorithm i Forex Trading Systems Använda Genetisk Algoritm för att skapa lönsam Forex Trading Strategy. Genetisk algoritm i Cortex Neural Networks Software Feedforward Backpropagation Neural Network Application för genetisk beräkningsbaserad Forex trading. I det här exemplet används begrepp och idéer från den föregående artikeln, så läs först Neural Network Genetic Algorithm i Forex Trading Systems först, men det är inte obligatoriskt. Om den här texten Läs först och främst ansvarsfriskrivningen. Detta är ett exempel på att använda Cortex Neural Networks Software-genetisk algoritmfunktionalitet, inte ett exempel på hur man gör lönsam handel. Jag är inte din guru, inte heller ska jag vara ansvarig för dina förluster. Cortex Neural Networks Software har neurala nätverk i det, och FFBP vi diskuterade förut är bara ett sätt att välja en Forex trading strategier. Det är en bra teknik, kraftfull och när den tillämpas korrekt, mycket lovande. Det har emellertid ett problem - att undervisa om Neural Network. Vi behöver veta den önskade produktionen. Det är ganska lätt att göra när vi fungerar approximation, vi tar bara det verkliga värdet av en funktion, för vi vet vad det ska vara. När vi gör neurala nätverksprognoser. Vi använder tekniken (beskrivs i tidigare artiklar) om att undervisa Neural Network på historien, igen, om vi förutser, säg en växelkurs, vet vi (under träningen) vad den rätta predikan är. Men när vi bygger ett handelssystem har vi ingen aning om vad rätt handelsbeslut är, även om vi känner till växelkursen. Vi har faktiskt många Forex Trading Strategier som vi kan använda när som helst och vi behöver hitta en bra - hur Vad ska vi mata som önskad produktion av vår neurala nätverk Om du följde vår tidigare artikel vet du att vi har lurat att hantera detta problem. Vi lärde oss det neurala nätverket att göra valutaväxling (eller växelkursbaserad indikator) förutsägelse, och sedan använde denna förutsägelse att göra handel. Då, utanför det neurala nätverksdelen av programmet, fattade vi ett beslut om vilket neuralt nätverk som är det bästa. Genetiska algoritmer kan hantera detta problem direkt, de kan lösa det problem som anges som att hitta de bästa handelssignalerna. I den här artikeln kommer vi att använda Cortex Neural Networks Software för att skapa ett sådant program. Använda genetisk algoritm Genetiska algoritmer är mycket väl utvecklade och mycket olika. Om du vill lära dig allt om dem, föreslår jag att du använder Wikipedia, eftersom den här artikeln bara handlar om vad Cortex Neural Networks Software kan göra. Har Cortex Neural Networks Software. Vi kan skapa ett neuralt nätverk som tar lite inmatning, säga, värden på en indikator och producerar en viss produktion, säger handelssignaler (köp, sälj, håll.) och sluta förlust ta vinstnivåer för positioner som ska öppnas. Självklart, om vi sålunda släpper det här neurala nätets vikter, kommer handelsresultatet att bli hemskt. Låt oss dock säga att vi skapat ett dussin av sådana NN. Då kan vi testa prestanda för var och en av dem, och välj den bästa, vinnaren. Detta var den första generationen NN. För att fortsätta till andra generationen måste vi tillåta vår vinnare att odla, men för att undvika att få identiska kopior, kan vi lägga till några slumpmässiga ljud till dess vikter. I andra generationen har vi vår första generations vinnare och dess ofullkomliga (muterade) kopior. Låt oss göra test igen. Vi kommer att få en annan vinnare, vilket är bättre än något annat neuralt nätverk i generationen. Och så vidare. Vi tillåter helt enkelt vinnare att odla och eliminera förlorare, precis som i verklighetens evolution, och vi kommer att få vårt bästa handelsnätverk. utan någon tidigare kunskap om vad handelssystemet (genetisk algoritm) borde vara. Genetisk algoritm för neuralt nätverk: Exempel 0 Detta är det första genetiska algoritmexemplet. och en mycket enkel. Vi ska gå igenom det steg för steg för att lära oss alla knep som följande exempel kommer att använda. Koden har inline kommentarer, så vi kan bara fokusera på nyckelmoment. Först har vi skapat ett neuralt nätverk. Det använder slumpmässiga vikter, och var ännu inte undervisat. Sedan, i cykel, gör vi 14 kopior av det, med användning av MUTATIONNN-fumktion. Denna funktion gör en kopia av ett källa Neural Network. lägger till slumpmässiga värden från 0 till (i vårt fall) 0,1 till alla vikter. Vi håller handtag till resulterande 15 NN i en array, vi kan göra det, eftersom handtaget bara är ett heltal. Anledningen till att vi använder 15 NN har ingenting att göra med handel: Cortex Neural Networks Software kan plotta upp till 15 linjer på ett diagram samtidigt. Vi kan använda olika metoder för testningen. Först kan vi använda inlärningssatsen, allt på en gång. För det andra kan vi testa på, säga 12000 reser (av 100000), och gå igenom inlärningssatsen, från början till slutet. Det kommer att göra learningigs annorlunda, eftersom vi kommer att leta efter Neural Network s som är lönsamma på en viss del av data, inte bara på hela uppsättningen. Det andra tillvägagångssättet kan ge oss problem, om data förändras, från början till slutet. Då kommer nätverket att utvecklas, att få möjlighet att handla i slutet av datasatsen och förlora förmågan att handla i början. För att lösa det problemet ska vi ta slumpmässiga 12000 skivfragment från data och mata det till det neurala nätverket. är helt enkelt en oändlig cykel, eftersom 100000 cyklar aldrig kommer att nås med vår hastighet. Nedan lägger vi till ett barn för varje nätverk, med lite olika vikter. Observera att 0,1 för mutation tangent är inte det enda valet, som faktum, även denna parameter kan optimeras med hjälp av genetisk algoritm. Nyskapade NN läggs till efter 15 befintliga. På så sätt har vi 30 NN i en grupp, 15 gamla och 15 nya. Då ska vi göra nästa testcykel och att döda förlorare, från båda generationerna. För att göra test tillämpar vi Neural Network på våra data, för att producera utgångar, och sedan ringa Test-funktion, som använder dessa utgångar för att simulera handel. Resultatet av handel används för att bestämma vilka NN som är bäst. Vi använder ett intervall av nLearn-poster, från nStart till nStart nLearn, där nStart är en slumpmässig punkt inom inlärningssatsen. Koden nedan är ett knep. Anledningen till att vi använder det är att illustrera faktumet att den genetiska algoritmen kan skapa en genetisk algoritm. men det kommer inte nödvändigtvis att vara det bästa, och också att föreslå att vi kan förbättra resultatet, om vi innebär några begränsningar för inlärningsprocessen. Det är möjligt att vårt handelssystem fungerar väldigt bra på långa affärer, och mycket fattiga på kort eller vice versa. Om långa affärer är mycket bra, kan den här genetiska algoritmen vinna, även med stora förluster på korta affärer. För att undvika det tilldelar vi mer vikt till långa affärer i udda och korta affärer i jämncykler. Det här är bara ett exempel, det finns ingen garanti för att det kommer att förbättra något. Mer om det nedan, i diskussion om korrigeringar. Tekniskt behöver du inte göra det, eller kan göra det annorlunda. Lägg till vinst i en sorterad array. Den returnerar en infogningsposition, då använder vi den här positionen för att lägga till Neural Network-handtag, lära och testa vinster till icke-sorterade arrays. Nu har vi data för nuvarande neurala nätverk i samma array index som dess vinst. Tanken är att komma fram till en rad NN, sorterade efter lönsamhet. Eftersom array sorterar efter vinst, för att ta bort 12 nätverk, som är mindre lönsamma, behöver vi bara ta bort NNs 0 till 14 Handelsbeslut baseras på värdet av Neural Network-signalen. Ur denna synvinkel är programmet identiskt med exempel från föregående artikel. Forex Trading Strategy: Diskutera exempel 0 Först och främst kan vi ta en titt på diagram. Det första diagrammet för vinst under den första iterationen är inte alls bra, vilket borde förväntas, det neurala nätverket förlorar pengar (bild evolution00gen0.png kopierat efter första iteration från bildmapp): Bilden för vinst på cykel 15 är bättre, ibland , genetisk algoritm kan lära sig riktigt snabbt: Observera dock mättnaden på en vinstkurva. Det är också intressant att titta på hur enskilda vinster ändras, med tanke på att kurvtalet säger 3 är inte alltid för samma neurala nätverk. som de föds och avslutas hela tiden: Också iakttagas, att lite förexautomatiserat handelssystem utförs dåligt på korta affärer, och mycket bättre i längden, vilket kanske inte är relaterat till det faktum att dollarn sjönk jämfört med euro under den perioden. Det kan också ha något att göra med parametrarna för vår indikator (kanske vi behöver annan period för shorts) eller valet av indikatorer. Här är historien efter 92 och 248 cykler: Till vår förvåning misslyckades den genetiska algoritmen helt. Låt oss försöka lista ut varför, och hur man hjälper situationen. Först och främst är inte varje generation förmodad att vara bättre än den tidigare. Svaret är nej, åtminstone inte inom modellen vi använde. Om vi tog ALLTIRE inlärning på en gång och använt det upprepade gånger för att lära våra NN, så ja, de kommer att förbättras på varje generation. Men i stället tog vi slumpmässiga fragment (12000 poster i tid) och använde dem. Två frågor: varför systemet misslyckades med slumpmässiga fragment av inlärningssättning, och varför har vi inte använt hela uppsatsen som bra. För att svara på den andra frågan gjorde jag det. NNs utförs kraftigt - på inlärningsset. Och de misslyckades med att testa uppsättningen, av samma anledning misslyckas det när vi använde FFPB-lärande. För att uttrycka det annorlunda, blev våra NNs överspecialiserade, de lärde sig att överleva i den miljö de är vana vid, men inte utanför den. Detta händer mycket i naturen. Tillvägagångssättet vi tog i stället var avsett att kompensera för det genom att tvinga NN att göra bra på ett slumpmässigt fragment av datasetet, så att de förhoppningsvis också kunde utföra på ett okänt testningssätt. Istället misslyckades de både med testning och lärande. Föreställ dig djur som bor i en öken. Mycket sol, ingen snö alls. Detta är en metafor för riseringsmarknaden, eftersom vår NNs data spelar rollen som miljö. Djur lärde sig att leva i en öken. Föreställ dig djur som lever i ett kallt klimat. Snö och ingen sol alls. Jo, de justerade. Men i vårt experiment slog vi slumpmässigt våra NN i en öken, i snö, i vattnet, på träden. genom att presentera dem med olika fragment av data (slumpmässigt stigande, fallande, platt.). Djur dog. Eller, för att uttrycka det annorlunda, valde vi det bästa neurala nätverket för slumpmässig dataset 1, vilket var att säga till en stigande marknad. Sedan presenterade vi vinnande och deras barn en fallande marknadsdata. NNs utfördes dåligt, vi tog bäst av fattiga artister, kanske en av de mutanta barnen, som förlorade förmågan att handla på stigande marknad, men fick lite förmåga att hantera fallande. Sedan vände vi bordet igen, och igen fick vi bäst performer - men bäst bland fattiga artister. Vi gav helt enkelt våra NNs inga chanser att bli universella. Det finns tekniker som tillåter genetisk algoritm att lära sig ny information utan att förlora prestanda på gammal information (trots allt kan djur leva på sommaren och på vintern, rätt så evolution IS kan hantera upprepade förändringar). Vi kan diskutera dessa tekniker senare, men den här artikeln handlar mer om att använda Cortex Neural Networks Software. än om att bygga ett framgångsrikt forexautomatiserat handelssystem. Neural Network Genetic Algorithm: Exempel 1 Nu är det dags att prata om korrigeringar. En enkel genetisk algoritm som vi skapade under föregående steg har två stora brister. För det första misslyckades det att handla med vinst. Det är ok, vi kan försöka använda delvis tränade system (det var lönsamt i början). Den andra felet är allvarligare: vi har ingen kontroll över saker som detta system gör. Det kan till exempel lära sig att vara lönsamt, men med stora drawdowns. Det är ett välkänt faktum att evolutionen i det verkliga livet kan optimera mer än en parameter samtidigt. Till exempel kan vi få ett djur som kan springa snabbt och vara motståndskraftigt mot kyla. Varför inte försöka göra detsamma i vårt forex-automatiserade handelssystem. Det är när vi använder korrigeringar, som är ingenting annat än uppsättningen ytterligare straff. Säg, vårt system handlar med drawdown 0.5, medan vi vill bekräfta det till 0 - 0.3 intervall. För att berätta för systemet att det gjorde ett misstag minskar vi dess vinst (en som användes för att bestämma vilken genalgoritm som vann) i den grad som är proportionell mot DD-storleken. Då tar evolutionalgoritmen hand om resten. Det finns några fler faktorer som vi vill ta hänsyn till: vi kanske vill ha mer eller mindre lika många köp och säljoperationer, vi vill ha mer lönsam verksamhet, då av misslyckanden, kanske vi vill att vinstdiagrammet ska vara linjär och så vidare. I evolution01.tsc implementerar vi en enkel uppsättning korrigeringar. Först och främst använder vi ett stort antal för ett första korrigeringsvärde. Vi multiplicerar den till ett litet (vanligtvis mellan 0 och 1) värden, beroende på det straff vi vill tillämpa. Då multiplicerar vi vår vinst till denna korrigering. Som resultat korrigeras vinsten för att återspegla hur mycket den genetiska algoritmen motsvarar våra andra kriterier. Sedan använder vi resultatet för att hitta ett vinnande neuralt nätverk. Forex Trading Strategy: Diskutera exempel 1 Exempel 1 fungerar mycket bättre än exempel 0. Under de första 100 cyklerna lärde sig det mycket, och vinstdiagrammen ser lugnande ut. Men som i exempel 0 är långa affärer mycket mer lönsamma, vilket sannolikt innebär att det finns ett problem i vår strategi. Systemet hittade emellertid en balans mellan några motsägelsefulla initiala förhållanden: Det finns en viss positiv dynamik både vid inlärningssättning och, viktigare, vid testuppsättning. När det gäller vidareutbildning, vid cykel 278 kan vi se att vårt system har överträffats. Det betyder att vi fortfarande har framsteg på inlärningssättet: Men att testa set visar svaghet: Det här är ett vanligt problem med NN: när vi lär det om lärande, lär det sig att hantera det, och ibland lär det sig alltför bra - till grad när det förlorar prestanda vid testuppsättningen. För att hantera det problemet används en traditionell lösning: vi letar efter det neurala nätverket. Det som bäst presterar på testet, och spara det, skriva över tidigare bästa, varje gång ny topp nås. Det här är samma tillvägagångssätt som vi använde i FFBP-träning, förutom den här gången måste vi göra det själv (lägga till kod, som letar efter ett bästa neuralt nätverk på en testuppsättning och ringer SAVENN eller exporterar vikter av neuralt nätverk till en fil). På det här sättet, när du slutar träna, har du den bästa utställaren ON TESTING SET sparad och väntar på dig. Observera också att det inte är max. vinst du är ute efter, men optimal prestanda, så överväga att använda korrigeringar när du letar efter en bäst utförare på en testuppsättning. Genetisk algoritm för FOREX Teknisk analys: Var nu Efter att du fick din vinnare Neural Network. Du kan följa stegen, som beskrivs i föregående artikel, för att exportera vikter av det neurala nätverket. och sedan använda dem i din realtids handelsplattform, som Meta Trader, Trade Station och så vidare. Alternativt kan du fokusera på andra sätt att optimera det neurala nätverket. till skillnad från FFBP-algoritmen, kan du få avay från att använda inlärnings - och testningssatser och flytta sekventiell inlärning. Ladda ner Cortex Order Cortex Visa prislista Synlighet är mycket viktigt för den här webbplatsen. Om du gillar det, vänligen länka till den här webbadressen
Comments
Post a Comment