Monday 16 October 2017

Backtest Ea Forex Handel


Hej killar och gals, jag stötte på den här frågan för en tid sedan och vi diskuterade det här: mql5enforum1642 Min EA har en öppen prisstrategi och jag ville hålla fast vid det för att spara tid under backtesting (självklart). Lösningen jag tänkte är som följer: använd det mest aktiva paret under din huvudsakliga handelsperiod för din EA som förare (diagrammet som producerar ticks). i varje onTick () kontrollera om din förare har skrivit in en ny stapel om det inte finns någon ny stapel vänta lite längre om det finns en ny stapel, distribuera OnTick () - meddelandet till dina enskilda handlare (varje handlare är ansvarig för ett valutapar) i näringsidkaren kontrollerar om den sista tiden för handlarens valutapar är lika med den nya barstiden från föraren om ja, du kan fortsätta som vanligt om nej, du måste behandla slutkursen för den aktuella linjen som öppningspriset du tittar på för och om du söker information från tidigare staplar tar du av det med en situation med hänsyn till. Jag kommer att klippa och klistra in de viktiga delarna av kod från min EA nedan. Jag hoppas att detta kommer att vara till nytta för dig Hela listan tryckt visar också många skillnader i tider. Kom precis över det här problemet själv. Du har gissat det, försökte hamna från JForex till MQL5 Im börjar önska att jag inte hade stört, men jag antar att tidsfristen förlängning hjälper :) Ser ut som MetaQuotes har fortfarande inte fixat det. MT5-forex verkar inte stödja DOM. isNewBar hjälper inte mig. Verkar som en löjlig situation. Vet någon om något har förändrats inom MT5 om det här problemet Vet någon om en lösning som fungerar för en strategi med flera valutor som förväntar sig att bli utfodrade flickor Din i frustration, kom precis över det här problemet själv. Du har gissat det, försökte hamna från JForex till MQL5 Im börjar önska att jag inte hade stört, men jag antar att tidsfristen förlängning hjälper :) Ser ut som MetaQuotes har fortfarande inte fixat det. MT5-forex verkar inte stödja DOM. isNewBar hjälper inte mig. Verkar som en löjlig situation. Vet någon om något har förändrats inom MT5 angående detta problem Vet någon av en lösning som fungerar för en strategi med flera valutor som förväntar sig att bli utfodrade flickor Din i frustration, Försök använda OnTimer () med 1 sekunders timer istället för OnTick ( ). Enivid: Försök använda OnTimer () med 1 sekunders timer istället för OnTick (). Tack för förslaget. Din lösning fungerar mycket bättre än någon av de andra jag har försökt, förvisso för våra krav. Men körning av flera valutabacktest mot olika par ger fortfarande lite annorlunda resultat. Inspirerar inte stora mängder av självförtroende Jag vill inte bränna mycket mer midnattsolja än en gång: Försök använda OnTimer () med 1 sekunders timer istället för OnTick (). Men körning av flera valutabacktest mot olika par ger fortfarande lite annorlunda resultat. Jim, jag använder OnTimer-lösningen med 1 sekund i min tävlingsportfölj EA. Om din strategi är beroende av varje tick, då kommer du att få olika resultat när du använder OnTimer vs OnTick på en gemensam valuta eftersom mer än en tick per sekund är möjlig. Jag fann att det brukar göra mest skillnad när den saknade kryssningen skapade en ny bar hög eller låg. Du kan kolla föregående bar highlow och current bar highlow för eventuella ändringar och infoga dessa som en saknad kryssning när de uppträder, såvida inte den nuvarande fältet naturligtvis skapade den nya baren highlow. Kom också ihåg att MetaTrader Strategy Tester endast simulerar tickdata. Beroende på hur känslig din strategi är med kryssrörelse kan denna simulering ha en signifikant inverkan på back-test jämfört med framåtprovning. Om din strategi är beroende av varje tick, då kommer du att få olika resultat när du använder OnTimer vs OnTick på en gemensam valuta eftersom mer än en tick per sekund är möjlig. Det är inte riktigt vad jag menade. Vår (fortfarande bara potentiella) tävling EA handlar alla 12 par. Med hjälp av OnTimer () får jag olika backtestresultat om jag väljer GBPUSD i strategi tester snarare än EURUSD till exempel. Jag är alltför bekant med begränsningarna i MT4 när backtesting använder simulerade ticks. Tyvärr ser det ut som MT5 är inte en hel del bättre. Vi var väldigt angelägna om att få allt som händer med ticks av historiska skäl, men vi har gett upp. Det går inte att hålla saker konsekventa. Weve biten kulan, och arbetar nu med 1 minuters staplar med hjälp av OnTimer () och isNewBar (). Saker har börjat se vagt förnuftigt äntligen, och vad mer är det fortfarande 4 timmar att gå till mästerskapets deadline :) Slutligen lämnade vår EA med ca 5 minuter att spara före deadline. En backtest under sitt bälte, och ingen optimering. Har du aldrig gjort det tidigare kan någon berätta för mig om det fortfarande står en chans att bli godkänd. Om så är fallet, får vi få lov att fiska med inmatningsinställningarna under nästa vecka, eller inte Slutligen skickade vår EA med ca 5 minuter att spara tidigare slutdatumet. En backtest under sitt bälte, och ingen optimering. Har du aldrig gjort det tidigare kan någon berätta för mig om det fortfarande står en chans att bli godkänd. Om så är fallet, får vi lova att fiska med inmatningsinställningarna under nästa vecka, eller inte. Om din EA testades korrekt innan 2010.01.01 upp till 2010.08.01 utan några fel (handelsfel mm) och en vinst, då kommer du sannolikt att bli godkänd så länge din personliga information också är korrekt. Du kommer dock inte att kunna ändra något från den här tiden framåt, inklusive inställningar (inmatningsparametrar). Jag hoppas att se din bot i åtgärd. Ladda ner MetaTrader 5 Copyright 2000-2017, MQL5 Ltd. How att köra en metatraderbacktest av Shaun Overton på 12 mar 2014 06:01:17 GMT Hej, det här är Shaun Overton med ForexNews och OneStepRemoved. I den här tio minuters videoen ska jag visa dig hur du ställer in en backtest för MetaTrader 4. Du kan följa med ett gratis OANDA-demokonto genom att klicka på länken nedanför den här videon. Registrera dig för ett gratis OANDA MT4 demo konto här. När du har öppnat MetaTrader och bestämt att du behöver köra en backtest, är det första steget att få historiska data. Theres lite förladdade data, men det räcker inte för att köra en mycket lång backtest. Backtesting handlar om mer än att titta på historiska prestanda. Du kan använda din erfarenhet av historiska data för att analysera hur en expertrådgivare utför olika marknadsförhållanden. Min gå till exempel för är alltid det glidande medelvärdet. Tanken är att ett snabbrigt genomsnittligt kors över ett långsamt rörligt medelvärde kan betraktas som en köpsignal. Den typen av strategi är naturligt utformad för en trendmarknad. Signalerna uppträder alltid sent eftersom det bygger på en nedslagsindikator. Teorin är att trenderna är potentiellt stora nog att gå in efter en trend börjar och avsluta handeln efter det att den är klar bör lämna utrymme för uppåtvända. Det är teorin. Marknadsintervallet handlar om 70 av tiden. Om marknaden inte trender och du kör en trend trading strategi, kan jag nu berätta att din trend trading strategi inte är troligt att det kommer bra om inga trender visas. Backtesting erbjuder insikter om hur din expertrådare beter sig när marknaden inte går. Det hjälper dig att planera för nedåtgående scenarier, och om du gör det ordentligt kan backtesting hjälpa dig med att utveckla realistiska prestationsförväntningar. Jag antar att du redan har installerat expertrådgivaren som du vill prova. Om du inte har gjort det, har Forex News en annan video tillgänglig som visar dig hur du installerar EA. Du måste ladda data för valutaparet du vill backtest innan du börjar köra test. Det är spännande att analysera marknaderna, men testerna är bara lika bra som dina data, så hoppa inte framåt. Jag gillar guld. Det är diagrammet Ive valt här. Jag behöver veta tidsramen och valutaparet för att kunna ladda de rätta uppgifterna. Oavsett vad du vill göra, bör du överväga att ladda en minuts data. En minutsdata är den minsta tidsramen som är tillgänglig. Genom att använda de mest exakta uppgifterna, förbättrar du noggrannheten i din backtest. Hela poängen med att göra detta är att ge dig en exakt bild av historiska prestanda. Att ladda en minuts data förbättrar kvaliteten på din backtest för att ge dig en mer exakt uppskattning. Öppna ett minuts diagram för guld, vilket är instrumentet Im backtesting i den här videon. Gå till den övre vänstra menyn och välj File New Chart Gold XAUUSD. Ändra nu tidsramen. Välj alternativet M1 från den här menyremsan eller gå till Diagram Periodicitet En minut Vi måste stänga av autoscroll nu när diagrammet är öppet. Tryck på knappen längst upp med den lilla gröna triangeln. Det liknar en spellknapp. Du kan också högerklicka på diagrammet och klicka på egenskaper eller trycka på F8. Välj egenskaper, sedan Vanligt. Avmarkera bredvid Diagram Autoscroll. Nu när diagrammet är öppet, gå till Verktygsalternativ. Välj fliken etiketterad Diagram. Max stavar i historiken, ändra den till 999999999. Max stavar på diagrammet måste vara desamma, 99999999999. Med dessa inställningar kan MT4 ladda så mycket historiska data som möjligt. Gå tillbaka till dina en minuts diagram. Nästa steg är ganska tråkigt 8211 du måste trycka på hemnyckeln medan MT4 hämtar dina historiska data. Den här delen tar ganska lång tid och tyvärr fungerar det bara om du sitter där och trycker på hemnyckeln. Om du glömmer att stänga av autoscrollen hoppar diagrammet till den aktuella fältet. Jag valde en timme diagram för backtesting eftersom jag tycker att de ska hitta den bästa balansen mellan handelsfrekvens och handelskostnader. Varje gång du går in i en handel betalar du mäklaren spridningen som en kostnad för att komma in. När du handlar hyperaktivt på M1-diagram eller M5-diagram, är det oerhört svårt att handla med någon form av kant. Kostnaden för handel är helt enkelt för orimlig. Diagrammet som Id gillar att backtest är ett timmars diagram. Så, jag måste upprepa denna process genom att rulla tillbaka på H1-diagrammen tills Ive laddat tillräckligt med data för att täcka varaktigheten för min testperiod. Byt till H1 så här. Bekräfta att autoscroll är avstängd och tryck sedan på hemnyckeln tills datumet sträcker sig bortom testfönstret. Weve avslutade allt benarbetet. Vi kan hoppa över laddningssteget för eventuella framtida tester med H1-gulddiagram. Om du bestämmer dig för att testa ett annat valutapar eller en tidsram, måste du följa denna laddningsprocess. Låt oss fortsätta ladda vår EA i backtester och välja våra inställningar. Jag ska använda MACD-provet EA i den här videon eftersom den visas som standard i OANDAs MetaTrader. Jag vet att alla som tittar på detta har denna EA redan laddad på sin dator. Det arbete som vi gjort hittills är för XAUUSD 8211 guld 8211 på en timmes diagram. Välj det alternativet från rullgardinsmenyn. Du har bett att välja modellen. Detta gäller hur snabbt och noggrant du vill att testet ska köras. Dina val kan enormt påverka testresultaten. Expertrådgivare kör sekventiellt genom tiden. Om du tog all prishistorik tillgänglig under hela dagen, som vanligtvis kallas tickdata, skulle den innehålla tiotusentals priser varje dag. Kondensera denna information till tidsblock gör data långt mer läsliga och enklare att analysera. Visningsmetoden kan mycket 8211 ljusstake, barer, linjer på diagrammet. De representerar alla minst ett gemensamt element. Början eller öppet pris för tidsperioden och slutet eller slutpriset för tidsperioden. Jag hänvisar tillfälligt till dessa diskreta tidselement som stavar 8211 du borde anta att jag menar en timmes tidsperiod för den här videon. Om du har en strategi som kör intrabar, vilket betyder att din EA öppnar affärer utan att vänta på att baren ska stänga, måste du absolut använda varje tick. I annat fall är backtestern tvungen att göra antaganden om prisbeteendet. Detta kan skapa allvarliga skillnader mellan den modellerade prestandan och vad som borde ha hänt historiskt. Varje tick är det mest exakta alternativet, men det är också den mest tidskrävande. EA: er som endast handlar vid öppningen av en ny stapel kan komma undan med antingen kontrollpunkter, så länge stoppförlusten och vinsten inte utsätts för risken för att träffas inom samma stapel. Om antingen din sluta eller ta vinst eventuellt kan träffas inom en enda stapel, kan backtesteren förvirra det som slogs först: stoppet eller vinsten. Detta igen kan skapa stora skillnader i de rapporterade resultaten. Backtester kan säga att du vann när du förlorade och vice versa. Allt detta är en lång väg att berätta att du använder Every Tick om du inte har en tvingande anledning att göra något annat. Jag rekommenderar inte att du kör några backtests med Open Only-priser. Modelleringsfelen kommer alltid ut för allvarligt och testet är användbart för analys. Använd data gör att du kan styra start - och slutdatum för testet. Formatet är årsmånad-datum. Alternativet till vänster är startdatumet. Alternativet till höger är slutdatum. Mitt test går från 1 februari 2013 till 1 februari 2014. Härifrån till höger kan jag styra det diagram jag vill titta på. Välj H1 som tidsram, vilket står för en timmes diagram. Under det sprider sig. Det också kan ha en betydande inverkan på backtestet. Spridningen är en kostnad för handel. Dess kritiska att din backtest använder minst mäklare typiskt sprids eller sämre. Du vill anta vad som händer när sakerna går fel, inte vad som kan hända i saga land. Historiska backtests är vanligtvis det bästa fallet scenariot 8211 du borde normalt förvänta dig en minskning av prestanda när du flyttar in i framtiden. Att använda en spridning som är sämre än mäklarnas spridning är lämpligt att ta hänsyn till både med variabla spridningar och potentiell negativ glidning. Backtest ger dig alltid perfekta fyllningar, vilket jag försäkrar dig om inte händer i den verkliga världen. Slippage är ett mycket verkligt och nuvarande element i handeln. Jag kommer att ställa in det till 30 för denna backtest, som är 30 mikropips eller 3 pips. Det är mycket värre OANDAs typiska spridning. Om en strategi kan överleva en 3 pip spridning på EURUSD, kan det vara ett uppmuntrande tecken på prestationspotential. Slutligen måste vi gå till expertrådgivare. Här kontrollerar vi de ingångar som är unika för den expertrådgivare som du testar. Klicka på fliken Inmatningar. Varje EA har olika inställningar. Istället för att prata om MACD-provet EA i detalj vill jag behålla denna höga nivå så att du förstår de olika kolumnerna. Här till vänster är de inställningar som används i backtestet. Om du vill ändra storleken på varuhandeln för varje signal, är det den lådan du ändrar. Lådorna till höger gäller bara en optimering, som väl täcker i en separat video. Tryck ok när du är nöjd med inställningarna. Visuellt läge påverkar inte testresultaten. Om du vill se affärer avfyra på diagrammen, lägg sedan en check bredvid detta alternativ. Låt den vara omarkerad om du bara bryr dig om resultatrapporten. Pushing start sparkar av backtest och du är redo att analysera resultaten. Du kan starta backtesting din EA i ett gratis MetaTrader-praktikkonto från OANDA. Klicka på länken under den här videon för att öppna ditt gratis demo-konto. MetaTrader 4 Tester för strategi tester För att få ut mesta möjliga av din expertrådgivare måste du optimera och backtest din strategi med MetaTraders Strategy Tester. Medan framåtprovning på ett demokonto är avgörande tillåter backtesting dig att simulera handel över en lång tidsperiod på bara några minuter. Och med optimeringsfunktionen kan du ta reda på vilka inställningar som var bäst över en vald historisk kartperiod. Det finns en stor debatt om noggrannheten i MetaTraders strategi tester. I bästa fall erbjuder backtesting bara en nära approximation av hur handlarna skulle utföras i realtid. Men det är det enda verktyget som finns tillgängligt för att snabbt testa någon strategi över ett brett spektrum av handelssituationer, och en som du borde lära dig hur du ska använda dig bra. Öppna Strategy Tester i MetaTrader genom att klicka på lämplig knapp på verktygsfältet eller genom att välja Strategy Tester från Visa-menyn. History Center Innan du testar eller optimerar, är det viktigt att se till att dina historikdata är fullständiga och korrekta, särskilt om du använder Every tick som din testmodell. Om du ser felaktiga diagramfel i journalsloggen eller om din modelleringskvalitet är mindre än 90, är ​​dina historikdata inte tillräckliga för att generera korrekta fästingar. Öppna History Center från Verktyg-menyn eller genom att trycka på F2 på tangentbordet. Dubbelklicka på diagramparet i den vänstra kolumnen som du planerar att backtest för. En lista över tidsperioder visas nedan. Börja med att dubbelklicka på 1 minut (M1) för att ladda historikdata för den perioden. Backtester använder M1 data för att generera fästingar, så det är viktigt att din M1 data är klar. Från History Center kan du ladda ner eller importera data som ska användas vid backtesting. Din mäklare kommer automatiskt att ge några senaste data, men det kanske inte räcker för en längre backtest. Dessutom är de gratis nedladdningsbara data från MetaTrader (tillgänglig via Download-knappen) inte alltid fullständiga och kan innehålla stora luckor. Du kan ladda ner gratis M1 data från forextesterdatadatasources. html. Välj först M1-perioden för symbolen från listan till vänster. Klicka på knappen Importera och klicka sedan på Bläddra i dialogrutan Importera för att välja den M1-datafil du just laddade ner. Tryck på OK för att importera data - det kan ta flera minuter. Du har nu flera års M1-data för den symbolen. För att använda dessa data på högre tidsramar måste du använda periodkonverteringsskriptet som följer MetaTrader. Öppna ett diagramfönster och ställ det till M1. Dra och släpp periodkonverteringsskriptet från navigatorfönstret till diagrammet och ställ in inställningen ExtPeriodMultiplier till antalet minuter som ska konverteras till. För M15, använd 15 för H1, använd 60 för H4, använd 240, och så vidare. Upprepa denna process för alla symbolperioder du planerar att testa på. När du har tillräckliga historikdata kan du börja testa. Videon nedan visar processen för att importera och konvertera M1-data: Optimering Optimeringsfunktionen i MetaTrader 4 låter dig testa tusentals kombinationer av expertrådgivningsinställningar för att hitta de mest lönsamma inställningarna för det valda diagrammet, perioden och datumintervallet. Indikatorbaserade strategier måste optimeras för maximal lönsamhet. Dock kommer nästan alla EA-enheter att dra nytta av optimering - även de som handlar med kryssdata, förutsatt att du har fullständiga M1-historikdata (se ovan). Medan optimeringsprogrammet ger tillbaka de mest lönsamma inställningarna för det valda datumintervallet, är det ingen garanti för att dessa inställningar kommer att vara lönsamma i framtiden. Marknadsförhållandena ändras ofta, så det är viktigt att du regelbundet optimerar din expertrådgivare för bästa resultat. För att optimera din expertrådgivare, välj först den i drop-down-rutan Expert Advisor. Välj valutaparet i symbolrutan och diagramperioden från rutan Period. För modell. du vill i allmänhet bara välja Öppna priser, såvida du inte optimerar en EA som körs på fältdata. I så fall väljer du Varje tick. Markera alternativet Använd datum och välj ett antal datum för att optimera för. Slutligen, se till att optimering är markerad. Klicka på knappen Expertegenskaper för att öppna dina expertrådgivningsinställningar. På fliken Inputs är du där du kommer att ange värdena för att optimera för. Start-kolumnen kommer att vara det lägsta värdet för en viss inställning, medan Stop-kolumnen kommer att vara högst. Steg-kolumnen är den mängd optimeringsenheten ska gå igenom från start till stopp-inställningen. I bilden ovan optimerar vi SL, TS och TP-inställningar för en expertrådgivare. Startvärdet är 20, steget är 20 och Stoppet är 200. Optimeraren testar varje kombination av värden från 20, 40, 60 och så vidare upp till 200. Använd ett start, steg och stopp värde som är lämpligt för Inställningen du optimerar. Även värden (5, 10, etc.) är bra. Kryssrutan längst till vänster måste väljas för att den inställningen ska optimeras. Alla inställningar som inte kontrolleras kommer att använda numret i kolumnen Värde när du optimerar. Under fliken Test kan du justera den ursprungliga insättningen till något lite mer realistisk. Lämna de övriga inställningarna till standardinställningarna. När du är redo att börja optimera, klicka på Start-knappen längst ner till höger i fönstret Strategy Tester. Beroende på period kan datumintervall, testmodell och antal inställningar som optimeras, ta överallt från några minuter till flera timmar. Om det tar för lång tid, överväg att minska datumintervallet, optimera färre inställningar eller använda ett större stegvärde. När optimeringen är klar öppnar du fliken Optimeringsresultat och dubbelklickar på kolumnen Profit för att sortera resultaten. Dubbelklicka på något av resultaten för att ladda det i testaren. Tryck på Start-knappen igen för att backtest med de valda inställningarna. Backtesting Nu ska det vara uppenbart hur backtester fungerar. Välj din expertrådgivare. Symbol. Period och modell. markera rutan Använd datum och välj ett datumintervall. Välj endast visuellt läge om du vill ha en visuell genomgång av backtesting. Lämna optimering ej markerad. Klicka på knappen Expertegenskaper och ange dina inställningar i kolumnen Värde under fliken Inmatningar. Du kan också ladda eller spara inställningar med knapparna längst ner till höger. Kolumnen Start, Steg och Stopp ignoreras, liksom kryssrutorna. Stäng dialogrutan Expertegenskaper och tryck på Start för att börja prova. Det tar var som helst från några sekunder till flera minuter beroende på dina inställningar. När testningen är klar öppnar du fliken Rapport längst ner för att se dina resultat. Några statistik att notera: Totalt nettoresultat - Bruttoresultat minus Bruttoskada. Resultatfaktor - Andel bruttovinst till bruttoförlust. Högre är bättre, allt över 1,5 är bra. Absolut drawdown - Utbetalningen av din första insättning. Höga drawdowns ökar sannolikheten för att ditt konto blåses ut. Resultathandel - Din totala vinstprocent. Modelleringskvalitet - Endast viktig om din testmodell är Every Tick. Om så är fallet bör detta vara 90. Om inte, följ instruktionerna ovan för att uppdatera din historia med exakta M1-data. Resultatfliken längst ner i strategitestaren ger dig information om öppnade och slutna order, inklusive efterföljande stopp, vinst och sluta förlust. Klicka på knappen Öppna diagram för att få en visuell representation av dina resultat. När du testar din nya EA, granska dessa noggrant för att se till att din strategi fungerar som den ska. Walk Forward Analysis Medan backtesting och optimering kan ge dig en bra uppfattning om hur din EA kommer att handla, måste du göra mer omfattande test för att säkerställa att ditt handelssystem är verkligen lönsamt. Det bästa sättet att uppnå detta är genom en process som kallas framåtriktad analys. Walk forward analys består helt enkelt av flera cykler av optimering och backtesting, och analyserar resultaten av testning under en lång period. Vår artikel om framåtriktad analys förklarar processen mer detaljerat. Vår Walk Forward Analyzer för MetaTrader gör att du snabbt och enkelt kan utföra WFA.

No comments:

Post a Comment