Testing A Trading System


Trading Systems Coding: Testing, Feilsøking og Optimalisering Nå som du har et handelssystem designet og kodet, er det på tide å teste det for å sikre at kodingen din er fri for logiske og tekniske feil. Vi vil også se på noe som er kjent som optimalisering - en funksjon i noen handelsprogrammer som gjør at du kan finjustere dine handelsregler for å passe de aksjene du planlegger å handle på. Teste ditt handelssystem Det store flertallet av handelsapplikasjoner som støtter programmeringsspråk støtter også testverktøy. Disse verktøyene er delt inn i to kategorier: 1. Tekniske tekniske testverktøy søke etter tekniske feil i koden din. For eksempel, hvis du glemmer å legge til en semikolon etter en erklæring, vil det tekniske testverktøyet varsle deg om at erklæringen din er ugyldig. Plasseringen av det tekniske testverktøyet avhenger av handelsapplikasjonen som brukes. MetaTrader viser en feil eller feil resultater når du prøver å kompilere koden din, mens handelsprogrammer som Tradecision har et kodekontrollverktøy som er bygd inn i grensesnittet som lar deg sjekke koden din for feil før du bruker den. 2. Logiske Logiske testverktøy søker etter logiske feil i koden din. Hvis du for eksempel har brukt et større enn tegn i stedet for et mindre enn tegn (som ikke er en teknisk feil), vil et logisk testverktøy vise deg at resultatene ikke gir mening. Det mest populære logiske testverktøyet er backtesting verktøyet. Dette verktøyet lar deg ta forrige data og bruke ditt handelssystem til disse dataene. Dette gir deg en ide om følgende: Hvorvidt ditt handelssystem er lønnsomt 13 Hvilke forhold ser ut til å være mest lønnsomme 13 Hvor det er feil i reglene dine? (For mer informasjon, se Backtesting: Tolkning av fortiden.) Feilsøking av handelen din System Som med alle andre programmer, kan feilsøking være en kjedelig og vanskelig oppgave. Å finne feil i koden krever systematisk å sortere gjennom koden din for å identifisere syntaktiske feil som, selv om det ofte er mindre, kan føre til at programmet stopper. Her er noen vanlige feil å lete etter: Mangler semikoloner etter uttalelser - Disse må være etter hvert utsagn. 13 Udefinerte variabler - Husk at du må deklarere dem før du bruker dem 13 Stavefeil - Hvis noen navn eller funksjoner staves feil, vil handelsapplikasjonen returnere en feil (se eksempel nedenfor). 13 Feil bruk av () - Husk at tilordner en verdi til en annen verdi, mens den betyr lik. 13 Feil bruk av innebygde funksjoner - Rådfør deg med dokumentasjonen eller applikasjonsprogrammeringsgrensesnittet (API) for å sikre at du bruker riktig syntaks. Noen handelsapplikasjoner inneholder en funksjon som lar deg teste koden din før du bruker eller samler den. Denne funksjonen lar deg se hva feilen er og på hvilken linje den kan bli funnet. Ta Tradecision for eksempel: Her kan vi se at Tradecision gir oss plasseringen (linje og kolonne) av feilen, en beskrivelse av feilen og typen feil (i dette tilfellet er det syntaktisk). Hvis vi ser på uttrykket, kan vi se at i kolonne 8 er xrossBelow ikke en gyldig funksjon. Hvis vi erstatter x (som er i kolonne 8) med c, vil vi ha gyldig kode. Hvis vi ser på MetaTrader, kan vi se at feilene kommer opp når vi prøver å kompilere programmet: Her kan vi se at i beskrivelsen står det at BuyNow-variabelen ikke var definert. Dobbeltklikk på denne feilmeldingen vil føre oss til den spesifikke plasseringen av feilen i koden. Som du kan se, gir de fleste handelsapplikasjoner deg en enkel måte å finne tekniske feil på, og fikse dem. Å fikse feilene innebærer systematisk å gjennomgå hver feilmelding og deretter kompilere koden andor å bruke handelssystemet til diagrammer. Optimalisere ditt handelssystem Noen handelsapplikasjoner lar deg velge variabler som skal optimaliseres. Tradecision, for eksempel, lar deg enkelt velge en variabel og erstatte den med kode som vil prøve optimalisering. Optimalisering selv er bare en prosess som finner den optimale verdien for et bestemt handelssystemelement basert på tidligere resultater og ytelse. Vær oppmerksom på at overoptimalisering resulterer i handelssystemer som ikke er i stand til å tilpasse seg markedsforholdene. Derfor er det viktig å bare optimalisere noen viktige variabler, ikke alle variabler. Slik ser optimaliseringsfunksjonen ut i Tradecision: Du kan se at vi erklærte to nye variabler og sett dem lik. Det betyr ganske enkelt at handelsprogrammet vil erstatte dette med det optimale nummeret. Deretter kan du se at vi brukte de nye variablene i vår handelsstrategi. Endelig setter vi et område for tallene (slik at programmet ikke søker etter uendelig). Noen andre handelsprogrammer har funksjoner som fungerer på en lignende måte, slik at du kan erstatte tallverdien med a og fortelle handelsapplikasjonen for å optimalisere den. Konklusjon Nå skal du ha utviklet et fungerende handelssystem der du kan ha tillit. I neste del av denne serien lærer du hvordan du bruker ditt handelssystem til diagrammer og hvordan du bruker det til å foreta handelsbeslutninger9. Tilbake Testing Konkurransen om handelstesting Som jeg tidligere har nevnt, er det en ting jeg egentlig elsker om handel, at i motsetning til alle andre virksomheter kan du fullt ut teste forretningsmodellen din (tradingplan) uten å risikere noen ekte penger. I handel blir denne vurderingsprosessen kalt tilbake testing. Bakprøving er området nå mest neglisjert av handelsmenn. Ive snakket om betydningen av psykologi og pengehåndtering i tidligere kapitler, og så har mange andre handelsbusser. Så mye, det er nå en bevy av informasjon og bevissthet rundt. Du trenger bare å surfe på nettet for å se hvor mye fokus er plassert på disse områdene som det burde være. Men all oppmerksomhet ser ut til å være på bekostning av tilbakestesting. Som et resultat i handel tilbake testing, tror jeg, har nå blitt den nye minst forstått og verdsatt handel område. Hvorfor er back testing så viktig Trading back testing er viktigst fordi det direkte påvirker dine oppføringer og utganger, pengehåndtering og psykologi på følgende måter. Oppføringer og avslutter tilbaketesting gjør at du kan teste hele systemytelsen din ved hjelp av historiske data. Med den informasjonen kan du gjøre de nødvendige justeringene for å produsere resultatene du leter etter. Tilbaketesting av pengestyring gjør at du kan teste ulike modeller for styring av penger for å se hvilke som fungerer best med systemet. Psykologi som diskutert tidligere i boken, forstår systemets styrker og svakheter, selv om de bare er på papir, vil forbedre din handelstillit. Dette vil ha uendelig effekt på ytelsen din når du begynner å handle for ekte. Uansett hvilket teknisk analyse kriterium du bruker til å handle med å flytte gjennomsnitt, lysestaker, volatilitetsbrudd, Fibonacci retracements eller andre handelssystemer som du kommer til å trenge, må du teste det grundig for å fjerne eventuell tvil om dens evne. Uten å drive tilbake test, oppstår mangel på tillit og krever vanligvis handelsmenn å stille spørsmål til egne handelssystemer. De gir fristelsen til å endre sin handelsplan ofte med ødeleggende konsekvenser. Denne fristelsen kommer vanligvis fra en rekke tapende handler eller en mulighet til å erstatte sitt handelssystem med en ny whiz-bang-indikator som er den siste fadet som snakket om i chatfora. Alt som høres for godt ut til å være sant, vil tiltrekke seg en handelsmann som ikke er fornøyd med sitt handelssystem, bare fordi hun ikke har testet systemet i orden. Hun har ikke bygget opp den nødvendige tilliten som trengs for å kunne håndtere systemet hun har utviklet. Vil min handelsstrategi være lønnsom Dette er det mest spurte spørsmålet i handelsverdenen. Forfatter Mark Jurik hadde en tur på å svare på det i sin bok Computerized Trading, som vist i boks 9.1. Kilde: Jurik, M 1999, Datastyrt handel: Maksimering av daghandel og overnatting, New York Institute of Finance, New York. Men hva handler det om å teste tilbake på nytt? Trading backtesting er prosessen med å teste en handelsstrategi ved hjelp av historiske data i stedet for å teste det i sanntid med ekte penger. De beregninger som er oppnådd ved testing, kan brukes som en indikasjon på hvor godt strategien ville ha utført dersom den hadde blitt brukt på tidligere bransjer. Tolkning av disse resultatene gir da forhandleren tilstrekkelige beregninger for å vurdere handelssystemets potensial. Logisk vet vi at resultatene fra denne typen test ikke vil kunne forutsi fremtidig avkastning med presisjonsnøyaktighet, men det kan gi en indikator på om du bør selv forfølge et handelssystem eller ikke. Hva mer, hvis du bestemmer deg for å fortsette å handle med systemet, vil det gi deg veiledninger om hva du kan forvente. Men spørsmålet gjenstår: hvordan kan du teste en trading system ytelse over tid Det er bare to måter å gjøre dette manuelt eller med dataprogramvare. For å være ærlig, er dataprogram det eneste virkelige alternativet. Jeg har prøvd begge testmetoder og manuell testing er ikke bare tidkrevende, men veldig vanskelig å replikere og teste effektivt. Fordelene som kommer fra trading backtesting programvare kan ikke overvurderes. Det vil spare deg tid og gi en endeløs mulighet til å finjustere og teste systemet ditt. Et lite utlegg i kapital for å kjøpe god programvare for tilbakeringstesting vil potensielt spare deg tusenvis på markedet. Det er en veldig smart investering hvis du vurderer å designe et vellykket og mekanisk handelssystem. Mekanisk tilbakestilling Vennligst forstå, så lenge ditt mekaniske handelssystem utelukkende fungerer med prisdata (åpent, høyt, lavt, nært, volum), vil du kunne bruke programvare for tilbakestilling. For eksempel, si at du oppretter et mekanisk handelssystem med følgende oppføringsregel: Regel: Kjøp en sikkerhet når 10-dagers glidende gjennomsnitt av sluttkurs går over 30-dagers glidende gjennomsnitt av sluttkurs. Denne regelen kan testes ganske enkelt over historiske data. På den annen side kan kjøpesignalregelen være litt mer komplisert, for eksempel: Regel: Kjøp sikkerhet når 10-dagers glidende gjennomsnitt av sluttkursen krysser over 30-dagers glidende gjennomsnitt av sluttkurs og PE-forholdet var 75 eller lavere enn verdien tre måneder før. Denne regelen introduserer data som ikke ofte leveres eller vedlikeholdes i en database med prisinformasjon. For å lykkes tilbake testen vil dette innebære å skaffe historiske data for et sikkerhetssystem, samt pris-til-fortjenestforholdet (PE-forholdet). Typisk vil historiske data på en gruppe aksjer bare inneholde åpne, høye, lave, lukkede og volum for hver periode. På grunn av denne begrensningen er mange mekaniske handelssystemer designet rundt rent tekniske indikatorer. Dessverre er det meste mekaniske handelssystem basert på grunnleggende data utover omfanget av detaljhandel investorer på grunn av mangel på historiske data tilgjengelig for å gjennomføre en komplett trading back test. Back testing software Heldigvis har mange kartleggingspakker i dag mange tester som er innebygd. Hvis du fulgte prosessen for å velge en kartleggingspakke i det forrige kapitlet, burde du enten ha funnet en med tilbakestillingstester inkludert eller funnet en som er kompatibel med en annen off-the-shelf pakke. For de av dere som bestemte meg for å kjøpe MetaStock i kapittel 8, er TradeSim 8211 ultimate-trading-systemstradesim trolig den mest realistiske, ekte handelssimulatoranalyser jeg har funnet. Det kan raskt teste og evaluere et handelssystem, enten det er en sikkerhets - eller en sikkerhetsportefølje. Jeg tror at tading tilbake testing er den eneste måten å fjerne selvtillit. Når du først har etablert at du har et pålitelig og robust handelssystem, vil du være trygg på å handle det. På samme måte som kartleggingsprogramvaren, sørg for at du kjenner pakken din tilbake til forsiden. Du vil ikke kunne få det beste ut av det med mindre du forstår fullt ut hvordan det fungerer og hva du kan gjøre med det. Alternative løsninger Dessverre har jeg sett mange klienter aldri helt få det med hensyn til tilbake testing. For mange er tilbakemeldingsprogramvare ganske enkelt for teknisk. Hvis du faller inn i den kategorien, ikke gi opp. Det er et kritisk skritt i systemdesignprosessen. For de mindre tekniske har jeg funnet en løsning som heter Trading Performance Analyzer ultimate trading-systemstpa. Det er lett å bruke og perfekt for å analysere systemet før du handler det i sanntid. Viktig merknad: Hvis du finner deg selv testing og re-testing i håp om å snuble over den sølvkulen, husk, vil du aldri opprette et handelssystem som har en 100 suksessrate. Mange har prøvd (selv inkludert) og alle har mislyktes. Du bør være på utkikk etter et godt trading system med minimal drawdown og en god risiko-til-belønning ratio. Many handelssystemer har mer tapende handler enn de vinner og likevel tjener de fortsatt penger. Hvordan Money Management. (Se kapittel 6.) Det siste stykket i systemdesign puslespillet er å ta handelssystemet du har designet i de forrige kapitlene og teste det. Ved å teste systemene dine har du nettopp satt deg blant de øverste 1 av handelsmenn, og sikrer din suksess. Gratulerer Kjøpe en handel tilbake test pakke: TradeSim 8211 ultimate-trading-systemstradesim Trading Performance Analyzer 8211 ultimatetradingsystemstpa Lær din valgte programvare for bakre testing innvendig og utvendig. Tilbake test ditt nyutviklede system, inkludert inngangs-, utgangs - og pengestyringsregler. Har du sjekket ut Portfolio123 For 50 dollar i måneden du skjermer for grunnleggende og tekniske variabler, backtest det, gjør robusthetstest (tilfeldige oppføringer hundrevis for å sikre at du ikke har kirsebær plukker resultatene), og simuleringstesting med separate kjøp og salg regler , slippage, tilpassede universer, bla, bla, bla. Du kan bruke den i 45 dager som en gratis prøveversjon hvis du bruker koden HKURTIS når du registrerer deg for å teste den ut. Før Portfolio123 trodde jeg at bare Zacks Research Wizard var et lavprisalternativ 8211, men hundrevis av dollar for vannet versjon, overlevelsesforstyrrelser og andre problemer 8211 nei takk. IMO sin institusjonelle karakter programvare for ca 120th kostnaden. Jesuraj 7 mars 2012 klokka 5:07 hei Dave, jeg skjedde å lese dette gode aritcle. I Metastock vil jeg gjerne bestille overskudd for bare halvparten av min stilling, og jeg kunne ikke finne en måte å gjøre dette på. Kan du gi meg beskjed om slik testing er mulig i Metastock. Takk og hilsen JesurajHow å backtest trading systemer og unngå kurve montering For å bedømme hvor godt et bestemt handelssystem skal fungere i fremtiden, vi backtest det på tidligere markedsdata. Backtesting gjelder et sett med handelsregler til historiske data for å anslå hvordan disse reglene ville ha utført hvis vi faktisk hadde handlet dem. Gode ​​hypotetiske historiske resultater garanterer ikke at et sett med regler vil fungere godt i fremtiden. Imidlertid betyr dårlige hypotetiske historiske resultater nesten sikkert at et system ikke bør handles i sanntid. Den oppfattede verdien av backtesting er forankret i troen på at historiske tendenser gjentar. Traders har testet strategier for historiske data i generasjoner. Men øvelsen ble populær med adventen av personlige datamaskiner og spesialbygget systemtestingsprogramvare. som System Writer, som utviklet seg til TradeStation. Denne programvaren og en database med historiske data tillot dem uten en kodeskrivende bakgrunn for å teste handelssystemets ideer. Bredere forståelse og aksept av handelssystemer, samt frustrasjonen mange opplevde da de forsøkte å bygge handelssystemer alene, hjalp markedet for tredjepartssystemer til å blomstre gjennom 1990-tallet. Futures Truth er et uavhengig selskap som har sporet kommersielt tilgjengelige handelssystemer siden 1980-tallet. For tiden sporer det mer enn 500 systemer. Futures Truth tester trading systemer i sanntid, ikke på historiske data. Dette forhindrer endring av regler over tid og bedre simulerer regelutførelse i faktiske markedsforhold, for eksempel perioder med høy volatilitet. Ifølge Futures Truth er bare om lag 45 av de spore systemene lønnsomme på lang sikt, mens bare 20 har hatt et godt risikovilkår. Imidlertid er disse tallene sannsynligvis bedre enn de bredere populationrsquos fordi bare de leverandørene som er helt trygge i sin logikk, slår den over til Futures Truth for sanntidsanalyse og offentlig kritikk. Så mange systemer feiler fordi de mangler en gyldig premiss. I stedet kommer inn - og utgangsparametrene fra datautvinning. Data mining skanner bare historiske data for regler som ville ha fungert tidligere. Ofte er slike regler tilpasset nettopp til fortiden og har ikke noe håp om å jobbe noe bedre enn tilfeldig på usynlige data. I stedet bør systemutvikling starte med en teori som kan testes, analyseres og finjusteres for applikasjon. Dette konseptet innebærer også et annet perspektiv på systemtesting selv: Målet med backtesting er ikke å produsere en samling hypotetisk fortjeneste og tapstatistikk. Det er å teste gyldigheten av teorien og nøyaktigheten av reglene for å ta utgangspunkt i premisset. Systemtesting er en flerfasettert prosess fra dataene til tidsskalaen, for å bestemme inntaksforutsetninger, kontraktsdetaljer og risikokontroll. Manglende på noen av disse kan ødelegge en ellers gyldig test mdash eller manipulere dem kan generere resultater som er langt bedre enn hva vi ville oppnå i sanntid. Du må gjøre det riktig hvis du håper å validere mdash eller når det er hensiktsmessig, ugyldiggjør mdash systemet ditt. Verktøy av handel Det er to elementer for backtesting: De riktige verktøyene mdash programvare og data mdash og en vitenskapelig metode for å utvikle systemer som bruker disse verktøyene. Letrsquos starter med å se på verktøyene i handelen. Mange alternativer er tilgjengelige for å teste dine ideer. De adskiller seg i det enkle å skifte ideer til kode og hvordan de håndterer detaljene, noe som kan ha stor innvirkning på resultatene. For eksempel, hvis et system går inn i en grenseordre, registrerer noen programvare en fylling hvis den prisen blir berørt. Imidlertid er det neppe en garanti for at en slik ordre ville ha blitt fylt ut i reell handel, og det er heller ingen garanti for at den blir vunnet. Entering on stops garanterer en oppføring, men ikke en pris. Et annet problem er å registrere reelle priser. Selv om mest profesjonelt utviklet programvare ikke lenger har dette problemet, er det fortsatt en bekymring for de som manuelt tester systemer i regneark, for eksempel Microsoft Excel. For eksempel, hvis et system kjøper på et stopp som er lik det nære pluss en tredjedel av gjennomsnittlig rekkevidde i løpet av de siste tre periodene, og hvis gjennomsnittlig rekkevidde er 10, så kjøper vi på nært pluss 3.333. Hvis vi handler E-mini SampP 500, handler den i 0,25 tick størrelser. Dette betyr at inngangsdifferensialet må runde opp til 3,50. En begynnelsehandler kan ikke innse dette hvis man manuelt knuser tall, og det var ikke så lenge siden at mange profesjonelle programmer gjorde samme feil. Over tid kan en slik feil gi opp til en betydelig forskjell. I det store bildet er imidlertid slike prosessuelle detaljer mindre. Det store problemet er data. relaterte artikler

Comments

Popular posts from this blog

Sybase Iq Moving Average

How To Unngå Kapital Gevinster Skatt On Aksjeopsjoner

Margin Nivå Forex Definisjon