Back testet your handel system


Backtesting Vad är Backtesting Backtesting är processen att testa en handelsstrategi för relevant historisk data för att säkerställa dess lönsamhet innan näringsidkaren riskerar något aktuellt kapital. En näringsidkare kan simulera handel med en strategi över en lämplig tidsperiod och analysera resultaten för lönsamhetsnivåerna och riskerna. AVBRYDNING Backtesting Om resultaten uppfyller de nödvändiga kriterier som är acceptabla för näringsidkaren kan strategin sedan implementeras med viss grad av förtroende för att det kommer att leda till vinst. Om resultaten är mindre gynnsamma kan strategin modifieras, justeras och optimeras för att uppnå de önskade resultaten eller det kan helt skrotas. En betydande del av volymen handlas på dagens finansmarknad görs av handlare som använder någon form av datorautomatisering. Detta gäller särskilt för handelsstrategier baserade på teknisk analys. Backtesting är en integrerad del av att utveckla ett automatiserat handelssystem. Betydande Backtesting När det görs korrekt kan backtesting vara ett ovärderligt verktyg för att fatta beslut om huruvida man ska använda en handelsstrategi. Provperioden som en backtest utförs på är kritisk. Varaktigheten av provperioden bör vara tillräckligt lång för att omfatta perioder med olika marknadsförhållanden, inklusive uppåtgående tendenser, nedåtgående trend och omfattande handel. Att utföra ett test på endast en typ av marknadsförhållanden kan ge unika resultat som kanske inte fungerar bra under andra marknadsförhållanden, vilket kan leda till falska slutsatser. Provstorleken i antalet branscher i testresultaten är också avgörande. Om provet antal branscher är för litet kan testet inte vara statistiskt signifikant. Ett prov med alltför många branscher under en lång period kan ge optimerade resultat där ett överväldigande antal vinnande affärer samlas kring ett specifikt marknadsförhållande eller trend som är gynnsam för strategin. Detta kan också leda till att en näringsidkare drar vilseledande slutsatser. Att hålla det riktigt En backtest bör spegla verkligheten så mycket som möjligt. Handelskostnader som annars kan anses vara försumbara av handlare när de analyseras individuellt kan ha en betydande inverkan när den sammanlagda kostnaden beräknas under hela backtestingperioden. Dessa kostnader inkluderar provisioner, spridningar och släpp, och de kunde bestämma skillnaden mellan huruvida en handelsstrategi är lönsam eller inte. De flesta backtesting programvarupaket innehåller metoder för att redovisa dessa kostnader. Kanske är den viktigaste metriska förknippade med backtesting strategins nivå av robusthet. Detta uppnås genom att jämföra resultaten av ett optimerat bakprov i en specifik provperiod (kallad in-sample) med resultaten av en backtest med samma strategi och inställningar i en annan provperiod (kallad out - of-prov). Om resultaten är lika lönsamma kan strategin anses vara giltig och robust och den är redo att genomföras i realtidsmarknader. Om strategin misslyckas i jämförelser utan jämförelser, behöver strategin ytterligare utveckling, eller det bör helt överges. 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 totala 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. Ett mått på förhållandet mellan en förändring i den mängd som krävdes av ett visst gott och en förändring i dess pris. Pris. Det totala dollarns marknadsvärde för alla bolagets utestående aktier. Marknadsvärdet beräknas genom att multiplicera. Frexit kort för quotFrench exitquot är en fransk spinoff av termen Brexit, som uppstod när Storbritannien röstade till. En order placerad med en mäklare som kombinerar funktionerna i stopporder med de i en gränsvärde. En stopporderorder kommer att. En finansieringsrunda där investerare köper aktier från ett företag till en lägre värdering än värderingen placerad på. En ekonomisk teori om totala utgifter i ekonomin och dess effekter på produktion och inflation. Keynesian ekonomi utvecklades. Bakprovning av dina handelsideer En av de mest användbara sakerna du kan göra i analysfönstret är att backtesta din handelsstrategi på historiska data. Detta kan ge dig värdefull inblick i styrkor och svaga punkter i ditt system innan du investerar riktiga pengar. Denna enda AmiBroker-funktionen kan spara mycket pengar för dig. Skriva dina handelsregler Först måste du ha objektiva (eller mekaniska) regler för att komma in och ut ur marknaden. Detta steg är basen för din strategi och du måste tänka på det själv eftersom systemet måste matcha din risk tolerans, portföljstorlek, pengarhanteringsteknik och många andra individuella faktorer. När du har egna regler för handel bör du skriva dem som köp och sälj regler i AmiBroker Formula Lanugage (plus kort och omslag om du vill testa även kort handel). I detta kapitel kommer vi att överväga ett mycket grundläggande glidande medelvärdeöverföringssystem. Systemet skulle köpa stockscontracts när nära pris stiger över 45-dagars exponentiell glidande medelvärde och kommer att sälja stockscontracts när nära pris faller under 45-dagars exponentiell glidande medelvärde. Det exponentiella glidande medlet kan beräknas i AFL med hjälp av den inbyggda funktionen EMA. Allt du behöver göra är att ange inmatnings array och medelvärde, så det 45-dagars exponentiella glidande genomsnittet av slutkurserna kan erhållas med följande uttalande: Den nära identifieraren hänvisar till inbyggd array hållande slutkurs för nu analyserad symbol . För att testa om det närmsta priset passerar över exponentiell glidande medelvärde, använder vi inbyggd korsfunktion: köp kors (nära, ema (nära 45)) Ovanstående uttalande definierar en köphandelregel. Det ger quot1quot eller quottruequot när nära pris korsar över ema (nära, 45). Då kan vi skriva försäljningsregeln som skulle ge quot1quot när motsatt situation händer - nära priskryssningar under ema (nära 45): sälja kors (ema (nära, 45), stäng) Observera att vi använder samma korsfunktion men den motsatta ordningen av argument. Så komplett formel för långa affärer ser så här ut: köp kors (nära, ema (nära 45)) sälj kors (ema (nära 45), stäng) OBS! För att skapa ny formel, vänligen öppna Formelredigeraren med hjälp av Analysis-gtFormula Editor meny, skriv formeln och välj Verktyg-gtSänd till Analys-menyn i Formel-redigeraren För att back-test ditt system klickar du bara på knappen Tillbaka test i fönstret Automatiskt analys. Se till att du har skrivit in den formel som innehåller minst köpa och sälja handelsregler (som visas ovan). När formeln är korrekt börjar AmiBroker analysera dina symboler enligt dina handelsregler och genererar en lista över simulerade affärer. Hela processen är väldigt snabb - du kan tillbaka testa tusentals symboler inom några minuter. Progressfönstret visar uppskattad slutförd tid. Om du vill stoppa processen kan du bara klicka på Avbryt-knappen i fönstret. När processen är klar visas listan över simulerade affärer i den nedre delen av det automatiska analysfönstret. (resultatpanelen). Du kan undersöka när köp och sälj signaler inträffade genom att dubbelklicka på handeln i resultatfönstret. Detta ger dig raka eller ofiltrerade signaler för varje stapel när köp och säljvillkor är uppfyllda. Om du bara vill se enstaka piltangenter (öppnande och stängning av aktuell handel) bör du dubbelklicka på raden medan du håller ned SHIFT-tangenten nedtryckt. Alternativt kan du välja typ av bildskärm genom att välja lämpligt objekt från den snabbmeny som visas när du klickar på resultatrutan med höger musknapp. Förutom resultatlistan kan du få mycket detaljerad statistik över systemets prestanda genom att klicka på knappen Rapport. För mer information om rapportstatistik, kolla in beskrivningsfönsterbeskrivningen. Ändra dina inställningar för bakåtprövning Backtestmotorn i AmiBroker använder vissa fördefinierade värden för att utföra uppgiften, inklusive portföljstorlek, periodicitet (dagligen varje vecka), provisionsbelopp, ränta, maximala förlust - och vinstmålstopp, typ av affärer, prisfält och så på. Alla dessa inställningar kan ändras av användaren med hjälp av inställningsfönstret. Efter att ha ändrat inställningarna, kom ihåg att köra din backtest igen om du vill att resultaten ska synkroniseras med inställningarna. Till exempel, för att backa test på veckobar istället för dagligen klickar du bara på Inställningar-knappen välj Weekly from Periodicity combo box och klicka på OK. Kör sedan din analys genom att klicka på Back test. Reserverade variabla namn I följande tabell visas namnen på reserverade variabler som används av Automatic Analyzer. Betydelsen och exemplen på att använda dem ges senare i detta kapitel. Tillåter kontrollen dollar belopp eller andel av portfölj som investeras i handeln (se förklaringar nedan) Automatisk analys (ny i 3,9) Hittills diskuterade vi ganska enkelt användning av backtestaren. AmiBroker stöder dock mycket mer sofistikerade metoder och begrepp som kommer att diskuteras senare i detta kapitel. Observera att nybörjaren först bör spela lite med de enklare ämnen som beskrivs ovan innan du fortsätter. Så, när du är redo, ta en titt på följande nyligen introducerade funktioner hos back-testeren: a) AFL-script värd för avancerade formelskribenter b) förbättrat stöd för korta affärer c) sättet att styra orderexekveringspriset från script d) olika typer av stopp i back tester e) positionering f) runda parti storlek och tick storlek g) marginal konto h) backtesting futures AFL scripting värd är ett avancerat ämne som är täckt i ett separat dokument tillgängligt här och jag vill inte diskutera det i det här dokumentet. Återstående funktioner är mycket lättare att förstå. I de tidigare versionerna av AmiBroker kunde du bara simulera stop-and-reverse-strategin om du vill back-test-systemet med både långa och korta affärer. När lång position stängdes öppnades en ny kort position omedelbart. Det berodde på att köp och sälja reserverade variabler användes för båda typerna av handel. Nu (med version 3.59 eller högre) finns det separata reserverade variabler för att öppna och stänga långa och korta affärer: buy - quottruequot eller 1 värde öppnas lång handelsförsäljning - quottruequot eller 1 värde stänger lång handel kort - quottruequot eller 1 värde öppnar kort handel - quottruequot eller 1 värde stänger kort handel Som för att back-test korta affärer måste du tilldela korta och täckande variabler. Om du använder stop-and-reverse-system (alltid på marknaden), tilldela du bara sälja till kort och köpa för att täcka kortförsäljningsinköp. Detta simulerar hur pre-3.59-versioner fungerade. Men nu gör AmiBroker dig möjlighet att ha separata handelsregler för att gå länge och för att gå kort som visat i det här enkla exemplet: långa affärer inmatnings - och utträdesregler: köp kors (cci (), 100) sälj kors (100, cci) handlar inmatnings - och utträdesregler: kort kors (-100, cci ()) kors (cci (), -100) Observera att i det här exemplet om CCI är mellan -100 och 100 är du ute av marknaden. Kontroller handelspriset AmiBroker erbjuder nu 4 nya reserverade variabler för att specificera det pris som köp, sälja, kort och orderingång utförs. Dessa arrays har följande namn: buyprice, sellprice, shortprice och coverprice. Huvudanvändningen av dessa variabler är att reglera handelspriset: BuyPrice IIF (dayofweek () 1, HIGH, CLOSE) på måndags köp på högt, annars köp på nära sätt Så du kan skriva följande för att simulera verkliga stop-order: BuyStop. Formeln för köpstoppnivå SellStop. Formeln för försäljningsstoppsnivå om köpoptionen (helst vid köpstopp eller lågt av det som är högre), när som helst under dagskurserna ökar över buystop-nivå (highgtbuystop), köper Cross (High, BuyStop) om som helst under dagens priser faller under försäljningsprisnivå Försäljningspriset (Säljpris, Säljstopp) Köppris max (Köpstopp, Låg) Se till att köppriset inte är lägre än Low SellPrice min (SellStop, High) se till att Försäljningspriset är inte högre än Högt Observera att AmiBroker förinställer köppris, försäljningspris, kortpris och täckprissatsvariabler med de värden som definieras i fönstret för systemtestinställningar (visas nedan), så du kan men behöver inte definiera dem i din formel. Om du inte definierar dem fungerar AmiBroker som i de gamla versionerna. Under back-testing kommer AmiBroker att kontrollera om de värden du tilldelade till köpcentret, försäljningspriset, kortpriset, täckpriset passar in i ett högt lågt utbud av given stapel. Om inte, kommer AmiBroker att justera det till högt pris (om prismatrisvärdet är högre än högt) eller till det låga priset (om prismatrisvärdet är lägre än lågt) Resultatmål stannar Som du kan se i bilden ovan, nya inställningar för vinstmålstopp är tillgängliga i fönstret för systemtestinställningar. Resultatmålstopp görs när högpriset för en given dag överstiger stoppnivån som kan ges som procentuell eller punktvis ökning från köpeskillingen. Som standard görs stoppen till det pris du definierar som försäljningsprismatris (för långa transaktioner) eller täckningsprismatris (för korta transaktioner). Detta beteende kan ändras genom att använda quotExit vid stopquot-funktionen. quotExit vid stopquot-funktionen Om du markerar quotExit vid stopquot-rutan i inställningarna stoppas exekveringen vid exakt stoppnivå, dvs om du definierar resultatmål stopp vid 10 ditt stopp och köpeskillingen var 50 stopporder kommer att utföras vid 55 även om Din försäljningsprismatris innehåller olika värde (till exempel stängningskurs på 56). Maximal förlust slutar fungera på ett liknande sätt - de utförs när det låga priset för en given dag sjunker under stoppnivån som kan ges som en procentandel eller punktökning från köpeskillingen. Denna typ av stopp används för att skydda vinsten som den spårar din handel så varje gång ett positionsvärde når en ny hög är bakstoppet placerat på en högre nivå. När vinsten sjunker under den bakre stoppnivån stängs positionen. Denna mekanism illustreras i bilden nedan (10 efterföljande stopp visas): Ett prov på låg nivå implementering av Profit-mål stopp i AFL: Köp Cross (MACD (), Signal ()) för (i 0 I lt BarCount i) if (priceatbuy 0 Köp i) priceatbuy BuyPrice i if (priceatbuy gt 0 Säljpriset 1.1 priceatbuy) Sälj i 1 SäljPris i 1.1 priceatbuy priceatbuy 0 annars Sälj i 0 Detta är en ny funktion i version 3.9. Positionsstorlek i backtester implementeras med hjälp av ny reserverad variabel PositionSize ltsize arraygt Nu kan du styra dollarbelopp eller procentandel av portfölj som investeras i handelspositivt antal definiera (dollar) belopp som investeras i handeln till exempel: PositionSize 1000 investera 1000 i varje handel negativt tal -100 ..- 1 definiera procentandel: -100 ger 100 av nuvarande portföljstorlek, -33 ger 33 av tillgängligt eget kapital till exempel: PositionSize -50 investerar alltid bara hälften av det aktuella kapitalet dynamiskt limeringsexempel: PositionSize - 100 RSI () eftersom RSI varierar från 0..100 det här kommer att resultera i position beroende på RSI-värden - gt låga värden på RSI kommer att resultera i högre andel investerad Om mindre än 100 av tillgängliga pengar investeras så tjänar det återstående beloppet räntan som definieras i inställningarna. Det finns också en ny kryssruta i AA-inställningsfönstret: quotAllow position size shrinkingquot - detta styr hur backtester hanterar situationen när den begärda positionsstorleken (via PositionSize-variabel) överstiger tillgängliga pengar: när denna flagg är markerad placeras positionen med storlek shinkad till tillgänglig kontant om den är avmarkerad är inte positionen inmatad. För att se aktuella positionsstorlekar använd ett nytt rapportläge i AA-inställningsfönstret: quotTrade lista med priser och pos. sizequot För slutet, här är ett exempel på Tharps ATR-baserad positionsstorleksteknik kodad i AFL: Köp ltyour buy formula heregt Sälj 0 säljer bara genom stopp TrailStopAmount 2 ATR (20) Capital 100000 VIKTIGT: Ställ det också i Inställningarna: Initial Equity Risk 0,01Capital PositionSize (RiskTrailStopAmount) BuyPrice ApplyStop (2, TrailStopAmount, 1) Tekniken kan sammanfattas enligt följande: Det totala kapitalet per symbol är 100 000. Vi fastställde risknivån till 1 av totalt eget kapital. Risknivån definieras enligt följande: Om ett eftersläpande stopp på ett 50 lager är till exempel 45 (värdet av två ATR mot positionen) är 5 förlusterna uppdelad i 1000-risken för att ge 200 aktier att köpa. Så är förlustrisken 1000 men fördelningsrisken är 200 aktier x 50share eller 10.000. Så vi tilldelar 10 av kapitalet till inköpet men riskerar bara 1000. (Redigerat utdrag från AmiBroker-postlistan) Rund lotstorlek och kryssstorlek Olika instrument handlas med olika quottrading unitsquot eller quotblocksquot. Till exempel kan du köpa bråkdel av andelar i fond, men du kan inte köpa bruttoantal aktier. Ibland måste du köpa i 10s eller 100s mycket. AmiBroker låter dig nu ange blockstorlek på global och per-symbolnivå. Du kan definiera rundstorlek per symbol på sidan Symbol-gtInformation (bild 3). Värdet på noll betyder att symbolen inte har någon speciell rundstorlek och kommer att använda quotDefault round lot sizequot (global inställning) från sidan Automatiska inställningar (bild 1). Om standardstorleken är inställd till noll betyder det att fraktionerat antal aktierkontrakt är tillåtna. Du kan också styra rundstorlek direkt från din AFL-formel med hjälp av RoundLotSize-reserverad variabel, till exempel: Den här inställningen styr lägsta prisrörelsen för den angivna symbolen. Du kan definiera den på global och per-symbolnivå. Precis som med rundstorlek kan du definiera fältstorlek per symbol på sidan Symbol-gtInformation (bild 3). Värdet på noll instruerar AmiBroker att använda quotdefault tick sizequot definierad på inställningssidan (bild 1) i Automatic Analysis-fönstret. Om standardflikstorlek också sätts till noll betyder det att det inte finns någon minimiprisrörelse. Du kan också ställa in och hämta kryssstorleken även från AFL-formel med hjälp av TickSize reserverad variabel, till exempel: Observera att inställningen för kryssstorlek påverkar ENDAST trades som lämnas av inbyggda stopp och ordet ApplyStop (). Backtestern förutsätter att prisuppgifter följer fältstorlekskrav och det ändrar inte prisuppsättningar som tillhandahålls av användaren. Så att ange fältstorlek är endast meningsfullt om du använder inbyggda stopp så att utgångspunkter genereras till quotallowedquot prisnivåer istället för beräknade. Till exempel i Japan - du kan inte ha fraktionerad delar av yen så att du bör definiera global ticksize till 1, så inbyggd slutar avsluta handel på heltal. Konto marginal inställning definierar procentuell marginal krav för hela kontot. Standardvärdet för Kontantmarginal är 100. Det innebär att du måste tillhandahålla 100 pengar för att komma in i handeln, och det här är hur backtester fungerade i tidigare versioner. Men nu kan du simulera ett marginalkonto. När du köper på marginal lånar du helt enkelt pengar från din mäklare för att köpa aktier. Med gällande regler kan du lägga upp 50 av inköpspriset på det lager du vill köpa och låna den andra hälften från din mäklare. För att simulera detta anger du bara 50 i fältet Kontantmarginal (se bild 1). Om ditt initiala eget kapital är satt till 10000 kommer din köpkraft att vara 20000 och du kommer att kunna gå in i större positioner. Observera att dessa inställningar anger marginen för hela kontot och det är INTE relaterat till futureshandel alls. Med andra ord kan du handla aktier på marginalkonto. quotReverse inmatningssignalen tvingar exitquot-kryssrutan till Backtester-inställningarna. När den är PÅ (standardinställningen) - fungerar backtester som i tidigare versioner och stänger redan öppen positon om ny inmatningssignal i omvänd riktning stöter på. Om denna strömbrytare är AV - även om omvänd signal inträffar håller backtestern nuvarande öppen handel och stänger inte positon tills den vanliga utgången (sälja eller täcka) genereras. Med andra ord när denna brytare är OFF backtester ignorerar korta signaler under långa affärer och ignorerar köpsignaler under korta affärer. quotAllow same bar exit (single bar trade) citationstext till inställningarna När den är PÅ (standardinställningarna) - inmatning och utträde i samma bar är tillåten (som i tidigare versioner) om den är AV - utgången kan hända från och med nästa stapel (det gäller för vanliga signaler, det finns en separat inställning för ApplyStop-genererade utgångar). Om du växlar till OFF kan du reproducera uppförandet av MS-backtester som inte kan hantera samma dagutgångar. quotActivate stannar immediatelyquotThis setting löser problemet med testsystem som går in i handeln på marknaden öppen. I versioner före 4,09 backtester antog du att du kom in i affärer på marknaden nära så inbyggda stopp var aktiverade från nästa dag. Problemet var när du faktiskt definierade öppet pris som handelsinträdespriset - då samma prisutveckling inte utlöst stopparna samma dag. Det fanns några publicerade lösningar baserade på AFL-kod men nu behöver du inte använda dem. Om du bara handlar öppet bör du markera quotActivate stops immediatelyquot (bild 1). Du kanske frågar varför du inte bara kontrollerar buyprice eller shortprice array om den är lika med öppet pris. Olyckligtvis kommer det inte att fungera. Varför helt enkelt för att det finns doji dagar när öppet pris är lika nära och då kommer backtester aldrig veta om handeln ingicks på marknaden öppen eller nära. Så vi behöver verkligen en separat inställning. QUOTE QuickAFLquotQuickAFL (tm) är en funktion som möjliggör snabbare AFL-beräkning under vissa förutsättningar. Ursprungligen (sedan 2003) var den endast tillgänglig för indikatorer, från version 5.14 är den också tillgänglig i automatisk analys. Ursprungligen var tanken att tillåta snabbare diagramrapporteringar genom att endast beräkna AFL-formel för den delen som syns på diagrammet. På samma sätt kan det automatiska analysfönstret använda delmängden av tillgängliga citat för att beräkna AFL, om vald parameter 8220range8221 är mindre än 8220All citationsquot. Detaljerade förklaringar om hur QuickAFL fungerar och hur man kontrollerar det finns i den här Knowledge Base-artikeln: amibrokerkb20080703quickafl Observera att det här alternativet inte bara fungerar i backtester utan även i optimeringar, utforskningar och skanningar.

Comments