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. En ekonomisk teori om totala utgifter i ekonomin och dess effekter på produktion och inflation. Keynesian ekonomi utvecklades. En innehav av en tillgång i en portfölj. En portföljinvestering görs med förväntan på att få en avkastning på den. Detta. Ett förhållande som utvecklats av Jack Treynor som mäter avkastning som förvärvats över det som kunde ha blivit uppnådd på en risklös. Återköp av utestående aktier (återköp) av ett företag för att minska antalet aktier på marknaden. Företag. Ett skattebidrag är ett återbetalning på skatter som betalas till en individ eller hushåll när den faktiska skatteskulden är mindre än beloppet. Det monetära värdet av alla färdiga varor och tjänster som produceras inom ett land039s gränsar under en viss tidsperiod. Pioneering in Tomorrows Trading Hur fungerar det Bygg Algoritmer i en Browser IDE, Använda Mall Strategier och Free Data Design och testa din strategi på vår gratis data och när du är redo att distribuera den lever till din mäklare. Kod i flera programmeringsspråk och utnyttja vårt kluster av hundratals servrar för att köra din backtest för att analysera din strategi i Equities, FX, CFD, Options eller Futures Markets. QuantConnect är nästa revolution i kvanthandel, som kombinerar cloud computing och öppen dataåtkomst. Oöverträffad hastighet Använd vår servergård för institutionella hastigheter från din stationära dator. Du kan iterera på dina idéer snabbare än du någonsin gjort tidigare. Massive Data Library Vi tillhandahåller ett massivt gratis 400TB-fältupplösningsdatabibliotek som täcker amerikanska aktier, alternativ, futures, grundval, CFD och Forex sedan 1998. Utförande av världsklass Våra live trading algoritmer är samlokaliserade bredvid marknadsservrarna i Equinix (NY7) för resilenta, säkra och lättare snabb utförande till marknaderna. Har några bra idéer Låt oss testa det Starta din algoritm Professional Quality, Open Data Library Design-strategier med vårt noggrant kurerade databibliotek, som spänner över globala marknader, från fästning till daglig upplösning. Uppgifterna uppdateras nästan dagligen, så att du kan backtest på den allra senaste informationen, och överlevnadsförbudet är gratis. Vi erbjuder aktiemarknadsdata som går tillbaka till januari 1998 för varje symbol som handlas, totalt över 29 000 aktier. Priset tillhandahålls av QuantQuote. Dessutom har vi Morning Star Fundamental data för de mest populära 8000 symbolerna för 900 indikatorer sedan 1998. FOREX amp CFD Vi erbjuder 100 valutapar och 70 CFD-kontrakt som täcker alla stora ekonomier från FXCM och OANDA. Uppgifterna finns i kryssupplösning, startar april 2007 och uppdateras dagligen. Vi erbjuder futures tick handel och citat data från januari 2009 till nuvarande, för varje kontrakt som handlas i CME, COMEX och GLOBEX. Uppgifterna uppdateras varje vecka och tillhandahålls av AlgoSeek. Vi erbjuder alternativtrafik och citat till en minutlösning, för alla alternativ som handlas på ORPA sedan 2007 och omfattar miljoner kontrakt. Uppgifterna uppdateras inom 48 timmar och tillhandahålls av AlgoSeek. Team Collaboration Hitta nya vänner i samhället och samarbeta med vår teamkodningsfunktion Dela projekt och se deras kod direkt när de skriver. Du kan även ge direkt tillgång och styra livealgoritmen tillsammans. Använd vår interna snabbmeddelanden för att hitta potentiella lagmedlemmar att ansluta sig. Säker immateriell äganderätt Vårt fokus är att ge dig den bästa möjliga algoritmiska handelsplattformen och skydda din värdefulla immateriella äganderätt. Vi kommer alltid att vara en infrastruktur och teknikleverantör först. När du är redo för live trading hjälper du gärna att genomföra genom din mäklare. Genomföra genom ledande mäklare Vi har integrerats med världsledande mäklarfirmor för att ge bästa möjliga utförande och lägsta avgifter till samhället. Händelsesdrivna strategier Att utforma en algoritm kunde inte vara enklare. Det finns bara två nödvändiga funktioner och vi tar hand om allt annat Du initierar bara () din strategi och hanterar de datahändelser du begärde. Du kan skapa nya indikatorer, klasser, mappar och filer med en webbaserad komplett C-kompilator och automatiskt slutförd. Vi är engagerade i att ge dig bästa möjliga algoritmdesignerfarenhet. Utnyttja din potentiella opt i användare kan ha sina strategier som presenteras för hedgefund kunder i en transparent professionell strategi dashboard. Strategierna valideras av QuantConnects backtesting och live trading, vilket ger dig en neutral tredjepartsrecension av kod. Intresserade hedgefonder kan kontakta dig direkt via QuantConnect för att erbjuda dig anställning eller finansiering för din strategi. Delta i vår gemenskap Vi har ett av världens största kvantitativa handelsgrupper, byggande, dela och diskutera strategier genom vårt samhälle. Konvertera med några av de ljusaste sinnena i världen när vi utforskar nya områden av vetenskap, matematik och ekonomi. 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. Hur man backtestar din handelsstrategi korrekt Många framgångsrika handlare delar en vana 8211 de backtestar sina handelsstrategier. Backtesting din handelsstrategi kommer inte ensam att garantera att du blir lönsam, men det är ett jätte steg i rätt riktning. I den här artikeln undersöker vi några potentiella fördomar som kan krypa in i din backtesting, och vi kommer att titta på hur man minimerar effekterna av dessa förspänningar. Det finns många problem som kan uppstå när du backtestar ditt handelssystem, men de flesta problem faller i en av tre kategorier: postdiktiva fel, för många variabler eller misslyckas med att förutse drastiska förändringar på marknaden. Var och en av dessa fel förklaras, tillsammans med metoder för att undvika fel. Klicka här för att lära dig hur du använder Bollinger Bands med ett kvantifierat, strukturerat tillvägagångssätt för att öka dina handelskanter och säkra större vinster med Trading with Bollinger Bands 8211 A Quantified Guide. 1. Postdictive Error Det postdictiva felet är bara ett fint sätt att säga att du har använt information endast tillgänglig 8220 efter faktum8221 för att testa ditt system. Tro det eller inte, det här är ett mycket vanligt fel vid testning av handelssystem. Detta fel är lätt att göra. Vissa program kan du använda today8217s data för att testa ett handelssystem, vilket alltid är ett postdiktivt fel (vi vet inte om today8217s data är användbara ännu för att förutsäga framtiden, men vi vet säkert om det är användbart för att förutse förflutna ). Wouldn8217t du älskar att kunna använda slutkursen på GBPUSD för att förutsäga vad marknaden kommer att göra idag. Naturligtvis skulle du definitivt skulle, men tyvärr är denna information inte tillgänglig för oss förrän dagen är över. Till exempel kan du ha ett system som innehåller slutkursen, då innebär det självklart att handeln inte kan initieras förrän dagen är över. annars är detta ett postdiktivt fel. Ett annat exempel kan hjälpa till att illustrera det postdiktiva felet, om du har en regel i ditt handelssystem om högsta priser, så har du ett postdiktivt fel. Detta beror på att högsta priser ofta definieras av data som kommer senare, i framtiden. Sättet att undvika det postdiktiva felet är att se till att när du backtestar ett system så används endast information som tidigare finns tillgänglig vid backtesting. Med manuell backtesting eller backtesting med forex tester kan du uppnå detta ganska enkelt, men med automatiserad backtesting kan postdictive felet smyga in i ditt handelssystem. 2. För många variabler Detta är också känt som 8220Degrees of Freedom8221 bias. Detta innebär helt enkelt att du har för många variabler eller handelsindikatorer i ditt handelssystem. Det är mycket möjligt att komma fram till ett handelssystem som kan förklara förflutna prisbeteenden hos ett valutapar. Faktum är att ju fler indikatorer du lägger till desto lättare blir det ofta. Problemet kommer när du vill tillämpa detta system för framtiden. Ofta när ett handelssystem har för många indikatorer kan det förutsäga marknadsbeteendet under en tidsperiod extremt bra. Men that8217s är allt systemet bra för, för i framtiden faller systemet ifrån varandra. Ovanstående uttalande är ofta svårt för handlare att komma till rätta med, men det är sant. Tänk på vad William Eckhardt, New Market Wizards har att säga om handelssystem. I allmänhet har de delikata tester som statistiker använder för att klämma ut betydelsen av marginala data i allmänhet ingen plats i handeln. Vi behöver trubbiga statistiska instrument, robusta tekniker. Självklart varnar han mot graden av frihetsfel och tyder på att enkla handelssystem är mer benägna att stå tidstest. Detta är helt sant. Några av de mest kraftfulla handelssystemen som finns tillgängliga är extremt enkla. Tänk på detta när du handlar och när du försöker hitta ett lönsamt handelssystem. De flesta handlare kommer att finna att de med erfarenhet blir mer benägna att omfamna synen på att enklare handel är att föredra framför ett komplicerat tillvägagångssätt. 3. Drastiska förändringar på marknaden Många handlare glömmer att förutse oförutsedda händelser som kommer att uppstå i framtiden. Det spelar ingen roll om att du inte vet vad som kommer att hända i framtiden 8211 för att du vet detta: det kommer att finnas tider i framtiden när marknaderna kommer att verka felaktigt. När detta händer bör du ha utformat ditt handelssystem för att fungera under dessa tider. Kanske kan några exempel hjälpa till med det här: När Saddam Hussein hittades (över helgen) reagerade valutamarknaderna ganska drastiskt på måndagen8217s öppning. När den globala finanskrisen började utvecklas i september 2008 handlades de flesta valutapar med mycket mer volatilitet än vad som hade sett i åratal. Faktum är att det kommer att bli oväntade händelser i framtiden, och dessa händelser kommer att påverka marknaderna, så det bästa du kan göra är att vara beredd. Hur förbereder du dig på det oväntade Tänk på följande enkla lösningar: 1) Överdriv dina förväntade förluster. Om din backtesting avslöjar en maximal förlust på 5000, antar du en maximal förlust på 10 000. Kommer ditt handelssystem fortfarande att vara lönsamt under dessa förhållanden 2) Besluta om en lämplig risknivå för varje handel. Kom ihåg att även denna nivå av risk kommer sannolikt att överskridas. Om du har bestämt dig för att riskera 1 på varje handel, bör du anta att någon gång i framtiden kan du vara i handeln och en oväntad händelse inträffar, och din handel kommer inte att förlora 1, men i stället kommer 5 att gå vilse. 3) Du bör ha en beredskapsplan upprättad. Det vill säga hur kommer du att lämna en handel om något händer och du kan inte komma åt ditt konto. Till exempel, vad händer om din handelsplattform är otillgänglig och du vill desperat ha en handel. De flesta mäklare erbjuder en telefonlinje till handlare för dessa fall. Har du telefonnummer 4) Har du en maximal risknivåuppsättning Detta skulle vara tillämpligt om du har flera affärer öppna samtidigt. Om du bestämmer dig för att riskera 1 per handel och du har 7 affärer öppna samtidigt betyder det att du riskerar 7 av ditt konto Eller har du bestämt dig för en maximal risknivå på 3? Tänk på att det oväntade inträffar, du borde antagligen ha en maximal risknivå för de tider då du har flera öppna affärer. 5) Vad är den maximala dröjsmålet (mängden pengar som ditt handelssystem förlorar över en längre tid) du är villig att tolerera Med tanke på att du (och du inte är ensam) är mer benägna att överskatta graden av drawdowns som du tål det är viktigt att vara realistisk. Om du förlorar 30 av ditt konto kommer du sluta handla Vad händer om du förlorar 50 Eller om du ser 70 av ditt konto försvinna igen Det bästa sättet att planera för drawdowns är att göra omfattande backtesting för att ta reda på vilken typ av historiska drawdowns din handel systemupplevelser och planera för ännu värre drawdowns i framtiden. Att förutse drastiska förändringar på marknaderna är det enda bästa sättet att behålla eget kapital i ditt konto. Så, du vet att framgångsrika handlare delar denna vana 8211 de backtest sina handelsstrategier. Du vet att backtesting skiljer de rika affärerna från de som förlorar pengar. Du vet också flera sätt att integrera backtesting i din handelsregim. Och du vet om fallgroparna 8211 vad du ska titta på för 8211 när du backtesting, så att du kan få ut det mesta av processen. Men, hur exakt kommer du att komma ur backtesting ditt handelssystem I nästa artikel kommer jag att undersöka biverkningarna av backtesting. Walter Peters, PhD är en professionell Forex Trader och pengar chef för en privat Forex fond. Dessutom är Walter medstifter av Fxjake. en resurs för valutahandlare. Walter älskar att höra från andra handlare, han kan nås via email på walterfxjake. En effektiv implementering av Backtesting of Trading Strategies Clark, D. E. (red.): Evolutionary Algorithms in Molecular Design. Wiley-VCH, Weinheim (2000) Metcalfe, T. S. Charbonneau, P. Stellarstrukturmodellering med en parallell genetisk algoritm för objektiv global optimering. Journal of Computational Physics 185 (1), 176193 (2003) MATH CrossRef Nowostawski, M. Poli, R. Parallell genetisk algoritm taxonomi. I: Proc. av 3: e Int. Konferens om Kunskapsbaserade Intelligenta Informationstekniska System (KES 1999), Adelaide, Australien (1999) Stender, J. Parallella Genetiska Algoritmer: Teoriförstärkare. IOS Press, Amsterdam (1993) MATH Om detta kapitel Titel En effektiv implementering av backtesting av handelsstrategier Boktitel Parallell och distribuerad bearbetning och tillämpningar Boka undertext tredje internationella symposiet, ISPA 2005, Nanjing, Kina, 2-5 november 2005. Förhandlingar Sidor sid 126-131 Upphovsrätt 2005 DOI 10.10071157623517 Skriv ut ISBN 978-3-540-29769-7 ISBN 978-3-540-32100-2 Serie Titel Föreläsningsanteckningar i datavetenskapsserie Volym 3758 Serie ISSN 0302-9743 Utgivare Springer Berlin Heidelberg Upphovsrättsinnehavare Springer-Verlag Berlin Heidelberg Ytterligare länkar Om denna bok Ämnen Datasystem Implementering Algoritmanalys och problemkomplexitet Datorkommunikationsnät Informationssystemapplikationer (inkl. Internet) Systemprestanda och utvärdering Programvaruteknik Branschsektorer Telekommunikation Finans, affärsförstärkare Bankrörelse Aerospace IT amp Programvara eBokpaket Datorvetenskapredaktörer Yi Pan (16) Daoxu Chen (17) Minyi Guo (18) Jiannong Cao (19) Jack Dongarra (20) Redaktörsaffärer 16. Dept. CS, Georgia State University 17. State Key Laboratory for Novel Software Technology, Nanjing University 18. Institutionen för datavetenskap, Shanghai Jiao Tong Högskolan 19. Institutionen för datavetenskap, Högskolan i Hongkong, Kowloon 20. Datavetenskapsavdelningen, University of Tennessee Författare Jiarui Ni (21) Chengqi Zhang (21) Författaranslutningar 21. Fakulteten för informationsteknologi, University of Technology, Sydney, GPO Box 123, Broadway, NSW 2007, Australien Fortsätt läsa. För att se resten av det här innehållet, var god följ länken för nedladdning av PDF ovan. Vi använder cookies för att förbättra din erfarenhet med vår webbplats. Mer information Över 10 miljoner vetenskapliga dokument till hands Våra innehåll Andra webbplatser Hjälp förstärkare Kontakter Ej inloggad Ej godkänd 78.109.24.111 Springer för Research amp Utveckling JavaScript är för närvarande inaktiverat. den här webbplatsen fungerar mycket bättre om du aktiverar JavaScript i din browser. Pioneering in Tomorrows Trading Hur fungerar det Bygg Algoritmer i en Browser IDE, Använda Mall Strategier och Free Data Design och testa din strategi på vår fria data och när du är redo att distribuera den live till din mäklare. Kod i flera programmeringsspråk och utnyttja vårt kluster av hundratals servrar för att köra din backtest för att analysera din strategi i Equities, FX, CFD, Options eller Futures Markets. QuantConnect är nästa revolution i kvanthandel, som kombinerar cloud computing och öppen dataåtkomst. Oöverträffad hastighet Använd vår servergård för institutionella hastigheter från din stationära dator. Du kan iterera på dina idéer snabbare än du någonsin gjort tidigare. Massive Data Library Vi tillhandahåller ett massivt gratis 400TB-fältupplösningsdatabibliotek som täcker amerikanska aktier, alternativ, futures, grundval, CFD och Forex sedan 1998. Utförande av världsklass Våra live trading algoritmer är samlokaliserade bredvid marknadsservrarna i Equinix (NY7) för resilenta, säkra och lättare snabb utförande till marknaderna. Har några bra idéer Låt oss testa det Starta din algoritm Professional Quality, Open Data Library Design-strategier med vårt noggrant kurerade databibliotek, som spänner över globala marknader, från fästning till daglig upplösning. Uppgifterna uppdateras nästan dagligen, så att du kan backtest på den allra senaste informationen, och överlevnadsförbudet är gratis. Vi erbjuder aktiemarknadsdata som går tillbaka till januari 1998 för varje symbol som handlas, totalt över 29 000 aktier. Priset tillhandahålls av QuantQuote. Dessutom har vi Morning Star Fundamental data för de mest populära 8000 symbolerna för 900 indikatorer sedan 1998. FOREX amp CFD Vi erbjuder 100 valutapar och 70 CFD-kontrakt som täcker alla stora ekonomier från FXCM och OANDA. Uppgifterna finns i kryssupplösning, startar april 2007 och uppdateras dagligen. Vi erbjuder futures tick handel och citat data från januari 2009 till nuvarande, för varje kontrakt som handlas i CME, COMEX och GLOBEX. Uppgifterna uppdateras varje vecka och tillhandahålls av AlgoSeek. Vi erbjuder alternativtrafik och citat till en minutlösning, för alla alternativ som handlas på ORPA sedan 2007 och omfattar miljoner kontrakt. Uppgifterna uppdateras inom 48 timmar och tillhandahålls av AlgoSeek. Team Collaboration Hitta nya vänner i samhället och samarbeta med vår teamkodningsfunktion Dela projekt och se deras kod direkt när de skriver. Du kan även ge direkt tillgång och styra livealgoritmen tillsammans. Använd vår interna snabbmeddelanden för att hitta potentiella lagmedlemmar att ansluta sig. Säker immateriell äganderätt Vårt fokus är att ge dig den bästa möjliga algoritmiska handelsplattformen och skydda din värdefulla immateriella äganderätt. Vi kommer alltid att vara en infrastruktur och teknikleverantör först. När du är redo för live trading hjälper du gärna att genomföra genom din mäklare. Genomföra genom ledande mäklare Vi har integrerats med världsledande mäklarfirmor för att ge bästa möjliga utförande och lägsta avgifter till samhället. Händelsesdrivna strategier Att utforma en algoritm kunde inte vara enklare. Det finns bara två nödvändiga funktioner och vi tar hand om allt annat Du initierar bara () din strategi och hanterar de datahändelser du begärde. Du kan skapa nya indikatorer, klasser, mappar och filer med en webbaserad komplett C-kompilator och automatiskt slutförd. Vi är engagerade i att ge dig bästa möjliga algoritmdesignerfarenhet. Utnyttja din potentiella opt i användare kan ha sina strategier som presenteras för hedgefund kunder i en transparent professionell strategi dashboard. Strategierna valideras av QuantConnects backtesting och live trading, vilket ger dig en neutral tredjepartsrecension av kod. Intresserade hedgefonder kan kontakta dig direkt via QuantConnect för att erbjuda dig anställning eller finansiering för din strategi. Delta i vår gemenskap Vi har ett av världens största kvantitativa handelsgrupper, byggande, dela och diskutera strategier genom vårt samhälle. Konvertera med några av de ljusaste sinnena i världen när vi utforskar nya världar av vetenskap, matematik och finans. Backtesting och Trade Systems Bygg det. Testa det Handel det. CQGs state-of-the-art backtesting och handelssystem verktyg ger dig kontroll över dina strategier. Utveckla och optimera ditt system och signaler genom att modellera mot år med tillgänglig historisk data. När det är klart, handlar det automatiskt via CQGs AutoTrader. Lägg till handelssystempaketet till din CQG IC Testa dina idéer innan du riskerar dina pengar Vårt handelssystempaket låter kunderna analysera tidigare handelsaktivitet och bygga strategier utifrån den aktiviteten. Dra nytta av våra funktioner för att finjustera inmatnings - och utgångspunkter och testa användardefinierade parametervärden. Dra nytta av våra många backtesting resurser genom att undersöka handelsverksamhet baserat på skapandet av långa eller korta affärer, en mängd inmatnings - och utgående signaler och provisioner som näringsidkaren måste betala. Utvärdera Ingångssignaler Använda Favoritförhållanden Med Signalutvärderare kan du analysera effektivitet under en viss tidsperiod med dina egna specifika köp - och säljssignaler. Din analys kan tillämpas på både portföljer och enskilda varor. Optimera systemparametrar Optimera ditt arbetsflöde genom att använda Trade System Optimizer, ett värdefullt handelsverktyg som tester resultaten av handelssystem som kör olika inställningar och kombinationen av parametrar som ingår i handelssignaler. Handla automatiskt ditt handelssystem Nu när du har ditt handelssystem, har CQG automatiskt handel med det. CQG AutoTrader är en proprietär handelsexekveringsmotor som gör det möjligt för kunder att samtidigt utföra ett flertal system samtidigt med lika precision och disciplin. I sin tur ger det handlare större kapacitet och noggrannhet i systemhandel gentemot manuell utförande. Produkten stöder olika ordertyper och tillåter kunder att konfigurera exekveringsparametrar relaterade till pris, storlek och tidpunkt för order. För maximal genomskinlighet är CQG AutoTrader integrerad med olika positionsövervakningsmoduler, t. ex. Order and Positions-fönstret och ATS-studien, där kunder kan övervaka handelssignaler och positioner på diagram och handelsgränssnitt. CQG AutoTrader kan användas i live eller demo trading lägen. Demo CQG AutoTrader med en gratis test av CQG IC Backtesting Video Kraftfull Automation CQG Produktspecialist Doug Janson skisserar CQG ICs automationsfunktioner. Lär dig hur du definierar formler, testformler med hjälp av Entry Signal Evaluator och skapa ett handelssystem. Se nu Intelligent Backtesting CQG Produktspecialist Jim Stavros demonstrerar effektiviteten av att använda våra backtesting och handelssystem verktyg. Visa nu Jämför produkter 2-veckors gratis prov Kontakta oss Jämför produkter 2-veckors gratis prov Kontakta ossSuccesfull backtesting av algoritmiska handelsstrategier - Del I Denna artikel fortsätter serien om kvantitativ handel, som började med Beginners Guide och Strategy Identification. Båda dessa längre, mer inblandade artiklar har varit mycket populära så jag fortsätter i denna åder och ger detaljer om ämnet strategi backtesting. Algoritmisk backtesting kräver kunskap om många områden, däribland psykologi, matematik, statistik, mjukvaruutveckling och marknadsexchange mikrostruktur. Jag kunde inte hoppas att täcka alla dessa ämnen i en artikel, så jag kommer att dela dem i två eller tre mindre bitar. Vad ska vi diskutera i det här avsnittet Jag börjar med att definiera backtesting och då kommer jag att beskriva grunderna för hur den utförs. Då kommer jag att klargöra de fördomar vi berörde i Beginners Guide to Quantitative Trading. Nästa kommer jag presentera en jämförelse av de olika tillgängliga backtestingprogrammen. I efterföljande artiklar kommer vi att titta på detaljerna i strategimodeller som ofta knappast nämns eller ignoreras. Vi kommer också att överväga hur man gör backtesting processen mer realistisk genom att inkludera idiosyncrasies av en handel utbyte. Då kommer vi att diskutera transaktionskostnader och hur man korrekt modellerar dem i en backtest-inställning. Vi kommer att avsluta med en diskussion om utförandet av våra backtests och slutligen ge ett exempel på en gemensam kvantstrategi, känd som en genomsyrande parhandel. Låt oss börja med att diskutera vad backtesting är och varför vi bör utföra det i vår algoritmiska handel. Vad är Backtesting Algoritmisk handel står förutom andra typer av investeringsklasser, eftersom vi på ett tillförlitligt sätt kan ge förväntningar om framtida prestanda från tidigare resultat, till följd av riklig tillgång till data. Processen genom vilken detta utförs är känt som backtesting. I enkla termer görs backtesting genom att exponera din specifika strategialgoritm till en ström av historisk finansiell data, vilket leder till en uppsättning handelssignaler. Varje handel (som vi kommer att betyda här för att vara en rundresa med två signaler) kommer att ha en associerad vinst eller förlust. Sammanställningen av denna vinstlösning under löptiden för din strategi backtest kommer att leda till den totala vinsten och förlusten (även känd som PL eller PnL). Det är kärnan i idén, även om djävulen självklart alltid är i detaljerna. Vilka är huvudorsakerna för att backtesting en algoritmisk strategi Filtrering - Om du kommer ihåg från artikeln om strategiidentifiering. Vårt mål vid det inledande forskningsfasen var att upprätta en strategipipeline och sedan filtrera bort en strategi som inte uppfyllde vissa kriterier. Backtesting ger oss en annan filtreringsmekanism, eftersom vi kan eliminera strategier som inte uppfyller våra prestationsbehov. Modellering - Backtesting gör det möjligt för oss (säkert) att testa nya modeller av vissa marknadsfenomen, till exempel transaktionskostnader, orderdirigering, latens, likviditet eller andra marknadsmikrostrukturproblem. Optimering - Även om strategin optimering är fylld med biaser tillåter backtesting oss att öka prestanda för en strategi genom att ändra kvantiteten eller värdena för parametrarna som är associerade med den strategin och omberäkna dess prestanda. Verifiering - Våra strategier är ofta anskaffade externt, via vår strategipipeline. Backtesting en strategi säkerställer att den inte har implementerats felaktigt. Även om vi sällan kommer att få tillgång till signalerna som genereras av externa strategier, har vi ofta tillgång till prestandametri som Sharpe Ratio och Drawdown egenskaper. Således kan vi jämföra dem med vår egen implementering. Backtesting ger en mängd fördelar för algoritmisk handel. Det är emellertid inte alltid möjligt att helt enkelt backa upp en strategi. I allmänhet, som frekvensen av strategin ökar, blir det svårare att korrekt modellera marknadens och börsens mikrostruktureffekter. Detta leder till mindre tillförlitliga backtests och därigenom en svårare utvärdering av en utvald strategi. Detta är ett speciellt problem där exekveringssystemet är nyckeln till strategiprestanda, som med ultrahögfrekventa algoritmer. Tyvärr är backtesting full av fördomar av alla slag. Vi har berört några av dessa frågor i tidigare artiklar, men vi kommer nu att diskutera dem på djupet. Fördomar som påverkar strategiska backtests Det finns många fördomar som kan påverka prestandan i en backtestad strategi. Tyvärr har dessa förspänningar en tendens att blåsa upp prestanda snarare än att förringa det. Således bör du alltid överväga en backtest för att vara en idealiserad övre gräns för strategins faktiska prestanda. Det är nästan omöjligt att eliminera biaser från algoritmisk handel, så det är vårt jobb att minimera dem så mycket vi kan för att fatta välgrundade beslut om våra algoritmiska strategier. Det finns fyra stora fördomar som jag önskar diskutera: Optimering Bias. Look-Ahead Bias. Survivorship Bias och Psykologisk Tolerans Bias. Optimering Bias Detta är förmodligen den mest skrämmande av alla backtest-förskott. Det innebär att justera eller introducera ytterligare handelsparametrar tills strategins prestanda på backtestdatasatsen är väldigt attraktiv. Men när strategin går, kan strategin vara märkbart annorlunda. Ett annat namn för denna förspänning är kurvmontering eller data-snooping bias. Optimeringsförskjutning är svår att eliminera eftersom algoritmiska strategier ofta involverar många parametrar. Parametrar i det här fallet kan vara inmatningsexekveringskriterier, återkallningsperioder, medelvärden (dvs den glidande parametern för glidande medel) eller volatilitetsmätningsfrekvensen. Optimeringsförspänning kan minimeras genom att hålla antalet parametrar till ett minimum och öka antalet datapunkter i träningsuppsättningen. Faktum är att man också måste vara försiktig med den senare eftersom äldre träningspunkter kan bli föremål för en tidigare regim (t. ex. en lagstiftningsmiljö) och kan därför inte vara relevant för din nuvarande strategi. En metod för att mildra denna bias är att utföra en känslighetsanalys. Detta innebär att parametrarna varieras stegvis och plottar en yta av prestanda. Ljud, grundläggande resonemang för parametervalg bör med alla andra faktorer anses leda till en mjukare parameteryta. Om du har en mycket hoppig yt yta betyder det ofta att en parameter inte speglar ett fenomen och är en artefakt av testdata. Det finns en stor litteratur om multidimensionella optimeringsalgoritmer och det är ett mycket aktivt forskningsområde. Jag kommer inte att dö på det här men håll det bakom dig när du hittar en strategi med en fantastisk backtest Look-Ahead Bias Look-ahead-bias introduceras i ett backtesting-system när framtida data av misstag ingår i en punkt i simulering där data inte skulle ha varit tillgängliga. Om vi kör backtesten kronologiskt och vi når tidpunkt N, så kommer framåtblick bias uppträda om data ingår för någon punkt Nk, där k0. Look-ahead biasfel kan vara otroligt subtila. Här är tre exempel på hur framtidsförspänning kan introduceras: Tekniska buggar - Arrayvektorer i kod har ofta iteratorer eller indexvariabler. Felaktiga överskott av dessa index kan leda till en förutseende förspänning genom att inkorporera data vid Nk för icke-noll k. Parameterberäkning - Ett annat vanligt exempel på framåtriktad förspänning inträffar vid beräkning av optimala strategiparametrar, till exempel med linjära regressioner mellan två tidsserier. Om hela datasatsen (inklusive framtida data) används för att beräkna regressionskoefficienterna, och därmed retroaktivt appliceras på en handelsstrategi för optimeringsändamål, införlivas framtida data och en framåtblickande bias finns. MaximaMinima - Vissa handelsstrategier använder sig av extrema värden under en viss tidsperiod, till exempel införande av höga eller låga priser i OHLC-data. Eftersom de maximala minimala värdena endast kan beräknas i slutet av en tidsperiod, införs emellertid en framåtblickande bias om dessa värden används under den aktuella perioden. Det är alltid nödvändigt att lagra highlow-värden med minst en period i någon handelsstrategi som använder dem. Precis som med optimeringsförspänning måste man vara extremt försiktig för att undvika införandet. Det är ofta den främsta anledningen till att handelsstrategier underpresterar deras backtest signifikant i live trading. Survivorship Bias Survivorship bias är ett särskilt farligt fenomen och kan leda till signifikant uppblåst prestanda för vissa strategityper. Det inträffar när strategier testas på dataset som inte inkluderar hela universum av tidigare tillgångar som kan ha blivit utvalda vid en viss tidpunkt, men bara överväga de som har överlevt till den aktuella tiden. Tänk på att testa en strategi för ett slumpmässigt urval av aktier före och efter marknadskraschen 2001. Vissa tekniklager gick i konkurs, medan andra lyckades hålla sig flytande och till och med blomstrade. Om vi hade begränsat den här strategin endast till lager som gjorde det genom marknadsutnyttjandeperioden skulle vi introducera en överlevnadsperspektiv eftersom de redan har visat deras framgång för oss. Faktum är att detta bara är ett annat specifikt fall av framåtblickande bias, eftersom framtida uppgifter införlivas i tidigare analyser. Det finns två huvudsakliga sätt att mildra överlevnadsförhållanden i dina strategiska backtest: Survivorship Bias Free Datasets - När det gäller egenkapitaldata är det möjligt att köpa dataset som innehåller avnoterade enheter, även om de inte är billiga och bara brukar användas av institutionella företag . I synnerhet är Yahoo Finance-data INTE överlevnadsklausulfri, och detta används vanligtvis av många detaljhandelshandlare. Man kan också handla på tillgångsklasser som inte är benägna att överleva bias, till exempel vissa varor (och deras framtida derivat). Använd mer aktuella data - När det gäller aktier utnyttjar utnyttjandet av en nyare dataset möjligheten att det valda aktievalet vägs till överlevande, helt enkelt eftersom det finns mindre sannolikhet för total avnotering av aktier på kortare tidsperioder. Man kan också börja bygga en personlig överlevnads-bias-fri dataset genom att samla in data från aktuell punkt framåt. Efter 3-4 år kommer du att ha en solid överlevnads-förskjutningsfri uppsättning aktiedata som kan användas för att backtest ytterligare strategier. Vi kommer nu att överväga vissa psykologiska fenomen som kan påverka ditt handelsprestanda. Psykologisk tolerans Bias Dessa speciella fenomen diskuteras inte ofta i samband med kvantitativ handel. Det diskuteras emellertid i stor utsträckning när det gäller mer diskretionära handelsmetoder. Det har olika namn, men Ive bestämde sig för att kalla det psykologiska toleransförhållandet eftersom det fångar kärnan i problemet. När man skapar backtest över en period av 5 år eller längre är det lätt att titta på en uppåtgående trender, beräkna den sammanslagna årliga avkastningen, Sharpe-förhållandet och jämn drawdown-egenskaper och vara nöjd med resultaten. Som ett exempel kan strategin ha en maximal relativ drawdown på 25 och en maximal drawdown-varaktighet på 4 månader. Detta skulle inte vara atypiskt för en momentumstrategi. Det är enkelt att övertyga sig om att det är lätt att tolerera sådana förlustperioder eftersom den övergripande bilden är rosig. I praktiken är det dock mycket svårare Om historiska drawdowns på 25 eller fler inträffar i backtestsna, så är det troligt att du ser perioder med liknande drawdown i live trading. Dessa uttagsperioder är psykologiskt svåra att uthärda. Jag har observerat första hand vad en förlängd drawdown kan vara, i en institutionell miljö, och det är inte trevligt - även om backtests föreslår att sådana perioder kommer att inträffa. Anledningen till att jag har sagt det en bias är att ofta en strategi som annars skulle bli framgångsrik stoppas från handel under tider med förlängd drawdown och därmed kommer att leda till signifikant underpresterande jämfört med en backtest. Således, även om strategin är algoritmisk, kan psykologiska faktorer fortfarande få stor inverkan på lönsamheten. Takeaway är att se till att om du ser dragningar av en viss procentandel och varaktighet i backtesten, så borde du förvänta dig att de uppträder i levande handelsmiljöer och måste fortsätta för att nå lönsamhet en gång till. Programvarupaket för backtesting Programvaran landskapet för strategi backtesting är enorm. Lösningar sträcker sig från helintegrerad avancerad sofistikerad programvara till programmeringsspråk som C, Python och R, där nästan allt måste skrivas från början (eller lämpliga plugins erhållna). Som kvanthandlare är vi intresserade av att kunna äga vår handelssteknologistack jämfört med hastigheten och tillförlitligheten i vår utvecklingsmetodik. Här är de viktigaste övervägandena för programval: Programmeringsförmåga - Valet av miljö kommer till stor del att komma ner till din förmåga att programmera programvara. Jag skulle hävda att kontrollen över den totala stacken kommer att få större effekt på din långsiktiga PL än att outsourca så mycket som möjligt till leverantörsprogram. Detta beror på risken att det finns risker för att det finns risk för att det finns externa buggar eller idiosyncrasier som du inte kan fixa i leverantörsprogramvara, vilket annars skulle vara lätt att avhjälpa om du hade mer kontroll över din tech stack. Du vill också ha en miljö som uppnår den rätta balansen mellan produktivitet, tillgänglighet i biblioteket och genomförandegraden. Jag gör min egen personliga rekommendation nedan. Execution CapabilityBroker Interaction - Vissa backtesting programvara, som Tradestation, knyter direkt i en mäklare. Jag är inte en fan av detta tillvägagångssätt eftersom minskade transaktionskostnader ofta är en stor del för att få ett högre Sharpe-förhållande. Om du är bunden till en viss mäklare (och Tradestation tvingar dig att göra det) kommer du att få en hårdare övergång till ny programvara (eller en ny mäklare) om behovet uppstår. Interaktiva mäklare tillhandahåller ett API som är robust, om än med ett lite stötigt gränssnitt. Anpassning - En miljö som MATLAB eller Python ger dig stor flexibilitet när du skapar algo-strategier, eftersom de ger fantastiska bibliotek för nästan alla matematiska operationer som är tänkbara, men tillåter också omfattande anpassning där det behövs. Strategisk komplexitet - Vissa program är inte utklippta för tungt antal knäppning eller matematisk komplexitet. Excel är ett sådant program. Medan det är bra för enklare strategier, kan det inte riktigt klara av många tillgångar eller mer komplicerade algoritmer i snabb takt. Bias Minimization - Låter en viss del av programvara eller data sig mer till handelsfördomar. Du måste se till att om du vill skapa all funktionalitet själv, så introducerar du inte fel som kan leda till fördomar. Utvecklingshastighet - Man borde inte spendera månader och månader genom att implementera en backtestmotor. Prototyper bör bara ta några veckor. Se till att din programvara inte hindrar dina framsteg i stor utsträckning, bara för att fånga några extra procentpoäng för körhastighet. C är elefanten i rummet här Utföringshastighet - Om din strategi är helt beroende av exekveringstidligheten (som i HFTUHFT) kommer ett språk som C eller C att vara nödvändigt. Däremot kommer du att verga på Linux-kärnoptimering och FPGA-användning för dessa domäner, vilket ligger utanför ramen för denna artikel. Kostnad - Många av programmiljöerna som du kan programmera algoritmiska handelsstrategier med är helt gratis och öppen källkod. Faktum är att många hedgefonder använder sig av öppen källkodsprogramvara för hela deras algo trading stacks. Dessutom är Excel och MATLAB båda relativt billiga och det finns till och med gratis alternativ till var och en. Nu när vi har listat de kriterier som vi behöver välja vår programvaruinfrastruktur vill jag springa igenom några av de mer populära paketen och hur de jämför: Obs! Jag kommer bara att inkludera programvara som är tillgänglig för de flesta detaljhandlare och mjukvaruutvecklare, eftersom det här är läsaren av webbplatsen. Medan annan programvara är tillgänglig, till exempel de mer institutionella betygsverktygen, anser jag att dessa är för dyra för att kunna användas effektivt i en detaljhandel och jag har ingen erfarenhet av dem personligen. Backtesting Software Comparison Beskrivning: Språk på hög nivå utformad för utvecklingens hastighet. Brett utbud av bibliotek för nästan alla programmatiska uppgifter som kan tänkas. Förbättra acceptans i hedgefonden och investeringsbanken. Inte lika snabbt som CC för körhastighet. Exekvering: Python-plugins existerar för större mäklare, som Interactive Brokers. Därför backtest och exekveringssystem kan alla vara en del av samma tech stack. Anpassning: Python har en mycket hälsosam utvecklingsgemenskap och är ett modent språk. NumPySciPy ger snabbvetenskaplig databehandling och statistisk analysverktyg som är relevanta för kvanthandel. Strategy Complexity: Many plugins exist for the main algorithms, but not quite as big a quant community as exists for MATLAB. Bias Minimisation: Same bias minimisation problems exist as for any high level language. Need to be extremely careful about testing. Development Speed: Pythons main advantage is development speed, with robust in built in testing capabilities. Execution Speed: Not quite as fast as C, but scientific computing components are optimised and Python can talk to native C code with certain plugins. Cost: FreeOpen Source Description: Mature, high-level language designed for speed of execution. Wide array of quantitative finance and numerical libraries. Harder to debug and often takes longer to implement than Python or MATLAB. Extremely prevalent in both the buy - and sell-side. Execution: Most brokerage APIs are written in C and Java. Thus many plugins exist. Customisation: CC allows direct access to underlying memory, hence ultra-high frequency strategies can be implemented. Strategy Complexity: C STL provides wide array of optimised algorithms. Nearly any specialised mathematical algorithm possesses a free, open-source CC implementation on the web. Bias Minimisation: Look-ahead bias can be tricky to eliminate, but no harder than other high-level language. Good debugging tools, but one must be careful when dealing with underlying memory. Development Speed: C is quite verbose compared to Python or MATLAB for the same algorithmm. More lines-of-code (LOC) often leads to greater likelihood of bugs. Execution Speed: CC has extremely fast execution speed and can be well optimised for specific computational architectures. This is the main reason to utilise it. Cost: Various compilers: LinuxGCC is free, MS Visual Studio has differing licenses. Different strategies will require different software packages. HFT and UHFT strategies will be written in CC (these days they are often carried out on GPUs and FPGAs ), whereas low-frequency directional equity strategies are easy to implement in TradeStation, due to the all in one nature of the softwarebrokerage. My personal preference is for Python as it provides the right degree of customisation, speed of development, testing capability and execution speed for my needs and strategies. If I need anything faster, I can drop in to C directly from my Python programs. One method favoured by many quant traders is to prototype their strategies in Python and then convert the slower execution sections to C in an iterative manner. Eventually the entire algo is written in C and can be left alone to trade In the next few articles on backtesting we will take a look at some particular issues surrounding the implementation of an algorithmic trading backtesting system, as well as how to incorporate the effects of trading exchanges. We will discuss strategy performance measurement and finally conclude with an example strategy. Just Getting Started with Quantitative Trading
Comments
Post a Comment