Tuesday 12 September 2017

Forex Genetiska Algoritmen


Använda genetiska algoritmer för att prognostisera finansiella marknader Burton föreslog i sin bok, En Random Walk Down Wall Street, (1973) att En blindfoldad apa-kasta dart på tidningarna finansiella sidor kunde välja en portfölj som skulle göra lika bra som en noga utvald av experter. Medan evolutionen kanske har gjort mannen 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 kombinationsvärdena för 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 Neural Networks: Prognos Profits.) 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örlig 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 kan utföras: Crossovers representerar reproduktion och biologisk korsning som ses i biologi, varigenom 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. Utväljningar är det stadium där individuella 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, varvid 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). Applicera mutations - 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 denna process att resultera i alltmer gynnsamma 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 Kurvanpassning (överpassning), 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 sig av 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. Dessa algoritmer är dock inte den 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.) 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) som tillåter utbetalningar från ett IRA-konto på ett strafffritt sätt. Regeln kräver det. Den första försäljningen av lager av ett privat företag till allmänheten. IPOs utfärdas ofta av mindre, yngre företag som söker. DebtEquity Ratio är skuldkvoten som används för att mäta en företags039s ekonomiska hävstångseffekt eller en skuldkvot som används för att mäta en individ. MetaTrader 4 - Tester Genetic Algorithms vs Simple Search i MetaTrader 4 Optimizer 1. Vad är genetiska algoritmer MetaTrader 4-plattformen erbjuder nu genetisk algoritmer för optimering av insatserna för expertrådgivare. De minskar optimeringstiden avsevärt utan någon väsentlig invalidering av testningen. Deras arbetsprincip beskrivs i artikeln Genetiska algoritmer: Matematik i detaljer. Denna artikel ägnas åt EAs-inmatningsoptimering med hjälp av genetiska algoritmer jämfört med de resultat som erhållits med direkt, fullständig sökning av parametervärden. 2. Expertrådgivaren För mina experiment har jag lätt genomfört EA-namnet CrossMACD som du kanske har känt från artikeln som heter Order Management - Its Simple: Added StopLoss och TakeProfit till de placerade positionerna. Tillagd Trailing Stop. Använd parametern OpenLuft för att filtrera signaler: Nu kommer signalen att komma om nolllinjen är korsad vid en viss mängd punkter (med noggrannhet till en decimal). Tillagt parameter CloseLuft för liknande filtrering av nära signaler. Sätta i expernalvariablerna perioderna för de långsamma och snabbrörjande medelvärdena som används för MACD-beräkningar. Nu är det en praktiskt genomförd expertrådgivare. Det kommer att vara bekvämt att optimera det och använda i handel. Du kan ladda ner EA CrossMACDDeLuxe. mq4 till din dator och testa det självständigt. 3. Optimering Nu kan vi börja optimera EA. Tre tester kommer att utföras med olika mängder optimerade sökningar. Detta kommer att bidra till att jämföra vinster som erhållits med hjälp av genetiska algoritmer i olika situationer. Efter varje test kommer jag manuellt att ta bort testercachen för de efterföljande testerna, för att inte använda kombinationer som redan hittats. Detta är bara nödvändigt för att experimentet ska vara mer exakt - normalt förbättrar automatisk automatisk chaching av resultat den upprepade optimeringen. För att jämföra resultaten. optimering med hjälp av genetiska algoritmer görs två gånger: första gången - för att hitta den maximala vinsten (vinst), andra gången för att hitta den högsta vinstfaktorn (vinstfaktorn). Därefter ges de bästa tre resultaten för båda optimeringsmetoderna i sammanfattningsrapportbordet sorterat efter de angivna kolumnerna. Optimering är rent experimentell. Denna artikel syftar inte till att hitta inslag som verkligen skulle göra störst vinst. diagram symbol EURUSD diagram tidsram 1 testperiod 2 år modellering Öppna priser endast insatser som sökts in: Det måste noteras att vid användning av genetiska algoritmer är den förväntade tiden för optimering ungefär densamma som optimeringen med hjälp av direktinmatningssökning. Skillnaden är att en genetisk algoritm kontinuerligt skärmar ut säkerligen misslyckade kombinationer och på så sätt minskar mängden nödvändiga test flera gånger (kanske flera tiotals, hundratals gånger). Det är därför du borde inte anpassa dig till den förväntade optimeringstiden när du använder genetiska algoritmer. Den verkliga optimeringstiden kommer alltid att vara kortare: Som du ser har optimering med genetiska algoritmer tagit mindre än fyra minuter i stället för de förväntade fem och en halv timmarna. Optimeringsgraf med genetiska algoritmer skiljer sig också från det med direktsökning. Eftersom dåliga kombinationer redan har skärmts ut, genomförs de följande testerna med kombinationer av ingångar som är mer lönsamma som standard. Det är därför balansen går upp: Låt oss överväga resultaten från båda optimeringsmetoderna i alla detaljer. Situationen har förändrats. Optimeringsperioderna sammanfaller (ett obetydligt fel är tillåtet), och resultaten är identiska. Detta kan förklaras genom att optimeringen bestod av endast 1331 sökningar och denna mängd pass är inte tillräckligt för att använda genetiska algoritmer. de har ingen tid att hämta hastighet - optimeringen är snabbare på grund av att man skärmar ut, förvisso förlorar ingångskombinationer, men med en sådan mängd kombinationer som ovan kan genetiska algoritmer inte definiera vilka föräldrar (ingångskombinationer) som genererar dålig avjämning. Så det är ingen mening att använda dem. 4. Slutsatser Genetiska algoritmer är ett bra komplement till de fyra strategierna optimering. Optimering förbättras dramatiskt om antalet sökningar är stor, resultaten sammanfaller med de som erhålls genom regelbunden optimering. Nu är det ingen mening att använda hela sökningen i inmatningar. Genetiska algoritmer kommer att hitta det bästa resultatet snabbare och inte mindre effektivt. 5. Efterord Efter att ha skrivit artikeln nöjde jag min nyfikenhet och lanserade optimering av CrossMACDDeLuxe på alla ingångar. Mängden kombinationer gjord över hundra miljoner (103 306 896). Optimeringen med hjälp av genetiska algoritmer tog bara 17 timmar, medan optimering med sökning i alla ingångar skulle ta cirka 35 år (301 223 timmar). Slutsatser är upp till dig. 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 kommer en genetisk algoritm att beskrivas som syftar till att optimera en uppsättning regler som utgör ett handelssystem för Forex-marknaden. 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 man tar hänsyn till transaktionskostnader. Om du ignorerar transaktionskostnaderna är resultaten oftast positiva, vilket visar att de bästa individerna har viss prognosförmåga. Genetiska algoritmer Finans 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 valutaväxling 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. Effektiv kapitalmarknad: 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 och nackdelarna med nedräkning 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 evolutionsk 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 tekniskt handelsreglervinster på valutamarknaden: en startstrategi. J. Int. Money Financ. 12 (5), 451474 (1993) CrossRef Google Scholar Menkhoff, L. Taylor, M. P. Den hårda 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 handel med teknisk valuta. 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 denna artikelSnowCron Genetic Algorithm i Forex Trading Systems med hjälp av 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 av ansvarsfriskrivningen. Detta är ett exempel på att använda genetic algoritmfunktionen Cortex Neural Networks Software, 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 i det neurala nätverket. Vi behöver veta den önskade produktionen. Det är ganska lätt att göra när vi fungerar approximativt, 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 det neurala nätverket att göra växelkurs (eller växelkursbaserad indikator) förutsägelse, och sedan använde denna förutsägelse att göra handel. Sedan, utanför det neurala nätverksdelen av programmet, fattade vi ett beslut på vilket neurala nätverk som är den 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äger, värden på en indikator och producerar viss produktion, säger handelssignaler (köp, sälja, hålla.) 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 generationens 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 Det här ä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 lärdes inte ännu. 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 grupp, vi kan göra det, eftersom handtaget bara är ett heltal. Anledningen till att vi använder 15 NN har inget 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 resor (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ärefter utvecklas nätverket, får förmåga att handla i slutet av datamängden 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 något olika vikter. Observera att 0,1 för mutation tangent är inte det enda valet, faktiskt kan även denna parameter 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å korta eller omvända. 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 på neuralt nätverkssignal. 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 kopieras 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 se på hur enskilda vinster förä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: Observera också, att lite förexautomatiserat handelssystem fungerar fattigt 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 omedelbart 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, fick våra NNs överskridande, de lärde sig att överleva i den miljö de brukar, men inte utanför den. Detta händer mycket i naturen. Tillvägagångssättet vi tog istä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. Tja, 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 för en stigande marknad. Sedan presenterade vi, för vinnarna 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 bara är en uppsättning 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 genetisk algoritm vann) till den grad som är proportionell mot DD-storleken. Sedan tar evolutionalgoritmen hand om resten. Det finns få 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, vi kanske 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. Sedan multiplicerar vi vår vinst till denna korrigering. Som resultat korrigeras vinsten för att reflektera 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 villkor: 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: Detta ä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. To deal with that problem, a traditional solution is used: we keep looking for the Neural Network . that performs best on testing set, and save it, overwriting previous best one, every time new peak is reached. This is the same approach, we used in FFBP training, except, this time we have to do it ourselves (adding code, that looks for a best Neural Network on a testing set, and calling SAVENN, or exporting weights of Neural Network to a file). This way, when you stop your training, youll have the best performer ON TESTING SET saved and waiting for you. Note also, that it is not the max. profit you are after, but optimal performance, so consider using corrections, when looking for a best performer on a testing set. Genetic Algorithm for FOREX Technical Analysis: Where now After you got your winner Neural Network . you can follow the steps, described in previous article, to export weights of that Neural Network . and then to use them in your real time trading platform, like Meta Trader, Trade Station and so on. Alternatively, you can focus on other ways of optimizing the Neural Network . unlike with FFBP algorithm, here you can get avay from using learning and testing sets, and move sequential learning. Download Cortex Order Cortex View Price List Visibility is very important for this site. If you like it please link to this URL

No comments:

Post a Comment