06172013 Senaste versionen av TraderCode (v5.6) innehåller nya tekniska analysindikatorer, pek-och-diagram kartläggning och strategi backtesting. 06172013 Senaste versionen av NeuralCode (v1.3) för Neural Networks Trading. 06172013 ConnectCode Barcode Font Pack - aktiverar streckkoder i kontorsprogram och innehåller ett tillägg för Excel som stöder massgenerering av streckkoder. 06172013 InvestmentCode, en omfattande serie med finansiella räknemaskiner och modeller för Excel är nu tillgänglig. 09012009 Launch of Free Investment och Financial Calculator för Excel. 0212008 Release of SparkCode Professional - tillägg för att skapa Dashboards i Excel med sparklines 12152007 Meddela ConnectCode Duplicate Remover - ett kraftfullt tillägg för att hitta och ta bort duplikatposter i Excel 09082007 Starta TinyGraphs - Open Source-tillägg för att skapa sparklines och små diagram i Excel. Strategi Backtesting i Excel Strategi Backtesting Expert Backtesting Expert är en kalkylarkmodell som låter dig skapa handelsstrategier med hjälp av tekniska indikatorer och köra strategierna genom historiska data. Strategiernas prestanda kan sedan mätas och analyseras snabbt och enkelt. Under backtesting-processen går Backtesting Expert igenom de historiska data i rad på rad från topp till botten. Varje angiven strategi kommer att utvärderas för att avgöra om inträdesvillkoren är uppfyllda. Om villkoren är uppfyllda kommer en handel att införas. Å andra sidan, om utgångsförhållandena är uppfyllda, kommer en position som angivits tidigare att avslutas. Olika variationer av tekniska indikatorer kan genereras och kombineras för att bilda en handelsstrategi. Detta gör Backtesting Expert till ett extremt kraftfullt och flexibelt verktyg. Backtesting Expert Backtesting Expert är en kalkylarkmodell som låter dig skapa handelsstrategier med hjälp av tekniska indikatorer och köra strategierna genom historiska data. Strategiernas prestanda kan sedan mätas och analyseras snabbt och enkelt. Modellen kan ställas in för att gå in i långa eller korta positioner när vissa förhållanden uppstår och avsluta positionerna när en annan uppsättning villkor är uppfyllda. Genom att automatiskt handla på historiska data kan modellen bestämma lönsamheten i en handelsstrategi. Backtesting Expert Steg för steg Handledning 1. Starta Backtesting Expert Backtesting Expert kan startas från Windows Start Menu-Program - TraderCode - Backtesting Expert. Detta lanserar en kalkylarkmodell med flera kalkylblad för att du ska kunna generera tekniska analysindikatorer och köra tillbaka tester på de olika strategierna. Du kommer märka att Backtesting Expert innehåller många kända arbetsblad som DownloadedData, AnalysisInput, AnalysisOutput, ChartInput och ChartOutput från Technical Analysis Expert-modellen. Detta gör att du snabbt och enkelt kan köra alla dina backtest från en välkänd kalkylarkmiljö. 2. Välj först nedladdningsdatabladet. Du kan kopiera data från alla kalkylblad eller kommaseparerade värden (csv) - filer till detta arbetsblad för teknisk analys. Dataformatet är som visas i diagrammet. Alternativt kan du hänvisa till Dataöverföringsdokumentet för nedladdning av data för att ladda ner data från kända datakällor som Yahoo Finance, Google Finance eller Forex för användning i Backtesting Expert. 3. När du har kopierat data, gå till AnalysisInput-kalkylbladet och klicka på knappen Analysera och BackTest. Detta kommer att generera de olika tekniska indikatorerna i AnalysisOutput-kalkylbladet och göra backtesting på de strategier som anges i StrategyBackTestingInput-kalkylbladet. 4. Klicka på arbetsbladet StrategyBackTestingInput. I denna handledning behöver du bara veta att vi har angett både långa och korta strategier med hjälp av glidande medelvärde. Vi kommer att gå in i detaljer om att specificera strategier i nästa avsnitt i detta dokument. Diagrammet nedan visar de två strategierna. 5. När bakåtprovningarna är slutförda kommer utmatningen att placeras i worksheeterna AnalysisOutput, TradeLogOutput och TradeSummaryOutput. Arbetsbladet AnalysisOutput innehåller de fullständiga historiska priserna och stockens tekniska indikatorer. Under backtesten, om förutsättningarna för en strategi är nöjda, kommer information som köpeskilling, försäljningspris, provision och vinstlösning att registreras i detta arbetsblad för enkel referens. Denna information är användbar om du vill spåra genom strategierna för att se hur aktiepositionerna skrivs in och avslutas. TradeLogOutput-kalkylbladet innehåller en sammanfattning av de affärer som utförs av Backtesting Expert. Uppgifterna kan enkelt filtreras för att endast visa data för en specifik strategi. Detta arbetsblad är användbart för att bestämma den totala vinsten eller förlusten av en strategi vid olika tidsramar. Den viktigaste effekten av backtesterna placeras i TradeSummaryOutput-arbetsbladet. Detta kalkylblad innehåller den totala vinsten i de genomförda strategierna. Som framgår av diagrammet nedan genererade strategierna en total vinst på 2.548,20 genom att totalt 10 handlar. Av dessa branscher är 5 långa positioner och 5 är korta positioner. Ratio-winlossen på mer än 1 indikerar en lönsam strategi. Förklaring av de olika kalkylbladen Detta avsnitt innehåller en detaljerad förklaring av de olika kalkylbladen i Backtesting Expert-modellen. Arbetsbladen DownloadedData, AnalysisInput, AnalysOutput, ChartInput och ChartOutput är desamma som i Technical Analysis Expert-modellen. Således kommer de inte att beskrivas i detta avsnitt. För en fullständig beskrivning av dessa kalkylblad, se avsnittet Teknisk analys expert. StrategyBackTestingInput-arbetsblad Alla inmatningar för backtesting inklusive strategierna anges med hjälp av detta arbetsblad. En strategi är i grunden en uppsättning villkor eller regler som du kommer att köpa i ett lager eller sälja ett lager. Till exempel kanske du vill genomföra en strategi för att gå Lång (köp bestånd) om 12 dagars glidande medelvärde av priset korsar det 24-dagars glidande genomsnittet. Det här kalkylbladet fungerar tillsammans med de tekniska indikatorerna och prisuppgifterna i AnalysisOutput-kalkylbladet. Därför måste de rörliga genomsnittliga tekniska indikatorerna genereras för att ha en handelsstrategi baserad på glidande medelvärde. Den första inmatningen som krävs i det här arbetsbladet (som visas i diagrammet nedan) är att ange huruvida Avsluta alla transaktioner vid slutet av testperioden. Föreställ dig det scenario där villkoren för inköp av ett lager har inträffat och Backtesting Expert ingick en lång (eller kort) handel. Men tidsramen är för kort och har slutat innan handeln kan uppfylla avgångsvillkoren, vilket resulterar i att vissa affärer inte avslutas när backtesting-sessionen slutar. Du kan ställa in detta på Y för att tvinga alla affärer att avslutas i slutet av backtesting-sessionen. Annars kommer handeln att öppnas när backtesting avslutas. Strategier Högst 10 strategier kan stödjas i ett enda backtest. Diagrammet nedan visar de ingångar som krävs för att ange en strategi. Strategi Initials - Denna ingång accepterar högst två alfabet eller nummer. Strategi Initials används i analysutgångarna och TradeLog-kalkylbladen för att identifiera strategierna. Long (L) Short (S) - Det här används för att ange om ett långt eller kortt läge ska införas när strategins inlösenförhållanden är uppfyllda. Inträdesförhållanden En lång eller kort handel kommer att anges när inträdesvillkoren är uppfyllda. Inträdesförhållandena kan uttryckas som ett formeluttryck. Formeluttrycket är skiftlägeskänsligt och det kan använda funktioner, operatörer och kolumner som beskrivs nedan. crossbove (X, Y) - Returnerar True om kolumn X passerar över kolumn Y. Den här funktionen kontrollerar tidigare perioder för att säkerställa att en crossover verkligen har inträffat. crossbelow (X, Y) - Returnerar True om kolumn X korsar under kolumn Y. Den här funktionen kontrollerar tidigare perioder för att säkerställa att en crossover verkligen har inträffat. och (logicalexpr,) - Boolean And. Returnerar sant om alla de logiska uttrycken är sanna. eller (logicalexpr,) - Boolean Or. Returnerar sant om något av de logiska uttrycken är sanna. daysago (X, 10) - Returnerar värdet (i kolumn X) för 10 dagar sedan. previoushigh (X, 10) - Returnerar det högsta värdet (i kolumn X) under de senaste 10 dagarna inklusive idag. previouslow (X, 10) - Returnerar lägsta värde (i kolumn X) under de senaste 10 dagarna inklusive idag. Operatörer Större än lika lika Ej lika Stora eller lika med Addition - Subtraktion Multiplication Division Columns (från AnalysisOutput) A - Kolumn AB - Kolumn BC .. .. YY - Kolumn YY ZZ - Kolumn ZZ Detta är den mest intressanta och flexibla delen av posten Betingelser. Det gör det möjligt att specificera kolumner från analysutföringsbladet. När bakåtprovningen utförs kommer varje rad från kolumnen att användas för utvärdering. Till exempel betyder A 50 var och en av raderna i kolumn A i analysen. Utföringsbladet bestäms om det är större än 50. AB I det här exemplet , om värdet i kolumn A i analysutmatningsarket är större än eller lika med värdet av kolumn B, kommer inmatningsvillkoren att uppfyllas. och (A B, CD) I det här exemplet är värdet i kolumn A i AnalysisOutput-kalkylbladet större än värdet av kolumn B och värdet av kolumn C är större än kolumn D, kommer ingåendeillståndet att uppfyllas. crossabove (A, B) I det här exemplet, om värdet av kolumn A i AnalysisOutput-kalkylbladet överskrider värdet på B, kommer ingåendeillståndet att uppfyllas. crossbove betyder att A ursprungligen har ett värde som är mindre än eller lika med B och värdet av A blir därefter större än B. Exit Villkor Exit Villkoren kan använda funktioner, operatörer och kolumner som definieras i postförhållandena. Utöver detta kan det också utnyttja Variabler enligt nedan. Variabler för Exit Villkor vinst Detta definieras som försäljningspriset minus köpeskillingen. Försäljningspriset måste vara större än köpeskillingen för en vinst som ska göras. Annars kommer vinsten att bli noll. förlust Detta definieras som försäljningspriset minus köpeskillingen när försäljningspriset är lägre än köpeskillingen. profitpct (försäljningspris - köpeskilling) köpeskill Notera. Försäljningspriset måste vara större än eller lika med köpeskillingen. Annars blir profitpct noll. losspct (försäljningspris - köpeskilling) köpeskill Notera. Försäljningspriset måste vara lägre än köpeskillingen. Annars kommer losspct att vara noll. Exempel profitpct 0.2 I detta exempel, om vinsten i procent är större än 20, kommer avgångsvillkoren att uppfyllas. Kommissionen - kommissionen i procent av handelspriset. Om handelspriset är 10 och kommissionen är 0,1 kommer kommission att vara 1. Procentandel av provision och provision i dollar summeras för att beräkna total provision. Kommissionen - kommissionen i dollar. Procentandel av provision och provision i dollar summeras för att beräkna total provision. Antal aktier - Antal aktier att köpa eller sälja när strategierna för införselexekvering är uppfyllda. TradeSummaryOutput-arbetsbladet Detta är ett arbetsblad som innehåller en sammanfattning av alla affärer som utförts under backtest. Resultaten kategoriseras i långa och korta affärer. En beskrivning av alla fält finns nedan. Summa vinstförlust - Summa vinst eller förlust efter provision. Detta värde beräknas genom att summera alla vinster och förluster av alla affärer som simuleras i bakprovet. Summa vinstförlust före kommissionen - Summa vinst eller förlust före provision. Om provisionen är noll, kommer detta fält att ha samma värde som Total ProfitLoss. Totalkommission - Total provision krävs för alla affärer som simuleras under backtestet. Totalt antal Trades - Totalt antal handlar utförda under det simulerade bakprovet. Antal vinnande affärer - Antal affärer som ger vinst. Antal förlorade affärer - Antal affärer som gör en förlust. Andel vinnande trades - Antal vinnande trades dividerat med Totalt antal handelser. Andel som förlorar handel - Antal förlorade affärer dividerat med Totalt antal handlar. Genomsnittlig vinsthandel - Det genomsnittliga värdet av vinsten från de vinnande affärer. Genomsnittlig förlorande Handel - Medelvärdet av förlusterna av de förlorande affärer. Genomsnittlig handel - Medelvärdet (vinst eller förlust) av en enda handel med det simulerade bakprovet. Största vinnande handel - Vinsten på den största vinnande handeln. Största förlorande handel - förlusten av den största förlorande handeln. Förhållande genomsnittlig vinstdämpning - Genomsnittlig vinsthandel dividerad med genomsnittlig förlorande handel. Ratio winloss - Summan av alla vinster i de vinnande affärer dividerat med summan av alla förluster i de förlorande affärer. Ett förhållande på mer än 1 indikerar en lönsam strategi. TradeLogOutput worksheet Detta arbetsblad innehåller alla affärer som simulerats av Backtesting Expert sorterat efter datumet. Det låter dig zooma in till en viss handel eller tidsram för att bestämma lönsamheten för en strategi snabbt och enkelt. Datum - Datumet där ett långt eller kortt läge är inmatat eller avslutat. Strategi - Den strategi som används för att genomföra denna handel. Position - Handelspositionen, vare sig Lång eller Kort. Handel - Anger om denna handel är att köpa eller sälja aktier. Aktier - Antal omsatta aktier. Pris - Det pris där lagren köps eller säljs. Comm. - Totalt provision för denna handel. PL (B4 Comm.) - Resultat eller förlust före provision. PL (Aft. komm.) - vinst eller förlust efter provision. Sperma. PL (Aftcomm.) - Kumulativ vinst eller förlust efter provisioner. Detta beräknas som den ackumulerade totala löneförlusten från den första dagen av en handel. PL (vid stängningsposition) - vinst eller förlust när positionen är stängd (avslutad). Både anmälningskommission och avgångskommission kommer att redovisas i denna PL. Till exempel, om vi har en Lång position där PL (B4 Comm.) Är 100. Antag när positionen är inmatad debiteras 10 provisioner och när positionen är avslutad, laddas en annan provision på 10. PL (på stängningsposition) är 100-10 - 10 80. Både provisionen för att komma in i positionen och avsluta positionen redovisas på positionen nära. Tillbaka till TraderCode Teknisk Analys Programvara och Tekniska Indikatorer Använda Excel till Back Test Trading Strategier Hur backar test med Excel Ive gjort en hel del handelsstrategi tillbaka test. Ive använde sofistikerade programmeringsspråk och algoritmer och Ive gjorde det också med penna och papper. Du behöver inte vara en raketforskare eller en programmerare för att backa testa många handelsstrategier. Om du kan använda ett kalkylprogram som Excel kan du sedan testa många strategier. Syftet med den här artikeln är att visa dig hur man testar en handelsstrategi med hjälp av Excel och en offentligt tillgänglig datakälla. Detta borde inte kosta dig mer än den tid det tar att göra testet. Innan du börjar testa någon strategi behöver du en dataset. Minst är detta en serie datatider och priser. Mer realistiskt behöver du datetime, öppen, hög, låg, nära priser. Du behöver vanligtvis bara tidskomponenten i dataserien om du testar intradaghandelstrategier. Om du vill arbeta tillsammans och lära dig att backa test med Excel medan du läser detta följer du stegen som jag skisserar i varje avsnitt. Vi behöver få lite data för den symbol som vi ska göra bakom testet. Gå till: Yahoo Finance Ange fältet Enter Symbol (s): IBM och klicka på GO Under Quotes på vänster sida klicka på Historiska priser och ange de datumintervall du vill ha. Jag valde från 1 januari 2004 till 31 december 2004 Bläddra ner till undersidan av sidan och klicka på Hämta till kalkylblad Spara filen med ett namn (t. ex. ibm. csv) och till en plats som du senare kan hitta. Förbereda data Öppna filen (som du laddade ner ovan) med hjälp av Excel. På grund av internetets dynamiska natur kan de instruktioner du läser ovan och filen du öppnar ha förändrats vid den tidpunkt du läser detta. När jag hämtade den här filen såg de övre få raderna ut så här: Du kan nu radera de kolumner som du inte ska använda. För testet som jag kommer att göra ska jag bara använda datumet, öppna och stänga värden så jag har raderat High, Low, Volume och Adj. Stänga. Jag sorterade också uppgifterna så att det äldsta datumet var första och det senaste datumet var längst ner. Använd menyalternativen Data - gt Sorter för att göra detta. Istället för att testa en strategi i sig försöker jag hitta veckans dag som gav den bästa avkastningen om du följde ett köp öppet och säljer den nära strategin. Kom ihåg att den här artikeln är här för att presentera dig för hur du använder Excel för att återställa teststrategier. Vi kan bygga vidare på detta framåt. Här är ibm. zip-filen som innehåller kalkylbladet med data och formler för detta test. Mina data finns nu i kolumnerna A till C (Datum, Öppet, Stäng). I kolumnerna D till H har jag platsformler för att bestämma avkastningen på en viss dag. Ange formulärerna Den knepiga delen (om du inte är en Excel-expert) utarbetar de formler som ska användas. Det här handlar bara om att träna och ju mer du övar de mer formler du kommer att upptäcka och ju mer flexibilitet du kommer att ha med din testning. Om du har laddat ner kalkylbladet, ta en titt på formeln i cell D2. Det ser ut så här: Denna formel kopieras till alla andra celler i kolumnerna D till H (utom den första raden) och behöver inte justeras när den har kopierats. Jag förklarar kortfattat formeln. IF-formeln har ett skick, sann och falsk del. Villkoret är: Om veckodagen (konverterad till ett tal från 1 till 5 som matchar måndag till fredag) är detsamma som veckodag i den första raden i denna kolumn (D1) då. Den sanna delen av uttalandet (C2-B2) ger oss bara värdet på Close-Open. Detta indikerar att vi köpte Open och sålde Close och det här är vår profitloss. Den falska delen av uttalandet är ett par dubbla citat () som inte sätter något i cellen om veckodagen inte matchas. Tecknen till vänster om kolumnbokstaven eller radnumret låser kolumnen eller raden så att när den kopieras den delen av cellreferensen ändras inte. Så här i vårt exempel, när formeln kopieras, ändras referensen till datumcell A2 om radnumret om det kopieras till en ny rad men kolumnen kommer att ligga kvar i kolumn A. Du kan näsa formlerna och göra exceptionellt kraftfulla regler och uttryck. Resultatet I botten av veckodagskolumnerna har jag lagt fram några sammanfattande funktioner. I synnerhet genomsnittet och summan fungerar. Dessa visar oss att under 2004 var den mest lönsamma dagen för att genomföra denna strategi på tisdag och detta följdes noggrant av en onsdag. När jag testade Expiry Fridays - Bullish eller Bearish-strategin och skrev den artikeln använde jag en mycket liknande inställning med ett kalkylblad och formler som denna. Målet med det testet var att se om Expiry Fridays var generellt bullish eller bearish. Testa. Hämta lite data från Yahoo Finance. ladda det i Excel och prova formlerna och se vad du kan komma med. Skicka dina frågor i forumet. Lycka till och lönsam strategi jakt Strategi Backtesting Strategi backtesting är ett viktigt verktyg för att se om din strategi fungerar eller inte. Backtesting-mjukvaran simulerar din strategi för historiska data och ger en backtesting-rapport, som gör att du kan genomföra en korrekt trading systemanalys. 64-bitarsversionen låter dig ladda så mycket data som du behöver för även den mest exakta backtestingen. För teknisk information om denna funktion, se på den relaterade Wiki-sidan. Noggrannhet är nyckeln MultiCharts är en lösning som skapats speciellt för strategiutveckling och backtesting. Vår filosofi är att strategisk backtesting ska vara lika realistisk som modern teknik tillåter. Multicharts 64-bitars gör det möjligt att hantera stor mängd Tick-by-Tick-data för exakt backtesting. Realistisk backtesting Även om ingen approximation kan vara 100 perfekt, har vi gjort allt för att exakt återskapa tidigare marknadsvillkor och beställa exekvering för strategihandel. Typiska backtestingmotorer har många antaganden och genvägar, vilket resulterar i orealistiska tester och otillförlitliga resultat. MultiCharts är en handelsplattform på institutionell nivå som minimerar antaganden och tar hänsyn till många faktorer. Avancerad tech Strategisk backtesting behöver ofta mycket data och programvara som kan hantera den. Multi-threading används när du bearbetar strategioptimering i MultiCharts. Det sprider flera uppgifter till olika kärnor, så att de slutar mycket snabbare. 64-bitarsversion av MultiCharts låter dig ladda jämna år och år med kryssdata för detaljerade prisrörelser. Lätt att läsa Du kan ändra hur dina signaler visas på ditt diagram bara några klick. Avsluta order kan kopplas med en synlig linje till all relaterad postorder, linjen blir grön om handeln var lönsam, röd om inte. Om du inte gillar dessa färger, eller någon annan visuell aspekt, kan du enkelt ändra den. Välj valuta för backtesting Basvaluta gör det möjligt att beräkna vinst och förlust under strategin backtesting med en angiven valuta för Forex-par eller icke-amerikanska symboler. Om du backtestar din strategi på en symbol som är baserad i en annan valuta än ditt mäklare konto kanske du vill tillämpa en valutakonvertering. För att göra resultaten så nära perfektion som möjligt använder vi faktiska valutakurser för varje dag. All valutaomvandling sker bakom kulisserna för att göra din handel så enkel som möjligt. Vi använder våra servrar för att begära data i bakgrunden och utföra nödvändiga beräkningar. Alla väsentliga faktorer som ingår i vår Backtesting-programvara tar upp följande väsentliga faktorer: likviditet, prisförändringar i kryssrutor, prisförändringar i budgivningspriset, provision, släpp, startkapital, räntesats och handelsstorlek. Med hänsyn till likviditet När MultiCharts-motorn återprövar en strategi erkänner den att inte alla gränsvärden kommer att fyllas på grund av brist på likviditet. Av detta skäl har du möjlighet att fylla beställningar när ett prismål träffas eller när det överskrids med ett visst antal poäng (pips). Mer information finns på vår Wiki-sida. Fråga, bud och handelspriser Backtesting tar hänsyn till att reellt köp sker på askpriser, reallförsäljning till budpriser. Detta gör vår backtesting-simulering så realistisk som möjligt. Precis strategi Backtesting kan ge användaren en mer realistisk emulering. För att backtest högfrekventa strategier som statistisk arbitrage kan användaren behöva ta hänsyn till de historiska bidragen data utöver de historiska handelsdata. Tick-by-tick simulering Bar Magnifier är viktigt för att öka precisionen vid backtesting. MultiCharts kan konstruera större staplar av mindre komponenter andra och minuters staplar ur fästingar, timmars - och dagstänger ur minuter. Du kan återskapa exakta prisrörelser inom varje stapel genom att använda Bar Magnifier. Bar Magnifier kan till exempel osynligt ladda minuter som utgör timmen, och strategin kommer att testas om en minut för minut. Läs mer tekniska detaljer här. Strategier för omedelbar övning MultiCharts backtestingmotor emulerar även marknad, stopp, gräns, stoppgräns och enstopps-andra (OCO) - ordningar. Resultatmål, stop-loss och bakåtstopp är också standardbacktesting-funktioner. Dessutom kommer MultiCharts med mer än 80 EasyLanguage-strategier, så du kan träna backtesting.
No comments:
Post a Comment