Thursday 12 October 2017

Back Testing A Handel System


Backtesting Vad är Backtesting Backtesting är processen att testa en handelsstrategi för relevant historisk data för att säkerställa dess lönsamhet innan näringsidkaren riskerar något faktiskt kapital. En näringsidkare kan simulera handel med en strategi över en lämplig tidsperiod och analysera resultaten för lönsamhetsnivåerna och riskerna. AVBRYDNING Backtesting Om resultaten uppfyller de nödvändiga kriterier som är acceptabla för näringsidkaren kan strategin sedan implementeras med viss viss förvissning om att det kommer att leda till vinst. Om resultaten är mindre gynnsamma kan strategin modifieras, justeras och optimeras för att uppnå de önskade resultaten eller det kan helt skrotas. En betydande del av volymen som handlas på dagens finansmarknad görs av handlare som använder någon form av datorautomatisering. Detta gäller särskilt för handelsstrategier baserade på teknisk analys. Backtesting är en integrerad del av att utveckla ett automatiserat handelssystem. Betydande backtesting När det görs korrekt kan backtesting vara ett ovärderligt verktyg för att fatta beslut om huruvida man ska använda en handelsstrategi. Provperioden som en backtest utförs på är kritisk. Tidsperioden för provperioden bör vara tillräckligt lång för att omfatta perioder med olika marknadsförhållanden, inklusive uppåtgående, nedåtgående och omfattande handel. Att utföra ett test på endast en typ av marknadsförhållanden kan ge unika resultat som kanske inte fungerar bra under andra marknadsförhållanden, vilket kan leda till falska slutsatser. Provstorleken i antalet branscher i testresultaten är också avgörande. Om provet antal branscher är för litet kan testet inte vara statistiskt signifikant. Ett prov med alltför många branscher under en lång period kan ge optimerade resultat där ett överväldigande antal vinnande affärer samlas kring ett specifikt marknadsförhållande eller trend som är gynnsam för strategin. Detta kan också få en näringsidkare att rita vilseledande slutsatser. Att hålla det riktigt En backtest bör spegla verkligheten i bästa möjliga utsträckning. Handelskostnader som annars kan anses vara försumbara av handlare när de analyseras individuellt kan ha en betydande inverkan när den sammanlagda kostnaden beräknas under hela backtestingperioden. Dessa kostnader inkluderar provisioner, spridningar och släpp, och de kunde bestämma skillnaden mellan huruvida en handelsstrategi är lönsam eller inte. De flesta backtesting programvarupaket innehåller metoder för att redovisa dessa kostnader. Kanske är den viktigaste metriska förknippade med backtesting strategins nivå av robusthet. Detta uppnås genom att jämföra resultaten av ett optimerat bakprov i en specifik provperiod (kallad in-sample) med resultaten av en backtest med samma strategi och inställningar i en annan provperiod (kallad out - of-prov). Om resultaten är lika lönsamma kan strategin anses vara giltig och robust och den är redo att genomföras i realtidsmarknader. Om strategin misslyckas i jämförelser utan jämförelser behöver strategin ytterligare utveckling, eller det borde helt överges. Backtesting: Tolkning Tidigare Backtesting är en nyckelkomponent i effektiv handelssystemutveckling. Det uppnås genom att rekonstruera, med historiska data, affärer som skulle ha inträffat i det förflutna med hjälp av regler definierade av en given strategi. Resultatet erbjuder statistik som kan användas för att mäta strategins effektivitet. Med hjälp av denna data kan handlare optimera och förbättra sina strategier, hitta tekniska eller teoretiska brister och få förtroende för sin strategi innan de appliceras på de verkliga marknaderna. Den bakomliggande teorin är att varje strategi som fungerade bra i det förflutna sannolikt kommer att fungera bra i framtiden, och omvänt sett är det sannolikt att någon strategi som utförde dåligt i det förflutna sannolikt kommer att fungera dåligt i framtiden. Den här artikeln tar en titt på vilka applikationer som används för att backtest, vilken typ av data som erhålls och hur man använder den Data och verktygen Backtesting kan ge mycket värdefull statistisk återkoppling om ett visst system. Några universella backtesting-statistik inkluderar: Nettoresultat eller förlust - Netto procentuell vinst eller förlust. Tidsram - Tidigare datum där testning inträffade. Universum - Lager som inkluderades i backtest. Volatilitetsåtgärder - Max procent upp och ner. Medelvärden - Procentuell genomsnittlig vinst och genomsnittlig förlust, medelstänger hålls. Exponering - Andel av investerat kapital (eller exponerat för marknaden). Förhållanden - vinst-till-förlustförhållande. Årlig avkastning - Procentuell avkastning över ett år. Riskjusterad avkastning - Procentuell avkastning som en funktion av risken. Typiskt kommer backtesting programvara att ha två skärmar som är viktiga. Den första tillåter näringsidkaren att anpassa inställningarna för backtesting. Dessa anpassningar inkluderar allt från tidsperiod till provisionkostnader. Här är ett exempel på en sådan skärm i AmiBroker: Den andra skärmen är den faktiska backtestingresultatrapporten. Här kan du hitta all statistik som nämns ovan. Återigen, här är ett exempel på den här skärmen i AmiBroker: I allmänhet innehåller de flesta handelsprogrammen liknande element. Vissa avancerade program innehåller även ytterligare funktioner för att utföra automatisk positionering, optimering och andra mer avancerade funktioner. De 10 buden Det finns många faktorer som handlare uppmärksammar när de backtesting handelsstrategier. Här är en lista över de 10 viktigaste sakerna att komma ihåg vid backtesting: Ta hänsyn till de brett marknadstrender inom tidsramen där en viss strategi testades. Till exempel, om en strategi bara backtestades 1999-2000, kanske det inte går bra på en björnmarknad. Det är ofta en bra idé att backtest över en lång tidsram som omfattar flera olika typer av marknadsförhållanden. Ta hänsyn till universum där backtesting inträffade. Till exempel, om ett brett marknadssystem testas med ett universum bestående av tekniska lager, kan det misslyckas att fungera bra i olika sektorer. Som en allmän regel, om en strategi riktar sig mot en viss genre av lager, begränsa universum till den genren, men i alla andra fall behålla ett stort universum för teständamål. Volatilitetsåtgärder är extremt viktiga att överväga när man utvecklar ett handelssystem. Detta gäller särskilt för hyrda konton, som utsätts för marginalanrop om deras eget kapital sjunker under en viss punkt. Traders bör försöka hålla volatiliteten låg för att minska risken och möjliggöra enklare övergångar in och ut ur ett visst lager. Det genomsnittliga antalet barer som hålls är också mycket viktigt att titta på när man utvecklar ett handelssystem. Även om de flesta backtestingprogrammen innehåller provisionkostnader i de slutliga beräkningarna, betyder det inte att du bör ignorera denna statistik. Om det är möjligt kan du höja ditt genomsnittliga antal barer som hålls, minska provisionskostnaderna och förbättra din övergripande avkastning. Exponering är ett dubbelkantigt svärd. Ökad exponering kan leda till högre vinst eller högre förluster, medan minskad exponering innebär lägre vinst eller lägre förluster. Men i allmänhet är det en bra idé att hålla exponeringen under 70 för att minska risken och möjliggöra enklare övergångar in och ut ur ett visst lager. Den genomsnittliga vinstlösningsstatistiken, kombinerad med vinst-till-förlustförhållandet, kan vara användbar för att bestämma optimal positionsbestämning och pengarhantering med hjälp av tekniker som Kelly-kriteriet. (Se Money Management med hjälp av Kelly-kriteriet.) Traders kan ta större positioner och minska provisionskostnaderna genom att öka sina genomsnittliga vinster och öka deras vinst-till-förlustförhållande. Årlig avkastning är viktig eftersom den används som ett verktyg för att benchmarka systemets avkastning mot andra investeringsplatser. Det är viktigt att inte bara titta på den totala årliga avkastningen utan också ta hänsyn till ökad eller minskad risk. Detta kan göras genom att titta på den riskjusterade avkastningen, som står för olika riskfaktorer. Innan ett handelssystem antas måste det överträffa alla andra placeringsplatser med lika eller mindre risk. Backtesting anpassning är oerhört viktigt. Många backtesting-applikationer har inmatning för provisionsbelopp, runda (eller fraktionerade) partstorlekar, kryssstorlekar, marginalkrav, räntor, antaganden för slipning, positioneringsstorleksregler, same-bar exit-regler, (bakåt) stoppinställningar och mycket mer. För att få de mest exakta backtestingresultaten, är det viktigt att ställa in dessa inställningar för att efterlikna mäklaren som kommer att användas när systemet går live. Backtesting kan ibland leda till något som kallas överoptimering. Det här är ett villkor där resultatresultatet är så högt anpassat till det förflutna att de inte längre är lika exakta i framtiden. Det är generellt en bra idé att genomföra regler som gäller för alla aktier eller en vald uppsättning riktade lager och är inte optimerade i den utsträckning reglerna inte längre är förståeliga av skaparen. Backtesting är inte alltid det mest exakta sättet att mäta effektiviteten i ett visst handelssystem. Ibland misslyckas strategier som fungerade bra tidigare i dag. Tidigare resultat är inte en indikation på framtida resultat. Var noga med att handla ett system som har testats framgångsrikt innan du går live för att vara säker på att strategin fortfarande gäller i praktiken. Slutsats Backtesting är en av de viktigaste aspekterna av att utveckla ett handelssystem. Om det skapas och tolkas ordentligt kan det hjälpa handlare att optimera och förbättra sina strategier, hitta några tekniska eller teoretiska brister, samt få förtroende för sin strategi innan de appliceras på den verkliga världsmarknaden. Resources Tradecision (tradecision) - High-end Trading Systemutveckling AmiBroker (amibroker) - Budget Trading System Development. 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 Rule) som tillåter utbetalningar från ett IRA-konto i samband med straff. 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 skuldkvot som används för att mäta ett företags ekonomiska hävstångseffekt eller en skuldkvot som används för att mäta en individ. Strategi Backtesting Strategi backtesting är ett viktigt verktyg för att se om din strategi fungerar eller inte. Backtesting mjukvaran simulerar din strategi för historiska data och ger en backtesting rapport, som gör det möjligt för dig att genomföra en korrekt trading system analys. 64-bitarsversionen låter dig ladda så mycket data som du behöver för även den mest exakta backtestingen. För teknisk information om den här funktionen, se på den relaterade Wiki-sidan. Noggrannhet är nyckeln MultiCharts är en lösning som skapats speciellt för strategiutveckling och backtesting. Vår filosofi är att strategisk backtesting ska vara lika realistisk som modern teknik tillåter. Multicharts 64-bit gör det möjligt att hantera en stor mängd Tick-by-Tick-data för exakt backtesting. Realistisk backtesting Även om ingen approximation kan vara 100 perfekt har vi gjort allt för att exakt återskapa tidigare marknadsvillkor och beställa utförande för strategihandel. Typiska backtestingmotorer har många antaganden och genvägar, vilket resulterar i orealistiska tester och otillförlitliga resultat. MultiCharts är en handelsplattform på institutionell nivå som minimerar antaganden och tar hänsyn till många faktorer. Avancerad tech Strategi backtesting behöver ofta mycket data, och programvara som kan hantera den. Multi-threading används när du bearbetar strategioptimering i MultiCharts. Det sprider flera uppgifter till olika kärnor, så att de slutar mycket snabbare. 64-bitars version av MultiCharts låter dig ladda jämna år och år med kryssdata för detaljerade prisrörelser. Lätt att läsa Du kan ändra hur dina signaler visas på ditt diagram bara några klick. Avsluta order kan kopplas med en synlig linje till all relaterad postorderlinjen blir grön om handeln var lönsam, röd om inte. Om du inte gillar dessa färger eller någon annan visuell aspekt kan du enkelt ändra den. Välj din valuta för backtesting Basvaluta gör det möjligt att beräkna vinst och förlust under strategin backtesting med en angiven valuta för Forex-par eller icke-amerikanska symboler. Om du backtestar din strategi på en symbol som är baserad i en annan valuta än ditt mäklare konto kanske du vill tillämpa en valutakonvertering. För att göra resultaten så nära perfektion som möjligt använder vi faktiska valutakurser för varje dag. All valutakonvertering sker bakom kulisserna för att göra din handel så enkel som möjligt. Vi använder våra servrar för att begära data i bakgrunden och utföra nödvändiga beräkningar. Alla väsentliga faktorer som ingår i vår Backtesting-programvara tar upp följande väsentliga faktorer: likviditet, prisförändringar i kryssrutor, köpkursdifferenser, provision, glidning, startkapital, räntesats och handelsstorlek. Med hänsyn till likviditet När MultiCharts-motorn återprövar en strategi erkänner den att inte alla gränsvärden kommer att fyllas på grund av brist på likviditet. Därför har du möjlighet att fylla beställningar när ett prismål träffas eller när det överskrids med ett visst antal poäng (pips). Mer information finns på vår Wiki-sida. Fråga, bud och handelspriser Backtesting tar hänsyn till att reellt köp sker vid askpriser, reallförsäljning till budpriser. Detta gör vår backtesting-simulering så realistisk som möjligt. Precis strategi Backtesting kan ge användaren en mer realistisk emulering. För att backtest högfrekventa strategier som statistisk arbitrage kan användaren behöva ta hänsyn till de historiska bidragen data utöver de historiska handelsdata. Tick-by-tick simulering Bar Magnifier är viktigt för att öka precisionen vid backtesting. MultiCharts kan konstruera större staplar av mindre komponenter andra och minuters staplar ur fästingar, timmars - och dagstänger ur minuter. Du kan återskapa exakta prisrörelser inom varje stapel genom att använda Bar Magnifier. Bar Magnifier kan till exempel osynligt ladda minuter som utgör timmen, och strategin kommer att testas om en minut för minut. Läs mer tekniska detaljer här. Strategier för omedelbar övning MultiCharts backtesting-motorn emulerar även marknads-, stopp-, gräns-, stoppgränser och en-annulleringar-andra (OCO) - ordningar. Resultatmål, stop-loss och efterföljande stopp är också standardbacktesting-funktioner. Dessutom kommer MultiCharts med mer än 80 EasyLanguage-strategier, så du kan träna backtesting. MultiCharts 10 MultiCharts är en prisbelönt handelsplattform Om du behöver mjukvaruhandel eller investerar i längre perioder, har MultiCharts funktioner som kan hjälpa till att uppnå dina handelsmål. High-definition kartläggning, inbyggda indikatorer och strategier, ett-klick trading från diagram och DOM, hög precision backtesting, brute-force och genetisk optimering, automatiserat utförande och support för EasyLanguage-skript är alla viktiga verktyg till ditt förfogande. hoice of brokers och data feeds Valfrihet har varit drivsidan bakom MultiCharts och du kan se den i det stora utbudet av data och matare som stöds. Välj din handelsmetod, testa den och börja handla med någon stödd mäklare du gillar, fördelen med MultiCharts.

No comments:

Post a Comment