Friday, 20 October 2017

Testning a handel systemet


Trading Systems Coding Testing, Felsökning och Optimering. Nu när du har ett handelssystem utformat och kodat är det dags att testa det för att se till att din kodning är fri från logiska och tekniska fel. Vi kommer också att titta på något som kallas optimering - en funktion i vissa handelsprogram som gör att du kan finjustera dina handelsregler för att passa de aktier du planerar att handla. Test ditt handelssystem De allra flesta handelsapplikationer som stöder programmeringsspråk stöder också testverktyg. Dessa verktyg är indelade i två kategorier. 1 Tekniska tekniska testverktyg söka efter tekniska fel i din kod Om du till exempel glömmer att lägga till en semikolon efter ett uttalande kommer det tekniska testverktyget att meddela att ditt uttalande är ogiltigt. Placeringen av det tekniska testverktyget beror på handeln applikation som används MetaTrader visar ett fel eller felaktiga resultat när du försöker kompilera din kod, medan handelsapplikationer som Tradecision ha ve en kodkontroll verktyg inbyggd i gränssnittet som låter dig kontrollera din kod för fel innan du applicerar det.2 Logiska Logiska testverktyg söka efter logiska fel i din kod Till exempel, om du råkade använda ett större än tecken istället för en mindre än tecken som inte är ett tekniskt fel, kommer ett logiskt testverktyg att visa att dina resultat inte är meningsfulla. Det mest populära logiska testverktyget är backtestingverktyget Med det här verktyget kan du ta över data och tillämpa ditt handelssystem på dessa data ger dig en uppfattning om följande. Varav ditt handelssystem är lönsamt. Vilka villkor är mest lönsamma. Var det finns några fel i dina regler. För mer information, se Backtesting Interpreting The Past. Troubleshooting Your Trading System Som med någon annan typ av programmering kan felsökning vara en tråkig och svår uppgift. Att hitta fel i din kod kräver systematiskt sortering genom din kod för att identifiera synaktiska fel som, även om det är ofta mindre , kan sätta ditt program i stopp. Det finns några vanliga fel att leta efter. Att missa semikolon efter uttalanden - Dessa måste vara efter varje uttalande. Odefinierade variabler - Kom ihåg att du måste deklarera dem innan du använder dem. Spelfel - Om några namn eller funktioner stavas felaktigt, kommer handelsapplikationen att returnera ett fel, se exempel nedan. Felaktig användning av - Kom ihåg att tilldelar ett värde till ett annat värde, men betyder lika med. Felaktig användning av inbyggda funktioner - Se din handelsapplikation s API för dokumentation eller applikationsprogrammeringsgränssnitt för att se till att du använder rätt syntax. Vissa handelsapplikationer innehåller en fe Ature som låter dig testa din kod innan du använder eller sammanställer den Med den här funktionen kan du se vad felet är och vilken linje det finns. Ta Tradecision till exempel. Här kan vi se att Tradecision ger oss plats och kolumn om felet, en beskrivning av felet och typen av fel i det här fallet är det syntaktiskt. Om vi ​​tittar på uttrycket kan vi se att i kolumn 8 är xrossBelow inte en giltig funktion. Om vi ​​ersätter x som finns i kolumn 8 med ac, då kommer vi att ha giltig kod. Om vi ​​tittar på MetaTrader kan vi se att felen kommer upp när vi försöker kompilera programmet. Här kan vi se att i beskrivningen står det att BuyNow-variabeln inte var definierad Dubbelklickning På det här felmeddelandet får vi oss till den specifika platsen för felet i koden. Som du kan se, ger de flesta handelsapplikationer dig ett enkelt sätt att hitta tekniska fel och fixa dem. Åtgärda fel innebär helt enkelt att systematiskt går igenom varje felmeddelande och då recom hämtar koden och eller tillämpar handelssystemet på diagrammen. Optimalisering av ditt handelssystem Vissa handelsapplikationer låter dig välja variabler som ska optimeras. Tradecision kan till exempel enkelt välja en variabel och ersätta den med kod som kommer att försöka optimera Optimering själv är helt enkelt en process som hittar det optimala värdet för ett visst handelssystemelement baserat på tidigare resultat och prestanda Observera att överoptimering resulterar i handelssystem som inte kan anpassa sig till marknadsförhållandena därför är det viktigt att endast optimera några viktiga variabler, inte varje variabel. Här är vad optimeringsfunktionen ser ut i Tradecision. You kan se att vi förklarade två nya variabler och ställa dem lika med. Det innebär helt enkelt att handelsprogrammet kommer att ersätta detta med det optimala numret. Sedan kan du se att vi Använda de nya variablerna inom vår handelsstrategi Slutligen ställer vi in ​​en räckvidd för siffrorna så att programmet inte kommer att söka till oändlighet. Några andra handelsprogram har funktioner som fungerar på ett liknande sätt, så att du kan ersätta det numeriska värdet med a och berätta för handelsapplikationen för att optimera den. Slutsats Nu skulle du ha utvecklat ett fungerande handelssystem där du kan ha förtroende. nästa del av den här serien kommer du att lära dig hur du tillämpar ditt handelssystem på diagram och hur man använder det för att göra handelsbeslut. Hur man backtest handelssystem och undviker kurvanpassning. För att bedöma hur bra ett visst handelssystem ska fungera i framtiden vi backtestar den på tidigare marknadsdata Backtesting tillämpar en uppsättning handelsregler till historiska data för att uppskatta hur dessa regler skulle ha utförts om vi faktiskt hade handlat dem. Goda hypotetiska historiska resultat garanterar inte att en uppsättning regler kommer att fungera bra i framtiden Men dåliga hypotetiska historiska resultat betyder nästan säkert att ett system inte bör handlas i realtid. Uppfattat värde av backtesting är förankrad i tron ​​att historica I tendenser upprepas Traders har testat strategier för historiska data i generationer Men övningen blev populär med tillkomsten av persondatorer och systembyggd systemtestning, som System Writer, som utvecklades till TradeStation Denna programvara och en databas med historiska data tillät dem utan kodskrivande bakgrund för att testa handelssystemets idéer. Den bredare förståelsen och acceptansen av handelssystemen, liksom den frustration som många mötte när man försökte bygga handelssystem på egen hand, hjälpte marknaden för tredjepartssystem att blomstra under hela 1990-talet. Futures Truth är ett oberoende företag som har spårat kommersiellt tillgängliga handelssystem sedan 1980-talet. För närvarande spårar det mer än 500 system Futures Truth tests trading system i realtid, inte på historiska data. Detta förhindrar ändring av regler över tid och bättre simulerar reglera utförandet under faktiska marknadsförhållanden, såsom perioder med hög volatilitet Accord Inom Futures Truth är endast cirka 45 av de spårade systemen lönsamma på lång sikt, medan endast 20 har uppvisat ett bra riskbelöningsförhållande. Dessa siffror är emellertid sannolikt bättre än den bredare befolkningen s eftersom endast de säljare som verkligen är säkra på deras logiken övergår till Futures Truth för realtidsanalys och offentlig kritik. Så många system misslyckas eftersom de saknar en giltig premiss. Istället är parametrarna för inmatning och utgång härledda från data mining. Data mining skannar helt enkelt historiska data för regler som skulle ha fungerat i det förflutna ofta sådana regler är anpassade exakt till det förflutna och har inget hopp att arbeta bättre än slumpmässigt på osynlig data istället bör systemutveckling börja med en teori som kan testas, analyseras och finjusteras för tillämpning detta koncept också innebär ett annat perspektiv på systemtestning själv. Målet med backtesting är inte att producera en samling hypotetisk vinst - och förluststatistik. Det är att testa validiteten av teorin och reglernas noggrannhet vid införandet av premissen. Systemtestning är en mångfacetterad process från data till tidsskala, orderingångsantaganden, kontraktsspecifikationer och riskkontroll. Om någon av dessa inte kan misslyckas, kan ett annat giltigt test förstöra eller, manipulera dem kan generera resultat som är mycket överlägsen än vad vi skulle uppnå i realtid. Du behöver göra det rätt om du hoppas kunna validera eller, när det är lämpligt, ogiltiggöra ditt system. Handlarna i handeln. Det finns två element för backtesting. De rätta verktygen mjukvara och data och en vetenskaplig metod för att utveckla system med hjälp av dessa verktyg. Låt oss börja med att titta på handelsverktygen. Det finns många alternativ för att testa dina idéer. De skiljer sig åt när det gäller att enkelt ändra idéer till kod och hur de hanterar detaljerna , vilket kan få stor inverkan på resultaten. Om ett system går in i en begränsningsordning, registrerar vissa program en fyllning om det priset berörs. Det finns dock knappast någon garanti för en sådan order skulle ha har fyllts i verklig handel och det finns ingen garanti för att det kommer att vara Inträdesstopp garanterar en inträde, men inte ett pris. En annan fråga spelar in reala priser. Medan den mest professionellt utvecklade mjukvaran inte längre har denna fråga är det fortfarande ett problem för de som manuellt testa system i kalkylblad, till exempel Microsoft Excel Till exempel om ett system köper på ett stopp som är lika med nära plus en tredjedel av medeltalet under de senaste tre perioderna, och om genomsnittet är 10, då köper i slutet plus 3 333 Om vi ​​handlar E-mini SP 500, handlar det i 0 25 fackstorlekar Det betyder att inmatningsskillnaden måste runda upp till 3 50 A Börjande näringsidkare kanske inte inser det här om man manuellt klarar siffror, och det var inte så länge sedan att många professionella program gjorde samma misstag. Med tiden skulle ett sådant fel kunna ge upphov till en stor skillnad. I den stora bilden är dock sådana processuella detaljer mindre. Det stora problemet är data. Relaterade artiklar. Denna sidor visar rätt m etodologi för att skapa ett handelssystem för bästa möjliga användning. Den första punkten som kommer till de mest genomsnittliga handlarna är hur mycket arbete som är inblandat i att göra denna viktiga uppgift korrekt Så du kan fråga dig några frågor innan du börjar. Är du dedikerad . Vill du ha en hög inkomst och en bra framtid utan pengar bekymmer. Kan du hålla dig till ett system utan att andra gissar signalerna. Är du beredd att lägga i 2-6 månader med intensiv forskning för att få önskat no2 result. Have du har tålamod att handla, trots dragningar som kan vara 20-30 eller mer. Har du tålamod att uthärda långa undervattensperioder på upp till ett år. Om svaret på allt ovan är ja, då kan du läsa vidare. Step 1 Upprätt din lista över marknader och frys datasetet över ett statiskt datumintervall. För att vara säker på solide resultat måste du testa ditt system över en mängd olika marknader. Var noga med att ha mycket data minst 5 år Se till att du fixar datumen för din testning så att resultaten är rättvisa, för om du kontinuerligt uppdaterar din dataset kommer nyare tester att visa olika resultat eftersom fler dataflöden i. Step 2 börjar med ett brett spektrum av grova tester. För att du har naglat ner alla inställningar på rätt sätt, börja testa med inställningar som är långsamma och kör hela vägen till inställningar som är alltför snabbt. Den långsammaste inställningsvisningen längst till vänster producerade endast 2945 trades på 123 aktier under en tioårsperiod och den snabbaste inställningen producerade mer än 44.000 handlar på samma lista. Om ditt system är robust kommer du sannolikt att observera ett bra distributionsmönster som visas i diagrammet till vänster. Det kan vi bara se att Precisionstoppet 2011 är lönsamt i alla inställda visningar och mest framgång är uppnådd i området med flera inställningar mellan 0 7 och 0 4. När du har gjort grovtestning kan du sedan titta närmare på systemets söta punkt, med stor uppmärksamhet på dragdragningarna, växlingsnivåerna och undervattensvärdena. Notera det är väldigt im viktigt att standardisera växlingsnivåerna i varje körning, kommer det att observeras att högre frekvenssystem ger högre växling än låga F-modeller, eftersom systemet är mer responsivt mot de senaste kapitalförändringarna. Var noga med att logga in dina växelresultat och ompröva tills du har samma genomsnittlig nivå för varje test. Om du inte gör det kommer din testtid att ha blivit bortkastad, eftersom inga realistiska jämförelser kan uppnås. Steg 3 Undersök systemets söta punkt genom att köra över samma dataset med en finare stegvisa steg. När du har gjort finare testning kommer du då att observera vilka inställningar som är bäst. Diagrammet till vänster visar igen en fin bellkurvaform som indikerar ett mycket robust system Tydligt synligt är 0 5 flera har visat sig bäst över datasatsen och är en klar vinnare. Vid denna tidpunkt kan du se dina drag ner och undervattensvärden för att se om modellen är något du kan hålla fast vid i verklig handel. Som om du inte kan hålla dig till modellen måste du göra justeringar tills systemet passar din personlighet. Notera är det väldigt viktigt att ta korta anteckningar för varje test som anger de observationer du har gjort. Steg 4 Studera resultaten med uppmärksamhet på detaljer. Tabellen nedan visar resultaten av detaljerade mindre stegtest, de bästa fälten visas i blått, värst i rött. Precisionsstoppet 2011 fungerade bäst vid 0 5 flera inställningar i dessa test visar en mycket robust fördelning av resultat lönsamma i alla inställningar som används. Du kan tydligt se hur undervattnet UW går genom taket när systemet påskyndas eftersom provisioner brinner upp vinst under tystare marknader. Utbytet hålls vid 4 5 med en tolerans på 0 3 på resultaten, 0 4-testet visar 4 779 växling, men det är inte värt att ompröva som undervattensvärdena är väldigt hög. Steg 5 Studera systemet på en annan uppsättning data. Du kan observera min testning över en annan dataset på simuleringsvideobladet. Med 0 5-multipla inställningen och genomsnittlig växling på 4 459 time-equity, resulterar resultatet ts var en vinst på 176,755,656 med en maximal drawdown på 24 29 med 260 dagar maximal undervattens som helt blåser bort resultaten i tabellen ovan. Om du undrar varför en så stor vinstskillnad är den punkt som detta visar vikten av att val av gynnsamma marknader att handla. Varje test som görs på olika dataset kommer att ge vilda fluktuationer i resultat och faktiskt när jag har testat på körsbärsplockade marknader som är kända för att fungera bra med mina system, överskrider de resulterande vinsterna trillioner. Steg 6 Kontrollera din resultaten är korrekta. Hela punkten med systemtestsimuleringar är att få en känsla för hur ditt system kommer att fungera i nuet genom att köra det tidigare. Ju längre körning av data du testar desto mer är chansen att hitta marknaden förhållanden som liknar dagens förhållanden, att man klarar av att hantera kostnaderna noggrant och göra utsläppsrätter är avgörande innan du kan lägga någon form av tro på ditt valda system. Om din te Sting är misstänkt att du kommer att känna det bakom dig och det här kommer troligtvis att leda dig till att hoppa på ett av systemet, andra gissar när det kommer att handla och inte kunna hålla fast vid det länge. Steg 7 Jämför andra system över samma datasatser. Även om systemet ditt test ger bra resultat är det viktigt att fortsätta leta efter något bättre, eftersom det finns många ljusa själar där ute i världen som utformar system som skulle vara bra, det är en bra idé att hålla Kontrollera att ditt valda system verkligen är det bästa du kan hitta. Vissa av de använda termerna kanske inte är bekanta för dig, så lägre ner sidan är en detaljerad förklaring av de använda termerna. När du tittat på videon ser du mig klicka på Generera Excel-rapport kan den här faktiska rapporten hämtas för din egen granskning. Om du har problem med att visa alla nummer när du tittar på videon, försök att justera upplösningen till 720 HD som finns på videofältet så kommer videon att bli HD. Jag ska jag vara Lägga till några jämförelsevideos som visar Donchies 210-dagars trendsystem jämfört med Precisionsstopp 2011-modellen Richard Donchian tros vara den första personen som konstruerade ett trendföljande system och den mycket enkla modellen han använde gick länge köpt när en 210-dagars höjd träffades , och gick kort sålda när en 210 dag låg var slagen motsatsen motsvarande 210 dagars värde används som stopp post för nästa handel. Även om Donchian systemet är mycket grundläggande, har det faktiskt en tendens att göra rimlig vinst under lång tid på bekostnad av stora drawdowns Innan handlare avvisar Donchian-modellen som rå och överdrivet enkel, är det lika bra att komma ihåg att hans arbete är hörnstenen i all trend som följer med dagens system. Donchian-systemet testades av Ed Seykota på en gamla Fortran-datorn för många år sedan med hjälp av stanskort, till sin förvåning, konstaterade Seykota att det var lönsamt, så han gick på designen med sin egen exponentiella glidande trend efterföljande modell och inspirerade många o Precisstoppet 2011 är en rent trendmodell baserad på min många års handel, testning och teknisk analyserfarenhet. En del av min inspiration för att utforma denna modell är ett resultat av att studera de två ovannämnda herrarnas arbete. , söker förbättringar där jag kunde hitta dem. Det är till skillnad från Seykota-modellen och Donchian-modellen, den enda gemensamma faktorn är att den följer trenderna på mer exakt sätt. Roger Medcalf 2010. Tilläggsinformation om förtydligande. Som testet användes stängningspriser för öppna högt lågt slut, det är inte möjligt att extrahera budet och fråga priserna För att komma runt detta exakt finns det två separata funktioner som läggs till för att ge en realistisk simulering. Spridningsprocent Om systemet köper ett lager som har en slutkurs på 100p och spridningsprocenten är satt till 1 5 det betyder att det kommer att se data frågar 101 5 och bokhandeln baseras på detsamma händer när handeln stängs ut Så om handeln öppnades och stängdes på samma 100p-nivå skulle det sälja till ett pris av 98 5p vilket gör en total affärskostnad på 3 per handel. Vissa lager i testet har en smal spridning på mindre än 0 25 och andra är bredare upp till 5, så den här funktionen medeltar det snyggt ut. Slippage-faktor Denna extra funktion gör systemtestet ännu strängare eftersom det sedan lägger till fler kostnader för ekvationen EG om det avsedda inmatningspriset är ovanstående 101 5 och dagarna höga är 105, simuleringen kommer att boka denna handel vid 101 5 105 2 gör en ingångsnivå på 103 2.Software Var vänlig notera att programvaran som genererade denna simulering inte är till försäljning för allmänheten eftersom det är min egen proprietära programvarukonstruktion. Försäljningsobjektet är Precisionsstoppet 2011 som är ett tillägg för Tradestation alla versioner och Multicharts alla versioner som beräknas släppas i januari 2011.

No comments:

Post a Comment