Sunday 8 October 2017

Tradealternativ Backtesting


Utvecklingslösning för institutionell klassad datahantering: - aktier, optioner, terminer, valutor, korgar och anpassade syntetiska instrument stöds - flera data med låga latentdata stöds (bearbetningshastigheter i miljoner meddelanden per sekund på terabyte data) - C och baserad strategi backtesting och optimering - Multipel mäklare exekvering stöds, handelssignaler konverteras till FIX order QuantFACTORY - Institutional-class datahantering backtesting strategi implementeringslösning: - QuantDEVELOPER - ram och IDE för handelsstrategier utveckling, debugging, backtesting och optimering, tillgänglig som en Visual Studio plug-in - QuantDATACENTER - gör det möjligt att hantera ett historiskt datalagringshus och fånga in realtid eller ultra låg latensmarknadsdata från leverantörer och utbyten - QuantENGINE - tillåter att distribuera och exekvera förkompilerade strategier - flera tillgångar, flerperiods låg latensdata , stödde flera mäklare institutionella klassdata managem backdestingstrategi-implementeringslösning: - OpenQuant - C och VisualBasic portföljnivå system backtesting och trading, multi-asset, intraday nivå testning, optimering, WFA etc. flera mäklare och data feeds stöds - QuantTrader - produktionshandel miljö - QuantBase - centraliserad datahantering - QuantRouter - data - och orderrutning Institutional-class datastyrd backtestingstrategi-implementeringslösning: - Multi-asset-lösning, stöd för flera dataflöden, databas stödjer alla typer av RDBMS som tillhandahåller ett JDBC-gränssnitt, t. ex. Oracle, Microsoft SQL Server, Sybase, MySQL etc. - Klienter kan använda IDE för att skripta sin strategi i antingen Java, Ruby eller Python, eller de kan använda sin egen strategi IDE - Multipel mäklare exekvering stöds, handelssignaler konverteras till FIX-order Institutionella - lösningsstrategi för hantering av lösningar för hantering av klassdata: - multi-asset-lösning (forex, optioner, terminer, aktier, ETF, råvaror, syntetiska instrument och anpassade derivatskedjor etc.), stöd för flera dataflöden - ram för utveckling av handelsstrategier, debugging, backtesting och optimering - Multipel mäklare utförd, handelssignaler konverterade till FIX-order (IB, JPMorgan, FXCM etc.) Dedikerad mjukvaruplattform integrerad med Tradestations data för backtesting och auto-trading: - Daglig intradag data (oss lager för 43years, terminer för 61 år) - Praktiskt för backtesting prisbaserade signaler (teknisk analys), stöd för EasyLanguage programmeringsspråk - stödja amerikanska aktier ETFs futures, amerikanska index, tyska aktier, tyska index, valutahandlare för Tradestation-mäklare - 249,95 per månad för icke-professionella (endast Tradestation-mjukvaruplattform utan mäklare) - 299,95 per månad för proffs (endast för Tradestation-programvaruplattform utan mäklare) Dedicated mjukvaruplattform för backtesting och auto-trading: - stödja dailyintraday strategier, testning av portföljnivå och optimering, kartläggning, visualisering, anpassad rapportering, multi-threaded analys, 3D kartläggning, WFA analys etc. - bäst för backtesting prisbaserade signaler - Direktlänk till eSignal, Interactive Brokers, IQFeed, myTrack, FastTrack, QP2, TC2000, vilket DDE-kompatibelt flöde, MS, txtfiles och mer (Yahoo Finance. ) - engångsavgift 279 för standardutgåva eller 339 för professionell utgåva Dedikerad mjukvaruplattform för backtesting och auto-trading: - Portföljnivå system backtesting och trading, multi-asset, intraday nivå testning, optimering, visualisering etc. - möjliggör R integration, automatisk handel i Perls skriptspråk med alla underliggande funktioner skrivna i infödda C, förberedda för serversamlokalisering - inbyggd FXCM och Interactive Brokers support - gratis FXCM-support, 100 per månad för IB-plattform, kontakta Salesseertrading för andra alternativ Dedikerad mjukvaruplattform för backtesting och auto-trading: - stödja dailyintraday strategier, testning av portföljnivå och optimering - bäst för backtesting prisbaserade signaler (teknisk analys), C scripting - programtillägg stöds - hantering av data feeds, strategi körning etc. - 799 per licens, 150 årligen avgift efter dedikerad mjukvaruplattform för backtesting, optimering, prestandatilldelning och analys: - Axioma eller 3: e del y data-faktor analys, riskmodellering, marknadscykelanalys Dedikerad mjukvaruplattform för backtesting och auto-trading: - Bäst för backtesting prisbaserade signaler (teknisk analys), stödja dailyintraday strategier, testning av portföljnivå och optimering - Turtle Edition - backtesting engine, grafik, rapporter, EoD-testning - Professional Edition - plus systemredaktör, framåtriktad analys, intradagstrategier, multi-threaded testning etc. - Pro Plus Edition - plus 3D ytskikt, scripting etc. - Builder Edition - IB API, debugger etc. - Turtle Edition 990 - Professionell upplaga 1,990 - Pro Plus Edition 2,990 - Builder Edition 3,990 Dedikerad mjukvaruplattform för backtesting och auto-trading: - stödja dailyintraday strategier, testning av portföljnivå och optimering, kartläggning, visualisering, anpassad rapportering mm - bäst för backtesting prisbaserade signaler (teknisk analys) - direktlänk till interaktiva mäklare, MB Trading, TD Ameritrade, FXCM och andra - data fro m-textfiler, eSignal, Google Finance, Yahoo Finance, IQFeed och andra - grundläggande funktionalitet (EoD-funktionalitet) - fri - avancerad funktionalitet - leasing från 50 månaders eller 995 livslängdslicenser. Dedikerad mjukvaruplattform för backtesting och automatisk handel: - Bäst för backtesting prisbaserade signaler (teknisk analys), stödja dailyintraday strategier, testning av portföljnivå och optimering, kartläggning, visualisering, anpassad rapportering - stöder C och Visual Basic - direktlänk till Interactive Brokers, IQFeed, txtfiles och mer (Yahoo Finance. ) - evig licens - 499 - leasing 50 per månad Dedikerad mjukvaruplattform för backtesting och auto-trading: - Stödja dailyintraday-strategier, testning av portföljnivå och optimering, kartläggning, visualisering, anpassad rapportering - Tekniska och grundläggande signaler, 245 för avancerad version (gratis dataleverantörer) - 595 för Premium Version (stöd för flera datatillhandahållare och mäklare) Dedikerad mjukvaruplattform för backtesting och auto-trading: - stödja dailyintraday-strategier, testning av portföljnivå och optimering - bäst för backtesting av prisbaserade signaler teknisk analys) - inbyggd data för aktier, futures och forex (dagliga amerikanska aktier från 1990, dagliga terminer 31 år, valutor från 1983 etc.) - pris från 45 månader till 295 månad (priserna beror på tillgänglighet) Dedikerad mjukvaruplattform för backtesting och auto-trading: - använder MQL4-språk, används främst för handel med valutamarknaden - stöder flera forex-mäklare och dataflöden - stöder hantering av flera konton Dedikerad mjukvaruplattform för backtesting och auto-trading: - stödja dailyintraday-strategier, testning och optimering av portföljnivå - bäst för backtesting av prisbaserade signaler (teknisk analys), stöd för EasyLanguage programmeringsspråk - stöd för flera dataflöden (Bloomberg, Thomson Reuters, CSI, CQG, eSignal etc.), direktstöd för flera mäklare (Interactive Brokers etc.) - Multicharts 797 per år - Multicharts livstid 1 497 - Multicharts Pro 9 900 (Bloomberg Thomson Reuters dataförbrukning etc.) Webbaserat backtestingverktyg för att testa aktieplockningsstrategier: - Amerikanska aktier ETFs (dagligen) - Grundläggande data-baserade data sedan 1999 - Longshort-strategier, Grundläggande priser-baserade signaler - Designer - 139 Månad - Manager - 199 Månad - Fullständig funktionalitet Portfölj Analytics använder högfrekventa marknadsdata: Denna produkt är avsedd för låga, medelhöga, högfrekventa handlare. Alla beräkningar görs med hjälp av högfrekventa marknadsdata som gynnar låga och högfrekventa handelssökande. - intradag backtesting, portfölj riskhantering, prognos och optimering till varje pris sekund, minuter, timmar, slut på dagen. Modellingångarna är helt kontrollerbara. - 8k marknadskryssat datakällor sedan 2012 (aktier, index ETF-handlade på NASDAQ). Kunder kan också ladda upp egna marknadsdata (t. ex. kinesiska aktier). - 40 portföljmätningar (VaR, ETL, alfa, beta, Sharpe-förhållande, Omega-förhållande osv.) - stöder R, Matlab, Java Python - 10 portföljoptimeringar Webbaserat backtestingverktyg: - Amerikanska aktiekurser (dailyintraday) data från QuantQuote - Forex-data från FXCM-stödja Trader Interactive Brokers för Live Trading Webbaserat backtestingverktyg: - Amerikanska aktier och ETF-priser (dailyintraday), sedan 2002 - Grundläggande data från Morningstar (över 600 metrics) - Stödja Interactive Brokers för direkt handel Webbbaserade backtestingverktyg: - Enkelt att använda, fördelningsstrategier, data sedan 1992 - Tidsseriemoment och rörliga genomsnittliga strategier på ETFs - Simple Momentum och Simple Value stockplockningsstrategier Webbbaserat backtestingverktyg: - Upp till 25 års data för 49 Futures och SP500 aktier - verktygslåda i Python och Matlab - Quantiacs värdar algoritmiska handelskonkurrenser med investeringar från 500k till 1 miljon Backtest Broker erbjuder kraftfull, enkel webbaserad backtesting så ftware: - Backtest i två klick - Bläddra i strategibiblioteket, eller bygga och optimera din strategi - Papperhandel, automatiserad handel och realtidse-postmeddelanden - 1 per backtest och mindre WebCloudbaserat backtestingverktyg: - FX (ForexCurrency) par, går tillbaka till 2007 - SecondMinuteHourlyDaily barer - levande handel är kompatibel med alla mäklare som använder Metatrader 4 som backend webbaserat backtesting verktyg för att testa kapitalfaktorer och strategier för fördelning av tillgångar: - flera aktiefaktorer med beprövade referensvärden , flera investeringsuniverser, riskhanteringsfilter - Asset Allocation Strategies backtests, blandning av tillgångsallokering och faktorplockning i en portfölj - gratis på SP 100-universum - 50 månader eller 480 år - Bredare amerikanska investeringsuniverser, UK EU-aktier, strategier för fördelning av tillgångar Webbbaserat testverktyg : - över 10 000 amerikanska aktier, data upp till 20 års historia - grundläggande tekniska kriterier - fri begränsad funktionalitet (1 år av data, inga sparade backtests etc.) - 50 per månad - Full funktionalitet Gratis mjukvarumiljö för statistisk databehandling och grafik, många köpare föredrar att använda den för sin exceptionella öppna arkitektur och flexibilitet: - Effektiv datahantering och lagringsanläggning, grafisk möjligheter för dataanalys, lätt utökad via paket - rekommenderade tillägg - quantstrat, Rmetrics, quantmod, quantlib, PerformanceAnalytics, TTR, portfölj, portfolioSim, backtest etc. MATLAB - Språk på hög nivå och interaktiv miljö för statistisk databehandling och grafik: - parallell Backup Testing är ett tillägg för att bygga och testa dina handelsstrategier i Microsoft Excel 2010 och 2013: - Användare kan använda VBA för att bygga strategier för BacktestingXL Pro, VBA kunskap är valfri, användare kan konstruera handelsregler på ett kalkylblad med hjälp av standard pre-made backtesting koder - stöder pyramidering, kortvarig positionsbegränsning, kommissionsberäkning, aktiespårning, out of money kontroller, buysell pris anpassning - flera prestanda rapporter - 74,95 för BacktestingXL Pro Gratis öppen källspråk för programmering, öppen arkitektur, flexibel, enkelt utökad via paket: rekommenderade tillägg - pandor (Python Data Analysis Library), Pyalotrade (Python Algorithmic Trading Library), Zipline, ultrafinansiering etc. FactorWave är enkelt att använda webbaserat backtestingverktyg för faktorinvestering: - låter användaren blanda flera ETFoptionsfuturesequityfaktorer med bevisad alfa över marknadsledande benchmarks - gratis - ETFStock Screener med 5 faktorer - 149mo - gratis optionsalternativ screener, futures strategier, vix strategier Webbaserat backtestingverktyg: - Enkelt att använda webbsidor för backtesting på nätet för att testa relativ styrka och glidande medelvärde strategier för ETFs - flera typer av strategier för fri, fullständig backtesting-funktionalitet 34,99 månad Gratis webb b ased backtesting verktyg för att testa stock picking strategier: - USA lager, data från ValueLine från 1986-2014 - pris och grundläggande data, 1700 lager, månatligt granularitet test På ett forum jag läste, föreslog någon en strategi som liknar en som jag har forskat i dåtid. Deras regler var enkla: Sälj en 20pt Bull Put Spread på torsdag i öppettiderna och utgå nästa vecka. Den korta strejken måste vara minst 100 poäng från det aktuella spotpriset. Sälj vertikalt när det når 0,05. Tilldela 50 av din portfölj till denna handel. Denna strategi är baserad på tron ​​att SPX inte rör sig mer än 100 poäng i ett 8-dagars fönster och att den veckovisa volymen är dyr. Tittar på de senaste 15 åren finner jag att detta är sant 99.31 av tiden. Det finns 26 fall av 3752 prover där marknaden flyttade ner mer än 100 poäng. Flera av dessa var under krisen 2008, 2001, men den senaste perioden var i oktober 2014. Lyckligtvis för den här strategin kom det inte på en torsdag så det blev ett lyckopass. Här är reglerna för denna strategi: Jag väljer 10:00 på torsdag för att placera handeln. Notera också att slippage och provisioner tas med i beräkningen. Jag testade denna strategi från jan 2008 till dec 2014. resultaten är lovande. Sammantaget fungerar denna handel mycket bra efter 2011. Före 2011 är den relativt platt. Störst för detta beror på att det inte fanns tillräckligt med strejkar i dessa utlöpningar för att hitta överensstämmande affärer, medan det fanns veckovisa utgåvor. Så mycket av tiden satt den bara ut ur marknaden och handlade månatliga utgåvor. Under denna period inträffade 2008-kraschen och medan strategin hade en stor drawdown under den händelsen, gjorde det ganska bra på den stora bilden. Men det är svårt att dra slutsatser om det satt ut på marknaden 75 i tiden under denna period. Från och med 2011 hämtar handeln verkligen ånga. Det går in i handel varje vecka vid denna punkt. Det är också under en tjurkörning, så handeln som en vind på baksidan. Men du kan se neddragningarna (nedre diagrammet) är relativt små. Men varför 100 poäng jag tycker att den valdes av anledningen till att marknaden nästan aldrig rör sig så mycket under den tidsperioden (99,31 kommer ihåg). Men 100 poäng idag (5 flytt) är väldigt annorlunda än 100 poäng 2009 (8-13 drag). Så jag måste också titta på procentuella rörelser. Jag testade 4,5, 5, 6 och 7. 20pt Vertikal Spread 4.5 från Spot Portfolio Margin PM kräver 16 marginalen än RegT gör och 1,6 marginalen ett kontantmarginal konto skulle. Men PM-marginalen är mycket mer flytande än de andra. När marknaden sjunker ökar marginalbehovet. Uppgifterna om PM-marginalisering är mycket mer komplexa 8211 men för enkelhets skull och på grund av det faktum att jag inte kan beräkna PM-marginalen antar jag att det är en konstant andel av RegT-marginalen. Kortfattat lägger I8217m på att fokusera på de korta uppsättningarna eftersom de korta samtalen är en mindre andel av den totala vinsten. Samtal är väldigt billiga jämfört med uppsättningarna, och Karen säljer enligt uppgift hälften av antalet samtal som ska sätta. I8217 är säker på att det lägger till sin bottenlinje, men för enkelhet kommer jag att lämna dem ut för nu. Följande visar riskprofilen för SPX 1875 kort sättning i början av april. Denna handel står för att få 600 om SPX stänger över 1875 på 52 dagar. Men titta på PL i prissnittet kan du se hur snabbt denna handel förlorar värde när marknaden sjunker. Om marknaden sjunker -12, skulle handeln vara under vatten av 7.4k. Egentligen är det värre än det eftersom det inte tar hänsyn till några förändringar av vega på grund av droppen. Med PM-marginal måste värdet vid -12-faldet vara större än din konto8217s nettolikviditet. Så om du har en 1M-portfölj, kan du sälja 135 kontrakt. Men när marknaden sjunker eller volatiliteten ökar kommer din -12-beräkning att öka och du kommer att placeras i en närstående status. Testreglerna I8217m kommer inte att försöka att perfekt replikera Karen8217s affärer eftersom det är omöjligt 8211 men istället fokusera på lönsamheten att sälja korta satser. Specifikt: Sälj Puts använder 50 av marginal Sälj Puttar vid 2SD Sälj Lägger mellan 40-56 dagar till utgången Öppna 1 handel per vecka. Helst på en stor dag. Varje handel använder 25 av handelsallokering (eller 12,5 av marginalen). Bara hålla 4 öppna affärer i taget. Stäng tidigt när de når 80 vinst. Avkastning komprimeras. Jag approximerar PM-marginal som 30 av Reg-T (2X vad jag hittat ovan). Under den ideala situationen bör handeln stängas till 80 vinst på cirka 4 veckor. Korta puttar 8211 Inga justeringar Jag vill först se hur dåliga korta satser kan vara. Om du somnade vid rattet och gjorde inget för att skydda din position, är ditt konto klart likviderat och snabbt. Observera att detta är med 50 marginal, men jag har sett att använda 25 marginal när du konfigurerar affärerna, skulle sannolikt leda till ett marginalanrop. Short Puts 8211 Sälj vid 30 PITM 70 sannolikheten för att vara OTM är viktig för Karen8217s strategi (eller 30 ITM). Det är vettigt. Vid ungefär den tiden börjar Gamma accelerera. Detta test kommer helt enkelt stänga handeln vid frågan när någonsin deltaet i puten är gt 0.30 (en rodd approximation till 30 ITM). Det är tydligt att detta ensamt dramatiskt skyddar positionen. Det finns flera stora droppar (-30-50) men övergripande är strategin ganska lönsam på grund av den långa ganska långa perioden 2013-2014. Short Puts 8211 Roll sätter ner på 30 PITM Men Karen stänger inte bara hennes puts, hon rullar ner dem, ibland ökar de positionerna (som jag förstår) och säljer fler samtal för att hjälpa till med att kompensera förlusten. Detta test visar resultaten av att rulla ner putsarna och placera ytterligare 2SD-handel vid samma utgång. Det är intressant att notera att det här gör saken värre. Gilla att plocka upp pennies framför en ångvals. Den inledande 2008-kraschen förlorar 75 av kontovärdet. De efterföljande dropparna är lika stora som de utan rullarna. Slutsats Uppgifterna för 20082009 måste tas med saltkorn eftersom det inte fanns några veckor att handla. Om kraschen 2008 inträffade idag tror jag att resultaten skulle bli lite bättre på grund av att du kunde sprida din volatilitetsrisk över fler utfall. Jag blev också förvånad över att se att det rullande gjorde saken värre. Det här är inte Karen8217s strategi. Hon säljer också samtal, men jag vet inte hur dessa samtal skulle kunna kompensera dessa luckor. Karen gjorde en vinst under 2008, men jag är inte säker på att hon avslöja hur. Jag är inte säker på att hon följde samma regler eller inte. Hon följde sannolikt trenden och handeln mindre putsmore ringer på vägen ner. Och förmodligen i mindre skala. Fortsättning följer. Det påpekades att killarna på TastyTrade inte handlar sin SunnySide Up-strategi på lager med en genomsnittlig volym under 2M. Jag minns inte detta i videon, men tydligen är det allmänt känt för dem som följer showen. Detta är det reviderade diagrammet när du tar hänsyn till volymen. Det första att notera är att ISRG-handeln inte ingår och kontot visar en vinst. Det finns något färre trader, men totalt sett ser jag en 93 vinstfrekvens (25 vinner över 27 trades). Den enda stora förlusten var NFLX. Medan det förstörde prestationen till den tiden var återhämtningen ganska snabb. Det andra att notera är att dessa resultat ligger ganska nära vad TT presenterade i sitt videosegment. För grins är här den 3-åriga prestandan med det underliggande tröskelvärdet satt till 50 och volymen vid 2M: Den massiva droppen är inte längre NFLX (dess droppe bara tidigare) men GMCR. I stället för 27 branscher var 73 med ett vinstförhållande på 86 men en högre genomsnittlig avkastning. Jag följer inte normalt TastyTrade. Inte för att de inte är bra innehåll, men bara jag har inte tid. Men flera gånger gick denna SunnySide Up-strategi över mitt skrivbord. Jag tittade ursprungligen på videon som beskriver handeln. Jag var intresserad. Det beskrev en vinsthandel som hade bra resultat men uppsidan inkluderade ett korta samtal. Jag handlade om några affärer och såg massiva blowouts (GMCR). Jag trodde att det här är alltför riskabelt för mig. Det korsade sedan mitt skrivbord igen månader senare, jag trodde att jag skulle följa några fler pappershandelar och jag såg en ganska stor förlust igen (SPLK den här gången). Men klart var mina provstorlekar små och kanske valde jag dem felaktigt. En sak som verkligen stör mig om videon är att det saknar detaljer. De ger dig parametrar och viss statistik, men don8217t visar dig PL-kurvor eller drawdowns. Med tanke på att det finns nakna korta positioner tycker jag att detta är tvivelaktigt. Låt oss testa det. Denna handel handlar om att köpa en ATM bull call spread och sälja ett nakent samtal som är 84 OTM närmaste utgången. Det nakna samtalet måste ge tillräcklig kredit för att betala spridningen. Handeln är placerad strax innan resultatmeddelandet, och handeln är stängd den följande dagen. Exempel med användning av LULU för att visa strukturen. Som de beskriver i videon kan resultatet gå på tre sätt: upp, ner eller ingenstans. Med den här handeln kan du satsa på två av dem som fångar volatilitetens förälskelse, men lämnar dig starkt exponerad på den tredje. Huvuddelen av vinsten sägs ligga inom förväntningarna för marknadsaktörerna. Placering av det nakna samtalet 84 OTM placerar det väl utanför 1 SD för det förväntade flyget. Jag tycker inte särskilt om unhedged positioner på binära händelser som dessa, men det här är en bra inställning. God handel visar följande resultat för att testa 3 års värde av handel. Dessa ser ut som fina resultat, men notera att de inte pratar om de två förlorande affärer, inte heller fångar jag hur de fördelar affärer. Är det 1 kontrakt per handel eller upp till X av marginal per handel. I8217ll antar att de vill riskera ungefär samma mängd per handel. Eftersom de nämner mycket dyra lager, och marginalen på dessa är mycket höga, antar I8217ll att en initial max marginal på 20k per handel. I8217ll försöker hålla sig till samma parametrar som TT. De nämner att detta bara fungerar på dyra lager, men jag fattade inte tröskelpriset, så jag börjar med ett underliggande minimum på 100. Jag ska också använda deltaet på kortanropet som en proxy för ITM. Inte perfekt, men ju närmare utgången, ju närmare dessa siffror sammanfaller. Detta är vinst - och förlustkurvan för de senaste 3 åren som slutade 730 (för närvarande har jag data fram till detta datum). Dessa är inte kirsebärplockade resultat. Det här är helt enkelt de senaste 3 åren av data från den sista datapunkt jag har. That8217 är en ganska brant droppe på grund av ISRG8217s resultat. Jag dubbel kontrollerade resultaten i TOS8217s thinkback: Visst nog TOS bekräftar mina resultat. Dessutom visar TOS en IV-rankning på cirka 85 för ISRG på den dagen. Jag tror med alla konton, det här är en handel som faller bra inom sina parametrar. Men det blåste bort 3 år värd vinster över natten. Om jag ändrar det underliggande prisgränset till 50 får jag följande resultat: En mycket mer stenig tur, men åtminstone lönsam. Av nyfikenhet tittade jag också på denna handel under de senaste 5 åren. Nyfiken var att dessa handelsuppsättningar var mycket svåra att hitta före 3 år sedan. Det var bara tillräckligt med att bjuda in de korta samtalen från vad jag kan se. Slutsats Jag erkänner fritt att jag är ganska konservativ när det gäller handel. Jag gillar inkomsthändelser, men den här handeln gör mig nervös. För det första är avkastningen inte så stor. Jag gillar en 2 retur över natten, men handeln är svår att hitta. För det andra finns det några stora förluster (ISRG, GOOG, GMCR, CMG, NFLX) som kan överväldiga eventuell vinst. När 3 års vinst kan förintas med 1 dålig handel, så är det bara en handel som jag inte gillar. Visst dåliga affärer kan hända i andra uppställningar och ha liknande konsekvenser, men det här är över natten. Det finns ingen möjlighet att hantera denna handel inom marknadstimmar. Den här veckan ska vi titta på de konsekvenser som implicit volatilitet har på järnkondorhandel. Kan den underförstådda volatiliteten vara en bra indikator på när eller var du ska komma in i en handel. Till att börja med, titta på den implicita volatiliteten i ATM-alternativen för RUT under de tre första månaderna för de senaste 9 åren: Den främsta månaden är definitivt mer flyktiga som vi skulle förvänta oss, men 2: e och 3: e månaderna ser ut att spåra varandra noggrant. Vi kan se att läget är cirka 15 och max ligger i närheten av 70. Observera att jag beräknar alternativkedjans implicita volatilitet som ett vägt genomsnitt av ATM option8217s IVs. Dessa tester kommer att använda följande IV tröskelvärden: 0,10, 0,125, 0,15, 0,175, 0,20, 0,225, 0,25, 0,30, 0,40, 0,5, 0,6, 0,7 Observera som grafen visar, bör vi inte förvänta några affärer med en IV under 0,10. Användning av detta värde fungerar som en sanitetskontroll av resultaten. IVs Större än tröskelvärde Den första provkörningen använder IV som en minsta tröskel för att komma in i en handel. Exempelvis skulle handel med minst IV av 25 inte troligtvis gå in i handel när denna artikel skrevs (IV är cirka 16). Översta raden är IVs. Det första att notera är att branscher som kräver en IV över 30 är mycket svåra att komma med. Trades över 30 inträffade mindre än 14 gånger under de senaste 10 åren. Uppgifterna ovan för dessa högvolymer är intressanta men kan inte räknas på grund av den mycket låga befolkningsstorleken. Men det är intressant att notera att det kan finnas en fördel för låga deltaaffärer har extremt höga IVs över hög deltahandel. I allmänhet skulle jag säga att det finns marginell effekt när man använder IV som enda inträdesvillkor tills IV börjar bli norr om 22,5. Mellan en IV på 22,5 och 30 finns en signifikant samplingsstorlek och IV-tröskeln, särskilt vid lägre delarna, verkar gynna handeln. Förväntad avkastning över Minsta IV Om man tittar på ett diagram över förväntad avkastning baserat på att använda ett minimum IV tröskelvärde kan vi se ett par mönster. För de extrema höga IV-branscherna (som är mycket sällsynta) fungerar de låga Delta Front Month-branscherna väldigt bra, liksom alla deltar i den tredje månaden. Men igen är detta baserat på en mycket liten provstorlek. För det andra noterar många handlare ofta att kondorhandeln när IV är under 8216X8217 inte är värda. När jag skriver detta, är VIX och RVX vid extremt låga, och den här kommentaren är ett ofta gemensamt sentiment. Men enligt dessa uppgifter står det inte riktigt upp. De låga IV-branscherna går bra. Men vi måste vänta på några fler tester för att vara säker på att deras effekt beror på de låga IV-branscherna och att de inte blir uppbyggda av andra hög IV-branscher. IVs Mindre än tröskel Nu kan vi titta på omvänd situation Vad händer om vi placerar ett övre tröskelvärde på post IV i en handel. Förbättring av vinstfaktorn med maximala IV-nivåer (IV i kolumner) Nu kan vi se att de mycket låga IV-branscherna var mycket svårare att komma med, förutom den främre månaden. Att ställa in ett maximalt IV-tröskelvärde kan vara till nackdel för High Delta Front Month-branschen, men i stor utsträckning är effekten marginell. Frontmånaden, låg IV-handel (dvs under 18) verkar fungera bättre än baslinjen som visar att det kan finnas bra IC-branscher i lågvolatilitetsmiljöer. De flesta av affärerna under den andra månaden har marginell effekt. Men den tredje månaden verkar ha icke-marginella förbättringar i handel med IV mindre än 20. IV Mellan Trösklar Nu kan vi titta på kombinera ett lägre och övre tröskelvärde och se om några mönster uppstår. Förbättring av vinstfaktor mellan bundna IV-områden Om du bara skulle handla inom ett visst sortiment skulle lägre IV-miljöer faktiskt ge dig en boost. Det finns också några bra scenarier i Front Month med IVs mellan 25 och 50. Om du bara vill handla i de mycket höga IV-serierna, väntar du länge på att initiera en handel, men du är också bäst att använda Back Month Trades. Från denna tabell kan vi se de största förbättringarna är: IV mellan 13 och 18: Nedre Delta i vilken månad som helst. IV mellan 18 och 20: Mycket låg delta förra månadshandlingar eller lägre deltahandel under tredje månaden. IV mellan 20 och 30: Det finns ingen klar vinnare. De flesta affärer ser marginellt ut. IV mellan 30 och 50: Low Delta Front Månad IV över 50: Tredje månadshandlingar So8230 kan vi använda detta för att hjälpa till att välja bättre positioner. Förväntad retur med begränsade IV-intervall. Ovanstående är en värmekarta över förväntad avkastning av alla affärer med begränsade implicita volatiliteter. Dessa branscher med mycket lågt antal affärer är cirklade i rött. Varje kolumn är färgad enligt de bästa och sämsta artisterna för det IV-området. Notera utvecklingen under de kommande månaderna: hög deltahandel verkar sämre och sämre, eftersom IV-sortimentet ökar, vilket hindrar extrema nivåer. Idag är IVs av RUT 15,3, 16,6 och 17,9 från detta skrivande. De faller alla i den andra kolumnen. Enligt dessa uppgifter kan det vara mest fördelaktigt att anlända en handel med Deltas mellan 15 och 22 månader eller en månadshandel med deltas under 22 år. För mig försvinner denna uppfattning att det inte finns goda avkastningar i miljöer med låg volatilitet. I själva verket enligt dessa uppgifter utförde de främsta månadshandlingarna i 13 till 20 deltaområdet ut dem från 20 till 25. Tvärtemot vad jag förstår många att tro. MEN dessa branscher hålls alla till utgången, och det brukar inte praktiseras8230 Slutsats Låg IV-miljöer kanske inte är så dåliga som många tycks hävda. I själva verket har Mid-IV-serien historiskt visat sig fungera något sämre. Men i båda fallen kan IV vara ett mycket användbart verktyg vid val av vilken månad och vilken slår till. Tro det eller inte, det här testet tog mig ett tag. Jag trodde att det skulle bli trivialt att genomföra, men jag fortsatte att hitta intressanta nuggets att undersöka (liksom mycket refactoring till min kodbas). Men insatsen är värt det och jag kan vänta med att testa dessa begrepp över en bredare bas av instrument. Testfiler: Alternativ Backtesting algo Alternativ Backtesting algo Jag behöver ett råd. Jag behöver en plattform eller programvara där jag kan testa min (riktigt enkel) alternativstrategi. Jag har använt många typer av automatiserad handelsprogramvara tidigare. Men alla är inte alternativa vänliga. Vad jag menar med det är att min strategi går tillbaka i åratal och handlar med pengar alternativen vid den tidpunkten. Så jag behöver alla alternativ kedjor tillbaka i tiden. Men alla backtesting-paket som jag har använt hittills kräver att jag lägger till alla instrument i mina instrumentlistor, eller lägg till alla instrument som jag vill testa. Föreställ dig det för 10 utgångar i 12 månader i 10 år. Så undrar jag om det finns någon tjänsteleverantör eller programvara som skulle tillåta mig att spåra resultatet av en portfölj av alternativ i backtesting-läget. Återigen, inget coolt. ingen realtidsköp krävs. Det är bara för att se till att vad jag vill faktiskt arbetar. Real-time trading I can implement later with the TradeLink, or even raw InteractiveBrokers API, etc. Have you tried ThinkOrSwim (TOS ) I use TOS for all my options trading. They have an OnDemand feature, which is a replay of the market that you could use to backtest. Also, they have Thinkback feature, which is more of a static testing tool than the OnDemand tool. I think you might find what you are looking for on TOS. Successful Backtesting of Algorithmic Trading Strategies - Part I This article continues the series on quantitative trading, which started with the Beginners Guide and Strategy Identification. Both of these longer, more involved articles have been very popular so Ill continue in this vein and provide detail on the topic of strategy backtesting . Algorithmic backtesting requires knowledge of many areas, including psychology, mathematics, statistics, software development and marketexchange microstructure. I couldnt hope to cover all of those topics in one article, so Im going to split them into two or three smaller pieces. What will we discuss in this section Ill begin by defining backtesting and then I will describe the basics of how it is carried out. Then I will elucidate upon the biases we touched upon in the Beginners Guide to Quantitative Trading. Next I will present a comparison of the various available backtesting software options. In subsequent articles we will look at the details of strategy implementations that are often barely mentioned or ignored. We will also consider how to make the backtesting process more realistic by including the idiosyncrasies of a trading exchange . Then we will discuss transaction costs and how to correctly model them in a backtest setting. We will end with a discussion on the performance of our backtests and finally provide an example of a common quant strategy, known as a mean-reverting pairs trade . Lets begin by discussing what backtesting is and why we should carry it out in our algorithmic trading. What is Backtesting Algorithmic trading stands apart from other types of investment classes because we can more reliably provide expectations about future performance from past performance, as a consequence of abundant data availability. The process by which this is carried out is known as backtesting . In simple terms, backtesting is carried out by exposing your particular strategy algorithm to a stream of historical financial data, which leads to a set of trading signals . Each trade (which we will mean here to be a round-trip of two signals) will have an associated profit or loss. The accumulation of this profitloss over the duration of your strategy backtest will lead to the total profit and loss (also known as the PL or PnL). That is the essence of the idea, although of course the devil is always in the details What are key reasons for backtesting an algorithmic strategy Filtration - If you recall from the article on Strategy Identification. our goal at the initial research stage was to set up a strategy pipeline and then filter out any strategy that did not meet certain criteria. Backtesting provides us with another filtration mechanism, as we can eliminate strategies that do not meet our performance needs. Modelling - Backtesting allows us to (safely) test new models of certain market phenomena, such as transaction costs, order routing, latency, liquidity or other market microstructure issues. Optimisation - Although strategy optimisation is fraught with biases, backtesting allows us to increase the performance of a strategy by modifying the quantity or values of the parameters associated with that strategy and recalculating its performance. Verification - Our strategies are often sourced externally, via our strategy pipeline . Backtesting a strategy ensures that it has not been incorrectly implemented. Although we will rarely have access to the signals generated by external strategies, we will often have access to the performance metrics such as the Sharpe Ratio and Drawdown characteristics. Thus we can compare them with our own implementation. Backtesting provides a host of advantages for algorithmic trading. However, it is not always possible to straightforwardly backtest a strategy. In general, as the frequency of the strategy increases, it becomes harder to correctly model the microstructure effects of the market and exchanges. This leads to less reliable backtests and thus a trickier evaluation of a chosen strategy. This is a particular problem where the execution system is the key to the strategy performance, as with ultra-high frequency algorithms. Unfortunately, backtesting is fraught with biases of all types. We have touched upon some of these issues in previous articles, but we will now discuss them in depth. Biases Affecting Strategy Backtests There are many biases that can affect the performance of a backtested strategy. Unfortunately, these biases have a tendency to inflate the performance rather than detract from it. Thus you should always consider a backtest to be an idealised upper bound on the actual performance of the strategy. It is almost impossible to eliminate biases from algorithmic trading so it is our job to minimise them as best we can in order to make informed decisions about our algorithmic strategies. There are four major biases that I wish to discuss: Optimisation Bias . Look-Ahead Bias . Survivorship Bias and Psychological Tolerance Bias . Optimisation Bias This is probably the most insidious of all backtest biases. It involves adjusting or introducing additional trading parameters until the strategy performance on the backtest data set is very attractive. However, once live the performance of the strategy can be markedly different. Another name for this bias is curve fitting or data-snooping bias. Optimisation bias is hard to eliminate as algorithmic strategies often involve many parameters. Parameters in this instance might be the entryexit criteria, look-back periods, averaging periods (i. e the moving average smoothing parameter) or volatility measurement frequency. Optimisation bias can be minimised by keeping the number of parameters to a minimum and increasing the quantity of data points in the training set. In fact, one must also be careful of the latter as older training points can be subject to a prior regime (such as a regulatory environment) and thus may not be relevant to your current strategy. One method to help mitigate this bias is to perform a sensitivity analysis . This means varying the parameters incrementally and plotting a surface of performance. Sound, fundamental reasoning for parameter choices should, with all other factors considered, lead to a smoother parameter surface. If you have a very jumpy performance surface, it often means that a parameter is not reflecting a phenomena and is an artefact of the test data. There is a vast literature on multi-dimensional optimisation algorithms and it is a highly active area of research. I wont dwell on it here, but keep it in the back of your mind when you find a strategy with a fantastic backtest Look-Ahead Bias Look-ahead bias is introduced into a backtesting system when future data is accidentally included at a point in the simulation where that data would not have actually been available. If we are running the backtest chronologically and we reach time point N, then look-ahead bias occurs if data is included for any point Nk, where k0. Look-ahead bias errors can be incredibly subtle. Here are three examples of how look-ahead bias can be introduced: Technical Bugs - Arraysvectors in code often have iterators or index variables. Incorrect offsets of these indices can lead to a look-ahead bias by incorporating data at Nk for non-zero k. Parameter Calculation - Another common example of look-ahead bias occurs when calculating optimal strategy parameters, such as with linear regressions between two time series. If the whole data set (including future data) is used to calculate the regression coefficients, and thus retroactively applied to a trading strategy for optimisation purposes, then future data is being incorporated and a look-ahead bias exists. MaximaMinima - Certain trading strategies make use of extreme values in any time period, such as incorporating the high or low prices in OHLC data. However, since these maximalminimal values can only be calculated at the end of a time period, a look-ahead bias is introduced if these values are used - during - the current period. It is always necessary to lag highlow values by at least one period in any trading strategy making use of them. As with optimisation bias, one must be extremely careful to avoid its introduction. It is often the main reason why trading strategies underperform their backtests significantly in live trading. Survivorship Bias Survivorship bias is a particularly dangerous phenomenon and can lead to significantly inflated performance for certain strategy types. It occurs when strategies are tested on datasets that do not include the full universe of prior assets that may have been chosen at a particular point in time, but only consider those that have survived to the current time. As an example, consider testing a strategy on a random selection of equities before and after the 2001 market crash. Some technology stocks went bankrupt, while others managed to stay afloat and even prospered. If we had restricted this strategy only to stocks which made it through the market drawdown period, we would be introducing a survivorship bias because they have already demonstrated their success to us. In fact, this is just another specific case of look-ahead bias, as future information is being incorporated into past analysis. There are two main ways to mitigate survivorship bias in your strategy backtests: Survivorship Bias Free Datasets - In the case of equity data it is possible to purchase datasets that include delisted entities, although they are not cheap and only tend to be utilised by institutional firms. In particular, Yahoo Finance data is NOT survivorship bias free, and this is commonly used by many retail algo traders. One can also trade on asset classes that are not prone to survivorship bias, such as certain commodities (and their future derivatives). Use More Recent Data - In the case of equities, utilising a more recent data set mitigates the possibility that the stock selection chosen is weighted to survivors, simply as there is less likelihood of overall stock delisting in shorter time periods. One can also start building a personal survivorship-bias free dataset by collecting data from current point onward. After 3-4 years, you will have a solid survivorship-bias free set of equities data with which to backtest further strategies. We will now consider certain psychological phenomena that can influence your trading performance. Psychological Tolerance Bias This particular phenomena is not often discussed in the context of quantitative trading. However, it is discussed extensively in regard to more discretionary trading methods. It has various names, but Ive decided to call it psychological tolerance bias because it captures the essence of the problem. When creating backtests over a period of 5 years or more, it is easy to look at an upwardly trending equity curve, calculate the compounded annual return, Sharpe ratio and even drawdown characteristics and be satisfied with the results. As an example, the strategy might possess a maximum relative drawdown of 25 and a maximum drawdown duration of 4 months. This would not be atypical for a momentum strategy. It is straightforward to convince oneself that it is easy to tolerate such periods of losses because the overall picture is rosy. However, in practice, it is far harder If historical drawdowns of 25 or more occur in the backtests, then in all likelihood you will see periods of similar drawdown in live trading. These periods of drawdown are psychologically difficult to endure. I have observed first hand what an extended drawdown can be like, in an institutional setting, and it is not pleasant - even if the backtests suggest such periods will occur. The reason I have termed it a bias is that often a strategy which would otherwise be successful is stopped from trading during times of extended drawdown and thus will lead to significant underperformance compared to a backtest. Thus, even though the strategy is algorithmic in nature, psychological factors can still have a heavy influence on profitability. The takeaway is to ensure that if you see drawdowns of a certain percentage and duration in the backtests, then you should expect them to occur in live trading environments, and will need to persevere in order to reach profitability once more. Software Packages for Backtesting The software landscape for strategy backtesting is vast. Solutions range from fully-integrated institutional grade sophisticated software through to programming languages such as C, Python and R where nearly everything must be written from scratch (or suitable plugins obtained). As quant traders we are interested in the balance of being able to own our trading technology stack versus the speed and reliability of our development methodology. Here are the key considerations for software choice: Programming Skill - The choice of environment will in a large part come down to your ability to program software. I would argue that being in control of the total stack will have a greater effect on your long term PL than outsourcing as much as possible to vendor software. This is due to the downside risk of having external bugs or idiosyncrasies that you are unable to fix in vendor software, which would otherwise be easily remedied if you had more control over your tech stack. You also want an environment that strikes the right balance between productivity, library availability and speed of execution. I make my own personal recommendation below. Execution CapabilityBroker Interaction - Certain backtesting software, such as Tradestation, ties in directly with a brokerage. I am not a fan of this approach as reducing transaction costs are often a big component of getting a higher Sharpe ratio. If youre tied into a particular broker (and Tradestation forces you to do this), then you will have a harder time transitioning to new software (or a new broker) if the need arises. Interactive Brokers provide an API which is robust, albeit with a slightly obtuse interface. Customisation - An environment like MATLAB or Python gives you a great deal of flexibility when creating algo strategies as they provide fantastic libraries for nearly any mathematical operation imaginable, but also allow extensive customisation where necessary. Strategy Complexity - Certain software just isnt cut out for heavy number crunching or mathematical complexity. Excel is one such piece of software. While it is good for simpler strategies, it cannot really cope with numerous assets or more complicated algorithms, at speed. Bias Minimisation - Does a particular piece of software or data lend itself more to trading biases You need to make sure that if you want to create all the functionality yourself, that you dont introduce bugs which can lead to biases. Speed of Development - One shouldnt have to spend months and months implementing a backtest engine. Prototyping should only take a few weeks. Make sure that your software is not hindering your progress to any great extent, just to grab a few extra percentage points of execution speed. C is the elephant in the room here Speed of Execution - If your strategy is completely dependent upon execution timeliness (as in HFTUHFT) then a language such as C or C will be necessary. However, you will be verging on Linux kernel optimisation and FPGA usage for these domains, which is outside the scope of this article Cost - Many of the software environments that you can program algorithmic trading strategies with are completely free and open source. In fact, many hedge funds make use of open source software for their entire algo trading stacks. In addition, Excel and MATLAB are both relatively cheap and there are even free alternatives to each. Now that we have listed the criteria with which we need to choose our software infrastructure, I want to run through some of the more popular packages and how they compare: Note: I am only going to include software that is available to most retail practitioners and software developers, as this is the readership of the site. While other software is available such as the more institutional grade tools, I feel these are too expensive to be effectively used in a retail setting and I personally have no experience with them. Backtesting Software Comparison Description: High-level language designed for speed of development. Wide array of libraries for nearly any programmatic task imaginable. Gaining wider acceptance in hedge fund and investment bank community. Not quite as fast as CC for execution speed. Execution: Python plugins exist for larger brokers, such as Interactive Brokers. Hence backtest and execution system can all be part of the same tech stack. Customisation: Python has a very healthy development community and is a mature language. NumPySciPy provide fast scientific computing and statistical analysis tools relevant for quant trading. 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

No comments:

Post a Comment