Saturday 30 September 2017

Trading System Design Og Optimalisering


Høyfrekvent handelssystemdesign og prosesshåndtering Høyfrekvent handelssystemdesign og prosesshåndtering Rådgiver: Roy E. Welsch. Avdeling: Systemdesign og Management Program. Utgiver: Massachusetts Institute of Technology Utgitt: 2009 Handelsfirmaer i dag er svært avhengige av data mining, datamodellering og programvareutvikling. Finansanalytikere utfører mange lignende oppgaver til de innen programvare og industri. Finansnæringen har imidlertid ennå ikke fullt ut vedtatt høyteknologiske systemkonstruksjonsrammer og prosesshåndteringsmetoder som har vært vellykkede i programvare - og produksjonsindustrien. Mange av de tradisjonelle metodene for produktdesign, kvalitetskontroll, systematisk innovasjon og kontinuerlig forbedring som finnes i ingeniørfagene, kan brukes på finansområdet. Denne oppgaven viser hvordan kunnskapen fra engineering disipliner kan forbedre design og prosesshåndtering av høyfrekvente handelssystemer. Høyfrekvente handelssystemer er beregningsbaserte. Disse systemene er automatiske eller halvautomatiske programvare systemer som er iboende komplekse og krever en høy grad av design presisjon. Utformingen av et høyfrekvent handelssystem knytter sammen flere felt, inkludert kvantitativ økonomi, systemdesign og software engineering. I finansindustrien, hvor matematiske teorier og handelsmodeller er relativt godt undersøkt, er evnen til å implementere disse designene i ekte handelspraksis et av hovedelementene i et investeringsselskaps konkurranseevne. Evnen til å konvertere investeringsideer til effektive handelssystemer effektivt og effektivt kan gi et investeringsselskap en stor konkurransefortrinn. (Forts.) Denne oppgaven gir en detaljert studie som består av høyfrekvent trading systemdesign, systemmodellering og prinsipper og prosesshåndtering for systemutvikling. Spesiell vekt legges på sikkerhetskopiering og optimalisering, som anses som de viktigste delene i å bygge et handelssystem. Denne forskningen bygger systemteknikkmodeller som styrer utviklingsprosessen. Det bruker også eksperimentelle handelssystemer til å verifisere og validere prinsipper som tas opp i denne oppgaven. Til slutt konkluderer denne oppgaven at systemstekniske prinsipper og rammer kan være nøkkelen til suksess for å implementere høyfrekvent trading eller kvantitative investeringssystemer. Avhandling (S. M.) - Massachusetts Institute of Technology, Systemdesign og Management Program, 2009. Katalogert fra PDF-versjon av avhandling. Inkluderer bibliografiske referanser (s. 78-79). Nøkkelord: System Design og Management Program. Mine AccountTrading-systemer: Feilsøking og optimalisering 1313 Selv etter at du har utviklet og utviklet et fungerende handelssystem, kan en næringsdrivende oppleve at hans eller hennes system er ufullstendig. Det kan være noen problemer, for eksempel en hendelse som fortsetter å generere tap eller kanskje reglene er for brede og må optimaliseres. Hva er den enkleste måten å løse problemet Hvor effektiv er optimalisering Denne delen viser deg hvordan du feilsøker og optimaliserer handelssystemet for å maksimere fortjenesten og minimere tap. Feilsøking Feilsøking er et svært viktig aspekt ved systemutvikling. Et anstendig handelssystem vil være lønnsomt under de fleste markedsforhold, men hvis det noen ganger gir store tap, kan du jobbe for å identifisere og løse problemet. Her er fire enkle trinn: 1. Identifiser problemet - Finn alle forekomster der problemet oppstod under backtesting, og eller begynn å ta opp når problemet oppstår under live trading. I hvert tilfelle legger du merke til noen tendenser i følgende fire faktorer: Kartmønster eller prisserier - Spike i prisene.13 Volum - Stort volum i utgangspunktet og lavt volum deretter.13 BidAsk spredning - Spike i pris på lavt volum indikerer ofte en stor spredning.13 Margin (hvis brukt). 13 13Dette er noen av områdene der det kan oppstå problemer som vi kan se ved å analysere tabellen nedenfor. Legg merke til prispistene på lavt volum med den grønne pilen. Legg også merke til det store volumet (nær den blå pilen) etterfulgt av lavt volum deretter. Hvis ingen av disse viser seg å være skyldige, er det andre faktorer som kan analyseres, for eksempel blokkstørrelser og avanserte diagrammønstre.2. Evaluer problemet - Bruk informasjonen du samler for å finne ut hva som nettopp forårsaket feilen i systemet eller for å gi et tap. Dette gjøres ofte ved å bruke sunn fornuft, eller ved å analysere transaksjonslogger (levert av megleren). Her er eksempler på hvordan enkelte forhold i de fire faktorene som er oppført ovenfor, kan være årsaken til et identifisert problem: Kartmønster eller prisserier - Systemet kan ikke selges under skarpe nedganger eller kjøp under bratte klatrer. Kanskje hadde systemet ikke god tid til å kjøpe eller selge. Volum - Systemet kan ikke selge under nedgang eller kjøp under økninger. Kanskje egenkapitalen har så lavt handelsvolum at systemet ikke kan kjøpe eller selge til en pris. Under disse tilfellene kan prisen være misvisende uten hensyn til volum og budskap. BiddAsk spread - Systemet gjør et kjøp, men fortjener ikke så mye som det burde når det selges. Dette kan skyldes det faktum at næringsdrivende glemte å vurdere budsjettspesifikasjoner. Hvis et system er programmert til å kjøpe og selge til dagens pris, betaler det faktisk spørsmålet. og når den selges, selger den ikke til gjeldende pris, men til budsummen. Noen ganger kan forskjellene mellom budet og spørsmålet være stort, noe som fører til uønskede tap. Margin - Systemet plutselig selger uten tilsynelatende grunn. Hvis dette skjer, kan du ha glemt å vurdere marginanrop. 13 3. Tenk på alternativene - Prøv bare noen løsninger på problemene du har identifisert. Vurder følgende alternativer som svarer til de ovennevnte problemene. Kartmønster eller prisserier - Ett alternativ er bare å fortelle systemet å vente til prisen stabiliserer før du kjøper. Dette kan gjøres ved å bruke forskjellene mellom de foregående prisene og gjeldende pris for å lage en regel. Volum - For å løse dette problemet kan du opprette en regel som krever at egenkapitalen har en viss mengde volum før du utfører en handel. spredt - Her kan du kjøpe og selge basert på bud og spørrepriser i stedet for gjeldende pris. Margin - Bruke margin kan være lønnsomt dersom risikoen styres effektivt. Begrensende ulemper bør holde deg fra å motta marginanrop. Dette kan gjøres med etterfølgende stoppfallspunkter eller annen lignende taktikk for å begrense ulemper. 13 4. Implementere en løsning - Til slutt må vi søke løsningen og se hvordan den fungerer. Papirhandel eller tilbakeprøving igjen før live trading er ofte en god ide etter å ha søkt en løsning fordi noen ganger løsninger har utilsiktede konsekvenser. For eksempel kan ytterligere regler begrense disse nedtidene, men også redusere totalresultatet (på grunn av ubesvarte muligheter). Optimalisering Optimering betyr ganske enkelt å finne de beste settene med parametere for et gitt marked. Denne prosessen kan marginalt forbedre resultatene. Det bærer imidlertid også mange risikoer fordi den underliggende forutsetningen er at tidligere resultater er indikativ for fremtidige prisbevegelser. Optimalisering kan oppnås ved å endre verdiene til parameteren du vil optimalisere, og deretter teste disse endringene. Husk at de andre parametrene må forbli konstant for effektene av endringene som skal bestemmes. Når du har funnet verdien som gir den høyeste ytelsen i back testing, implementer den i handelssystemet. La oss vurdere et eksempel. Si en forhandler analysert SampP 500 og fant ut at han eller hun kunne optimalisere systemet ved å bruke et daglig kart. Denne samme prosessen kan også tas i høyere grad. For eksempel, hvis et enkelt glidende gjennomsnitt på 6 fungerer bedre enn 8 for en MA-crossover-strategi i et gitt marked, vil 6 bli brukt. Problemet her er ikke bare i antagelsen, men også i det faktum at systemet kan virke verre på mange andre markeder, og dermed gjøre det mindre universelt. Mange systemutviklere avgir optimaliseringstrinnet av disse to grunner: Optimalisering oversetter ofte resultatene. Dette skyldes at parametrene er så spesifikke og ikke-universelle at eventuelle endringer i markedet (det vil si fremtiden) kan forårsake ustabilitet. I mange tilfeller vil optimalisering ikke forbedre ytelsen med en meningsfull grad. Små forbedringer kan være tydelige, men fortabelsen av universalitet er en høy pris å betale. 13 Som hovedregel bør optimalisering bare definere brede innstillinger for parametere i stedet for å sette opp bestemte regler - selv om det var vellykket i backtesting og papirhandel. Konklusjon Feilsøking er avgjørende for at systemet skal fungere slik du vil. Det er viktig å identifisere eventuelle problemer ved å observere tilfeller der de skjedde, og deretter vurdere hvordan bestemte forhold i flere faktorer - for eksempel prismønster, volum, budspredning og margin - kan ha forårsaket problemet. Optimalisering kan forbedre resultatene dine, men det er viktig å huske at det har begrensninger. Ikke bare er det basert på antagelsen om at fortidens ytelse indikerer fremtiden, men det er ikke scenen der handelsmannen oppretter bestemte regler - optimalisering handler bare om å definere brede innstillinger. I neste og siste avdrag vil vi gi en oversikt over alt vi har dekket sammen med noen råd og ressurser for å hjelpe deg med å få kunnskap om trading system design og development. High Frequency Trading System design og prosesshåndtering Høyfrekvent trading system design og Prosessledelse Rådgiver: Roy E. Welsch. Avdeling: Systemdesign og Management Program. Utgiver: Massachusetts Institute of Technology Utgitt: 2009 Handelsfirmaer i dag er svært avhengige av data mining, datamodellering og programvareutvikling. Finansanalytikere utfører mange lignende oppgaver til de innen programvare og industri. Finansnæringen har imidlertid ennå ikke fullt ut vedtatt høyteknologiske systemkonstruksjonsrammer og prosesshåndteringsmetoder som har vært vellykkede i programvare - og produksjonsindustrien. Mange av de tradisjonelle metodene for produktdesign, kvalitetskontroll, systematisk innovasjon og kontinuerlig forbedring som finnes i ingeniørfagene, kan brukes på finansområdet. Denne oppgaven viser hvordan kunnskapen fra engineering disipliner kan forbedre design og prosesshåndtering av høyfrekvente handelssystemer. Høyfrekvente handelssystemer er beregningsbaserte. Disse systemene er automatiske eller halvautomatiske programvare systemer som er iboende komplekse og krever en høy grad av design presisjon. Utformingen av et høyfrekvent handelssystem knytter sammen flere felt, inkludert kvantitativ økonomi, systemdesign og software engineering. I finansindustrien, hvor matematiske teorier og handelsmodeller er relativt godt undersøkt, er evnen til å implementere disse designene i ekte handelspraksis et av hovedelementene i et investeringsselskaps konkurranseevne. Evnen til å konvertere investeringsideer til effektive handelssystemer effektivt og effektivt kan gi et investeringsselskap en stor konkurransefortrinn. (Forts.) Denne oppgaven gir en detaljert studie som består av høyfrekvent trading systemdesign, systemmodellering og prinsipper og prosesshåndtering for systemutvikling. Spesiell vekt legges på sikkerhetskopiering og optimalisering, som anses som de viktigste delene i å bygge et handelssystem. Denne forskningen bygger systemteknikkmodeller som styrer utviklingsprosessen. Det bruker også eksperimentelle handelssystemer til å verifisere og validere prinsipper som tas opp i denne oppgaven. Til slutt konkluderer denne oppgaven at systemstekniske prinsipper og rammer kan være nøkkelen til suksess for å implementere høyfrekvent trading eller kvantitative investeringssystemer. Avhandling (S. M.) - Massachusetts Institute of Technology, Systemdesign og Management Program, 2009. Katalogert fra PDF-versjon av avhandling. Inkluderer bibliografiske referanser (s. 78-79). Nøkkelord: System Design og Management Program. Min kodesystem for kontooppdatering: 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 involverer bare 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. Det er derfor 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 handelsbeslutninger