Översikt: Denna gratis utbildningswebbplats är avsedd att låta dig jämföra populära tekniska handelsstrategier så vetenskapligt som möjligt genom backtesting. I allmänhet är det ganska svårt att konsekvent slå marknaden och du bör vara skeptisk till någonting som berättar annars. På den här webbplatsen kan du backa upp några vanliga tekniska strategier för att se hur de skulle ha utfört mot marknaden och låter dig skärpa för de aktier som uppfyller dina handelsvillkor. Strategier som backtest väl, garanterar inte framgångar framöver, men kan ha en högre sannolikhet att lyckas. Backtesting gör det också möjligt för dig att se marknadsförutsättningarna där en viss strategi kommer att fungera bra. Till exempel, om du är säker på att marknaden kommer att vara intervallbunden framöver, kan du ta reda på vilka strategier som fungerar bäst på denna typ av marknad. Detta görs genom backtesting över historiska tidsramar som var intervallbundna och att se vilka strategier som är bäst. Backtesting hjälper dig också att se vilka strategiparametrar som är mest robusta över olika tidsperioder. Exempelvis överträffar en 10-stoppförlust en 5-stopp-förlust 9 historiska tidsperioder av 10 Således kan backtesting ge värdefulla handelsinsatser, även om det inte kan garantera framtiden. Några intressanta saker du kan upptäcka: Kombinationen av aktiv handel och kommissioner kan torka ut dig, även om du har en bra andel av vinnande affärer. Verkligen snäva efterföljande stopp kan allvarligt skada din långsiktiga lönsamhet och minska inte utbetalningen så mycket du kan förvänta dig Strategier du trodde skulle vara bra som konsekvent underpresterar marknaden Riktlinjer (Single Stock Backtesting): Välj det lager du vill backtest din tekniska strategi på. Startkapital: Mängden pengar du börjar med Stoploss: Peka på vilken du vill komma ur en position som rör sig mot dig. Ett regelbundet stopp betyder att du kommer att komma ur din position om aktien faller en viss procentandel under var du köpte den. Lågstopp: Låt oss säga att du köper ett lager på 10 och lägger in ett 10 stoppstopp. Om lagret faller 10 utan att någonsin gå högre, kommer du att sälja vid 9. Men om lagret går upp till 15 då ner 10 till 13,5 kommer du sälja till 13,5 och låsa in någon av vinsten. Mål: Sälj när ditt lager uppnår en viss procentuell vinst (kan stängas av genom att välja Dont Use Target) StartdatumEndatum: Välj de historiska datum mellan vilka du vill testa strategin. Signaler: Signaler innebär övergångar eller relationer mellan pris och tekniska indikatorer. Till exempel, det gyllene korset, köper när 50 dagars enkla glidande medelvärdet (SMA) passerar över 200 dagars sma och säljs när 50 dagarna korsar under 200 dagarna (dödskorset). Följande länkar förklarar några populära tekniska indikatorer: Få TradesGraph: Få affärer kommer bokstavligen att visa dig de affärer du skulle ha gjort om du gick tillbaka i tiden med en sammanfattning av prestanda som ingår. De statistiska testen: Test för att se om den genomsnittliga dagliga avkastningen på strategin är densamma som den genomsnittliga dagliga avkastningen på SampP 500 eller densamma som den genomsnittliga dagliga avkastningen på köp och håll över tiden. Vi vill veta hur säkert vi kan vara att avvisa att de två avkastningarna är desamma. Ju högre förtroendet desto säkrare kan du vara, att din strategi är faktiskt bättre än SampP 500 eller köp och håll. Diagrammet visar portföljens värde över tiden med en sammanfattad sammanfattning av resultatet. Vägbeskrivning (PortTester Beta): Detta är för att backtesting en strategi som du skulle tillämpa på din portfölj när lagren når dina tekniska köp och säljsignaler. I den första textrutan anger du tickerna för den korg av bestånd du vill backtest din tekniska strategi på. Ange varje ticker separerad av ett mellanslag. Aktier som för tillfället är tillgängliga inkluderar de 30 dow lager, AA AXP BA BAC CAT CSCO CVX DD DIS GE HD HPQ IBM INTC JNJ JPM KFT KO MCD MMM MRK MSFT PFE PG T TRV UTX VZ WMT XOM. För att inkludera alla 30 i backtestet, skriv bara DJIA som är standard. Mål antal öppna positioner: Det här är antalet aktier du vill ha en position i och inte mer. Låt oss säga att du vill rikta in 2 öppna positioner. När backtester hittar en köpsignal i en av de lager du lägger i korgen, säger GE, det antar att GE köptes. Det kommer nu att leta efter ytterligare 1 lager att köpa när det finns en köpsignal, säg BAC. Du har nu en portfölj med 2 öppna positioner (GE och BAC) och backtester kommer inte att köpa längre tills en säljsignal säljer en av aktierna. En diversifierad portfölj ska antagligen ha 10 eller fler aktier, men det tar mycket datorstyrka att backtest. Således är en liten portfölj som standard på 5 öppna positioner tillräcklig för att få en känsla av strategys prestanda. Observera, för investerare med en liten del av kapitalet säga 10 000, är det dyrt att handla ett stort antal positioner med 20 provisioner för resebyråer. ETF är ett billigt sätt att bli diversifierad. Startkapital: Mängden pengar du börjar med Trading Commission: Belopp du betalar TDAmeritrade, SOGO, ScottTrade, etc för att handla ett lager Placering Storleksanpassning: Så här bestämmer du dig för att begära en viss summa pengar till varje aktie i din portfölj. För närvarande finns bara ett alternativ (Likvärdig tilldelning av pengar) tillgängligt. Det betyder att om jag har 10 000 och jag vill gå in i två positioner, lägger jag 5000 i varje mindre provision. Med andra ord är tillgängliga medel lika fördelade på nya positioner tills jag når mitt mål n antal öppna positioner. Andra alternativ som kommer kommer att vara lika antal aktier och volatilitetsbaserade positioneringsregler. Stoploss: Punkt där du vill komma ur en position som rör sig mot dig. Låt oss säga att du köper ett lager på 10 och sätter in 10 trailing stopp. Om lagret faller 10 utan att någonsin gå högre, kommer du att sälja vid 9. Men om lagret går upp till 15 då ner 10 till 13,5 kommer du sälja till 13,5 och låsa in någon av vinsten. Startdatum och datum: Välj de historiska datum mellan vilka du vill testa strategin. Backtesteren börjar vid startdatumet i historiska data och kommer att söka igenom de lager du valt tills det böter en köpsignal. Om inga köpssignaler hittas den första dagen flyttar backtesteren till nästa dag och söker igenom alla lager i korgen tills en köpsignal finns i vilken beståndet antas köpas till den snabba priset justerat för splittring och utdelning. Så snart ett lager är köpt, kommer backtestaren att se att sälja den aktien när en säljsignal kommer. Det fortsätter också att se till att köpa aktier tills målet antal öppna positioner nås. Samtidigt kommer det att sälja alla befintliga positioner om en försäljningssignal inträffar. Portföljens värde beräknas varje dag fram till slutdatumet. Signaler: Signaler innebär övergångar eller relationer mellan pris och tekniska indikatorer. Till exempel, det gyllene korset, köper när 50 dagars enkla glidande medelvärdet (SMA) passerar över 200 dagars sma och säljs när 50 dagarna korsar under 200 dagarna (dödskorset). Få TradesGraph: Få affärer kommer bokstavligen att visa dig de affärer du skulle ha gjort om du gick tillbaka i tid med en sammanfattning av prestanda som ingår. Diagrammet visar portföljens värde över tiden med en sammanfattad sammanfattning av resultatet. Ansvarsbegränsning: stockbacktest stöder inte eller rekommenderar någon av strategierna eller säkerheterna på denna sida. Innehållet på denna sida är av informativa skäl och ska inte tas som investeringsrådgivning. stockbacktest ska inte hållas ansvarig för eventuella fel på den här webbplatsen eller åtgärder som vidtas baserat på innehållet på denna webbplats. Backtesting: Tolkning Tidigare Backtesting är en nyckelkomponent i effektiv handelssystemutveckling. Det uppnås genom att rekonstruera med historiska data, 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 dessa 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 - Nettoprocent vinst eller förlust. Tidsram - Tidigare datum då testingen inträffade. Universe - Lager som inkluderades i backtest. Volatilitetsåtgärder - Max procent upp och ner. Medeltal - 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 extra funktionalitet för 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 given 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 inom 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 oerhört 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 möjligt ökar ditt genomsnittliga antal barer som håller på att 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 positionsstorlek och penninghantering med hjälp av tekniker som Kelly-kriteriet. (Se Money Management Använda 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, fältstorlekar, marginalkrav, räntor, antaganden för släppning, positioneringsstorlekar, 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 prestanda resultat ä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 lager 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 hos ett visst handelssystem. Ibland misslyckas strategier som har fungerat 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 de 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 (medbeslutande) - High-end Trading System Development 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 förtjänat 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. En skatteåterbäring är en återbetalning av 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. Framgångsrik 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 ån 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 ska 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 det 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 handelsutbyte. Då kommer vi att diskutera transaktionskostnader och hur man korrekt modellerar dem i en backtest-inställning. Vi kommer att sluta 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 mer 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 mena 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, men självklart är djävulen alltid 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 någon 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 att (säkert) testa nya modeller av vissa marknadsfenomen, till exempel transaktionskostnader, orderdirigering, latens, likviditet eller andra marknadsmiljöstrukturproblem. 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 backtesta 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 strategins prestanda, som med ultrahögfrekvensalgoritmer. 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 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. Titta framåt. Survivorship Bias och psykologiska 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. Optimeringsperspektivet kan minimeras genom att hålla antalet parametrar till ett minimum och öka antalet datapunkter i träningssatsen. 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 (som 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 betraktas leda till en jämnare parametraryta. 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 flerdimensionella optimeringsalgoritmer och det är ett mycket aktivt forskningsområde. Jag kommer inte att stanna här, men behå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åtblickande bias uppträda om data ingår för vilken 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, t. ex. med linjära regressioner mellan två tidsserier. Om hela datasatsen (inklusive framtida data) används för att beräkna regressionskoefficienterna och sålunda 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 inkorporering 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 blick för framåtblick 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 ytterst 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 betydligt 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 med förutseende 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 ett personligt överlevnads-biasfritt dataset genom att samla in data från aktuell punkt framåt. Efter 3-4 år kommer du att ha en solid överlevnads-biasfri uppsättning av aktiedata 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 uppträder i backtestsna, så är det sannolikt 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 av förlängd drawdown och därigenom kommer att leda till signifikant underpresterande jämfört med en backtest. Således, även om strategin är algoritmisk, kan psykologiska faktorer fortfarande ha stor inverkan på lönsamheten. Takeaway är att se till att om du ser dragningar av en viss procentandel och varaktighet i backtestsna, bör du förvänta dig att de uppträder i levande handelsmiljöer och kommer att behöva 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 programvara 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 risk 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, kopplar direkt i en mäklare. Jag är inte en fan av detta tillvägagångssätt eftersom minskade transaktionskostnader ofta är en stor del av 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 skurna ut för tungt talande 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örskjutningar. 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. Prototypning 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), är ett språk som C eller C 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 detaljhandelsinställning och jag har personligen ingen erfarenhet av dem. 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. Att få bredare acceptans i hedgefonden och investeringsbanken. Inte lika snabbt som CC för körhastighet. Exekvering: Python plugins finns 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. Strategikomplexitet: Många plugins existerar för de viktigaste algoritmerna, men inte riktigt lika stor en kvant gemenskap som existerar för MATLAB. Bias Minimization: Samma bias minimeringsproblem finns som för alla högnivå språk. Behöver vara extremt försiktig med testning. Utvecklingshastighet: Pythons största fördel är utvecklingshastighet, med robust inbyggd testfunktion. Exekveringshastighet: Inte lika snabbt som C, men vetenskapliga datorkomponenter optimeras och Python kan prata med inbyggd C-kod med vissa plugins. Kostnad: FreeOpen Käll Beskrivning: Mogent språk på hög nivå utformad för snabb körning. Brett utbud av kvantitativa finans - och numeriska bibliotek. Svårare att felsöka och tar ofta längre tid att implementera än Python eller MATLAB. Extremt utbredd i både köp - och säljsidan. Exekvering: De flesta mäklare API är skrivna i C och Java. Således finns många plugins. Anpassning: CC tillåter direkt åtkomst till underliggande minne, varför ultrahögfrekventa strategier kan implementeras. Strategikomplexitet: C STL erbjuder ett stort antal optimerade algoritmer. Nästan alla specialiserade matematiska algoritmer har en fri, öppen källkodsimplementering på webben. Biasminimering: Utsiktsförskjutning kan vara knepigt att eliminera, men inte hårdare än andra högnivå språk. Bra felsökningsverktyg, men man måste vara försiktig när man arbetar med underliggande minne. Utvecklingshastighet: C är ganska ordentlig jämfört med Python eller MATLAB för samma algoritm. Fler linjer av kod (LOC) leder ofta till större sannolikhet för buggar. Exekveringshastighet: CC har extremt snabb exekveringshastighet och kan vara väl optimerad för specifika beräkningsarkitekturer. Detta är den främsta anledningen att utnyttja den. Kostnad: Olika kompilatorer: LinuxGCC är gratis, MS Visual Studio har olika licenser. Olika strategier kräver olika mjukvarupaket. HFT - och UHFT-strategier kommer att skrivas i CC (dessa dagar utförs de ofta på GPU och FPGA), medan lågfrekventa riktningsbaserade aktiestrategier är lätta att implementera i TradeStation, på grund av programvaruhandeln i en och samma form. Min personliga preferens är för Python eftersom det ger rätt grad av anpassning, utvecklingshastighet, provningsförmåga och körhastighet för mina behov och strategier. Om jag behöver något snabbare, kan jag släppa in till C direkt från mina Python-program. En metod som favoriseras av många kvanthandlare är att prototyper sina strategier i Python och sedan konvertera de långsammare utföringssektionerna till C på ett iterativt sätt. Så småningom är hela algoet skrivet i C och kan lämnas ensam för handel. I de närmaste artiklarna om backtesting kommer vi att titta på några speciella problem kring implementeringen av ett algoritmiskt backtestingssystem för handel, liksom hur man införlivar effekterna av börser. Vi kommer att diskutera strategiska resultatmätningar och slutligen avsluta med en exempelstrategi. Bara Komma igång med kvantitativ handel Varför Vi från den senaste tekniken för att skydda dina pengar ser varför var den bästa handelspartnern. Regulatorisk auktorisation Admiral Markets UK Ltd är reglerad av Financial Conduct Authority i Storbritannien. Kontakta oss Lämna feedback, ställa frågor, ringa på vårt kontor eller ring oss bara. Nyheter Kolla senaste nyheterna om vårt företag, evenemang, handelsvillkor mer. Testimonials Se feedback vi får från kunder som handlar Forex CFD på våra riktiga konton. Partnerskap Förbättra din lönsamhet med Admiral Markets - din betrodda och föredragna handelspartner. Karriärer Vi är alltid på utkik efter att lägga till ny talang till vårt internationella team. Orderkvalitetsbeställning Läs om vår teknik och se vår kvalitetsrapport för månadsrapport. Kontotyper Välj ett konto som passar dig bäst och börja handla idag. Demokonto Ett demokonto ger dig möjlighet att uppleva riskfri Forex CFD-handel och testa dina strategier på finansmarknaden. Dokument Bekanta dig med våra affärspraxis, dokumentöppningsprocedurer. Inbetalningar av utbetalningar Se hur du insätter eller tar ut pengar från ditt handelskonto. Handelsräknare Beräkna din marginal, vinst eller förlust jämföra resultaten av dina Forex CFD-affärer före handel. MetaTrader 4 Ladda ner MetaTrader 4, den mest kraftfulla och användarvänliga plattformen för Forex CFDs trading. MT4 Supreme Edition Ladda ner MT4 Supreme Edition - en intuitiv plattform för Forex CFD-handel. Läs mer om detta plugin och dess innovativa funktioner. MT4 WebTrader Använd MT4 webbhandel med vilken dator eller webbläsare som helst (ingen nedladdning behövs). MetaTrader 5 Ladda ner MetaTrader 5, den nya och förbättrade plattformen för Forex CFDs trading. Grundläggande analys Ekonomiska händelser påverkar marknaden på många sätt. Ta reda på hur kommande händelser sannolikt påverkar dina positioner. Tekniska analyser Diagram kan visa trenden, men analys av indikatorer och mönster av experter förutspår dem. Se vad statistiken säger. Våganalys Bestäm sannolika priszoner efter vågmönster baserat på extremiteter i handlarepsykologi med Elliot-våganalys Forex Calendar Det här verktyget hjälper handelsmän att hålla reda på viktiga finansiella meddelanden som kan påverka ekonomin och prisutvecklingen. Autochartist Hjälper dig att ställa in marknadens lämpliga utgångsnivåer genom att förstå förväntad volatilitet, effekter av ekonomiska händelser på marknaden och mycket mer. Traders Blog Följ vår blogg för att få de senaste marknadsuppdateringarna från professionella handlare. Marknadsvärmekarta Se vilka som är de bästa dagliga flyttarna. Rörelse på marknaden lockar alltid intresse från handelssamhället. Market Sentiment Dessa widgets hjälper dig att se korrelationen mellan långa och korta positioner som innehas av andra handlare. Forex CFD Webinars Tune in och titta på experter täcka handelsrelaterade ämnen. Lär dig grunderna eller få inkompetens per vecka. FAQ Få dina svar på de vanliga frågorna om våra tjänster och finansiell handel. Traders Ordlista Finansmarknaderna har sin egen lingo. Lär dig villkoren, eftersom missförstånd kan kosta dig pengar. Forex CFD Seminarier Utvid din Forex och CFD Trading Knowledge genom att gå med i ett av våra seminarier. Hålls av handelspersonal. Riskhantering Riskhantering kan förhindra stora förluster i Forex och CFD-handel. Lär dig bästa risk - och handelshantering, för framgångsrika Forex och CFD-branscher. Artiklar Handledning Från Forex och CFD-basics till avancerade handelsemner, erbjuder dessa avsnitt dig användbara insikter på handel. Noll till hjälte Starta din väg till förbättring idag. Vårt gratis Zero to Hero-program kommer att navigera dig genom labyrinten i Forex trading. Admiral Club Tjäna pengar på din Forex och CFD-handel med Admiral Club-poäng. ForexBall Handelstävlingen med en årlig prispott på 541 000. Spela för skojs skull, lär dig för riktigt med detta handelsmästerskap. Personligt Erbjudande Om du är villig att handla med oss, är vi villiga att göra dig ett konkurrenskraftigt erbjudande. Bästa Forex Backtesting Software Forex Backtesting Programvara är ett program som använder historiska data för att återskapa uppförandet av affärer och deras reaktion på en handelsstrategi. Den resulterande data används för att mäta och optimera effektiviteten i en given strategi innan den tillämpas på reala marknadsförhållanden. Backtesting i Forex arbetar med antagandet att affärer och strategier som har fungerat bra tidigare kommer att fungera bra i framtiden. Forex backtesting har alltid varit en hård kamp mellan datorkraft och sunt förnuft. I 1980 var backtesting av ett Forex-system ett ganska enkelt koncept. Traders skulle göra sina samvetsgranna affärer på diagram, markera positionen antingen köpa eller sälja. Då skulle de manuellt skriva uttömmande noter av deras handelsresultat i en logg. De flesta affärsidéerna kom från en djup förståelse för grundläggande analys eller medvetenhet om marknadsmönster. På 1990-talet betraktades en person som en investerande innovatör om han kunde visa data på datorskärmen. I grund och botten den elektroniska processen som gör att vi kan kontrollera resultat online och få förtroende för vår strategi idag en gång i taget tog månader eller till och med år. Sedan dess har processen fortsatt att öka, men inte alltid till det bättre. Nu får jag inte fel. De som tillämpar flitigt och sunt förnuft till Forex-strategi backtesting belönas ofta med enorma vinster. Å andra sidan fortsätter handlare som bara tillämpar datorkraft och inte mänsklig logik att drabbas av stora förluster. När det gäller backtesting FX-strategier finns det ingen mjukvara som kan ersätta en personmdashespecially en person som är utrustad med Före provning. Att ha förväntningar är viktigt när det gäller att utveckla en Forex-strategi. Förväntningar tvingar dig att definiera en plan i förväg. Hela processen med Forex backtesting kretsar kring begreppet att bevisa och validera dina idéer. Det första du behöver göra är att sätta dessa idéer och förväntningar i en tydlig plan. Du bör alltid ha en klar uppfattning om det handelsintervall som du vill använda, den relativa risken för den använda metoden och procentandel av lönsamma affärer. Om den utförda backtesten bekräftar dina idéer kan du kanske ha förtroende för strategin och flytta vidare för att testa den. Ta reda på vilka typer av funktioner du kan använda och vilka som kommer att gynna dina test. MetaTrader 4 Supreme Edition innehåller till exempel en mini-kartindikator som tillåter flera diagram. Som sådan kan du observera olika tidsramar eller använda olika diagramtyper som Renko, Range och Kagi. Val av data Omfattande levnadsdata kan tillhandahållas för dig genom att använda MT4SE. En funktion som gör jobbet är symbolindikatorindikatorn. Det ger en snabb och grundlig uppdelning av marknadssituationen för något instrument. Det här verktyget hjälper dig effektivt att fatta välgrundade beslut genom att förse dig med förändringar, intervall och indikatorer på varje tidsram. Kombinera den med en premiumdatabas och du kan vara bra på väg till framgång. När du använder Forex backtesting programvara, är det alltid nödvändigt att ha en databas med priser. Bättre än, du borde använda en fullständig historia av statistik för ekonomiska händelser. Denna typ av data sprider sig brett och erbjuds av många leverantörer. Den innehåller dagliga hög-, låg - och slutkurs samt individuella Forex-data för mer exakt backtesting. De flesta av data kan hittas gratis, men det är ofta felaktigt. De bästa Forex-datana är dock till försäljning på kända webbplatser som Tick Data, Inc. eller CQG Data Factory. Theres no guarantee Det enda sättet att veta om en strategi kommer att fungera är att använda FX backtesting programvara. Varna dock att backtesting inte garanterar framtida vinster, om backtest är enkel validering av regler eller multidimensionell analys av resultat. Ett annat problem med att använda FX backtesting-programvara är sällsynt likviditet, vilket varierar beroende på många externa faktorer. Faktum är att likviditeten kan vara ganska svår att simulera. MetaTrader-programvara Vi låtsas inte ha en unik åsikt när vi säger att den bästa Forex-backtestingprogrammet är MetaTrader 4 (MT4). Denna beprövade, säkra elektroniska handelsplattform är det mest populära valet för handel på finansmarknaderna. med den indikatorrika MT4 Supreme Edition är det föredragna alternativet. MT4 är populär för FX backtesting på grund av sin inbyggda strategi tester funktion. Och självklart hjälper gratis registrering också. Men samtidigt som du har rätt programvara kan du ge övre start i handeln, det finns ingen strategi som fungerar om inte din mäklare är pålitlig. Eftersom inte alla Forex-mäklare skapas lika. Det är bäst att öppna ett konto hos en mäklare som har Financial Conduct Authority (FCA) och MiFID-reglering. På det här sättet får du reella backtested resultat och du vet att dina pengar är säkra när du börjar handla på ett levande konto. Vänligen aktivera JavaScript för att se kommentarerna från Disqus. Riskvarning: Handel med utländsk valuta eller kontrakt för marginskillnader medför en hög risknivå, och kanske inte är lämplig för alla investerare. Det finns en möjlighet att du kan hålla en förlust som är lika med eller större än hela din investering. Därför borde du inte investera eller riskera pengar som du inte har råd att förlora. Du bör se till att du förstår alla riskerna. Innan du använder Admiral Markets UK Ltd tjänster, bekräfta riskerna i samband med handel. Innehållet på denna webbplats kan inte tolkas som personlig rådgivning. Admiral Markets UK Ltd rekommenderar dig att söka råd från en oberoende finansiell rådgivare. Admiral Markets UK Ltd ägs helt av Admiral Markets Group AS. Admiral Markets Group AS är ett holdingbolag och dess tillgångar är ett bestämmande kapitalandel i Admiral Markets AS och dess dotterbolag, Admiral Markets UK Ltd och Admiral Markets Pty. Alla referenser på denna webbplats till admiral Markets hänvisar till Admiral Markets UK Ltd och dotterbolag till Admiral Markets Group AS. Admiral Markets (UK) Ltd. är auktoriserad och reglerad av Financial Conduct Authority. (FCA-register nr 595450). Admiral Markets (UK) Ltd. är registrerad i England och Wales under Companies House. Registreringsnummer 08171762. Företagsadress: 16 St. Clare Street, London EC3N 1LQ, Storbritannien.
No comments:
Post a Comment