Maskininlärning är ett fält av artificiell intelligens där dataprogram lär sig istället för att blint följa ett manus. Med tillräckligt träningsdata kan du lära dig de här algoritmerna för att köra bil, pilotera en helikopter eller bygga den bästa sökmotorn i världen. Här är de resultat jag fick med mitt första tillvägagångssätt vid tillämpning av maskininlärning till valutahandel. En rad olika algoritmer införs för att försöka förutse utvecklingen av ett instrument med data från endast 8 dagliga staplar till det förflutna. För varje dag registreras fyra värden, de tre första uppgifterna om rörelsen från de föregående dagarna ligger nära dagarna, höga och låga, i procent medan den fjärde registrerar volymen för dagen. Detta ger 32 oberoende variabler totalt. Uppgifterna erhålls från tre instrument i dukascopydatabasen, EURUSD, AUDJPY och GBPCHF daily. Fråga barer från 1 januari 2008 till 31 december 2011, med helger blandade i följande måndag. För var och en av de testade algoritmerna användes de första två åren för att träna modellerna medan 2012 användes för att testa dem. Det öppna Java-biblioteket för maskininlärningsalgoritmer som används kommer från WEKA: Data Mining Software i Java i. Du kan ladda ner biblioteket eller det användarvänliga programmet fritt på cs. waikato. ac. nzmlweka. Förutsägande marknadens riktning Dessa tester utvärderar i vilken utsträckning det är möjligt att förutsäga morgondagens övergripande rörelse (från nära till nära) baserat på data från åtta tidigare dagar med hjälp av olika maskininlärningsalgoritmer. En hög korrelation innebär att modellen förutspår följande dayrsquos övergripande rörelsebrunn. I det här fallet är korrelationerna väldigt nära noll så modellerna canrsquot förutsäger den övergripande rörelsen på marknaden alls. Förutsägning av marknadens räckvidd För forexen definieras intervallet här som skillnaden mellan dayrsquos high och dayrsquos low som en procentandel av föregående stängning (för att olika instrument ska kunna jämföras). En av de enklaste och bästa metoderna, närmaste grannar, utför bäst i denna uppgift. Denna metod, för varje fall, tittar helt enkelt på n fallen i träningssatsen som ser mest ut som den och förutspår ett vägt genomsnitt av sitt intervall. Att förutse instrumentets absoluta rörelse Instrumentets absoluta rörelse är den totala rörelsen för en dag men alltid positiv. Detta liknar något av intervallet. Det är omöjligt att förutsäga marknadens riktning för följande dag baserat endast på åtta tidigare staplar och volymer, åtminstone med hjälp av dessa algoritmer. Ändå är den första felaktigheten i den här strategin kanske att den försöker förutspå varje dag. Kanske kan en elimineringsprocess ta bort en stor mängd data som oftast är oförutsägbar. Å andra sidan finns det andra algoritmer som återkommande neurala nätverk som är mer lämpliga för uppgiften till hands. Det är möjligt att i viss utsträckning förutse nästa dags intervall och därmed ganska logiskt den absoluta rörelsen (från nära till nära). Denna typ av information kan inte vara relevant för handlare som följer trender men det kan vara relevant för scalpers som behöver förutsäga ett valutapar. Jag tror att sådana algoritmer överträffar spektrumindikatorer som ATR i den meningen att de är prediktiva snarare än vägledande. 1 Mark Hall, Eibe Frank, Geoffrey Holmes, Bernhard Pfahringer, Peter Reutemann, Ian H. Witten (2009) WEKA Data Mining Software: En uppdatering SIGKDD Explorations, Volume 11, Issue 1.Machine Learning Användas till Forex Maskininlärning kan hjälpa oss optimera automatiska handelsstrategier. Genom att studera den enorma mängd tidigare information kan vi identifiera mönster som hjälper oss att förutsäga marknadsutvecklingen i tillräcklig utsträckning. Detta är givetvis vad vissa handlare har gjort länge, men automatiseringen av processen gör det möjligt för oss att hitta mycket bättre strategier och mycket snabbare än det skulle ta en människa. Här föreslår vi en spekulativ strategi som har testats framgångsrikt och demonstrerar möjligheterna med maskinlärning i forex. Automatiskt hitta en vinnande spekulativ strategi på eurusd EURUSD är ett mycket lukrativt par för en spekulativ strategi byggd från maskinlärningsalgoritmer, även om vår metod kan hitta vinnande strategier på andra instrument och några som fungerar över flera instrument, de strategier som utvecklats för EURUSD ge bästa avkastning. Så här bygger strategierna. Vi kan inte mata själva priset till algoritmen eftersom vi vill att det ska känna igen mönster oberoende av deras höjd på ett diagram. Vi matar därför prisutvecklingen, från hög till hög och låg till låg (bättre än öppen för stängning). Detta är en enkel typ av indikator med en överraskande diskriminerande kraft mellan forexmönster. Men vilka intervaller ska vi välja för våra indikatorer och använda hög och låg över vilken period Vår algoritm svarar på den här frågan för oss genom att optimera en uppsättning indikatorer och poängtera hur bra en strategi vi kan bygga på den. Metoden som används för optimering är en genetisk algoritm. Vi bygger några uppsättningar indikatorer de starkaste (högre poäng) har en bättre chans att ldquoreproducingrdquo och ldquomutatingrdquo medan de svagare är ersatta. Denna metod tenderar att optimera indikatorseten och det är tusentals gånger snabbare än att bara prova varje enskild möjlighet. Vi gör en uppsättning indikatorer av hur bra en strategi vi kan bygga med den. Strategierna bygger automatiskt med hjälp av ett andra optimeringssteg och en datastruktur, det konstgjorda neurala nätverket. Det neurala nätverket tar som indikator indikatorvärdena under en viss period och matar ut viss information om instrumentets framtid. Vad förutsäger det konstgjorda neurala nätet Det neurala nätet försöker förutspå en normaliserad vinstfaktor (bruttoresultat dividerat med bruttoförlusten) på en enda handel över en viss period i framtiden. Perioden i fråga kan variera mellan 3 och 10 dagar, det är en optimerbar parameter för strategin. Därför använder vår strategi inte nödvändigtvis stop-förluster och tar vinster, utan vi öppnar en position för en bestämd tid och stänger positionen i slutet av den perioden, vad som än hände. Nätet är graderat med procentandelen av korrekta förutsägelser vägda av itrsquos noggrannhet. Alternativt kan våra neurala nät förutsäga vilken del av kontosaldot som ska placeras, nätet klassificeras sedan med kontot eller slutresultatet. Gemensamma fällor i strategier för automatisk styrning Det finns några vanliga fallgropar att vara medvetna om i sådana strategier där strategin verkar ge fantastiska vinster men är värdelös i det verkliga livet. Den viktigaste försiktigheten är att perioden då strategin testas inte borde vara densamma som den period den bygger på. Annars kan vi helt enkelt generera tusentals komplexa slumpmässiga strategier och välja den som fungerar bäst under en viss period, men det är bara om vi har ett positivt resultat på en oberoende uppsättning data som vi kan börja lita på vår strategi. I verkligheten använder vi tre tidsoberoende datasatser, träningssatsen används för att bygga systemet, valideringsuppsättningen används för att undvika överlärning och testsatsen används för de rapporterade resultaten. I vårt fall når vi 60 korrekta satsningar på testet som sträcker sig över det senaste året. Det är också dåligt att optimera en vinst och sluta förlusten från början. När man optimerar en strategi i en period som är för kort kan man enkelt få en fantastisk total vinst genom att ställa in vinsten mycket nära och slutförlusten väldigt långt. När slutförlusten slutligen nås på en längre period är konsekvenserna förödande. När väl en lönsam strategi hittas kan dock vinstdrivningen och stoppförlusten optimeras men de borde aldrig vara för avstånd från varandra. Att ta en vinst och sluta förlust är aldrig en strategi i sig, snarare ett sätt att kontrollera risken. En optimal strategi testad med en erkänd simulator Vår strategi får en teoretisk 62,5 korrekt satsning på EURUSD. Men vi kan få en bättre bedömning av strategin med en bra simulering och en verklig tillämpning av strategin. Av denna anledning implementerade vi strategin med hjälp av JForex API och testade det på jForex-plattformen. Återigen var vi försiktiga att inte blanda den period som vi använde för att optimera vår strategi och den period vi brukade testa. Vi har också förfinat vår strategi att justera mer belopp på varje position för att återspegla strategyrsquos förutsägelser. Detta förbättrade avsevärt vinstfaktorn (bruttoresultat dividerat med bruttoförlusten) av vår strategi. Vi använder en hävstång för att öka eller minska risken och förväntad avkastning. Mer än 161 branscher, vår vinstfaktor för vår strategi är testperioden 2,87. Det betyder att vi får 2,87 gånger mer vinst än avdrag i branschen. Trots att vi bara får 60,24 lönsamma affärer, är de mycket lönsamma än de förlorande affärer är lönsamma. Den slutliga statistiken vi finner mycket berättande är den maximala konsekutiva nedräkningen, 5 och den maximala konsekutiva vinsten, 18 av eget kapital. Vi har ett livekonto som kör strategin, men det har gjort det för alldeles för liten en tidsperiod för att bedöma det på så sätt. Vi har också optimerat en vinst och en förlustavbrott. Eftersom vi vägrar se dem som faktorer som strategiparametrar, men hellre vill se dem som riskkontrollparametrar, håller vi dem alltid lika varandra. Det motsatta skapar en ojämlikhet som gör det svårt att bedöma strategin. Återigen optimerades dessa parametrar på en annan period än testperioden. Resultaten visar att en stop-loss och vinstdrivande vinst verkligen borde användas och att den bör placeras väldigt nära, ca 18 pips. Att placera dem närmare öppningspriset förbättrar den totala vinstfaktorn men på dessa nivåer blir provisioner och avgifter besvärliga. Stopp och förlustförbättring förbättrar vinstfaktorn och strategins övergripande stabilitet medan de hindrar total vinst men hävstångseffekten kan avhjälpa situationen. Nackdelar med en automatisk handelsstrategi En gemensam kritik om blackbox-strategier som vår är att marknaden alltid kan plötsligt förändras och strategier som fungerade innan wonrsquot jobbar på obestämd tid. Vi måste erkänna att detta är helt grundat, och det är vår åsikt att inget kan göras för att undvika detta utan en kristallkula för att kunna förutse framtiden. Men det är också vår känsla att detta är sanningen med någon spekulativ strategi, konstgjord eller på annat sätt. Det är uppenbart att forexen har haft stora förändringar i det förflutna. Volymen är en bra indikator för den delen, det ger oss verkligen en inblick i det ögonblick då ett instrument handlas ändras. På diagrammet nedan kan du observera volymutvecklingen för EURUSD under de senaste 16 åren. En strategi som byggts med hjälp av data som är för avlägsen gör inte jobbet längre. Vår strategi har emellertid fungerat lika bra på EURUSD under de senaste åren och ingenting tyder på att det kommer att förändras när som helst snart. Det finns två saker vi kan göra för att skydda oss mot en plötslig förändring i hur valutamarknaden handlas. Först kan vi övervaka marknaden och vänta på det ögonblicket när vår strategi doesnrsquot jobbar längre med statistiken som strategin ska följa som den maximala konsekutiva nedräkningen och genom att följa volymen. För det andra kan vi göra whatrsquos som heter on-line inlärning där vår strategi kontinuerligt optimeras på ny data. Detta andra alternativ är bra praxis men det skyddar inte mot de plötsliga förändringar som är typiska i forex varje år. Den bästa lösningen är att genomföra båda dessa metoder genom att regelbundet optimera våra strategier samtidigt som vi är medvetna om att en djupare förändring av strategin i slutändan kommer att bli nödvändig. Den andra kritiken är att vi aldrig riktigt förstår vad en svart boxmodell gör. Det är inte fallet för oss eftersom vår modell är ganska enkel, men vi ska ta hemligheten till vår grav eller åtminstone tills strategin inte är lönsam längre. Tack för att du läser, Översätt till RussianMachine Learning in Forex Trading: Varför många akademiker gör allt fel Att bygga maskininlärningsstrategier som kan få bra resultat under levande marknadsförhållanden har alltid varit en viktig utmaning för algoritmisk handel. Trots det stora intresset och de otroliga potentiella belöningarna finns det fortfarande inga akademiska publikationer som kan visa bra maskininlärningsmodeller som framgångsrikt kan hantera handelsproblemet på den verkliga marknaden (så långt det är min kännedom, skriv en kommentar om du har en och I8217ll är mer än glad att läsa den). Även om många papper publiceras tycks visa lovande resultat, är det ofta så att dessa papper faller i en rad olika statistiska problem med bias som gör den verkliga marknadssuccesen för sina maskininlärningsstrategier mycket osannolika. På today8217s inlägg kommer jag att prata om de problem som jag ser i akademisk forskning relaterad till maskininlärning i Forex och hur jag tror att denna forskning kan förbättras för att ge mycket mer användbar information för både akademiska och handelssamhällen. De flesta fallgropar i maskininlärningsstrategidesign när man gör Forex trading är oundvikligen ärvt från världen av deterministiska lärandeproblem. När man bygger en maskininlärningsalgoritm för något som ansiktsigenkänning eller brevigenkänning finns ett väldefinierat problem som inte förändras, vilket i allmänhet hanteras genom att man bygger en maskininlärningsmodell på en delmängd av data (en träningssats) och sedan testar om Modellen kunde korrekt lösa problemet genom att använda påminnelsen om data (en testuppsättning). Det är därför du har några kända och väl etablerade datasatser som kan användas för att fastställa kvaliteten på nyutvecklade maskininlärningstekniker. Huvudpunkten här är dock att de problem som ursprungligen tacklades av maskininlärning var mest deterministiska och tidsoberoende. När man går in i handel ger man samma problem med många problem som är relaterade till såväl den delvis icke-deterministiska karaktären hos marknaden som dess tidsberoende. Den ena åtgärden att försöka välja utbildnings - och testuppsättningar introducerar en betydande mängd bias (en datautvalsförskjutning) som skapar ett problem. Om valet upprepas för att förbättra resultaten i testsetet 8211 som du måste anta händer i åtminstone vissa fall 8211 så lägger problemet också en stor mängd data-mining bias. Hela problemet med att göra en enda träningsvalidiseringsövning genererar också ett problem som gäller hur denna algoritm ska tillämpas vid live-handel. Per definition kommer den levande handeln att vara annorlunda eftersom valet av träningsutställningsuppsättningar behöver användas på olika data (som nu är testuppsättningen verkligen okänd data). Den bias som är inneboende i det inledande urvalet av urvalet av urvalet av urvalet och bristen på testade regler för handel med okända data gör att sådana tekniker vanligtvis misslyckas i direkt handel. Om en algoritm är utbildad med data från 2000-2012 och kryssvaliderad med 2012-2015 data finns det ingen anledning att tro att samma framgång kommer att hända om det utbildas i 2003-2015 data och sedan levereras från 2015 till 2017, är mycket olika i naturen. Mätning av algoritm framgång är också ett mycket relevant problem här. Oavsiktligt måste maskininlärningsalgoritmerna som används för handel mäts i förtjänst genom deras förmåga att generera positiv avkastning, men viss litteratur mäter fördelen med nya algoritmiska tekniker genom att försöka ställa in deras förmåga att få korrekta förutsägelser. Korrekta förutsägelser är inte nödvändigtvis lika lönsam handel som du enkelt kan se när du bygger binära klassificatorer. Om du försöker förutse nästa ljusriktning kan du ändå göra en förlust om du oftast har rätt på små ljus och fel på större ljus. Faktum är att de flesta av denna typ av klassificeringar 8211 slutar att förutsäga riktning med en över 50 noggrannhet, men inte över den nivå som behövs för att överträffa uppdrag som skulle möjliggöra lönsam binär optionshandel. Att bygga strategier som för det mesta är borta från ovanstående problem har jag alltid förespråkat för en metod där maskininlärningsalgoritmen omskolas innan ett träningsbeslut fattas. Genom att använda ett rörligt fönstret för träning och aldrig göra mer än ett beslut utan omskolning av hela algoritmen kan vi bli av med urvalsaspekten som är inneboende vid val av en enda in-sampleout-of-sample-uppsättning. På så sätt är hela testet en serie träningsvaliditetsövningar som slutar säkerställa att maskininlärningsalgoritmen fungerar även under oerhört olika träningsdatasatser. Jag förespråkar också för mätning av faktiska backtesting prestanda för att mäta en maskininlärning algoritm8217s merit och dessutom skulle jag gå så långt som att säga att ingen algoritm kan vara värt sitt salt utan att bevisas under reella externa förhållanden. Att utveckla algoritmer på detta sätt är mycket svårare och jag har hittat ett enda akademiskt papper som följer denna typ av tillvägagångssätt (om jag saknade det, gärna lägga till en länk så att jag kan inkludera en kommentar). Detta betyder inte att denna metod är helt problemfri, men den är fortfarande föremål för de klassiska problem som är relevanta för alla strategibyggnadsövningar, inklusive kurvpassande bias och data-mining bias. Därför är det också viktigt att använda en stor mängd data (jag använder 25 år för testsystem, alltid omskolning efter varje maskinbeslutsfattande beslut) och att utföra adekvata data-mining bias utvärderingstest för att bestämma det förtroende vi kan säg att resultaten inte kommer från slumpmässig chans. Min vän AlgoTraderJo 8211 som också råkar vara medlem i mitt handelssamhälle 8211 växer för närvarande en tråd hos ForexFactory efter samma typ av filosofi för maskininlärningsutveckling, eftersom vi arbetar med några nya maskininlärningsalgoritmer för mitt handelssamhälle. Du kan referera till hans tråd eller tidigare inlägg på min blogg för flera exempel på maskininlärningsalgoritmer som utvecklats på detta sätt. Om du vill lära dig mer om vår utveckling av maskininlärning och hur du också kan utveckla dina egna maskininlärningsstrategier med hjälp av F4-ramarna, vänligen överväga att ansluta dig till Asirikuy. en webbplats fylld med pedagogiska videor, handelssystem, utveckling och ett ljud, ärligt och öppet sätt att automatisera trading. MetaTrader Expert Advisor Maskininlärning presenterar många unika och övertygande fördelar för handlare som letar efter en kanten på marknaden. Bara under det senaste året har vi sett en stor mängd resurser från världens bästa hedgefonder, som Bridgewater Associates, dedikerade till att utforska dessa tekniker. Medan man använder maskininlärning eller artificiell intelligens verkar oerhört komplex och svår att genomföra, finns det fortfarande sätt att utnyttja sina möjligheter utan att behöva doktorsexamen i matematik eller vetenskap. I det här inlägget går du igenom 3 olika sätt att du kan använda tekniker från maskininlärning för att förbättra din egen handel. Indikatorval Ett av de viktigaste besluten är att bestämma vilka indikatorer som ska användas för handel. Oavsett om du är en teknisk eller grundläggande näringsidkare, eller om du bara använder prisåtgärder för handel, kommer din framgång till stor del att vara beroende av de indikatorer du använder och hur du tolkar dem. Lyckligtvis finns det många olika metoder för att välja dina indikatorer och det här kallas funktionsval i maskinlärande världen. Genom att använda ett beslut Tree för att välja dina indikatorer Beslut träd är mycket mångsidiga algoritmer som har fördelen av att vara lätt tolkbar. Med en stor dataset av indikatorer och tillgångens prisrörelse kommer ett besluts träd att hitta indikatorerna och indikatorvärdena som bäst delar upp data mellan prisökningar och prisnedgångar. Indikatorer närmare toppen av trädet ses som bättre förutsägare än de som ligger närmare botten av trädet, och efter en viss gren kan du enkelt hitta ömsesidiga beroende och förhållanden mellan indikatorerna. Beslutet kommer också att ge dig en uppsättning regler som du kan använda för att handla utifrån dessa indikatorer, men du måste vara säker på att beskära trädet ordentligt och testa för överfitting. Beslutet träd är ett kraftfullt visuellt verktyg som kan hjälpa dig att bestämma vilka kombinationer av indikatorer som ska handlas och vilka värden som ska handlas med dem. Du kan hitta en handledning om hur man bygger en strategi med ett beslutsträning här eller för en mer allmän vägledning. Här är R en bra resurs. Optimering När du har lagt grunden för din strategi är nästa steg optimering, eller du väljer rätt parametervärden för att maximera din chans att lyckas. Många strategier har ett brett utbud av parametrar, till exempel indikatorinställningar, inmatnings - och utträdesförhållanden, stoppa förlusterna och ta vinstnivåer och positionering, vilket gör brutna kraftmetoder för att prova varje kombination extremt svårt och tidskrävande, om det alls även möjligt. Att lösa dessa typer av problem är ett annat område där maskininlärning utmärker sig. Optimera en strategi med hjälp av genetiska algoritmer Genetiska algoritmer efterliknar processen med naturligt urval genom att skapa en unik uppsättning barnstrategier som innehåller en blandning av de bästa moderstrategierna, med chans att slumpmässig mutation. Processen börjar genom att koda din strategi i en array. Till exempel kan det läsa som något: Indikator 1 Period Du skulle då generera en stor population av strategier med slumpmässiga variationer av dessa parametrar. Dessa strategier har alla olika kombinationer av glidande medelperioder, inmatnings - och utträdesförhållanden och risk-till-belöningsförhållanden. Därefter skulle du testa den här befolkningen genom att köra varje strategi över en testuppsättning och välja de bästa strategierna baserat på en prestandametrik efter eget val. Slutligen kombinerar du slumpmässigt egenskaperna hos de bästa strategierna, med en liten chans att mutera några av parametrarna, för att skapa en ny generation barnstrategier. Därefter upprepar du utvärderingsproceduren och återigen mäter de bästa strategierna från den här nya generationen. Detta leder till en överlevnad av det fittesta scenariot där endast de översta strategierna överlever att passera genom sina gener till nästa generation. Upprepa denna process ett stort antal gånger eller tills ett visst prestationskriterium är uppnått och du lämnas med en mycket robust strategi byggd från generationer av de bästa resultatstrategierna Du måste se till att du väljer en lämplig prestandamätning (t. ex. riskjusterad avkastning) och test alltid den slutliga strategin över data som inte användes för att bygga strategin för att säkerställa att du inte övergår till en särskild dataset. Detta är en mycket kraftfull och robust metod som har blivit framgångsrik i en mängd olika applikationer, inklusive handeln. Här hittar du en mer detaljerad beskrivning och en handledning om hur du implementerar den i R här. Live Trading En av de mer attraktiva aspekterna av maskininlärning har en algoritm som kan lära sig och anpassa sig till förändrade marknadsförhållanden. Men det här skapar en blackbox-strategi som om du inte helt förstår hur algoritmerna fungerar och testat det själv, är det väldigt svårt att lita på ett livekonto. Att inte veta när eller varför en strategi går in i en handel kan vara ett läskigt förslag. Det finns dock sätt att dra nytta av ett intelligent, algoritmiskt tillvägagångssätt samtidigt som du behåller insyn och förståelse i din strategi. Association Learning Association Association Rule Learning är processen att härleda en uppsättning tydliga och förståbara regler från de mönster som avslöjas av en maskininlärningsalgoritm. Algoritmer, som Apriori-algoritmen, söker en dataset med indikatorer, indikatorvärden och den resulterande prisrörelsen för att producera en uppsättning villkor i grunden om-då uttalanden som leder till de mest effektiva resultaten. Men det är fortfarande svårt att veta exakt var dessa regler kommer ifrån, Apriori-algoritmen kräver ett ganska stort antal parametrar som ska ställas in och denna process låter sig inte bra för förändrade marknadsförhållanden. Med TRAIDE. Vi tog processen ett steg längre och låter dig se de mönster som hittades av ett ensemble maskininlärningsalgoritmer, där du kan skapa egna regler för handel. Dessa regler är då lätta att genomföra och anpassade till förändrade marknadsförhållanden, allt utan att någon programmering eller matematisk erfarenhet behöver krävas. Du kan dra fördel av att använda maskininlärningsalgoritmer för att handla samtidigt som du behåller fullständig öppenhet, förståelse för din strategi och med din egen domänkompetens i din handel. Att använda maskininlärning och artificiell intelligens för att hitta en kant på marknaden behöver inte uteslutande ägas av endast de största finansinstituten. Eftersom denna teknik blir mer tillgänglig och dessa tekniker vanligare kan du också använda maskininlärning för att förbättra din handel.
No comments:
Post a Comment