Saturday 25 November 2017

Backtesting Trading Strategier Pdf


Backtesting: Tolking Past Backtesting er en viktig komponent i effektiv trading-systemutvikling. Det oppnås ved å rekonstruere, med historiske data, handler som ville ha skjedd tidligere, ved bruk av regler som er definert av en gitt strategi. Resultatet gir statistikk som kan brukes til å måle strategiens effektivitet. Ved hjelp av disse dataene kan handelsmenn optimalisere og forbedre sine strategier, finne tekniske eller teoretiske feil, og få tillit til strategien deres før de påføres de virkelige markedene. Den underliggende teorien er at enhver strategi som fungerte bra i det siste, vil trolig fungere godt i fremtiden, og omvendt vil enhver strategi som har gått dårlig i fortiden, sannsynligvis utføre dårlig i fremtiden. Denne artikkelen tar en titt på hvilke applikasjoner som brukes til backtest, hva slags data er oppnådd, og hvordan man bruker den Data og verktøyene Backtesting kan gi rikelig med verdifull statistisk tilbakemelding om et gitt system. Noen universelle backtesting-statistikker inkluderer: Netto fortjeneste eller tap - Netto prosentvis gevinst eller tap. Tidsramme - Tidligere datoer der testingen skjedde. Universe - Aksjer som ble inkludert i backtestet. Volatilitetsmålinger - Maks prosent prosent opp og ned. Gjennomsnitt - Prosent gjennomsnittlig gevinst og gjennomsnittlig tap, gjennomsnittlige barer holdt. Eksponering - Andel av investert kapital (eller eksponert for markedet). Nivåer - Gevinst-til-tap-forhold. Årlig avkastning - Prosentavkastning over et år. Risikojustert avkastning - Prosentavkastning som en funksjon av risiko. Typisk vil backtesting programvare ha to skjermer som er viktige. Den første tillater handelsmannen å tilpasse innstillingene for backtesting. Disse tilpasningene inkluderer alt fra tidsperiode til provisjonskostnader. Her er et eksempel på en slik skjerm i AmiBroker: Den andre skjermen er den faktiske backtesting-resultatrapporten. Her finner du all statistikk som er nevnt ovenfor. Igjen, her er et eksempel på dette skjermbildet i AmiBroker: Generelt inneholder de fleste handelsprogramvarene lignende elementer. Enkelte avanserte programvare inkluderer også tilleggsfunksjonalitet til å utføre automatisk posisjonering, optimalisering og andre mer avanserte funksjoner. De 10 budene Det er mange faktorer som handlerne tar hensyn til når de vurderer handelsstrategier. Her er en liste over de 10 viktigste tingene å huske mens backtesting: Ta hensyn til de brede markedstrendene i tidsrammen der en bestemt strategi ble testet. For eksempel, hvis en strategi bare ble testet tilbake fra 1999-2000, kan det ikke gå bra på et bjørnmarked. Det er ofte en god ide å backtest over en lang tidsramme som omfatter flere forskjellige typer markedsforhold. Ta hensyn til universet der tilbakestesting skjedde. For eksempel, hvis et bredt markedssystem er testet med et univers bestående av tech-aksjer, kan det mislykkes å gjøre det bra i ulike sektorer. Som en generell regel, hvis en strategi er rettet mot en bestemt genre av lager, begrense universet til den genren, men i alle andre tilfeller opprettholde et stort univers for testformål. Volatilitetsforanstaltninger er ekstremt viktige å vurdere i utviklingen av et handelssystem. Dette gjelder spesielt for levererte kontoer, som er utsatt for marginanrop dersom egenkapitalen faller under et bestemt punkt. Traders bør søke å holde volatiliteten lav for å redusere risikoen og muliggjøre lettere overgang inn og ut av et gitt lager. Det gjennomsnittlige antall barer som holdes er også veldig viktig å se når man utvikler et handelssystem. Selv om de fleste backtesting programvare inkluderer provisjonskostnader i de endelige beregningene, betyr det ikke at du bør overse denne statistikken. Hvis det er mulig, kan det hende at gjennomsnittlig antall barer som holdes, reduserer provisjonskostnadene, og forbedrer din generelle avkastning. Eksponering er et dobbeltkantet sverd. Økt eksponering kan føre til høyere fortjeneste eller høyere tap, mens redusert eksponering betyr lavere fortjeneste eller lavere tap. Imidlertid er det generelt en god ide å holde eksponering under 70 for å redusere risiko og muliggjøre lettere overgang inn og ut av et gitt lager. Den gjennomsnittlige gevinstløpsstatistikken, kombinert med vinner-til-tap-forholdet, kan være nyttig for å bestemme optimal plassering og pengestyring ved hjelp av teknikker som Kelly-kriteriet. (Se Money Management ved hjelp av Kelly-kriteriet.) Traders kan ta større stillinger og redusere provisjonskostnader ved å øke sine gjennomsnittlige gevinster og øke deres vinner-til-tap-forhold. Årlig avkastning er viktig fordi den brukes som et verktøy for å benchmark en systemavkastning mot andre investeringssteder. Det er viktig ikke bare å se på den samlede årlige avkastningen, men også å ta hensyn til økt eller redusert risiko. Dette kan gjøres ved å se på den risikojusterte avkastningen, som står for ulike risikofaktorer. Før et handelssystem er vedtatt, må det overgå alle andre investeringssteder med like eller mindre risiko. Backtesting tilpasning er ekstremt viktig. Mange backtesting-applikasjoner har innspill for provisjonsbeløp, runde (eller brøkdelte) masse størrelser, tikkestørrelser, marginkrav, renter, slippage-forutsetninger, stillingsreguleringsregler, same-bar-utgangsreguleringer, (bak) stoppinnstillinger og mye mer. For å få de mest nøyaktige backtesting resultatene, er jeg viktig å justere disse innstillingene for å etterligne megleren som vil bli brukt når systemet går live. Backtesting kan noen ganger føre til noe kjent som overoptimalisering. Dette er en tilstand hvor resultatene avstemmes så høyt til fortiden at de ikke lenger er like nøyaktige i fremtiden. Det er generelt en god ide å implementere regler som gjelder for alle aksjer, eller et utvalg av målrettede aksjer, og er ikke optimalisert i den grad reglene ikke lenger er forståelige av skaperen. Backtesting er ikke alltid den mest nøyaktige måten å måle effektiviteten til et gitt handelssystem. Noen ganger har strategier som har gått bra i det siste, ikke lykkes i det nåværende. Tidligere resultater er ikke en indikasjon på fremtidige resultater. Pass på å papirhandel et system som har blitt suksessfullt testet før du går, for å være sikker på at strategien fortsatt gjelder i praksis. Konklusjon Backtesting er et av de viktigste aspektene ved å utvikle et handelssystem. Hvis det opprettes og tolkes ordentlig, kan det hjelpe handelsmenn å optimalisere og forbedre strategiene, finne tekniske eller teoretiske feil, samt få tillit til strategien deres før de påføres det til de virkelige verdensmarkeder. Ressurser Tradecision (tradecision) - High-end Trading System Development AmiBroker (amibroker) - Budsjett Trading System Development. En økonomisk teori om total utgifter i økonomien og dens effekter på produksjon og inflasjon. Keynesian økonomi ble utviklet. En beholdning av en eiendel i en portefølje. En porteføljeinvestering er laget med forventning om å tjene en avkastning på den. Dette. Et forhold utviklet av Jack Treynor som måler avkastning opptjent over det som kunne vært opptjent på en risikofri. Tilbakekjøp av utestående aksjer (tilbakekjøp) av et selskap for å redusere antall aksjer på markedet. Selskaper. En skattemessig tilbakebetaling er refusjon på skatter betales til en person eller husstand når den faktiske skatteforpliktelsen er mindre enn beløpet. Den monetære verdien av alle ferdige varer og tjenester som produseres innen et land grenser i en bestemt tidsperiode. Pionerer i Tomorrows Trading Hvordan fungerer det? Bygg algoritmer i en nettleser IDE, bruk malstrategier og fri data design og test strategien din på vår gratis data og når du er klar, distribuere den til megling. Kode i flere programmeringsspråk og bruk vår klynge av hundrevis av servere for å kjøre din backtest for å analysere strategien din i aksjer, fx, CFD, opsjoner eller futures markeder. QuantConnect er den neste revolusjonen i kvant trading, kombinere cloud computing og åpen data tilgang. Uovertruffen Speed ​​Harness vår server gård for institusjonelle hastigheter fra din stasjonære datamaskin. Du kan iterere på ideene dine raskere enn du noensinne har gjort før. Massive Data Library Vi tilbyr et massivt gratis 400TB tick oppløsning databibliotek som dekker amerikanske aksjer, opsjoner, futures, grunnlag, CFD og Forex siden 1998. World Class Execution Våre live trading algoritmer er co-lokalisert ved siden av markedet servere i Equinix (NY7) for resilent, sikker og lyn rask utførelse til markedene. Har noen gode ideer Lets teste det ut Start din algoritme Professional Quality, Open Data Library Design strategier med vårt nøye kuraterte databibliotek, som spenner over globale markeder, fra kryss til daglig oppløsning. Dataene oppdateres nesten daglig, slik at du kan sikkerhetskopiere på de aller nyeste dataene, og overlevere bias gratis. Vi tilbyr aksjekursdata som går tilbake til januar 1998 for hvert symbol som handles, totalt over 29.000 aksjer. Prisen er levert av QuantQuote. I tillegg har vi Morning Star Fundamental data for de mest populære 8000 symbolene for 900 indikatorer siden 1998. FOREX amp CFD Vi tilbyr 100 valutapar og 70 CFD-kontrakter som dekker alle store økonomier fra FXCM og OANDA. Data er ved kryssoppløsning, starter april 2007 og oppdateres daglig. Vi tilbyr futures tick handel og sitater data fra januar 2009 til stede, for hver kontrakt handles i CME, COMEX og GLOBEX. Dataene oppdateres ukentlig og leveres av AlgoSeek. Vi tilbyr opsjonshandler og anførselstegn ned til minuttoppløsning, for alle opsjoner som handles på ORPA siden 2007, som dekker millioner av kontrakter. Dataene oppdateres innen 48 timer og leveres av AlgoSeek. Team Collaboration Finn nye venner i samfunnet og samarbeide sammen med teamkodingsfunksjonen Del prosjekter og se koden deres umiddelbart når de skriver. Du kan til og med gi levende tilgang og kontrollere livealgoritmen sammen. Bruk våre interne direktemeldinger for å finne potensielle teammedlemmer for å bli med i styrken. Sikker Intellektuell Eiendom Vårt fokus er å gi deg den best mulige algoritmiske handelsplattformen og beskytte din verdifulle intellektuelle eiendom. Vi vil alltid være en infrastruktur og teknologileverandør først. Når du er klar for live trading, lykkelig, kan du utføre gjennom din mekler. Gjennomfør Leading Brokerages Weve integrert med verdensledende meglerhus for å gi best mulig utførelse og laveste avgifter til samfunnet. Hendelsesdrevne strategier Å designe en algoritme kunne ikke vært enklere. Det er bare to nødvendige funksjoner, og vi tar vare på alt annet. Du initierer bare () din strategi og håndterer de datahendelsene du ba om. Du kan opprette nye indikatorer, klasser, mapper og filer med en nettbasert full C-kompilator og automatisk fullført. Vi er forpliktet til å gi deg den beste mulige algoritmenes designopplevelse. Utnyt ditt potensielle valg til brukere kan få sine strategier presentert for hedgefund-klienter i et gjennomsiktig, profesjonelt strategisk dashbord. Strategier er validert av QuantConnects backtesting og live trading, noe som gir deg en nøytral tredjeparts gjennomgang av kode. Interesserte hedgefunds kan kontakte deg direkte via QuantConnect for å tilby deg sysselsetting eller finansiering for din strategi. Bli med i vårt fellesskap Vi har et av de største kvantitative handelssamfunnene i verden, bygger, deler og diskuterer strategier gjennom vårt fellesskap. Konvertere med noen av de lyseste sinnene i verden som vi undersøker nye realmer av vitenskap, matematikk og økonomi. Strategi Backtesting Strategi backtesting er et viktig verktøy for å se om strategien din fungerer eller ikke. Backtesting programvare simulerer strategien din for historiske data og gir en backtesting rapport, som lar deg gjennomføre riktig trading system analyse. 64-bitersversjonen lar deg laste inn så mye data som du trenger for selv den mest nøyaktige backtesting. For teknisk informasjon om denne funksjonen, se på den relaterte Wiki-siden. Nøyaktighet er nøkkelen MultiCharts er en løsning skapt spesielt for strategiutvikling og backtesting. Vår filosofi er at strategi-backtesting bør være like realistisk som moderne teknologi tillater. Multicharts 64-bit gjør det mulig å håndtere store mengder Tick-by-Tick-data for presis backtesting. Realistisk backtesting Selv om ingen tilnærming kan være 100 perfekt, har vi gjort alt for å nøyaktig gjenskape forbi markedsforhold og ordreutførelse for strategihandel. Typiske backtesting-motorer har mange antagelser og snarveier, noe som resulterer i urealistisk testing og upålitelige resultater. MultiCharts er en handelsplattform på institusjonsnivå som minimerer antagelser og vurderer mange faktorer. Avansert tech Strategi backtesting trenger ofte mye data, og programvare som er i stand til å behandle det. Multi-threading brukes når du behandler strategioptimalisering i MultiCharts. Den sprer flere oppgaver i forskjellige kjerner, slik at de fullfører mye raskere. 64-biters versjon av MultiCharts lar deg laste inn år og år med kryssdata for detaljerte prisbevegelser. Lett å lese Du kan endre hvordan signalene dine vises på diagrammet ditt, bare noen få klikk. Avslutningsordrer kan kobles til med en synlig linje til alle relaterte oppføringsordrer linjen blir grønn hvis handelen var lønnsom, rød hvis ikke. Hvis du ikke liker disse fargene, eller noe annet visuelt aspekt, kan du enkelt endre det. Velg valuta for backtesting Basisvaluta tillater beregning av fortjeneste og tap under strategien, med en spesifisert valuta for Forex-par eller ikke-amerikanske symboler. Hvis du tester din strategi på et symbol som er basert i en annen valuta enn din meglerkonto, kan du kanskje bruke en valutaomregning. For å gjøre resultatene så nær perfekt som mulig, bruker vi faktiske valutakurser for hver dag. All valutaomregning foregår bak kulissene for å gjøre handelen så enkel som mulig. Vi bruker våre servere til å be om data i bakgrunnen og utføre nødvendige beregninger. Alle viktige faktorer som inngår i vår Backtesting-programvare vurderer følgende viktige faktorer: likviditet, tick-by-tick-prisendringer, prisforskjeller, prisforskjeller, provisjon, slipp, startkapital, rente og handelsstørrelse. Tager likviditet i betraktning Når MultiCharts-motoren kontrollerer en strategi, anerkjenner den at ikke alle grenseordrer vil bli fylt på grunn av mangel på likviditet. Av denne grunn har du mulighet til å fylle bestillinger når et prismål blir truffet, eller når det overskrides med et bestemt antall poeng (pips). Mer informasjon er på vår Wiki-side. Spør, bud og handelspriser Backtesting tar i betraktning at ekte kjøp skjer ved forespørselspriser, ekte salg på budpriser. Dette gjør vår backtesting simulering så realistisk som mulig. Presis Strategi Backtesting kan gi brukeren en mer realistisk emulasjon. For å sikkerhetskopiere høyfrekvente strategier som statistisk arbitrage, kan brukeren måtte ta hensyn til de historiske budsjettdataene i tillegg til de historiske handelsdataene. Tick-by-tick simulering Bar Magnifier er viktig for å øke presisjonen under backtesting. MultiCharts kan konstruere større barer ut av mindre komponenter andre og minutt barer ut av flått, time og dag barer ut av minutter. Du kan gjenskape eksakte prisbevegelser innenfor hver linje ved å bruke Bar Magnifier. For eksempel kan Bar Magnifier usynlig laste minutter som utgjør timen, og strategien vil bli testet i minuttene for minutt. Lær mer tekniske detaljer her. Strategier for umiddelbar praksis MultiCharts backtesting-motoren emulerer til og med markeds-, stopp-, grense-, stoppgrenser og en-kanseller-andre (OCO) - ordrer. Profittmål, stopp og tapestopp er også standard backtesting-funksjoner. På toppen av det, kommer MultiCharts med mer enn 80 EasyLanguage-strategier, slik at du kan øve backtesting. How å Backtest Din Trading Strategy Correct Mange vellykkede handelsmenn deler en vane 8211 de backtest deres trading strategier. Backtesting din handelsstrategi vil ikke alene garantere at du vil bli lønnsom, men det er et stort skritt i riktig retning. I denne artikkelen undersøker vi noen potensielle forstyrrelser som kan krype inn i din backtesting, og vi vil se på hvordan du minimerer virkningen av disse forstyrrelsene. Det er mange problemer som kan oppstå når du kontrollerer ditt handelssystem, men de fleste problemene faller inn i en av tre kategorier: postdiktive feil, for mange variabler eller unnlater å forutse drastiske endringer i markedet. Hver av disse feilene er forklart, sammen med metoder for å unngå feil. Klikk her for å lære hvordan du bruker Bollinger Bands med en kvantifisert, strukturert tilnærming for å øke dine handelskanter og sikre større gevinster med Trading med Bollinger Bands 8211 En kvantifisert guide. 1. Postdictive Error Den postdictive feilen er bare en fancy måte å si at du har brukt informasjon som bare er tilgjengelig 8220after the fact8221 for å teste systemet. Tro det eller ei, dette er en veldig vanlig feil ved testing av handelssystemer. Denne feilen er lett å lage. Noen programvare vil tillate deg å bruke data i dag82 i test av et handelssystem, som alltid er en postdiktiv feil (vi vet ikke om dataene fra today8217 er nyttige ennå for å forutsi fremtiden, men vi vet sikkert om det er nyttig å forutsi fortiden ). Wouldn8217t du elsker å kunne bruke sluttprisen på GBPUSD for å forutsi hva markedet vil gjøre i dag. Selvfølgelig ville du definitivt, men dessverre, denne informasjonen er ikke tilgjengelig for oss før dagen er over. For eksempel kan du ha et system som inkorporerer sluttkurs, da betyr dette åpenbart at handel ikke kan startes før dagen er over. ellers er dette en postdiktiv feil. Et annet eksempel kan bidra til å illustrere den postdiktive feilen, hvis du har en regel i handelssystemet om høyeste priser, så har du en postdiktiv feil. Dette skyldes at høyeste priser ofte defineres av data som kommer senere, i fremtiden. Måten å unngå den postdiktive feilen er å sørge for at når du backtester et system, blir det kun brukt informasjon som er tilgjengelig i det siste på det tidspunktet i backtesting. Med manuell backtesting eller backtesting med forex tester kan du oppnå dette ganske enkelt, men med automatisert backtesting kan postdiktiv feilen snike seg inn i ditt trading system. 2. For mange variabler Dette er også kjent som 8220Degrees of Freedom8221 bias. Dette betyr ganske enkelt at du har for mange variabler eller handelsindikatorer i ditt handelssystem. Det er veldig mulig å komme opp med et handelssystem som kan forklare fortidspraksis for et valutapar. Faktisk, jo flere indikatorer du legger til, desto lettere blir det ofte. Problemet kommer når du vil bruke dette systemet til fremtiden. Ofte når et handelssystem har for mange indikatorer, kan det forutsi markedets oppførsel over en tidsperiode ekstremt godt. Men at8217 er alt systemet bra for, fordi i framtiden faller systemet fra hverandre. Ovennevnte erklæring er ofte vanskelig for handelsmenn å ta tak i, men det er sant. Tenk på hva William Eckhardt, New Market Wizards har å si om handelssystemer. Generelt har de delikate tester som statistikere bruker for å presse betydningen ut av marginale data, ikke noe sted i handel. Vi trenger stumme statistiske instrumenter, robuste teknikker. Selvfølgelig advarer han mot graden av frihetsfeil og tyder på at enkle handelssystemer er mer sannsynlig å stå tidstest. Dette er helt sant. Noen av de mest kraftfulle handelssystemene som er tilgjengelige, er svært enkle. Husk dette når du handler, og som du forsøker å finne et lønnsomt handelssystem. De fleste handelsfolk vil finne at med erfaring blir de mer sannsynlig å omfavne det syn at enklere handel foretrekkes over en kompleks tilnærming. 3. Drastiske endringer i markedet Mange forhandlere glemmer å forutse uforutsette hendelser som vil skje i fremtiden. Det betyr egentlig ikke noe at du ikke vet hva som skal skje i fremtiden 8211 fordi du vet dette: det vil være tider i fremtiden når markedene vil oppføre seg ulovlig. Når dette skjer, bør du ha designet ditt handelssystem for å fortsette å fungere i disse tider. Kanskje noen eksempler kan hjelpe til med dette: Når Saddam Hussein ble funnet (over helgen) reagerte valutamarkedene ganske drastisk på åpningen av mandag8217. Da den globale finanskrisen begynte å utfolde seg i september 2008, handlet de fleste valutapar med mye mer volatilitet enn det som hadde vært sett i årevis. Faktum er at det vil bli uventede hendelser i fremtiden, og disse hendelsene vil påvirke markedene, så det beste du kan gjøre er å være forberedt. Hvordan forbereder du deg på det uventede Vurder disse enkle løsningene: 1) Overstyr dine forventede tap. Hvis din backtesting viser et maksimalt tap på 5000, antar du maksimalt tap på 10.000. Vil dine handelssystemer fortsatt være lønnsomme under disse forholdene 2) Bestem et passende risikonivå for hver handel. Husk at selv dette risikonivået vil sannsynligvis bli overskredet. Hvis du har bestemt deg for å risikere 1 på hver handel, bør du anta at en gang i fremtiden kan du være i en handel, og en uventet hendelse vil oppstå, og handelen din vil ikke miste 1, men i stedet vil 5 gå tapt. 3) Du bør ha en beredskapsplan satt opp. Det vil si hvordan vil du avslutte en handel hvis noe skjer, og du kan ikke få tilgang til kontoen din. For eksempel, hva skjer hvis handelsplattformen din er utilgjengelig og du desperat vil ha en handel. De fleste meglere tilbyr en telefonlinje til forhandlere for disse tilfellene. Har du telefonnummeret 4) Har du et maksimalt risikonivåsett Dette vil gjelde hvis du har flere bransjer åpne samtidig. Hvis du bestemmer deg for å risikere 1 per handel, og du har 7 handler åpne samtidig, betyr dette at du vil risikere 7 av kontoen din eller har bestemt deg for et maksimalt risikonivå, for eksempel 3. Husk at det uventede vil skje, du bør nok ha et maksimalt risikonivå for de tidene når du har flere åpne handler. 5) Hva er maksimal drawdown (hvor mye penger ditt handelssystem mister over en lengre periode) du er villig til å tolerere å huske på at du (og du ikke er alene) er mer sannsynlig å overvurdere graden av drawdowns som du kan tåle, er det viktig å være realistisk. Hvis du mister 30 av kontoen din, slutter du å handle. Hva med om du mister 50 Eller hvis du ser 70 av kontoen din forsvinner Igjen, den beste måten å planlegge for drawdowns er å gjøre omfattende backtesting for å finne ut hva slags historiske drawdowns din handel systemopplevelser og planlegg for enda verre drawdowns i fremtiden. Å forutse drastiske endringer i markedene er den enkleste måten å bevare egenkapitalen på kontoen din. Så, du vet at vellykkede handelsmenn deler denne vanen 8211 de backtest deres handelsstrategier. Du vet at backtesting skiller de velstående handelsmennene fra de som mister penger. Du vet også flere måter å inkorporere backtesting inn i ditt handelsregime. Og du vet om fallgruvene 8211 hva du skal se etter 8211 når du er på nytt, slik at du kan få mest mulig ut av prosessen. Men, hva vil du egentlig få ut av å teste ditt handelssystem? I neste artikkel vil jeg undersøke bivirkningene av backtesting. Walter Peters, PhD er en profesjonell forexhandler og pengeforvalter for et privat forexfond. I tillegg er Walter medstifter av Fxjake. en ressurs for valutahandlere. Walter elsker å høre fra andre handelsmenn, han kan nås via e-post på walterfxjake. En effektiv implementering av Backtesting of Trading Strategies Clark, D. E. (red.): Evolusjonære algoritmer i molekylær design. Wiley-VCH, Weinheim (2000) Metcalfe, T. S. Charbonneau, P. Stellar struktur modellering ved hjelp av en parallell genetisk algoritme for objektiv global optimalisering. Journal of Computational Physics 185 (1), 176193 (2003) MATH CrossRef Nowostawski, M. Poli, R. Parallell genetisk algoritme taksonomi. I: Proc. av 3. Int. Konferanse om kunnskapsbasert intelligent informasjonsteknikksystemer (KES 1999), Adelaide, Australia (1999) Stender, J. Parallel Genetiske Algoritmer: Teoriforsterker Programmer. IOS Press, Amsterdam (1993) MATH Om dette kapitlet Tittel En effektiv implementering av backtesting av handelsstrategier Boktittel Parallell og distribuert prosessering og applikasjoner Bestill undertekst Tredje internasjonale symposium, ISPA 2005, Nanjing, Kina, 2-5 november 2005. Proceedings Sider pp 126-131 Opphavsrett 2005 DOI 10.10071157623517 Skriv ut ISBN 978-3-540-29769-7 Online ISBN 978-3-540-32100-2 Serie Tittel Forelesningsnotater i datalogisk serie Volum 3758 Serie ISSN 0302-9743 Utgiver Springer Berlin Heidelberg Opphavsrettsinnehaver Springer-Verlag Berlin Heidelberg Ekstra lenker Om denne boken Emner Datasystem Implementering Algoritmanalyse og problemkompleksitet Datakommunikasjonsnettverk Informasjonssystemer Programmer (inkl. Internett) Systemytelse og - evaluering Software Engineering Industri Sektorer Telekommunikasjon Finans, Business amp Banking Aerospace IT amp Programvare eBokpakker Datavitenskapsredaktører Yi Pan (16) Daoxu Chen (17) Minyi Guo (18) Jiannong Cao (19) Jack Dongarra (20) Redaktørstilknytninger 16. Dept. CS, Georgia State University 17. Statlig nøkkellaboratorium for ny programvarekvalitet, Nanjing University 18. Institutt for datateknikk, Shanghai Jiao Tong Universitetet 19. Institutt for databehandling, Hongkong Polytechnic University, Kowloon 20. Datavitenskapsavdeling, University of Tennessee Forfattere Jiarui Ni (21) Chengqi Zhang (21) Forfatterforbindelser 21. Fakultet for informasjonsteknologi, University of Technology, Sydney, GPO Box 123, Broadway, NSW 2007, Australia Fortsett å lese. For å se resten av dette innholdet, vennligst følg nedlastingen PDF-lenken ovenfor. Vi bruker informasjonskapsler for å forbedre din erfaring med nettstedet vårt. Mer informasjon Over 10 millioner vitenskapelige dokumenter på fingertuppene Vårt innhold Andre sider Hjelp amp Kontaktpersoner Ikke logget inn Utilgjenget 78.109.24.111 Springer for Research amp Utvikling JavaScript er for øyeblikket deaktivert. dette nettstedet fungerer mye bedre hvis du aktiverer JavaScript i din browser. Pioneering i Tomorrows Trading Hvordan fungerer det Bygg Algoritmer i en nettleser IDE, Bruk Template Strategies og Free Data Design og test strategien din på våre gratis data og når du er klar distribuere den live til megling. Kode i flere programmeringsspråk og bruk vår klynge av hundrevis av servere for å kjøre din backtest for å analysere strategien din i aksjer, fx, CFD, opsjoner eller futures markeder. QuantConnect er den neste revolusjonen i kvant trading, kombinere cloud computing og åpen data tilgang. Uovertruffen Speed ​​Harness vår server gård for institusjonelle hastigheter fra din stasjonære datamaskin. Du kan iterere på ideene dine raskere enn du noensinne har gjort før. Massive Data Library Vi tilbyr et massivt gratis 400TB tick oppløsning databibliotek som dekker amerikanske aksjer, opsjoner, futures, grunnlag, CFD og Forex siden 1998. World Class Execution Våre live trading algoritmer er co-lokalisert ved siden av markedet servere i Equinix (NY7) for resilent, sikker og lyn rask utførelse til markedene. Har noen gode ideer Lets teste det ut Start din algoritme Professional Quality, Open Data Library Design strategier med vårt nøye kuraterte databibliotek, som spenner over globale markeder, fra kryss til daglig oppløsning. Dataene oppdateres nesten daglig, slik at du kan sikkerhetskopiere på de aller nyeste dataene, og overlevere bias gratis. Vi tilbyr aksjekursdata som går tilbake til januar 1998 for hvert symbol som handles, totalt over 29.000 aksjer. Prisen er levert av QuantQuote. I tillegg har vi Morning Star Fundamental data for de mest populære 8000 symbolene for 900 indikatorer siden 1998. FOREX amp CFD Vi tilbyr 100 valutapar og 70 CFD-kontrakter som dekker alle store økonomier fra FXCM og OANDA. Data er ved kryssoppløsning, starter april 2007 og oppdateres daglig. Vi tilbyr futures tick handel og sitater data fra januar 2009 til stede, for hver kontrakt handles i CME, COMEX og GLOBEX. Dataene oppdateres ukentlig og leveres av AlgoSeek. Vi tilbyr opsjonshandler og anførselstegn ned til minuttoppløsning, for alle opsjoner som handles på ORPA siden 2007, som dekker millioner av kontrakter. Dataene oppdateres innen 48 timer og leveres av AlgoSeek. Team Collaboration Finn nye venner i samfunnet og samarbeide sammen med teamkodingsfunksjonen Del prosjekter og se koden deres umiddelbart når de skriver. Du kan til og med gi levende tilgang og kontrollere livealgoritmen sammen. Bruk våre interne direktemeldinger for å finne potensielle teammedlemmer for å bli med i styrken. Sikker Intellektuell Eiendom Vårt fokus er å gi deg den best mulige algoritmiske handelsplattformen og beskytte din verdifulle intellektuelle eiendom. Vi vil alltid være en infrastruktur og teknologileverandør først. Når du er klar for live trading, lykkelig, kan du utføre gjennom din mekler. Gjennomfør Leading Brokerages Weve integrert med verdensledende meglerhus for å gi best mulig utførelse og laveste avgifter til samfunnet. Hendelsesdrevne strategier Å designe en algoritme kunne ikke vært enklere. Det er bare to nødvendige funksjoner, og vi tar vare på alt annet. Du initierer bare () din strategi og håndterer de datahendelsene du ba om. Du kan opprette nye indikatorer, klasser, mapper og filer med en nettbasert full C-kompilator og automatisk fullført. Vi er forpliktet til å gi deg den beste mulige algoritmenes designopplevelse. Utnyt ditt potensielle valg til brukere kan få sine strategier presentert for hedgefund-klienter i et gjennomsiktig, profesjonelt strategisk dashbord. Strategier er validert av QuantConnects backtesting og live trading, noe som gir deg en nøytral tredjeparts gjennomgang av kode. Interesserte hedgefunds kan kontakte deg direkte via QuantConnect for å tilby deg sysselsetting eller finansiering for din strategi. Bli med i vårt fellesskap Vi har et av de største kvantitative handelssamfunnene i verden, bygger, deler og diskuterer strategier gjennom vårt fellesskap. Konvertere med noen av de lyseste sinnene i verden som vi utforsker nye realmer av vitenskap, matematikk og økonomi. Buntingtesting og Trade Systems Bygg det. Test det. Handel det. CQGs state-of-the-art backtesting - og handelssystemverktøy gir deg kontroll over strategiene dine. Utvikle og optimalisere systemet og signalene ved å modellere mot år med tilgjengelige historiske data. Når det er klart, handler det automatisk gjennom CQGs AutoTrader. Legg til handelssystempakken til CQG IC Test ideene dine før du risikerer pengene dine. Vår handelssystempakke tillater kundene å analysere tidligere tradingaktivitet og bygge strategier basert på den aktiviteten. Dra nytte av våre funksjoner for å finjustere inn - og utgangspunkter og teste brukerdefinerte parameterverdier. Dra nytte av våre mange backtesting ressurser ved å undersøke handelsaktivitet basert på etableringen av lange eller korte handler, en rekke inngangs - og utgangssignaler, og provisjonene som handelsmannen må betale. Evaluere inngangssignaler Bruke dine favorittbetingelser Med Signal Evaluator kan du analysere effektivitet over en bestemt tidsperiode ved å bruke dine egne spesifikke kjøps - og salgssignaler. Din analyse kan brukes på både porteføljer og individuelle varer. Optimaliser systemparametrene Optimaliser arbeidsflyten din ved hjelp av Trade System Optimizer, et verdifullt handelsverktøy som tester resultatene av handelssystemer som kjører forskjellige innstillinger og kombinasjonen av parametere som inngår i handelssignaler. Handel automatisk ditt handelssystem Nå som du har ditt handelssystem, har CQG automatisk handel med det. CQG AutoTrader er en proprietær handelsutførelsesmotor som gjør det mulig for kunder å samtidig utføre mange systemer samtidig med like presisjon og disiplin. I sin tur gir det forhandlere større kapasitet og nøyaktighet i systemhandelen versus manuell utførelse. Produktet støtter ulike bestilletyper og tillater at kundene konfigurerer kjøringsparametere relatert til pris, størrelse og tidspunkt for ordre. For maksimal gjennomsiktighet er CQG AutoTrader integrert med ulike posisjonskontrollmoduler, for eksempel vinduet Ordre og posisjoner og ATS-studien (Automated Trading System), hvor kundene kan overvåke handelssignaler og posisjoner på diagrammer og handelsgrensesnitt. CQG AutoTrader kan brukes i live eller demo trading modes. Demo CQG AutoTrader med en gratis prøveversjon av CQG IC Backtesting Videoer Kraftig Automation CQG Product Specialist Doug Janson skisserer CQG ICs automatiseringsfunksjoner. Lær hvordan du definerer formler, testformler ved å bruke Entry Signal Evaluator, og opprett et handelssystem. Se nå Intelligent Backtesting CQG Product Specialist Jim Stavros demonstrerer effektiviteten av å bruke våre backtesting og handelssystem verktøy. Se nå Sammenlign produkter 2-ukers gratis prøveversjon Kontakt oss Sammenlign produkter 2 ukers gratis prøveversjon Kontakt UsSuccessful Backtesting of Algorithmic Trading Strategies - Del I Denne artikkelen fortsetter serien om kvantitativ handel, som startet med Beginners Guide og Strategy Identification. Begge disse lengre, mer involverte artiklene har vært veldig populære, så jeg fortsetter i denne venen og gir detaljer om temaet strategi backtesting. Algoritmisk backtesting krever kunnskap om mange områder, inkludert psykologi, matematikk, statistikk, programvareutvikling og marketexchange mikrostruktur. Jeg kunne ikke håpe å dekke alle disse emnene i en artikkel, så jeg skal dele dem i to eller tre mindre biter. Hva skal vi diskutere i denne delen Jeg begynner med å definere backtesting og da vil jeg beskrive grunnleggende om hvordan det utføres. Da vil jeg belyse de forspenninger vi berørte i Beginners Guide to Quantitative Trading. Neste vil jeg presentere en sammenligning av de ulike tilgjengelige backtesting programvare alternativene. I etterfølgende artikler vil vi se nærmere på detaljer om strategibestemmelser som ofte knapt nevnes eller ignoreres. Vi vil også vurdere hvordan å gjøre backtesting prosessen mer realistisk ved å inkludere idiosyncrasies av en trading utveksling. Da vil vi diskutere transaksjonskostnader og hvordan du skal modellere dem riktig i en backtest-innstilling. Vi vil ende med en diskusjon om utførelsen av våre backtests og endelig gi et eksempel på en felles kvantstrategi, kjent som en gjennomsiktig parhandel. La oss begynne med å diskutere hva backtesting er og hvorfor vi bør utføre det i vår algoritmiske handel. Hva er Backtesting Algoritmisk handel står bortsett fra andre typer investeringsklasser fordi vi på en mer pålitelig måte kan gi forventninger om fremtidig ytelse fra tidligere resultater, som en konsekvens av rikelig datatilgjengelighet. Prosessen som dette utføres er kjent som backtesting. Enkelt sagt blir backtesting utført ved å eksponere din spesifikke strategialgoritme til en strøm av historiske økonomiske data, noe som fører til et sett med handelssignaler. Hver handel (som vi vil bety her for å være en rundtur på to signaler) vil ha en tilknyttet fortjeneste eller tap. Akkumuleringen av denne fortjenesten i løpet av strategien din vil føre til total fortjeneste og tap (også kjent som PL eller PnL). Det er essensen av ideen, selv om djevelen selvfølgelig alltid er i detaljene. Hvilke hovedårsaker til backtesting av en algoritmisk strategi Filtrering - Hvis du husker fra artikkelen om strategiidentifikasjon. Vårt mål i den første undersøkelsen var å sette opp en strategipipeline og deretter filtrere ut en strategi som ikke oppfyller visse kriterier. Backtesting gir oss en annen filtreringsmekanisme, da vi kan eliminere strategier som ikke oppfyller våre ytelsesbehov. Modellering - Backtesting gjør det mulig for oss å (trygt) teste nye modeller av bestemte markedsfenomener, for eksempel transaksjonskostnader, ordreruting, latens, likviditet eller andre markedsmiljøstrukturproblemer. Optimalisering - Selv om strategioptimalisering er full av forstyrrelser, gir backtesting oss mulighet til å øke ytelsen til en strategi ved å endre mengden eller verdiene av parametrene knyttet til den strategien og omberegne ytelsen. Verifisering - Våre strategier er ofte hentet eksternt, via vår strategipipeline. Backtesting en strategi sikrer at den ikke har blitt feil implementert. Selv om vi sjelden vil få tilgang til signaler generert av eksterne strategier, har vi ofte tilgang til resultatene som Sharpe Ratio og Drawdown egenskaper. Dermed kan vi sammenligne dem med vår egen implementering. Backtesting gir en rekke fordeler for algoritmisk handel. Det er imidlertid ikke alltid mulig å returtest en strategi. Generelt, ettersom frekvensen av strategien øker, blir det vanskeligere å korrekt modellisere markedets og børsens mikrostruktureeffekter. Dette fører til mindre pålitelige backtests og dermed en vanskeligere vurdering av en valgt strategi. Dette er et spesielt problem hvor eksekveringssystemet er nøkkelen til strategien, som med ultrahøyfrekvente algoritmer. Dessverre er backtesting fulle av forstyrrelser av alle typer. Vi har rørt noen av disse problemene i tidligere artikler, men vi vil nå diskutere dem i dybden. Forstyrrelser som påvirker strategien Backtests Det er mange forstyrrelser som kan påvirke ytelsen til en backtested strategi. Dessverre har disse forutsetningene en tendens til å oppblåse ytelsen i stedet for å forringe den. Dermed bør du alltid vurdere en backtest å være en idealisert øvre grense på den faktiske utførelsen av strategien. Det er nesten umulig å eliminere forstyrrelser fra algoritmisk handel, så det er vår jobb å minimere dem så godt vi kan for å ta informerte beslutninger om våre algoritmiske strategier. Det er fire store forstyrrelser som jeg ønsker å diskutere: Optimalisering Bias. Forsiktig Bias. Overlevelsesforstyrrelser og psykisk toleranse. Optimalisering Bias Dette er trolig den mest lumske av alle backtest-forstyrrelser. Det innebærer å justere eller introdusere ytterligere handelsparametere til strategiens ytelse på backtest datasettet er veldig attraktivt. Men når leve kan resultatene av strategien være markant annerledes. Et annet navn for denne bias er kurvepassing eller data-snooping bias. Optimeringsforstyrrelser er vanskelig å eliminere ettersom algoritmiske strategier ofte involverer mange parametere. Parametre i dette tilfellet kan være inngangskriterier, tilbakekallingsperioder, gjennomsnittsperioder (dvs. den bevegelige gjennomsnittlige utjevningsparameteren) eller volatilitetsmålingsfrekvensen. Optimaliseringsforstyrrelser kan minimeres ved å holde antall parametere til et minimum og øke mengden datapunkter i treningssettet. Faktisk må man også være forsiktig med sistnevnte, da eldre treningssteder kan bli gjenstand for et tidligere regime (for eksempel et lovgivningsmiljø) og dermed ikke er relevant for din nåværende strategi. En metode for å redusere denne bias er å utføre en følsomhetsanalyse. Dette betyr at parametrene varierer trinnvis og plotter ytelsesytelsen. Lyd, grunnleggende begrunnelse for parametervalg bør med alle andre faktorer anses å føre til en jevnere parameteroverflate. Hvis du har en veldig hoppende ytelsesflate, betyr det ofte at en parameter ikke reflekterer et fenomen og er en gjenstand for testdataene. Det er en stor litteratur om multidimensjonale optimaliseringsalgoritmer, og det er et svært aktivt forskningsområde. Jeg vil ikke dvele på det her, men hold det i bakhodet når du finner en strategi med en fantastisk backtest Look-Ahead Bias Look-ahead bias blir introdusert i et backtesting system når fremtidige data ved et uhell er inkludert i et punkt i simulering der dataene ikke ville ha vært tilgjengelige. Hvis vi kjører backtesten kronologisk, og vi når tidpunkt N, forekommer fremtidsforspenning hvis data er inkludert for noe punkt Nk, hvor k0. Look-ahead bias feil kan være utrolig subtil. Her er tre eksempler på hvordan fremtidsforstyrrelser kan innføres: Tekniske feil - Arrayvektorer i kode har ofte iteratorer eller indeksvariabler. Feilreguleringer av disse indeksene kan føre til en forutgående forspenning ved å inkorporere data ved Nk for ikke-null k. Parameterberegning - Et annet vanlig eksempel på fremtidsforspenning skjer når man beregner optimale strategiparametere, for eksempel med lineære regresjoner mellom to tidsserier. Hvis hele datasettet (inkludert fremtidige data) brukes til å beregne regresjonskoeffisientene, og dermed på en retroaktiv måte brukes til en handelsstrategi for optimalisering, blir fremtidige data innarbeidet, og en forutgående forspenning eksisterer. MaximaMinima - Visse handelsstrategier gjør bruk av ekstreme verdier i en hvilken som helst tidsperiode, for eksempel å inkorporere høye eller lave priser i OHLC-data. Men siden disse maksimalminimalverdiene bare kan beregnes i slutten av en tidsperiode, innføres en blikkprøveforventning hvis disse verdiene brukes - i løpet av den nåværende perioden. Det er alltid nødvendig å lagre highlow-verdier med minst en periode i enhver handelsstrategi som bruker dem. Som med optimaliseringsforstyrrelser, må man være svært forsiktig med å unngå introduksjonen. Det er ofte den viktigste grunnen til at handelsstrategier undergraver sine backtests betydelig i live trading. Survivorship Bias Survivorship bias er et spesielt farlig fenomen og kan føre til betydelig oppblåst ytelse for bestemte strategityper. Det oppstår når strategier testes på datasett som ikke inkluderer hele universet av tidligere eiendeler som kan ha blitt valgt på et bestemt tidspunkt, men bare vurdere de som har overlevd til nåværende tid. For eksempel, vurder å teste en strategi for et tilfeldig utvalg av aksjer før og etter 2001-markedet. Noen teknologilager gikk konkurs, mens andre klarte å holde seg flytende og til og med blomstre. Hvis vi hadde begrenset denne strategien bare til aksjer som gjorde det gjennom markedsutvinningsperioden, ville vi innføre en overlevelsesforstyrrelser fordi de allerede har demonstrert deres suksess for oss. Faktisk er dette bare et annet spesifikt tilfelle av fremtidsforspenning, da fremtidig informasjon blir innlemmet i tidligere analyse. Det er to hovedveier for å redusere overlevelsesforstyrrelser i strategistøttene dine: Survivorship Bias Free Datasets - I tilfelle av egenkapitaldata er det mulig å kjøpe datasett som inkluderer avnoterte enheter, selv om de ikke er billige og bare pleier å bli benyttet av institusjonelle firmaer . Spesielt er Yahoo Finance-data ikke overlevert bias gratis, og dette brukes ofte av mange forhandlere av algo-handelsfolk. Man kan også handle på aktivaklasser som ikke er tilbøyelige til overlevelse, slik som visse varer (og deres fremtidige derivater). Bruk mer nylige data - For aksjer reduserer bruk av et nyere datasett muligheten for at aksjeseleksjonen er vektet til overlevende, ganske enkelt fordi det er mindre sannsynlighet for total avnotering av aksjer i kortere tidsperioder. Man kan også begynne å bygge et personlig overlevelses-bias-datasett ved å samle inn data fra nåværende punkt videre. Etter 3-4 år vil du ha et solidt overlevelses-bias-fritt sett med aksjedata for å backtest videre strategier. Vi vil nå vurdere visse psykologiske fenomener som kan påvirke din trading ytelse. Psykologisk toleranse Bias Disse spesielle fenomenene diskuteres ikke ofte i forbindelse med kvantitativ handel. Det diskuteres imidlertid mye med hensyn til mer skjønnsmessige handelsmetoder. Det har forskjellige navn, men jeg bestemte meg for å kalle det psykisk toleranseforstyrrelser fordi det fanger essensen av problemet. Når du lager backtest over en periode på 5 år eller mer, er det enkelt å se på en oppadgående egenkapitalkurve, beregne den sammensatte årlige avkastningen, Sharpe-forholdet og til og med trekkegenskaper og være fornøyd med resultatene. Som et eksempel kan strategien ha en maksimal relativ drawdown på 25 og en maksimal trekkvarighet på 4 måneder. Dette ville ikke være atypisk for en momentumstrategi. Det er greit å overbevise seg om at det er lett å tolerere slike perioder med tap fordi det generelle bildet er rosenrødt. Men i praksis er det langt vanskeligere Hvis historiske trekk på 25 eller flere forekommer i backtestene, så vil du med all sannsynlighet se perioder med tilsvarende drawdown i live trading. Disse periodene med drawdown er psykologisk vanskelig å tåle. Jeg har observert første hånd hva en utvidet drawdown kan være, i en institusjonell setting, og det er ikke hyggelig - selv om backtestene tyder på at slike perioder vil oppstå. Grunnen til at jeg har betegnet det er en forspenning er at ofte en strategi som ellers ville lykkes, blir stoppet fra handel i tider med utvidet drawdown og dermed vil føre til betydelig underprestering sammenlignet med en backtest. Selv om strategien er algoritmisk i naturen, kan psykologiske faktorer fremdeles ha stor innflytelse på lønnsomheten. Takeaway er å sikre at hvis du ser drawdowns av en viss prosentandel og varighet i backtestene, bør du forvente at de skal skje i live tradingmiljøer, og må fortsette for å oppnå lønnsomhet en gang til. Programvarepakker for Backtesting Programvarelandskapet for strategi backtesting er enorm. Løsninger spenner fra fullstendig integrert institusjonell sofistikert programvare til programmeringsspråk som C, Python og R, hvor nesten alt må skrives fra bunnen av (eller passende plugins oppnådd). Som kvanthandlere er vi interessert i balansen mellom å være i stand til å eie vår handelssteknologistakk versus hastigheten og påliteligheten til vår utviklingsmetode. Her er de viktigste hensynene til programvarevalg: Programmeringsevner - Valget av miljø vil i stor grad komme ned til din evne til å programmere programvare. Jeg vil hevde at å være i kontroll over den totale stabelen vil ha større effekt på din langsiktige PL enn å outsourcing så mye som mulig til leverandørprogramvare. Dette skyldes ulemperrisikoen for å ha eksterne feil eller idiosyncrasier som du ikke klarer å fikse i leverandørprogramvare, noe som ellers lett kunne løses hvis du hadde mer kontroll over din tech stack. Du vil også ha et miljø som oppnår den rette balansen mellom produktivitet, tilgjengelighet for bibliotek og utførelseshastighet. Jeg lager min egen personlige anbefaling nedenfor. Execution CapabilityBroker Interaction - Visse backtesting programvare, for eksempel Tradestation, binder direkte med en megling. Jeg er ikke en fan av denne tilnærmingen, da redusering av transaksjonskostnader ofte er en stor del av å få et høyere Sharpe-forhold. Hvis du er bundet til en bestemt megler (og Tradestation tvinger deg til å gjøre dette), vil du få en vanskeligere overgang til ny programvare (eller en ny megler) hvis behovet oppstår. Interaktive meglere gir en API som er robust, om enn med et litt stødig grensesnitt. Tilpasning - Et miljø som MATLAB eller Python gir deg stor fleksibilitet når du oppretter algo-strategier, da de gir fantastiske biblioteker til nesten alle matematiske operasjoner som er tenkelige, men tillater også omfattende tilpasning der det er nødvendig. Strategi Kompleksitet - Visse programmer bare ikke kutte ut for tunge nummer crunching eller matematisk kompleksitet. Excel er et slikt stykke programvare. Selv om det er bra for enklere strategier, kan det egentlig ikke takle mange eiendeler eller mer kompliserte algoritmer, med fart. Bias Minimization - Låner et bestemt stykke programvare eller data seg mer til handelsforstyrrelser Du må sørge for at hvis du vil lage all funksjonalitet selv, at du ikke introduserer feil som kan føre til forstyrrelser. Hastighet for utvikling - Man bør ikke bruke måneder og måneder til å implementere en backtest-motor. Prototyping bør bare ta noen uker. Pass på at programvaren din ikke hindrer fremgangen din i stor grad, bare for å få tak i noen ekstra prosentpoeng av eksekveringshastighet. C er elefanten i rommet her Utførelseshastighet - Hvis strategien din er helt avhengig av eksekveringsaktualitet (som i HFTUHFT), vil et språk som C eller C være nødvendig. Imidlertid vil du være opptatt av Linux-kjerneoptimalisering og FPGA-bruk for disse domenene, som ligger utenfor rammen av denne artikkelen. Kostnad - Mange av programvaremiljøene du kan programmere algoritmiske handelsstrategier med, er helt gratis og åpen kildekode. Faktisk gjør mange hedgefond bruk av åpen kildekode-programvare for hele algo trading stacks. I tillegg er Excel og MATLAB begge relativt billige, og det finnes til og med gratis alternativer til hver. Nå som vi har listet opp kriteriene som vi trenger å velge programvareinfrastruktur, vil jeg kjøre gjennom noen av de mer populære pakkene og hvordan de sammenligner: Merk: Jeg skal bare inkludere programvare som er tilgjengelig for de fleste forhandlere og programvareutviklere, da dette er leseren av nettstedet. Mens annen programvare er tilgjengelig, for eksempel de mer institusjonelle verktøyene, føler jeg at disse er for dyrt for å bli brukt effektivt i en detaljhandel, og jeg har ingen erfaring med dem. Backtesting Software Comparison Beskrivelse: Språk på høyt nivå designet for utviklingshastighet. Bredt utvalg av biblioteker for nesten enhver programmatisk oppgave å tenke seg. Oppnå bredere aksept i hedgefond og investeringsbank samfunn. Ikke helt så fort som CC for eksekveringshastighet. Gjennomføring: Python plugins finnes for større meglere, som Interactive Brokers. Derfor kan backtest og exekveringssystem alle være en del av samme tech stack. Tilpassing: Python har et veldig sunt utviklingssamfunn og er et modent språk. NumPySciPy gir rask vitenskapelig databehandling og statistisk analyseverktøy som er relevant for kvanthandel. Strategi Kompleksitet: Mange plugins eksisterer for de viktigste algoritmer, men ikke helt like stort et kvant-fellesskap som eksisterer for MATLAB. Bias Minimization: Samme bias minimeringsproblemer eksisterer som for alle høynivå språk. Trenger å være ekstremt forsiktig med testing. Utviklingshastighet: Pythons største fordel er utviklingshastighet, med robust innebygget testingskapasitet. Utføringshastighet: Ikke like rask som C, men vitenskapelige databehandlingskomponenter er optimalisert, og Python kan snakke med innfødt C-kode med visse plugins. Kostnad: FreeOpen Kilde Beskrivelse: Eldre språk på høyt nivå designet for hastighet av utførelse. Bredt utvalg av kvantitative finans - og numeriske biblioteker. Hardere å feilsøke og tar ofte lengre tid å implementere enn Python eller MATLAB. Ekstremt utbredt i både kjøp og salg. Utførelse: De fleste meglerprogrammer er skrevet i C og Java. Dermed finnes mange plugins. Tilpasning: CC gir direkte tilgang til underliggende minne, og dermed kan ultrahøyfrekvensstrategier implementeres. Strategi Kompleksitet: C STL gir et bredt utvalg av optimaliserte algoritmer. Nesten enhver spesialisert matematisk algoritme besitter en fri, åpen kildekode-CC-implementering på nettet. Bias Minimization: Forsiktig forspenning kan være vanskelig å eliminere, men ikke vanskeligere enn andre høyt språk. Gode ​​feilsøkingsverktøy, men man må være forsiktig når man arbeider med underliggende minne. Utviklingshastighet: C er ganske ordentlig i forhold til Python eller MATLAB for samme algoritme. Flere linjer av kode (LOC) fører ofte til større sannsynlighet for feil. Utføringshastighet: CC har ekstremt hurtig eksekveringshastighet og kan være godt optimalisert for spesifikke beregningsarkitekturer. Dette er hovedgrunnen til å utnytte det. Kostnad: Ulike kompilatorer: LinuxGCC er gratis, MS Visual Studio har forskjellige lisenser. Ulike strategier vil kreve forskjellige programvarepakker. HFT - og UHFT-strategier vil bli skrevet i CC (i disse dager utføres de ofte på GPUer og FPGAer), mens lavfrekvente retningsbestemte egenkapitalstrategier er enkle å implementere i TradeStation, på grunn av alt i en art av softwarebrokerage. Min personlige preferanse er for Python, da den gir riktig grad av tilpasning, utviklingshastighet, testingskapasitet og eksekveringshastighet for mine behov og strategier. Hvis jeg trenger noe raskere, kan jeg slippe inn til C direkte fra mine Python-programmer. En metode favorisert av mange kvanthandlere er å prototype deres strategier i Python og deretter konvertere de langsommere utførelseseksjonene til C på en iterativ måte. Til slutt er hele algoet skrevet i C og kan stå alene for handel. I de neste artiklene om backtesting vil vi se på enkelte problemer rundt implementeringen av et algoritmisk trading backtesting system, samt hvordan å innlemme effektene av handelsutveksling. Vi vil diskutere måling av strategisk ytelse og til slutt konkludere med en eksempelstrategi. Bare Komme i gang med kvantitativ handel

No comments:

Post a Comment