Sunday 12 November 2017

Testing A Trading System


Trading Systems Koding 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 kalles 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øk etter tekniske feil i koden For eksempel, hvis du glemmer å legge til et semikolon etter en erklæring, vil det tekniske testverktøyet varsle deg om at erklæringen er ugyldig. Plasseringen av det tekniske testverktøyet avhenger av handelen applikasjon som brukes MetaTrader viser en feil eller feilresultat når du prøver å kompilere koden din, mens handelsapplikasjoner som Tradecision ha ve en kodekontroll verktøy innebygd i grensesnittet som lar deg sjekke koden din for feil før du bruker den.2 Logiske Logiske testverktøy søke etter logiske feil i koden For eksempel, hvis du skjedde å bruke et større enn tegn i stedet for en 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 tidligere data og bruke ditt handelssystem til dataene. Dette gir deg en ide om følgende. Hvorvidt ditt handelssystem er lønnsomt. Hvilke forhold viser seg å være mest lønnsomme. Hvor det kan oppstå feil i reglene dine. For mer informasjon, se Backtesting Tolkning fortiden. Feilsøking av handelssystemet ditt Som med enhver annen type programmering, 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 bringe programmet til et stopp. Her er noen vanlige feil å lete etter. Feiler semikoloner etter uttalelser - Disse må være etter hver setning. Udefinerte variabler - Husk at du må deklarere dem før du bruker dem. Spillefeil - Hvis noen navn eller funksjoner er stavet feil, vil handelsapplikasjonen returnere en feil, se eksempel nedenfor. Feil bruk av - Husk at tilordner en verdi til en annen verdi, mens det betyr lik. Inkorrekt bruk av innebygde funksjoner - Ta kontakt med handelsprogrammet s dokumentasjon eller applikasjonsprogrammeringsgrensesnitt-API for å sikre at du bruker riktig syntaks. Noen handelsapplikasjoner inneholder en fe Ature som lar deg teste koden din før du bruker eller kompilerer den. Denne funksjonen lar deg se hva feilen er og hvilken linje den kan bli funnet. Ta Tradecision for eksempel. Her kan vi se at Tradecision gir oss posisjonslinjen og kolonnen for 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 ac, så 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 Dobbelklikk På denne feilmeldingen får vi 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 involverer bare systematisk å gjennomgå hver feilmelding og så recom hylle koden og eller bruke handelssystemet til diagrammene. Optimalisere ditt handelssystem Noen handelsprogrammer lar deg velge variabler som skal optimaliseres. Tradecision lar deg for eksempel enkelt velge en variabel og erstatte den med kode som vil forsøke optimalisering Optimalisering selv er bare en prosess som finner den optimale verdien for et bestemt handelssystemelement basert på tidligere resultater og ytelse. Merk at overoptimalisering resulterer i handelssystemer som ikke klarer å tilpasse seg markedsforholdene. Derfor er det viktig å bare optimalisere noen viktige variabler, ikke alle variabler. Her er det som optimaliseringsfunksjonen ser ut i Tradecision. You kan se at vi erklærte to nye variabler og sett dem lik The betyr ganske enkelt at handelsprogrammet vil erstatte dette med det optimale tallet. Deretter kan du se at vi brukte de nye variablene i vår handelsstrategi. Til slutt bestemmer vi en rekkevidde 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 den numeriske verdien med en og fortelle handelsapplikasjonen for å optimalisere den. Konklusjon Nå skal du ha utviklet et fungerende handelssystem der du kan ha tillit. neste del av denne serien vil du lære hvordan du bruker ditt handelssystem til diagrammer og hvordan du bruker det til å gjøre trading decisions. How å backtest trading systemer og unngå kurve montering. For å bedømme hvor godt et bestemt handelssystem skal fungere i fremtiden , tilbakestrømmer vi det på tidligere markedsdata Backtesting bruker et sett med handelsregler til historiske data for å anslå hvordan disse reglene ville ha utført hvis vi faktisk hadde handlet dem. Godt hypotetiske historiske resultater garanterer ikke at et sett med regler vil fungere godt i fremtiden Imidlertid dårlige hypotetiske historiske resultater nesten sikkert betyr at et system ikke bør handles i sanntid. Opplevd verdi av backtesting er forankret i troen på at historica Tendenser gjenta Traders har testet strategier for historiske data i generasjoner Men øvelsen ble populær ved 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 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 hele 1990s. Futures Truth er et uavhengig selskap som har sporet kommersielt tilgjengelige handelssystemer siden 1980-tallet. I dag sporer det mer enn 500 systemer Futures Truth tests trading systems i sanntid, ikke på historiske data. Dette forhindrer endring av regler over tid og bedre simulerer Regel utførelse i faktiske markedsforhold, for eksempel perioder med høy volatilitet Accord inntil Futures Truth, er bare om lag 45 av de spore systemene lønnsomme på lang sikt, mens bare 20 har hatt en god risikobeløp. Imidlertid er disse tallene sannsynligvis bedre enn den bredere befolkningen s fordi bare de leverandørene virkelig er sikre på deres logikken overgår til Futures Truth for sanntidsanalyse og offentlig kritikk. Så mange systemer feiler fordi de mangler en gyldig premiss I stedet er inn - og utgangsparametrene avledet fra data mining Data mining skanner bare historiske data for regler som ville ha jobbet i fortiden ofte slike regler passer perfekt til fortiden og har ikke noe håp om å jobbe noe bedre enn tilfeldig på usynlige data i stedet, systemutvikling bør starte med en teori som kan testes, analyseres og finjusteres for søknad dette konseptet også innebærer et annet perspektiv på systemtesting selv Målet med backtesting er ikke å produsere en samling hypotetisk fortjeneste og tapsstatistikk. Det er å teste validiteten til teorien og nøyaktigheten av reglene for å fange premissen. Systemtesting er en mangesidig prosess fra dataene til tidsskalaen, for å bestemme inntaksforutsetninger, å kontraktsspesifikke og risikokontroll. Hvis ingen av disse kan ødelegge, kan en ellers gyldig test ødelegges eller, manipulere dem kan generere resultater som er langt overlegne enn hva vi ville oppnå i sanntid. Du må gjøre det riktig hvis du håper å validere eller når det er hensiktsmessig, ugyldiggjøre systemet. Verktøy av handel. Det er to elementer for å sikkerhetskopiere. De riktige verktøyene programvare og data og en vitenskapelig metode for å utvikle systemer ved hjelp av disse verktøyene. La oss starte med å se på verktøyene i handelen. Mange alternativer er tilgjengelige for å teste dine ideer. De er forskjellige når det gjelder å gjøre ideer til kode og hvordan de håndterer detaljene , 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. Det er imidlertid ingen garanti for en slik ordre ville ha har blitt fylt ut i reell handel, og det er heller ingen garanti for at det kommer til å være Inntasting på stopp garanterer en oppføring, men ikke en pris. Et annet problem registrerer reelle priser. Mens de fleste profesjonelt utviklede programmer ikke lenger har dette problemet, er det fortsatt et problem 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ært pluss en tredjedel av gjennomsnittlig rekkevidde i løpet av de siste tre periodene, og hvis gjennomsnittlig rekkevidde er 10, så kjøper på nært hold plus 3 333 Hvis vi handler E-mini SP 500, handler det i 0 25 kryssstørrelser Dette betyr at inngangsdifferensialet må runde opp til 3 50 A begynnerhandler kan ikke innse dette hvis manuelt knasker tall, og det var ikke så lenge siden at mange profesjonelle programmer gjorde den samme feilen. Over tid kan en slik feil gi opp til en betydelig forskjell. I det store bildet er slike prosessuelle detaljer imidlertid mindre. Det store problemet er data. Relaterte artikler. Dette sider viser riktig m etodologi for å sette opp et handelssystem for best mulig bruk. Det første punktet som kommer til de fleste gjennomsnittlige handelsmennesker, er hvor mye arbeid er involvert i å gjøre denne viktige oppgaven riktig. Så du kan stille deg noen spørsmål før du starter. Er du dedikert . Vil du ha høy inntekt og en god fremtid uten penger bekymringer. Kan du holde deg til et system uten å gjette signalene. Er du forberedt på å sette i 2-6 måneder med intensiv forskning for å få ønsket no2 result. Have du har tålmodighet til å handle, men ulemper som kan være 20-30 eller mer. Har du tålmodigheten til å tåle lange undervannsperioder på opptil ett år. Hvis svaret på alt ovenfor er ja, så kan du lese videre. Step 1 Opprett listen over markeder og frøs datasettet over et statisk datoperiode. For å være trygg på solide resultater må du teste systemet ditt på et stort utvalg av markeder. Sørg for at du har mye data minst 5 år Pass på at du fastsetter datoene for testingen din slik at resultatene er rettferdig, fordi hvis du kontinuerlig oppdaterer datasettet, vil nyere tester vise forskjellige resultater ettersom flere datastrømmer i. Step 2 Start med et bredt spekter av grove tester. For å være sikker på at du har spikret alle innstillingene riktig, begynner du å teste med innstillinger som er veier å bremse og løpe helt til innstillinger som er altfor fort. Den tregeste innstillingsvinduet på venstre side produserte kun 2945 handler på 123 aksjer i løpet av ti år, og den raskeste innstillingen produserte mer enn 44.000 handler på samme liste. Hvis systemet ditt er robust, vil du sannsynligvis observere et fint distribusjonsmønster som vist i diagrammet til venstre. Bare vi kan se at Precisionstopp 2011 er lønnsomt i alle de viste innstillingene og mest suksess er oppnådd i området med flere innstillinger mellom 0 7 og 0 4. Når du har gjort grove testingen, kan du se nærmere på systemets søte flekk, med stor oppmerksomhet på nedtrekkene, girnivåene og undervannsverdiene. Merk det er veldig im viktig for å standardisere girnivåer i hvert løp, vil det bli observert at høyere frekvenssystemer gir høyere gir enn F-modeller, da systemet er mer lydhør overfor de siste egenkapitalendringene. Vær sikker på å logge ut girresultatene dine og test om til du har samme gjennomsnittlig nivå for hver test. Hvis du ikke gjør dette, vil testetiden din være bortkastet, ettersom ingen realistiske sammenligninger kan oppnås. Steg 3 Undersøk systemets søte punkt ved å kjøre over det samme datasettet med en finere trinnvise trinn. Når du har gjort den finere testingen vil du da se hvilke innstillinger som er best. Diagrammet til venstre viser igjen en fin bellkurvform som indikerer et meget robust system. Det er tydelig at 0 5 flere har vist seg best over datasettet og er en klar vinner. På dette punktet kan du se dine nedturer og undervannsverdier for å finne ut om modellen er noe du kan holde fast i i faktisk handel. Som om du ikke klarer å holde fast i modellen, må du gjøre justeringer til systemet passer til personligheten din. Merknad er det svært viktig å ta korte notater for hver test som angir observasjonene du har gjort. Steg 4 Undersøk resultatene med hensyn til detaljer. Tabellen under viser resultatene av de detaljerte, små trinnene, de beste feltene vises i blått, verste i rødt. Precisjonsstoppet 2011 virket best på 0 5 flere innstillinger i denne testen som demonstrerer en svært robust fordeling av resultatene lønnsomme i alle innstillinger som brukes. Du kan tydelig se hvordan undervannet UW går gjennom taket når systemet blir raskere da provisjonene brenner opp fortjenesten i roligere markedsperiode. Utstyret opprettholdes på 4 5 med en toleranse på 0 3 på resultatene, 0 4 testen viser 4 779 giring, men det er ikke verdt å omprøve som undervannsverdiene er veldig høy. Steg 5 Undersøk systemet på et annet sett med data. Du kan observere testingen mitt over et annet datasett på simuleringsvideo-siden. Ved bruk av 0 5-innstillingen og gjennomsnittlig utveksling av 4 459 egenkapital, resulterer resultatet ts var et overskudd på 176.755.656 med en maksimal nedtelling på 24 29 med 260 dager maksimal undervann som helt blåser bort resultatene i tabellen ovenfor. Hvis du lurer på hvorfor en slik stor forskjell i fortjeneste, er poenget dette viser betydningen av velge gunstige markeder for handel. Hver test utført på forskjellige datasett vil produsere villige svingninger i resultatene, og faktisk når jeg har testet på kirsebærvalgte markeder som er kjent for å fungere godt sammen med systemene mine, vil overskuddet overstige trillioner. Steg 6 Sjekk din Resultatene er nøyaktige. Hele poenget med å gjøre systemtest simuleringer er å få en følelse av hvordan systemet skal utføre i nåtiden ved å kjøre den i løpet av fortiden. Jo lengre løp av data du tester, jo mer er sjansen for å finne markedet forhold som ligner dagens forhold, å sette omkostningene nøyaktig og gjøre kvoter for slippe er viktig før du kan sette noen form for tro på ditt valgte system. Hvis du har te Sting mistenker at du vil kjenne det i bakhodet, og dette vil trolig føre deg til å hoppe på en av systemet, andre gjette når det handler og ikke være i stand til å holde fast i det i lang tid. Steg 7 Sammenlign andre systemer over de samme datasettene. Selv om systemet din test gir gode resultater, er det viktig å fortsette å lete etter noe bedre, da det er mange lyse sjeler der ute i verden som designer systemer som det er veldig bra, det er en god ide å beholde Kontroller at det valgte systemet er virkelig det beste du kan finne. Noen av de brukte uttrykkene er kanskje ikke kjent med deg, så lavere ned på siden er en detaljert forklaring av vilkårene som brukes. Etter at du har sett videoen vil du se meg klikk På Generer Excel-rapport, er denne faktiske rapporten tilgjengelig for nedlasting for din egen gjennomgang. Hvis du har problemer med å vise alle tallene når du ser på videoen, kan du prøve å justere oppløsningen til 720 HD som finnes på videoverktøylinjen, så vil videoen bli HD. Jeg skal jeg være Legge til noen sammenligningsvideoer som viser Donchians 210-dagers trendsystem i forhold til Precision Stop 2011-modellen Richard Donchian antas å være den første personen å designe et trend-følgesystem, og den svært enkle modellen han brukte gikk lenge kjøpt da en 210 dagers høy ble rammet , og gikk kort solgt da en 210 dagers lav ble rammet. Den motsatte tilsvarende 210 dagers verdien brukes som stoppoppføring for neste handel. Mens Donchian-systemet er veldig grunnleggende, har det faktisk en tendens til å gi rimelig fortjeneste i det lange løp på bekostning av store nedslag Før handelsmenn avviser Donchian-modellen som rå og altfor enkel, er det også bra å huske at hans arbeid er hjørnesteinen av all trenden som følger med dagens systemer. Donchian-systemet ble testet av Ed Seykota på en gamle Fortran-datamaskin for mange år siden, med bruk av stempelkort, til sin forbauselse, fant Mr Seykota det å være lønnsomt, så han gikk på designet sin egen eksponentielle glidende trend etter modell, og inspirerte mange o Precisere Stopp 2011 er bare en trend etter modell basert på mine mange års handel, testing og teknisk analyse erfaring. Noen av mine inspirasjon for å designe denne modellen er et resultat av å studere arbeidet til de to nevnte herrene , søker forbedringer der jeg var i stand til å finne dem. Det er ulikt Seykota-modellen og Donchian-modellen, den eneste vanlige faktoren er at den følger trender på mer presis måte. Roger Medcalf 2010.Additional clarification information. As testen brukte sluttpriser for Åpne høyt lavt nært, det er ikke mulig å trekke ut budet og spørre prisene For å omgå dette nøyaktig er det to separate funksjoner lagt til for å gi en realistisk simulering. Spread prosent Hvis systemet kjøper en aksje som har en sluttpris på 100p og spread prosent er satt til 1 5 dette betyr at det vil se data spør 101 5 og bokhandel basis for det samme Det samme skjer når handler er stengt ut Så hvis handelen ble åpnet og lukket på samme 100 p-nivå ville det selge til en pris på 98 5p, noe som gir en total avtalekostnad på 3 per handel. Noen aksjer i testen har en stram spredning på mindre enn 0 25 og andre er bredere opptil 5, slik at denne funksjonen utgjør det pent. Slippage-faktor Denne tilleggsfunksjonen gjør systemet testing enda strengere, da det da legger til flere kostnader til ligningen EG hvis den tilsiktede inngangsprisen er over 101 5 og dagene høye er 105, simuleringen vil bestille denne handelen på 101 5 105 2 gjør et inngangsnivå på 103 2.Software Vær oppmerksom på at programvaren som genererte denne simuleringen, ikke er til salgs for publikum, da det er min egen proprietære programvaredesign. Til salgselementet er Precisionstoppet 2011 som er et tillegg til Tradestation alle versjoner og Multicharts alle versjoner som skal for utgivelse i januar 2011.

No comments:

Post a Comment