Saturday 25 November 2017

Kvantitative Trading Strategier In R


Quant Strategies - er de for deg Kvantitative investeringsstrategier har utviklet seg til svært komplekse verktøy med advent av moderne datamaskiner, men strategierne går tilbake over 70 år. De drives vanligvis av høyt utdannede lag og bruker proprietære modeller for å øke sin evne til å slå markedet. Det er til og med hylleprogrammer som er plug-and-play for de som søker enkelhet. Quant modeller fungerer alltid bra når de testes på nytt, men deres faktiske applikasjoner og suksessrate kan diskuteres. Mens de ser ut til å fungere godt i oksemarkeder. når markeder går til haywire, blir kvantstrategier utsatt for samme risiko som enhver annen strategi. Historien En av grunnleggerne av studiet av kvantitativ teori anvendt på økonomi var Robert Merton. Du kan bare forestille seg hvor vanskelig og tidkrevende prosessen var før bruk av datamaskiner. Andre teorier i økonomi utviklet seg også fra noen av de første kvantitative studiene, inkludert grunnlaget for porteføljediversifisering basert på moderne porteføljeorientering. Bruken av både kvantitativ finansiering og kalkulator førte til mange andre vanlige verktøy, blant annet en av de mest berømte, Black-Scholes opsjonsprisformelen, som ikke bare hjelper investorer til å velge prisalternativer og utvikle strategier, men bidrar til å holde markedene i kontroll med likviditeten. Når det brukes direkte til porteføljestyring. Målet er som enhver annen investeringsstrategi. å legge til verdi, alfa eller meravkastning. Kandidater, som utviklerne kalles, komponerer komplekse matematiske modeller for å oppdage investeringsmuligheter. Det er så mange modeller der ute som quants som utvikler dem, og alle hevder å være de beste. En av investeringsstrategys bestselgende poeng er at modellen, og til slutt datamaskinen, gjør den faktiske buysell-avgjørelsen, ikke et menneske. Dette har en tendens til å fjerne enhver følelsesmessig respons som en person kan oppleve når han kjøper eller selger investeringer. Kvantstrategier er nå akseptert i investeringssamfunnet og drives av verdipapirfond, hedgefond og institusjonelle investorer. De går vanligvis etter navnet alpha generatorer. eller alfa-gens. Bak gardinen På samme måte som i guiden Oz, er noen bak gardinen som kjører prosessen. Som med hvilken som helst modell, er det bare så godt som det menneske som utvikler programmet. Mens det ikke er noe spesifikt krav for å bli en kvant, kombinerer de fleste firmaer som kjører kvantmodeller ferdighetene til investeringsanalytikere, statistikere og programmerere som koden prosessen inn i datamaskinene. På grunn av den komplekse naturen til de matematiske og statistiske modellene, er det vanlig å se legitimasjon som utdannelsesgrader og doktorgrad i økonomi, økonomi, matte og ingeniørfag. Historisk har disse gruppemedlemmene jobbet i bakkene. men som kvantmodeller ble mer vanlig, flytter kontoret til frontkontoret. Fordeler med Quant Strategies Mens den samlede suksessraten er diskutabel, er årsaken til at noen kvantstrategier fungerer, at de er basert på disiplin. Hvis modellen har rett, fortsetter disiplinen strategien å arbeide med lyndrevne datamaskiner for å utnytte ineffektivitet i markedene basert på kvantitative data. Modellene selv kan være basert på så lite som noen forhold som PE. gjeld til egenkapital og lønnsvekst, eller bruk tusenvis av innganger som samarbeider samtidig. Suksessfulle strategier kan hente på trender i sine tidlige stadier, da datamaskiner stadig driver scenarier for å finne ineffektivitet før andre gjør. Modellene er i stand til å analysere en veldig stor gruppe investeringer samtidig, der den tradisjonelle analytikeren kanskje ser på bare noen få om gangen. Skjermeprosessen kan rangere universet etter karakternivåer som 1-5 eller A-F, avhengig av modellen. Dette gjør den faktiske handelsprosessen veldig enkel ved å investere i de høyt vurderte investeringene og selge de lavt vurderte. Quant modeller åpner også variasjoner av strategier som lang, kort og longshort. Suksessfulle kvantfonde holder et godt øye med risikokontroll på grunn av deres modellers natur. De fleste strategier starter med et univers eller referanse og bruker sektor og bransjeviktinger i sine modeller. Dette gjør at midlene kan styre diversifiseringen til en viss grad uten å kompromittere modellen selv. Quant midler kjører vanligvis på lavere pris fordi de ikke trenger så mange tradisjonelle analytikere og porteføljeforvaltere å drive dem. Ulemper med Quant Strategies Det er grunner til at så mange investorer ikke fullt ut omfavner konseptet om å la en svart boks kjøre sine investeringer. For alle de vellykkede kvantfondene der ute, virker like mange som mislykkes. Dessverre for kjendisens omdømme, når de feiler, feiler de stor tid. Langsiktig kapitalforvaltning var en av de mest berømte quant hedgefondene, da den ble drevet av noen av de mest respekterte akademiske ledere og to Nobels minnesprisvinnende økonomer Myron S. Scholes og Robert C. Merton. I løpet av 1990-tallet genererte deres lag over gjennomsnittet avkastning og tiltrukket kapital fra alle typer investorer. De var berømte for ikke bare å utnytte ineffektivitet, men også å bruke enkel tilgang til kapital for å skape enorme løftede spill på markedsretninger. Den disiplinerte naturen til deres strategi skapte faktisk svakheten som førte til deres sammenbrudd. Langsiktig kapitalforvaltning ble likvidert og oppløst i begynnelsen av 2000. Dens modeller inneholdt ikke muligheten for at den russiske regjeringen kunne standardisere noen av sin egen gjeld. Denne hendelsen utløste hendelser og en kjedereaksjon forstørret av løfteskapt opprør. LTCM var så tungt involvert i andre investeringsoperasjoner at dets sammenbrudd påvirket verdensmarkedet, noe som utløste dramatiske hendelser. I det lange løp gikk føderalbanken inn for å hjelpe, og andre banker og investeringsfond støttet LTCM for å forhindre ytterligere skade. Dette er en av grunnene til at kvantfondene kan mislykkes, da de er basert på historiske hendelser som kanskje ikke inkluderer fremtidige hendelser. Mens et sterkt kvantteam stadig vil legge til nye aspekter til modellene for å forutsi fremtidige hendelser, er det umulig å forutsi fremtiden hver gang. Kvantfonde kan også bli overveldet når økonomien og markedene opplever større volatilitet enn gjennomsnittet. Kjøpesalgssignaler kan komme så fort at den høye omsetningen kan skape høye provisjoner og skattepliktige hendelser. Quant midler kan også utgjøre en fare når de markedsføres som bjørnsikre eller er basert på korte strategier. Forutsier nedgangstider. bruk av derivater og kombinere innflytelse kan være farlig. En feil sving kan føre til implosjoner, noe som ofte gjør nyheten. Bunnlinjen Kvantitative investeringsstrategier har utviklet seg fra back office-svarte bokser til vanlige investeringsverktøy. De er designet for å utnytte de beste sinnene i virksomheten og de raskeste datamaskinene til både å utnytte ineffektivitet og bruke innflytelse til å gjøre markedsbud. De kan være svært vellykkede hvis modellene har tatt med alle de riktige inngangene og er krevende nok til å forutsi unormale markedshendelser. På baksiden, mens kvantfondene er strengt testet tilbake til de jobber, er deres svakhet at de stole på historiske data for deres suksess. Mens investering i kvant-stil har sin plass i markedet, er det viktig å være oppmerksom på manglene og risikoen. Å være konsistent med diversifiseringsstrategier. det er en god ide å behandle kvantstrategier som en investeringsstil og kombinere den med tradisjonelle strategier for å oppnå riktig diversifisering. 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. Finansiell matematikk og modellering II (FINC 621) er en utdannet nivåklasse som for tiden tilbys ved Loyola University i Chicago i vinterkvarteret. FINC 621 utforsker emner innen kvantitativ økonomi, matematikk og programmering. Klassen er praktisk i naturen og består av både forelesning og laboratoriekomponent. Laboratoriene bruker R programmeringsspråket og studentene må sende inn sine individuelle oppgaver ved slutten av hver klasse. Målet med FINC 621 er å gi studentene praktiske verktøy som de kan bruke til å lage, modellere og analysere enkle handelsstrategier. Noen nyttige R-lenker Om instruktøren Harry G. er en senior kvantitativ handelsmann for et HFT-handelsfirma i Chicago. Han har en master8217 grad i elektroteknikk og en master8217 grad i finansiell matematikk fra University of Chicago. I sin fritid lærer Harry en høyere nivå i kvantitativ økonomi ved Loyola University i Chicago. Han er også forfatter av kvantitativ handel med R. Beginner39s guide til kvantitativ handel I denne artikkelen skal jeg introdusere deg til noen av de grunnleggende konseptene som følger med en end-to-end kvantitativ handelssystem. Dette innlegget vil forhåpentligvis tjene to publikum. Den første vil være enkeltpersoner som prøver å skaffe seg en jobb hos et fond som en kvantitativ handelsmann. Den andre vil være personer som ønsker å forsøke å sette opp sin egen algoritmiske handelsvirksomhet. Kvantitativ handel er et ekstremt sofistikert område med kvantfinansiering. Det kan ta betydelig tid å få den nødvendige kunnskapen til å passere et intervju eller konstruere egne handelsstrategier. Ikke bare det, men det krever omfattende programmeringskompetanse, i det minste på et språk som MATLAB, R eller Python. Men ettersom handelsfrekvensen i strategien øker, blir de teknologiske aspektene mye mer relevante. Det er derfor av avgjørende betydning å være kjent med CC. Et kvantitativt handelssystem består av fire hovedkomponenter: Strategiidentifikasjon - Finne en strategi, utnytte en kant og avgjøre handelsfrekvens Strategi Backtesting - Innhenting av data, analyse av strategisk ytelse og fjerning av forstyrrelser Execution System - Kobling til megling, automatisering av handel og minimering transaksjonskostnader Risikostyring - Optimal kapitalallokering, innsatsstørrelseKjelkriterium og handelspsykologi Nå bør du begynne å se på hvordan du identifiserer en handelsstrategi. Strategi Identifikasjon Alle kvantitative handelsprosesser begynner med en første undersøkelsesperiode. Denne forskningsprosessen omfatter å finne en strategi for å se om strategien passer inn i en portefølje av andre strategier du kan kjøre, oppnå data som er nødvendige for å teste strategien og forsøke å optimalisere strategien for høyere avkastning og lavere risiko. Du må faktor i dine egne kapitalkrav hvis du kjører strategien som en detaljhandler og hvordan eventuelle transaksjonskostnader vil påvirke strategien. I motsetning til populær tro er det faktisk ganske greit å finne lønnsomme strategier gjennom ulike offentlige kilder. Akademikere publiserer regelmessig teoretiske handelsresultater (om enn det meste brutto transaksjonskostnader). Kvantitative finansblogger vil diskutere strategier i detalj. Handelsjournaler vil skissere noen av strategiene som brukes av midler. Du kan spørsmålet hvorfor enkeltpersoner og firmaer er opptatt av å diskutere deres lønnsomme strategier, spesielt når de vet at andre som trenger handel, kan stoppe strategien fra å jobbe på sikt. Årsaken er at de ikke ofte vil diskutere de nøyaktige parametrene og innstillingsmetodene de har utført. Disse optimeringene er nøkkelen til å gjøre en relativt middelmådig strategi til en svært lønnsom. Faktisk er en av de beste måtene å lage dine egne unike strategier, å finne lignende metoder og deretter utføre din egen optimaliseringsprosedyre. Her er en liten liste over steder å begynne å lete etter strategiideer: Mange av strategiene du vil se på, kommer til å falle inn i kategoriene av gjennomsnittlig reversering og trend-etterfølgende moment. En gjennombruddsstrategi er en som forsøker å utnytte det faktum at et langsiktig gjennomsnitt på en prisserie (for eksempel spredningen mellom to korrelerte eiendeler) eksisterer, og at kortsiktige avvik fra dette gjennomsnittet til slutt vil komme tilbake. En momentumstrategi forsøker å utnytte både investorpsykologi og stor fondstruktur ved å ha en tur på en markedstendens, som kan samle fart i en retning, og følge trenden til den reverserer. Et annet enormt viktig aspekt ved kvantitativ handel er hyppigheten av handelsstrategien. Lavfrekvent handel (LFT) refererer generelt til enhver strategi som har eiendeler lenger enn en handelsdag. Tilsvarende refererer høyfrekvent handel (HFT) generelt til en strategi som har eiendeler i dag. Ultrahøyfrekvenshandel (UHFT) refererer til strategier som holder eiendeler i rekkefølgen av sekunder og millisekunder. Som en detaljhandler er HFT og UHFT sikkert mulig, men bare med detaljert kunnskap om handelssteknologi stabelen og ordrebokdynamikken. Vi vil ikke diskutere disse aspektene i stor grad i denne innledende artikkelen. Når en strategi eller et sett av strategier er blitt identifisert, må det nå testes for lønnsomhet på historiske data. Det er domenet til backtesting. Strategi Backtesting Målet med backtesting er å gi bevis på at strategien identifisert via den ovennevnte prosessen er lønnsom når den brukes på både historiske og utestengede data. Dette setter forventningen om hvordan strategien vil utføre i den virkelige verden. Imidlertid er backtesting ikke en garanti for suksess, av ulike årsaker. Det er kanskje det mest subtile området med kvantitativ handel siden det innebærer en rekke forstyrrelser, som må vurderes og elimineres så mye som mulig. Vi vil diskutere de vanlige typene av forstyrrelser, inkludert forutgående forspenning. overlevelsesforstyrrelser og optimaliseringsforstyrrelser (også kjent som data-snooping bias). Andre områder av betydning innen backtesting inkluderer tilgjengelighet og renslighet av historiske data, factoring i realistiske transaksjonskostnader og avgjørelse om en robust backtesting-plattform. Tenk godt om transaksjonskostnadene ytterligere i delen Execution Systems nedenfor. Når en strategi er identifisert, er det nødvendig å skaffe seg de historiske dataene gjennom hvilke å ​​utføre testing og, kanskje, raffinement. Det er et betydelig antall datalagere på tvers av alle aktivaklasser. Deres kostnader er generelt i samsvar med kvaliteten, dybden og aktualiteten til dataene. Det tradisjonelle utgangspunktet for begynnende kvanthandlere (minst på detaljnivå) er å bruke det frie datasettet fra Yahoo Finance. Jeg vil ikke bo på leverandører for mye her, men jeg vil helst konsentrere meg om de generelle problemene når det gjelder historiske datasett. De viktigste bekymringene med historiske data inkluderer nøyaktighet, overlevelsesforstyrrelser og justering for bedriftsaksjoner som utbytte og aksjesplittelser. Nøyaktigheten gjelder dataens generelle kvalitet - om den inneholder feil. Feil kan noen ganger være lett å identifisere, for eksempel med et spikefilter. som vil plukke ut feil pigger i tidsseriedata og korrigere for dem. Andre ganger kan de være svært vanskelig å få øye på. Det er ofte nødvendig å ha to eller flere leverandører og deretter sjekke alle dataene sine mot hverandre. Overlevelsesforstyrrelser er ofte en funksjon av gratis eller billige datasett. Et datasett med overlevelsesforstyrrelser betyr at det ikke inneholder eiendeler som ikke lenger handler. For aksjer betyr dette delistedbankrupt aksjer. Denne bias betyr at enhver aksjehandelsstrategi som er testet på et datasett, sannsynligvis vil fungere bedre enn i den virkelige verden som de historiske vinnerne allerede er forhåndsvalgt. Virksomhetsaksjoner omfatter logistiske aktiviteter utført av selskapet som vanligvis medfører en trinnfunksjon endring i råprisen, som ikke skal inkluderes i beregningen av prisavkastningen. Justeringer for utbytte og aksjeklover er de vanlige synderne. En prosess kjent som tilbakestilling er nødvendig for å bli utført ved hver av disse handlingene. Man må være veldig forsiktig for ikke å forvirre en aksjesplitt med en ekte avkastningsjustering. Mange næringsdrivende har blitt fanget ut av en bedriftsaksjon For å kunne utføre en backtest-prosedyre, er det nødvendig å bruke en programvareplattform. Du har valget mellom dedikert backtest-programvare, for eksempel Tradestation, en numerisk plattform som Excel eller MATLAB eller en full tilpasset implementering i et programmeringsspråk som Python eller C. Jeg vil ikke bo for mye på Tradestation (eller lignende), Excel eller MATLAB, som jeg tror på å skape en full innebygd teknologi-stabell (av årsaker som er skissert nedenfor). En av fordelene ved å gjøre det er at backtestprogramvaren og kjøresystemet kan være tett integrert, selv med ekstremt avanserte statistiske strategier. For spesielt HFT-strategier er det viktig å bruke en tilpasset implementering. Ved backtesting av et system må man kunne kvantifisere hvor godt det utfører. Bransjestandardene for kvantitative strategier er maksimal drawdown og Sharpe Ratio. Maksimal drawdown karakteriserer den største topp-til-gjennom-dråpen i konto egenkapitalkurven over en bestemt tidsperiode (vanligvis årlig). Dette er oftest sitert som en prosentandel. LFT strategier vil ha en tendens til å ha større drawdowns enn HFT strategier, på grunn av en rekke statistiske faktorer. En historisk backtest viser den siste maksimale drawdownen, noe som er en god guide til strategiens fremtidige drawdown-ytelse. Den andre måling er Sharpe-forholdet, som er heuristisk definert som gjennomsnittet av meravkastningen dividert med standardavviket for disse meravkastningene. Her refererer meravkastning til strategiens avkastning over et forhåndsbestemt referanseindeks. slik som SP500 eller en 3-måneders statsskatt. Merk at årlig avkastning ikke er et mål som vanligvis benyttes, da det ikke tar hensyn til strategiens volatilitet (i motsetning til Sharpe-forholdet). Når en strategi er blitt testet og anses å være fri for biases (så mye som det er mulig), med en god Sharpe og minimerte drawdowns, er det på tide å bygge et eksekveringssystem. Eksekveringssystemer Et eksekveringssystem er det middel som gjør at listen over transaksjoner generert av strategien sendes og utføres av megleren. Til tross for at handelsgenerasjonen kan være halv - eller til og med fullt automatisert, kan utførelsesmekanismen være manuell, semi-manuell (dvs. ett klikk) eller fullt automatisert. For LFT-strategier er manuelle og semi-manuelle teknikker vanlige. For HFT-strategier er det nødvendig å skape en fullautomatisk utførelsesmekanisme, som ofte vil være tett kombinert med handelsgeneratoren (på grunn av sammenheng mellom strategi og teknologi). Nøkkelhensynene ved opprettelse av et kjøresystem er grensesnittet til megling. minimering av transaksjonskostnader (inkludert provisjon, slipp og spredning) og divergens av ytelsen til live-systemet fra tilbakeprøvd ytelse. Det er mange måter å grensesnitt til en megling. De spenner fra å ringe opp megleren på telefonen helt til et fullt automatisert applikasjonsprogrammeringsgrensesnitt (API) med høy ytelse. Ideelt sett vil du automatisere utførelsen av handler så mye som mulig. Dette frigjør deg for å konsentrere seg om ytterligere forskning, samt tillate deg å kjøre flere strategier eller til og med strategier med høyere frekvens (faktisk er HFT i det vesentlige umulig uten automatisk utførelse). Den vanlige backtestingsprogrammet som er skissert ovenfor, som MATLAB, Excel og Tradestation, er bra for lavere frekvens, enklere strategier. Imidlertid vil det være nødvendig å konstruere et internt kjøringssystem skrevet i et høypresterende språk som C for å gjøre noen ekte HFT. Som en anekdote, i fondet jeg pleide å være ansatt hos, hadde vi en 10 minutters handelsløkke hvor vi ville laste ned nye markedsdata hvert 10. minutt og deretter utføre handler basert på denne informasjonen i samme tidsramme. Dette brukte et optimert Python-skript. For noe som nærmer seg mini - eller andrefrekvensdata, tror jeg at CC ville være mer ideell. I et større fond er det ofte ikke domenet til quant trader for å optimalisere utførelsen. Men i mindre butikker eller HFT-firmaer, er handelsfolk BE eksekutorene, og så er en mye bredere ferdighet ofte ønskelig. Vær oppmerksom på om du ønsker å være ansatt i et fond. Programmeringsevnen din vil være like viktig, om ikke mer, enn statistikken din og økonometriske talenter. Et annet stort problem som faller under banneret til utførelse, er at transaksjonskostnadsminimering. Det er generelt tre komponenter til transaksjonskostnader: Provisjoner (eller skatt), som er gebyrene som belastes av megling, bytte og SEC (eller lignende statlig tilsynsorgan) slippage, som er forskjellen mellom hva du tenkte at bestillingen din skulle være fylt på versus hva det faktisk var fylt på spredning, som er forskjellen mellom budprisen på sikkerheten som handles. Vær oppmerksom på at spredningen ikke er konstant og er avhengig av den nåværende likviditeten (dvs. tilgjengeligheten av kjøpsordre) i markedet. Transaksjonskostnader kan gjøre forskjellen mellom en ekstremt lønnsom strategi med et godt Sharpe-forhold og en ekstremt ulønnsom strategi med et forferdelig Sharpe-forhold. Det kan være en utfordring å korrekt forutsi transaksjonskostnader fra en backtest. Avhengig av frekvensen av strategien, trenger du tilgang til historiske utvekslingsdata, som vil inneholde kryssdata for budsjettpriser. Hele teamet av quants er dedikert til optimalisering av gjennomføring i de større fondene, av disse årsakene. Tenk på scenariet der et fond må avlaste en betydelig mengde handler (hvorav grunnene til å gjøre det er mange og varierte). Ved å dumpe så mange aksjer på markedet, vil de raskt redusere prisen og kan ikke få optimal utførelse. Derfor eksisterer algoritmer som drikker foderordrer på markedet, selv om fondet løper risikoen for glidning. Videre utfordrer andre strategier disse nødvendighetene og kan utnytte ineffektiviteten. Dette er domenet i fondsstrukturarbitrage. Det endelige hovedproblemet for eksekveringssystemer gjelder divergens av strategiytelse fra tilbakeprøvd ytelse. Dette kan skje av flere grunner. Weve har allerede diskutert fremtidsforstyrrelser og optimaliseringskonsekvenser i dybden, når vi vurderer backtests. Noen strategier gjør det imidlertid ikke enkelt å teste for disse biases før distribusjon. Dette skjer i HFT mest overveiende. Det kan være feil i kjøringssystemet, så vel som handelsstrategien selv som ikke vises på en backtest, men viser seg i live trading. Markedet kan ha vært gjenstand for en regimeendring etter utplasseringen av strategien din. Nye reguleringsmiljøer, endring av investorens følelser og makroøkonomiske fenomener kan alle føre til avvik i hvordan markedet oppfører seg og dermed lønnsomheten i strategien din. Risikostyring Det endelige stykket til det kvantitative handelsspillet er prosessen med risikostyring. Risiko inkluderer alle de tidligere forutsetningene vi har diskutert. Det inkluderer teknologi risiko, for eksempel servere samlokalisert på utveksling plutselig utvikle en feil på harddisken. Det inkluderer meglerisiko, slik som megleren blir konkurs (ikke så gal som det høres, gitt den siste skremme med MF Global). Kort sagt dekker det nesten alt som muligens kunne forstyrre handelsimplementasjonen, hvorav det er mange kilder. Hele bøkene er viet til risikostyring for kvantitative strategier, så jeg vil ikke forsøke å belyse alle mulige risikokilder her. Risikostyring omfatter også det som kalles optimal kapitalallokering. som er en gren av portefølje teori. Dette er måten som kapital er allokert til et sett av forskjellige strategier og til handler innenfor disse strategiene. Det er et komplekst område og er avhengig av noen ikke-trivial matematikk. Industristandarden med hvilken optimal kapitalfordeling og innflytelse av strategiene er relatert kalles Kelly-kriteriet. Siden dette er en innledende artikkel, vil jeg ikke bo på beregningen. Kelly-kriteriet gir noen antagelser om den statistiske karakteren av avkastningen, som ikke ofte holder fast i finansmarkedet, slik at handelsmenn ofte er konservative når det gjelder implementeringen. En annen viktig del av risikostyringen er å håndtere en egen psykologisk profil. Det er mange kognitive forstyrrelser som kan krype inn i handel. Selv om dette er riktignok mindre problematisk med algoritmisk handel hvis strategien er igjen. En felles bias er at tap aversjon hvor en tapende stilling ikke vil bli stengt ut på grunn av smerten ved å innse et tap. På samme måte kan fortjeneste bli tatt for tidlig fordi frykten for å miste en allerede oppnådd fortjeneste kan være for stor. En annen vanlig bias er kjent som nyhetsforspenning. Dette manifesterer seg når handelsmenn legger for mye vekt på nylige hendelser og ikke på lengre sikt. Så er det selvfølgelig det klassiske paret av følelsesmessige forstyrrelser - frykt og grådighet. Disse kan ofte føre til under - eller overbelastning, noe som kan føre til oppblåsing (dvs. kontoenes egenkapitaloverskrift til null eller verre) eller redusert fortjeneste. Som det kan ses, er kvantitativ handel et ekstremt komplekst, men svært interessant, område med kvantitativ finans. Jeg har bokstavelig talt klargjort overflaten av emnet i denne artikkelen, og det blir allerede ganske lenge. Hele bøker og papirer er skrevet om problemer som jeg bare har gitt en setning eller to mot. Av den grunn er det nødvendig å utføre en betydelig mengde grunnarbeidstudie før søknad om kvantitative fondhandelsjobber. I det minste vil du trenge en omfattende bakgrunn i statistikk og økonometri, med stor erfaring i implementering, via et programmeringsspråk som MATLAB, Python eller R. For mer sofistikerte strategier ved høyere frekvensenden er ditt ferdighetssett sannsynlig å inkludere Linux kjerne modifikasjon, CC, montering programmering og nettverk latens optimalisering. Hvis du er interessert i å prøve å lage dine egne algoritmiske handelsstrategier, vil mitt første forslag være å bli god til programmering. Min preferanse er å bygge så mye av data grabber, strategi backtester og kjøresystem av deg selv som mulig. Hvis din egen hovedstad er på linjen, ville du ikke sove bedre om natten og vite at du har testet systemet fullt ut og er klar over fallgruvene og bestemte problemstillinger. Outsourcing dette til en leverandør, mens potensielt spare tid på kort sikt, kan være ekstremt dyrt på lang sikt. Bare Komme i gang med kvantitativ handelNovember 30, 2016, 12:34 For noen måneder siden forklarer en leser meg denne nye måten å koble til R og Excel. Jeg vet ikke hvor lenge dette har eksistert, men jeg kom aldri over det, og I8217ve har aldri sett noen blogginnlegg eller artikkel om det. Så jeg bestemte meg for å skrive et innlegg som verktøyet er virkelig verdt det og før noen spør, I8217m ikke relatert til selskapet på noen måte. BERT står for Basic Excel R Toolkit. It8217s er gratis (lisensiert under GPL v2), og den er utviklet av Structured Data LLC. På tidspunktet for skriving er den nåværende versjonen av BERT 1,07. Mer informasjon finner du her. Fra et mer teknisk perspektiv er BERT designet for å støtte kjører R-funksjoner fra Excel-regnearkceller. I Excel-termer, it8217s for å skrive brukerdefinerte funksjoner (UDFer) i R. I dette innlegget vil I8217m ikke vise deg hvordan R og Excel samhandler via BERT. Det er veldig gode opplæringsprogrammer her. her og her. I stedet vil jeg vise deg hvordan jeg brukte BERT til å bygge en 8220control tower8221 for min handel. Mine handelssignaler genereres ved hjelp av en lang liste med R-filer, men jeg trenger fleksibiliteten til Excel for å vise resultater raskt og effektivt. Som vist ovenfor kan BERT gjøre dette for meg, men jeg vil også skreddersy applikasjonen til mine behov. Ved å kombinere kraften i XML, VBA, R og BERT, kan jeg lage et godt og likevel kraftig program i form av en Excel-fil med minimum VBA-kode. Til slutt har jeg en enkelt Excel-fil som samler alle nødvendige oppgaver for å håndtere porteføljen min: databaseoppdatering, signalgenerering, innlevering av ordre etc8230 Min tilnærming kan brytes ned i de tre trinnene nedenfor: Bruk XML til å bygge brukerdefinerte menyer og knapper i en Excel fil. Ovennevnte menyer og knapper er i hovedsak anrop til VBA-funksjoner. Disse VBA-funksjonene er vikle rundt R-funksjoner definert ved hjelp av BERT. Med denne tilnærmingen kan jeg holde et klart skille mellom kjernen i koden min i R, SQL og Python, og alt brukt til å vise og formatere resultater som holdes i Excel, VBA amp XML. I de neste avsnittene presenterer jeg forutsetningen for å utvikle en slik tilnærming og en trinnvis veiledning som forklarer hvordan BERT kunne brukes til å bare overføre data fra R til Excel med minimal VBA-kode. 1 8211 Last ned og installer BERT fra denne linken. Når installasjonen er fullført, skal du ha en ny tilleggsmeny i Excel med knappene som vist nedenfor. Dette er hvordan BERT materialiseres i Excel. 2 8211 Last ned og installer Custom UI editor. Den Custom UI Editor lar deg lage brukerdefinerte menyer og knapper i Excel-bånd. En trinnvis prosedyre er tilgjengelig her. Steg for trinn guide 1 8211 R Kode: R-funksjonen nedenfor er et veldig enkelt stykke kode for illustrasjonsformål. Det beregner og returnerer residualene fra en lineær regresjon. Dette er hva vi vil hente i Excel. Lagre dette i en fil som heter myRCode. R (hvilket som helst annet navn er greit) i en katalog av ditt valg. 2 8211 funksjoner. R i BERT. Fra Excel velger du Add-Ins - gt Home Directory og åpner filen som heter funksjoner. R. I denne filen lim inn følgende kode. Pass på at du setter inn den riktige banen. Dette er bare innhenting i BERT R-filen du opprettet ovenfor. Lagre og lukk deretter filfunksjonene. R. Hvis du vil gjøre noen endringer i R-filen som ble opprettet i trinn 1, må du laste den opp igjen ved å bruke BERT-knappen 8220Reload Startup File8221 fra tilleggsmenyen i Excel 3 8211 I Excel: Opprett og lagre en fil som heter myFile. xslm (noe annet navn er greit). Dette er en makroaktivert fil som du lagrer i katalogen etter eget valg. Når filen er lagret, lukk den. 4 8211 Åpne filen opprettet ovenfor i Custom UI editor: Når filen er åpen, lim inn underkoden. Du bør ha noe slikt i XML-editoren: Denne delen av XML-koden oppretter i hovedsak en ekstra meny (RTrader), en ny gruppe (Min gruppe) og en brukerdefinert knapp (Ny knapp) i Excel-båndet. Når du er ferdig, åpner du myFile. xslm i Excel og lukker Custom UI Editor. Du bør se noe sånt. 5 8211 Åpne VBA-editor. I myFile. xlsm legg inn en ny modul. Lim inn koden nedenfor i den nylig opprettede modulen. Dette sletter tidligere resultater i regnearket før du klarte nye. 6 8211 Klikk Ny knapp. Gå nå tilbake til regnearket, og klikk på 8220New Button8221-knappen i RTrader-menyen. Du bør se noe som nedenfor vises. Guiden ovenfor er en veldig grunnleggende versjon av hva som kan oppnås ved hjelp av BERT, men det viser deg hvordan du kombinerer kraften til flere spesifikke verktøy for å bygge ditt eget tilpassede program. Fra mitt perspektiv er interessen for en slik tilnærming evnen til å lim sammen R og Excel selvsagt, men også å inkludere via XML (og batch) koden fra Python, SQL og mer. Dette er akkurat det jeg trengte. Endelig vil jeg være nysgjerrig på å vite om noen har noen erfaring med BERT 19. august 2016, kl 9:26. Når man tester handelsstrategier, er en felles tilnærming å dele det opprinnelige datasettet inn i prøvedata: den delen av dataene som er beregnet for å kalibrere modellen og ut av prøvedata: den delen av dataene som brukes til å validere kalibreringen og sikre at ytelsen skapt i prøven, blir reflektert i den virkelige verden. Som en tommelfingerregel kan rundt 70 av de opprinnelige dataene brukes til kalibrering (dvs. i prøven) og 30 for validering (dvs. ute av prøven). Deretter bidrar en sammenligning av inn og ut av prøvedata til å bestemme om modellen er robust nok. Dette innlegget tar sikte på å gå et skritt videre og gir en statistisk metode for å avgjøre om utdataene stemmer overens med det som ble opprettet i prøven. I diagrammet nedenfor representerer det blå området ut av prøveytelsen for en av mine strategier. En enkel visuell inspeksjon avslører en god passform mellom inn og ut av prøveytelsen, men hvilken grad av tillit har jeg i dette På dette stadiet ikke mye, og dette er problemet. Det som virkelig trengs, er et mål på likhet mellom inn og ut av prøvesettene. I statistiske termer kan dette oversettes som sannsynligheten for at inn - og utprøveprøveverdiene kommer fra samme fordeling. Det er en ikke-parametrisk statistisk test som gjør akkurat dette: Kruskall-Wallis-testen. En god definisjon av denne testen kunne bli funnet på R-Tutor 8220A-samlingen av dataprøver er uavhengige hvis de kommer fra ikke-relaterte populasjoner, og prøvene påvirker ikke hverandre. Bruke Kruskal-Wallis-testen. vi kan bestemme om befolkningsfordelingene er identiske uten at de antar at de skal følge den normale fordeling.8221 Den ekstra fordelen av denne testen antar ikke en normal fordeling. Det finnes andre tester av samme natur som kan passe inn i rammen. Mann-Whitney-Wilcoxon-testen eller Kolmogorov-Smirnov-testene passer perfekt til rammen beskriver her, men dette er utenfor rammen av denne artikkelen for å diskutere fordeler og ulemper ved hver av disse testene. En god beskrivelse sammen med R eksempler finnes her. Here8217s koden som brukes til å generere diagrammet ovenfor og analysen: I eksemplet ovenfor er det i prøveperioden lengre enn ut av prøveperioden, derfor har jeg tilfeldig opprettet 1000 delmengder av prøvedataene, hver av dem har samme lengde som ut av prøvedata. Deretter testet jeg hver i prøvesubset mot ut av prøvedata og jeg registrerte p-verdiene. Denne prosessen skaper ikke en eneste p-verdi for Kruskall-Wallis-testen, men en distribusjon som gjør analysen mer robust. I dette eksemplet er middelverdien av p-verdiene langt over null (0,478) som indikerer at nullhypotesen skal aksepteres: det er sterke bevis på at inn - og utgående av prøvedata kommer fra samme fordeling. Som vanlig er det som er presentert i dette innlegget et leketøyeksempel som bare riper opp overflaten av problemet og bør skreddersys for individuelle behov. Men jeg synes det foreslår et interessant og rasjonelt statistisk rammeverk for å evaluere ut av utvalgsresultater. Dette innlegget er inspirert av følgende to papirer: Vigier Alexandre, Chmil Swann (2007), Effekt av ulike optimaliseringsfunksjoner på utsatt ytelse av genetisk utviklede handelsstrategier, Forecasting Financial Markets Conference Vigier Alexandre, Chmil Swann (2010), An optimaliseringsprosess for å forbedre innsamlingen av konsistensen, et aksjemarkedssak, JP Morgan Cazenove Equity Quantitative Conference, London oktober 2010 13. desember 2015 klokken 14:03 Å gjøre kvantitativ forskning innebærer mye datakrytende og man trenger rene og pålitelige data til oppnå dette. Det som virkelig trengs er ren data som er lett tilgjengelig (selv uten en internettforbindelse). Den mest effektive måten å gjøre dette på for meg, har vært å opprettholde et sett med csv-filer. Selvfølgelig kan denne prosessen håndteres på mange måter, men jeg fant svært effektiv og enkel overtid for å opprettholde en katalog der jeg lagrer og oppdaterer csv-filer. Jeg har en CSV-fil per instrument, og hver fil er oppkalt etter instrumentet den inneholder. Grunnen til at jeg gjør det er todelt: For det første vil jeg ikke laste ned (pris) data fra Yahoo, Google etc8230 hver gang jeg vil teste en ny ide, men enda viktigere når jeg har identifisert og løst et problem, vil jeg ikke Gjør det igjen neste gang jeg trenger det samme instrumentet. Enkel, men svært effektiv hittil. Prosessen er oppsummert i tabellen nedenfor. I alt som følger, antar jeg at data kommer fra Yahoo. Koden må endres for data fra Google, Quandl etc8230 I tillegg presenterer jeg prosessen med å oppdatere daglige prisdata. Oppsettet vil variere for høyere frekvensdata og annen datasett (dvs. forskjellig fra priser). 1 8211 Innledende data nedlasting (listOfInstruments. R amp historicalData. R) FillistenOfInstruments. R er en fil som bare inneholder listen over alle instrumenter. Hvis et instrument isn8217t er en del av listen min (det vil si ingen CSV-fil i data-mappen min), eller hvis du gjør det for første gang, må du laste ned det første historiske datasettet. Eksempelet nedenfor laster ned et sett med ETFs daglige priser fra Yahoo Finance tilbake til januar 2000 og lagrer dataene i en csv-fil. 2 8211 Oppdater eksisterende data (updateData. R) Koden nedenfor starter fra eksisterende filer i den dedikerte mappen og oppdaterer dem alle etter hverandre. Jeg kjører vanligvis denne prosessen hver dag unntatt når I8217m er på ferie. For å legge til et nytt instrument, kjør du bare trinn 1 over for dette instrumentet alene. 3 8211 Opprett en batchfil (updateDailyPrices. bat) En annen viktig del av jobben er å lage en batchfil som automatiserer oppdateringsprosessen over (I8217m en Windows-bruker). Dette unngår å åpne RRStudio og kjøre koden derfra. Koden nedenfor er plassert på en. bat-fil (banen må endres med oppsettet reader8217s). Merk at jeg har lagt til en utdatafil (updateLog. txt) for å spore kjøringen. Prosessen over er ekstremt enkel fordi den bare beskriver hvordan du oppdaterer daglige prisdata. I8217ve har brukt dette på en stund, og det har jobbet veldig jevnt for meg så langt. For mer avanserte data og eller høyere frekvenser kan ting bli vanskeligere. Som vanlig mottok noen kommentarer 23. mars 2015, 20:55 Når det gjelder å forvalte en portefølje av aksjer i forhold til en referanse, er problemet svært forskjellig fra å definere en absolutt avkastningsstrategi. I den førstnevnte må man holde flere aksjer enn i den senere hvor det ikke kan holdes noe lager hvis det ikke er god nok mulighet. Årsaken til dette er sporingsfeilen. Dette er definert som standardavviket i porteføljens avkastning minus referanseavkastningen. Jo mindre aksjer holdes vs. et referanse desto høyere sporing feil (for eksempel høyere risiko). Analysen som følger er i stor grad inspirert av boken 8220Active Portfolio Management8221 av Grinold amp Kahn. Dette er Bibelen for alle som er interessert i å drive en portefølje mot et referanseindeks. Jeg oppfordrer sterkt alle med interesse for emnet å lese boka fra begynnelse til slutt. It8217 er veldig godt skrevet og legger grunnlaget for systematisk aktiv porteføljestyring (jeg har ingen tilknytning til redaktøren eller forfatterne). 1 8211 Faktoranalyse Her prøver vi å rangere så nøyaktig som mulig aksjene i investeringsuniverset på en forward return basis. Mange mennesker kom opp med mange verktøy og utallige variant av disse verktøyene er utviklet for å oppnå dette. I dette innlegget fokuserer jeg på to enkle og mye brukte beregninger: Informasjonskoeffisient (IC) og Quantiles Return (QR). 1.1 8211 Informasjonskoeffisient Horisonten for videresendingen må defineres av analytikeren, og it8217s er en funksjon av strategi8217s omsetning og alfaforfallet (dette har vært gjenstand for omfattende undersøkelser). Åpenbart må IC-er være så høye som mulig i absolutte tal. For den ivrige leseren, i boken av Grinold amp Kahn er det gitt en formel som forbinder Informasjonsforhold (IR) og IC: med bredde er antall uavhengige spill (handler). Denne formelen er kjent som den grunnleggende loven for aktiv ledelse. Problemet er at det ofte ikke er så enkelt å definere bredde som det lyder. 1.2 8211 Quantiles Return For å få et mer nøyaktig estimat av faktorforutsigelsestrømmen it8217s er nødvendig for å gå et skritt videre og gruppere aksjer ved kvantifaktor av faktorverdier, analyser deretter gjennomsnittlig videresendingsavkastning (eller hvilken som helst annen sentral tendensmetrisk) for hver av disse quantiles. Bruken av dette verktøyet er grei. En faktor kan ha en god IC, men dens prediktive kraft kan begrenses til et lite antall aksjer. Dette er ikke bra da en porteføljeforvalter må plukke aksjer i hele universet for å møte sin sporingsfeilbegrensning. God kvantilgjenoppretting er preget av et monotont forhold mellom de enkelte kvantiler og fremoveravkastning. Alle aksjene i SampP500-indeksen (på tidspunktet for skriving). Det er åpenbart at det er en overlevelsesskipsforstyrrelse: listen over aksjer i indeksen har endret seg betydelig mellom start og slutt på prøveperioden, men it8217s er godt nok bare for illustrasjonsformål. Koden nedenfor laster ned individuelle aksjekurser i SampP500 mellom januar 2005 og i dag (det tar en stund) og gjør de raske prisene tilbake i løpet av de siste 12 månedene og den siste måneden. Den førstnevnte er vår faktor, sistnevnte vil bli brukt som fremoverrettsmål. Nedenfor er koden for å beregne informasjonskoeffisient og kvantilførsel. Merk at jeg brukte quintiles i dette eksemplet, men noen annen gruppemetode (terciles, deciles etc8230) kan brukes. det avhenger egentlig av utvalgsstørrelsen, hva du vil fange og hvorvidt du vil ha en bred oversikt eller fokus på distribusjonshaler. For å estimere avkastning innenfor hver kvintil, har median blitt brukt som sentral tendens estimator. Dette tiltaket er mye mindre følsomt for utjevnere enn aritmetisk middel. Og til slutt koden for å produsere Quantiles Return diagrammet. 3 8211 Slik utnytter du informasjonen ovenfor I diagrammet over Q1 er det laveste siste 12 måneder tilbake og Q5 høyest. Det er en nesten monotonisk økning i kvantilavkastningen mellom Q1 og Q5, noe som klart indikerer at aksjer som faller inn i Q5, overgår de som faller inn i Q1 med ca. 1 per måned. Dette er veldig viktig og kraftig for en så enkel faktor (ikke egentlig en overraskelse though8230). Derfor er det større sjanser til å slå indeksen ved å overvurdere aksjene som faller inn i Q5 og undervekting de som faller inn i Q1 i forhold til referansen. En IC på 0,0206 kan ikke bety mye i seg selv, men it8217 er vesentlig forskjellig fra 0 og indikerer en god prediktiv kraft i de siste 12 månedene tilbake generelt. Formelle signifikanstest kan vurderes, men dette er utenfor rammen av denne artikkelen. 4 8211 Praktiske begrensninger Ovennevnte rammeverk er utmerket for evaluering av investeringer faktor8217s kvalitet, men det er en rekke praktiske begrensninger som må tas opp for real-life implementering: Rebalancing. I beskrivelsen ovenfor antok it8217s at porteføljen ved utgangen av hver måned er fullstendig balansert. Dette betyr at alle aksjer som faller i 1. kvartal er undervektige og alle aksjer som faller i 5. kvartal er overvektige i forhold til referanseporteføljen. Dette er ikke alltid mulig av praktiske årsaker: Noen aksjer kan utelukkes fra investeringsuniverset, det er begrensninger på industri - eller sektorvekt, det er begrensninger på omsetningen etc8230 Transaksjonskostnader. Dette er ikke tatt i betraktning i analysen ovenfor, og dette er en alvorlig bremse til virkeliggjøring. Omsetningsoverveksten blir vanligvis implementert i virkeligheten i form av straff på faktorkvalitet. Overføringskoeffisient. Dette er en utvidelse av den grunnleggende loven for aktiv ledelse, og det slapper av antakelsen om Grinold8217s modell at ledere ikke står overfor noen begrensninger som hindrer dem i å oversette sine investeringsinnsikter direkte i porteføljesats. Og til slutt, I8217m overrasket over hva som kan oppnås på mindre enn 80 kodelinjer med R8230. Som vanlig mottok noen kommentarer 14. mars 2014 kl. 13:07 Spørsmålet man alltid burde spørre seg selv når man bruker tekniske indikatorer, er det som ville være et mål kriterier for å velge indikatorparametere (f. eks. hvorfor du bruker en 14-dagers RSI i stedet for 15 eller 20 dager). Genetiske algoritmer (GA) er godt egnet verktøy for å svare på det spørsmålet. I dette innlegget viser I8217ll deg hvordan du setter opp problemet i R. Før jeg fortsetter den vanlige påminnelsen: Det jeg presenterer i dette innlegget, er bare et leketøyeksempel og ikke en invitasjon til å investere. Det er ikke en ferdig strategi heller enn en forskningside som må undersøkes videre, utvikles og skreddersys for individuelle behov. Hva er genetiske algoritmer Den beste beskrivelsen av GA jeg kom over kommer fra Cybernatic Trading en bok av Murray A. Ruggiero. 8220Genetic Algorithms ble oppfunnet av John Holland i midten av 1970 for å løse vanskelige optimaliseringsproblemer. Denne metoden bruker naturlig utvalg, overlevelse av fittest8221. Den generelle prosessen følger trinnene nedenfor: Kodifisere problemet i kromosomer Ved hjelp av kodingen, utvikle en treningsfunksjon til bruk ved å evaluere hver kromosom8217s verdi ved å løse et gitt problem. Initialisere en kromosoms befolkning. Evaluer hvert kromosom i befolkningen. Opprett nye kromosomer ved å parre to kromosomer. Dette gjøres ved å mutere og rekombinere to foreldre til å danne to barn (foreldrene er valgt tilfeldig, men partisk av deres kondisjon) Evaluere det nye kromosomet Slett et medlem av befolkningen som er mindre egnet enn det nye kromosomet og sett inn det nye kromosomet i befolkningen . Hvis stoppkriteriene er nådd (maksimalt antall generasjoner, er treningscriteriene gode nok8230), og returner deretter det beste kromosomet alternativt gå til trinn 4 Fra et handelsperspektiv er GA veldig nyttig fordi de er gode til å håndtere svært ulineære problemer. Men de har noen ubehagelige funksjoner som er verdt å nevne: Overpassing: Dette er hovedproblemet og it8217s ned til analytikeren for å sette opp problemet på en måte som minimerer denne risikoen. Datatid. Hvis problemet isn8217t er riktig definert, kan det være ekstremt lang tid å nå en anstendig løsning og kompleksiteten øker eksponentielt med antall variabler. Derfor er det nødvendig å nøye velge parametrene. Det er flere R-pakker som omhandler GA, jeg valgte å bruke den vanligste: Rgenoud Daglig sluttkurs for de fleste likvide ETFer fra Yahoo Finance går tilbake til januar 2000. I prøveperioden går fra januar 2000 til desember 2010. Ut av prøveperioden starter i januar 2011. Logikken er som følger: Treningsfunksjonen er optimalisert i løpet av prøveperioden for å oppnå et sett med optimale parametere for de valgte tekniske indikatorene. Resultatene av disse indikatorene blir deretter vurdert uten prøveperiode. Men før det gjøres må de tekniske indikatorene velges. Aksjemarkedet har to hovedtrekk som er kjent for alle som har noen handelserfaring. Langsiktig momentum og kortvarig reversering. Disse funksjonene kan oversettes med tanke på tekniske indikatorer ved å flytte gjennomsnitt over og RSI. Dette representerer et sett med 4 parametere: Look-back perioder for lengre og kortsiktige glidende gjennomsnitt, tilbaketrukket periode for RSI og RSI terskel. Parametrene er kromosomene. Det andre nøkkelelementet er treningsfunksjonen. Vi vil kanskje bruke noe som: Maksimal avkastning eller Sharpe-forhold eller minimums gjennomsnittlig Drawdown. I det følgende valgte jeg å maksimere Sharpe-forholdet. R-implementeringen er et sett med 3 funksjoner: fitnessfunksjon. definerer treningsfunksjonen (for eksempel maksimal Sharpe-forhold) som skal brukes i GA-motoren tradingStatistics. Sammendrag av handelsstatistikk for inn og ut av prøveperioder til sammenligningsformål. GA-motoren fra rgenoud-pakken Genoud-funksjonen er ganske kompleks, men I8217m skal ikke forklare hva hver parameter betyr som jeg vil beholde dette innlegget kort (og dokumentasjonen er veldig bra). I tabellen nedenfor presenterer jeg for hvert instrument de optimale parametrene (RSI-tilbaketrukket periode, RSI-terskel, Kortsiktig Moving Average og Long Term Moving Average) sammen med inn og ut av samhandelsstatistikken. Før jeg kommenterer resultatene ovenfor, vil jeg forklare noen viktige punkter. For å matche logikken som er definert ovenfor begrensede jeg parametrene for å sikre at tilbaketrukket perioden for det langsiktige glidende gjennomsnittet alltid er lengre enn det kortere glidende gjennomsnittet. Jeg har også begrenset optimisten til å velge kun løsningene med mer enn 50 bransjer i prøveperioden (for eksempel statistisk signifikans). Samlet er resultatet av utvalgene langt fra imponerende. Avkastningen er lav, selv om antall handler er små for å gjøre resultatet veldig viktig. Men there8217s er et betydelig effektivitetsutbytte mellom inn og ut av prøveperioden for Japan (EWJ), noe som sannsynligvis betyr overmontering. Dette innlegget er ment å gi leseren verktøyene til riktig bruk av GA i et kvantitativt handelsramme. Igjen, It8217 er bare et eksempel som må forbedres ytterligere. Noen mulige forbedringer for å utforske ville være: treningsfunksjon. Maksimering av Sharpe-forholdet er veldig forenklet. En 8220smarter8221-funksjon ville absolutt forbedre utvalget av utvalgsstatistikk. Vi prøver å fange et veldig greit mønster. En mer grundig mønsterforskning er definitivt nødvendig. optimalisering. Det er mange måter å forbedre måten optimaliseringen utføres på. Dette vil forbedre både beregningshastigheten og rasjonaliteten av resultatene. Koden som brukes i dette innlegget er tilgjengelig på et Gist-depot. Som vanlig kommer kommentarer velkommen 28. februar 2014, 15:52 Det er en enorm litteratur litteratur, både akademisk og empirisk om markedsforutsetninger. Mesteparten av tiden blander det to markedsfunksjoner: Magnitude og Direction. I denne artikkelen vil jeg bare fokusere på å identifisere markedsretningen bare. Målet jeg satte meg selv er å identifisere markedsforhold når oddsen er vesentlig forspent mot et opp eller ned-marked. Dette innlegget gir et eksempel på hvordan CART (klassifisering og regresjonstrær) kan brukes i denne konteksten. Før jeg fortsetter den vanlige påminnelsen: Det jeg presenterer i dette innlegget er bare et leketøy eksempel og ikke en invitasjon til å investere. Det er ikke en ferdig strategi heller enn en forskningside som må undersøkes videre, utvikles og skreddersys for individuelle behov. 1 8211 Hva er CART og hvorfor bruke det Fra statistikk er CART et sett med teknikker for klassifisering og prediksjon. Teknikken er rettet mot å produsere regler som forutsier verdien av en utfall (mål) - variabel fra kjente verdier av forklarende (forklarende) variabler. Det er mange forskjellige implementeringer, men de deler alle en generell karakteristikk, og det er det jeg er interessert i. Fra Wikipedia, Algoritmer for konstruksjon av beslutningstrender, fungerer vanligvis topp ned, ved å velge en variabel i hvert trinn som best deler opp settet av elementer. Ulike algoritmer bruker forskjellige beregninger for å måle 8220best8221. Disse måler generelt homogeniteten til målvariabelen innenfor delmengder. Disse beregningene blir brukt på hver kandidatsubset, og de resulterende verdier kombineres (for eksempel i gjennomsnitt) for å gi et mål på kvaliteten på splittelsen. CART metodikk utviser noen egenskaper som er svært velegnet for markedsanalyse: Ikke parametrisk. CART kan håndtere alle typer statistiske utdelinger, ikke lineære. CART kan håndtere et stort spekter av avhengighet mellom variabler (for eksempel ikke begrenset til lineære relasjoner) Robust til utelukker Det finnes forskjellige R-pakker som omhandler Rekursiv partisjonering, jeg bruker her rpart for trærestimering og rpart. plot for treningstegning. 2 8211 Data amp Experiment Design Daglige OHLC-priser for de fleste likvide ETFer fra januar 2000 til desember 2013 hentet fra Google Finance. I prøveperioden går fra januar 2000 til desember 2010, resten av datasettet er ute av prøveperioden. Før du kjører noen type analyse må datasettet være forberedt på oppgaven. Målvariabelen er ETFs ukentlige returreferanse definert som to tilstander av verdensresultatet (OPP eller NED). Hvis ukentlig fremover returnerer gt 0, så markerer markedet i UP-stand NED, ellers. De forklarende variablene er et sett med tekniske indikatorer fra det første daglige OHLC datasettet. Hver indikator representerer en veldokumentert markedsadferd. For å redusere støyen i dataene og for å prøve å identifisere robuste forhold, regnes hver uavhengig variabel for å ha et binært utfall. Volatilitet (VAR1). Høy volatilitet er vanligvis assosiert med et down-marked og lav volatilitet med et opp marked. Volatilitet er definert som 20 dagers rå ATR (Average True Range) spredt til det bevegelige gjennomsnittet (MA). Hvis rå ATR gt MA så VAR1 1, ellers VAR1 -1. Kortsiktig momentum (VAR2). Aksjemarkedet viser kortvarig momentumadferanse fanget her med 5 dagers enkle glidende gjennomsnitt (SMA). Hvis pris gt SMA deretter VAR2 1 annet VAR2 -1 Langsiktig momentum (VAR3). Aksjemarkedet viser langsiktig momentumadferd som er fanget her med et 50 dagers enkelt glidende gjennomsnitt (LMA). Hvis Pris gt LMA deretter VAR3 1 annet VAR3 -1 Kortvarig reversering (VAR4). Dette er fanget av CRTDR som står for nært forhold til daglig rekkevidde og beregnes som følger:. Hvis CRTDR gt 0.5, så VAR4 1 annet VAR4 -1 Autokorrelasjonsregime (VAR5). Aksjemarkedet har en tendens til å gå gjennom perioder med negative og positive autokorrelasjonsregimer. Hvis returnerer autokorrelasjon de siste 5 dagene gt 0 så VAR5 1 annet VAR5 -1 Jeg legger under et tre eksempel med noen forklaringer I treet over er banen til nåde 4: VAR3 gt0 (Langtids Momentum gt 0) og VAR4 gt 0 (CRTDR gt 0). Det røde rektangelet indikerer at dette er et NED-blad (for eksempel terminal node) med en sannsynlighet på 58 (1 8211 0,42). I markedsbetingelser betyr dette at hvis Long Term Momentum er opp og CRTDR er gt 0,5, så er sannsynligheten for en positiv avkastning neste uke 42 basert på dataene i prøveeksempler. 18 indikerer andelen av datasettet som faller inn i den terminalnoden (for eksempel blad). Det er mange måter å bruke ovenstående tilnærming til, jeg valgte å estimere og kombinere alle mulige trær. Fra samplingsdataene samler jeg alle blader fra alle mulige trær, og jeg samler dem inn i en matrise. Dette er 8220rules matrix8221 som gir sannsynligheten for neste uke å være OPP eller NED. Jeg bruker reglene i ovenstående matrise til ut av prøvedata (Jan 2011 8211 Dec 2013) og jeg sammenligner resultatene med det virkelige resultatet. Problemet med denne tilnærmingen er at et enkelt punkt (uke) kan falle inn i flere regler og til og med tilhører UP og DOWN-regler samtidig. Derfor søker jeg en stemmeordning. For en gitt uke oppsummerer jeg alle reglene som gjelder for den uken, og gir en 1 for en UP-regel og -1 for en DOWN-regel. Hvis summen er større enn 0, er uken klassifisert som UP, hvis summen er negativ it8217s en NED-uke, og hvis summen er lik 0, blir ingen stilling tatt den uken (retur 0). Ovennevnte metode brukes på en sett av meget flytende ETFer. Jeg plotter under ut av egenkapitalkurver sammen med kjøp og hold strategi i samme periode. Første resultater virker oppmuntrende selv om kvaliteten på utfallet varierer sterkt av instrument. Men det er et stort rom for forbedring. Jeg legger under noen veibeskrivelser for videreanalyse Sti optimalitet. Algoritmen som brukes her for å definere trærne, er optimal ved hver deling, men det garanterer ikke optimaliteten av banen. Å legge til en beregning for å måle optimaliteten av banen ville sikkert forbedre resultatene ovenfor. Andre variabler. Jeg valgte de forklarende variablene utelukkende basert på erfaring. Det er veldig sannsynlig at dette valget ikke er bra eller optimalt. Backtest metodikk. Jeg brukte en enkel In and Out of sample metode. I en mer formell backtest vil jeg helst bruke et rullende eller ekspanderende vindu med inn - og utprøve-underperioder (for eksempel gå fremoveranalyse) Som vanlig mottas eventuelle kommentarer velkommen

No comments:

Post a Comment