Friday 6 October 2017

How To Create Høyfrekvente Trading System


Grunnleggende om Algoritmisk handel: Konsepter og eksempler En algoritme er et spesifikt sett med klart definerte instruksjoner som skal utføre en oppgave eller prosess. Algoritmisk handel (automatisert handel, svart bokhandel eller ganske enkelt algo-trading) er prosessen med å bruke datamaskiner som er programmert til å følge et definert sett med instruksjoner for å sette en handel for å generere fortjeneste med en hastighet og frekvens som er umulig for en menneskelig næringsdrivende. De definerte settene av regler er basert på timing, pris, kvantitet eller hvilken som helst matematisk modell. Bortsett fra profittmuligheter for næringsdrivende, gjør algo-trading markeder mer likvide og gjør handel mer systematisk ved å utelukke følelsesmessige menneskelige konsekvenser for handelsaktiviteter. Anta at en næringsdrivende følger disse enkle handlekriteriene: Kjøp 50 aksjer på en aksje når 50-dagers glidende gjennomsnitt går over 200-dagers glidende gjennomsnitt. Selg aksjer på aksjene når 50-dagers glidende gjennomsnitt går under 200-dagers glidende gjennomsnitt Ved å bruke dette settet med to enkle instruksjoner, er det enkelt å skrive et dataprogram som automatisk overvåker aksjekursen (og de bevegelige gjennomsnittlige indikatorene) og legger kjøps - og salgsordrene når de definerte betingelsene er oppfylt. Trafikken trenger ikke lenger å holde øye med livepriser og grafer, eller legge inn ordrene manuelt. Det algoritmiske handelssystemet gjør det automatisk for ham ved korrekt å identifisere handelsmuligheten. (For mer om å flytte gjennomsnitt, se: Enkle bevegelige gjennomsnittsverdier Gjør utfordringer.) Algo-trading gir følgende fordeler: Handler utført til best mulig pris Øyeblikkelig og nøyaktig handelsordreplassering (derved høye muligheter for utførelse på ønsket nivå) Handler tidsbestemt korrekt og øyeblikkelig for å unngå betydelige prisendringer. Reduserte transaksjonskostnader (se gjennomføringsbristeksemplet nedenfor) Samtidig automatisert kontroll av flere markedsforhold. Redusert risiko for manuelle feil i å plassere bransjene. Teste algoritmen basert på tilgjengelige historiske og sanntidsdata Redusert Mulighet for feil av menneskelige handelsfolk basert på følelsesmessige og psykologiske faktorer Den største delen av dagens algo-trading er HFT (High Frequency Trading), som forsøker å kapitalisere seg på å plassere et stort antall bestillinger med svært høye hastigheter på tvers av flere markeder og flere beslutninger parametere, basert på forhåndsprogrammerte instruksjoner. (For mer om handel med høyfrekvent handel, se: Strategier og hemmeligheter for høyfrekvenshandelsvirksomhet). Algo-trading brukes i mange former for handels - og investeringsaktiviteter, blant annet: Midtre til langsiktige investorer eller kjøpsselskaper (pensjonskasser , fond, forsikringsselskaper) som kjøper i aksjer i store mengder, men ikke vil påvirke aksjekursene med diskrete, store voluminvesteringer. Kortsiktige forhandlere og selger sidedeltakere (markedstakere, spekulanter og arbitragerer) drar nytte av automatisert handelstiltak i tillegg, algo-trading hjelpemidler for å skape tilstrekkelig likviditet for selgere i markedet. Systematiske handelsfolk (trendfølgere, parhandlere, hedgefond etc.) finner det mye mer effektivt å programmere handelsreglene og la programmet handle automatisk. Algoritmisk handel gir en mer systematisk tilnærming til aktiv handel enn metoder basert på en menneskelig handlende intuisjon eller instinkt. Algoritmiske handelsstrategier Enhver strategi for algoritmisk handel krever en identifisert mulighet som er lønnsom når det gjelder bedre inntjening eller kostnadsreduksjon. Følgende er vanlige handelsstrategier som brukes i algo-trading: De vanligste algoritmiske handelsstrategiene følger trender i flytende gjennomsnitt. kanalutbrudd. prisnivåbevegelser og tilhørende tekniske indikatorer. Dette er de enkleste og enkleste strategiene for å implementere gjennom algoritmisk handel fordi disse strategiene ikke innebærer å gjøre noen spådommer eller prisprognoser. Handler er initiert basert på forekomsten av ønskelige trender. som er enkle og enkle å implementere gjennom algoritmer uten å komme inn i kompleksiteten av prediktiv analyse. Ovennevnte eksempel på 50 og 200 dagers glidende gjennomsnitt er en populær trend-strategi. (For mer om trend trading strategier, se: Enkle strategier for kapitalisering på trender.) Å kjøpe en dobbelt børsnotert aksje til en lavere pris i ett marked og samtidig selge den til en høyere pris i et annet marked, tilbyr prisforskjellen som risikofri gevinst eller arbitrage. Samme operasjon kan replikeres for aksjer kontra futures instrumenter, da prisforskjeller eksisterer fra tid til annen. Implementering av en algoritme for å identifisere slike prisforskjeller og å plassere ordrene gir lønnsomme muligheter på en effektiv måte. Indeksfondene har definert perioder med rebalansering for å bringe sine beholdninger på nivå med sine respektive referanseindekser. Dette skaper lønnsomme muligheter for algoritmiske handelsmenn, som utnytter forventede bransjer som tilbyr 20-80 basispoeng fortjeneste avhengig av antall aksjer i indeksfondet, like før indeksfondets rebalansering. Slike handler initieres via algoritmiske handelssystemer for rettidig utførelse og beste priser. Mange påviste matematiske modeller, som delta-nøytral handelsstrategi, som tillater handel på kombinasjon av opsjoner og underliggende sikkerhet. hvor handler er plassert for å kompensere positive og negative deltakere slik at porteføljens delta blir opprettholdt til null. Gjennomsnittlig reverseringsstrategi er basert på ideen om at høye og lave priser på en eiendel er et midlertidig fenomen som regelmessig vender tilbake til gjennomsnittlig verdi. Identifisere og definere et prisklasse og en implementeringsalgoritme basert på det tillater handel å bli plassert automatisk når prisen på aktivet bryter inn og ut av sitt definerte område. Volumvektet gjennomsnittsprisstrategi bryter opp en stor ordre og frigjør dynamisk bestemte mindre biter av ordren til markedet ved hjelp av aksjespesifikke historiske volumprofiler. Målet er å gjennomføre bestillingen nær Volumvektet Gjennomsnittlig Pris (VWAP), og derved nytte gjennomsnittlig pris. Tidsvektet gjennomsnittsprisstrategi bryter opp en stor ordre og frigjør dynamisk bestemte mindre biter av ordren til markedet ved å bruke jevnt fordelte tidsluker mellom en start og sluttid. Målet er å gjennomføre bestillingen nær gjennomsnittlig pris mellom start - og sluttider, og dermed minimere markedsvirkningen. Inntil handelsordren er fullstendig, fortsetter denne algoritmen å sende partielle ordrer, i henhold til definert deltakelsesforhold og i henhold til volumet som handles på markedene. Den relaterte trinnstrategien sender ordrer til en brukerdefinert prosentandel av markedsvolumer og øker eller reduserer denne deltakelsesraten når aksjekursen når brukerdefinerte nivåer. Strategien for gjennomføring av mangler har til hensikt å minimere eksekveringsprisen for en ordre ved å avregne realtidsmarkedet, og dermed spare på kostnadene for ordren og dra nytte av mulighetskostnaden ved forsinket utførelse. Strategien vil øke den målrettede deltakelsesraten når aksjekursen beveger seg gunstig og reduserer den når aksjekursen beveger seg negativt. Det er noen spesielle klasser av algoritmer som forsøker å identifisere hendelser på den andre siden. Disse sniffingsalgoritmene, som for eksempel brukes av en selger side markedsfører, har den innebygde intelligensen for å identifisere eksistensen av noen algoritmer på kjøpssiden av en stor ordre. Slik gjenkjenning gjennom algoritmer vil hjelpe markedsmakeren til å identifisere store ordre muligheter og gjøre det mulig for ham å få fordel ved å fylle ordrene til en høyere pris. Dette er noen ganger identifisert som high-tech front-running. (For mer om høyfrekvent handel og bedragerisk praksis, se: Hvis du kjøper aksjer på nettet, er du involvert i HFT.) Tekniske krav til algoritmisk handel Implementering av algoritmen ved hjelp av et dataprogram er den siste delen, klubbbedret med backtesting. Utfordringen er å omdanne den identifiserte strategien til en integrert datastyrt prosess som har tilgang til en handelskonto for å plassere ordrer. Følgende er nødvendige: Programmeringskunnskap for å programmere den nødvendige handelsstrategien, innleid programmører eller ferdigstillet handelsprogramvare Nettverkstilkobling og tilgang til handelsplattformer for å plassere ordrene Tilgang til markedsdata feeds som vil bli overvåket av algoritmen for muligheter til plassering ordrer Evnen og infrastrukturen til å sikkerhetskopiere systemet en gang bygget, før den går live på ekte markeder Tilgjengelig historisk data for backtesting, avhengig av kompleksiteten av regler implementert i algoritmen Her er et omfattende eksempel: Royal Dutch Shell (RDS) er notert på Amsterdam Børs (AEX) og London Stock Exchange (LSE). Lar bygge en algoritme for å identifisere arbitrage muligheter. Her er noen interessante observasjoner: AEX handler i euro, mens LSE handler i Sterling Pounds På grunn av en times tidsforskjell åpner AEX en time tidligere enn LSE, etterfulgt av begge børser som handler samtidig for de neste par timene og deretter handler kun i LSE under Den siste timen når AEX lukkes Kan vi undersøke muligheten for arbitragehandel på Royal Dutch Shell-børsen som er oppført på disse to markedene i to forskjellige valutaer. Et dataprogram som kan lese nåværende markedspriser. Prisene fra både LSE og AEX. A forex rate feed for GBP-EUR-vekslingskurs Bestill plasseringskapasitet som kan ordne bestillingen til riktig utveksling Tilbakestillingskapasitet på historiske prisfeeder Dataprogrammet bør utføre følgende: Les innkommende prisfôr av RDS-lager fra begge børser Ved hjelp av tilgjengelige valutakurser . konvertere prisen på en valuta til andre Hvis det eksisterer en stor nok prisavvik (rabatt på meglerkostnadene) som fører til en lønnsom mulighet, legger du kjøpsordren på lavere prissentral og salgsordre på høyere prissentral Hvis ordrene utføres som Ønsket, arbitrage fortjeneste vil følge Simple and Easy Imidlertid er praksis med algoritmisk handel ikke så enkelt å vedlikeholde og utføre. Husk at hvis du kan plassere en algo-generert handel, så kan de andre markedsdeltakere. Følgelig varierer prisene i milli - og til og med mikrosekunder. I eksemplet ovenfor, hva skjer hvis kjøpekjøpet ditt blir henrettet, men selger handel, da selgerprisene endrer seg når bestillingen din treffer markedet. Du vil ende opp med å sitte med en åpen stilling. gjøre arbitrage-strategien din verdiløs. Det er flere risikoer og utfordringer: for eksempel systemfeil, nettverkstilkoblingsfeil, tidsforsinkelse mellom handelsordre og utførelse, og viktigst av alt, ufullkomne algoritmer. Jo mer komplekse en algoritme, desto strengere backtesting er nødvendig før den blir satt i gang. Kvantitativ analyse av en algoritmeprestasjon spiller en viktig rolle og bør undersøkes kritisk. Det er spennende å gå for automatisering hjulpet av datamaskiner med en ide å tjene penger uten problemer. Men man må sørge for at systemet er grundig testet og at det stilles krav om grenser. Analytiske handelsfolk bør vurdere å lære programmerings - og byggesystemer alene, for å være sikre på å implementere de riktige strategiene på idiotsikker måte. Forsiktig bruk og grundig testing av algo-handel kan skape lønnsomme muligheter. Artikkel 50 er en forhandlings - og oppgjørsklausul i EU-traktaten som skisserer trinnene som skal tas for ethvert land som. Et første bud på et konkursfirma039s eiendeler fra en interessert kjøper valgt av konkursselskapet. Fra et basseng av tilbudsgivere. Beta er et mål for volatiliteten, eller systematisk risiko, av en sikkerhet eller en portefølje i forhold til markedet som helhet. En type skatt belastet kapitalgevinster pådratt av enkeltpersoner og selskaper. Kapitalgevinst er fortjenesten som en investor. En ordre om å kjøpe en sikkerhet til eller under en spesifisert pris. En kjøpsgrenseordre tillater handelsmenn og investorer å spesifisere. En IRS-regelen (Internal Revenue Service) som tillater straffefri uttak fra en IRA-konto. Regelen krever at. Heres hvordan du setter opp din egen høyfrekvent tradingoperasjon. I forrige uke hadde vi det privilegium å sette deg ned med Mike Felix og Doctor Lawrence Hansen fra Lime Brokerage. en New York City-basert byråmegler som spesialiserer seg på høyfrekvente. lav latenshandel. Den viktigste takeaway. De som tror hastighetene er uakseptable, blir bedre vant til det fordi de er her for å bli og det kommer bare til å bli raskere herfra. Vi spurte dem hvordan man ville gå om å sette opp sin egen høyfrekvente handelsoperasjon på et amateurretail-nivå. Etter å ha spikret nøyaktig hva definisjonen av høyfrekvent handel er. Vi gikk over trinnene du må ta for å få det til å skje. Se som: En side SlidesThis innlegget vil detaljere hva jeg gjorde for å lage ca. 500k fra høyfrekvent handel fra 2009 til 2010. Siden jeg handlet helt uavhengig og ikke lenger kjører, vil Irsquom gjerne fortelle alt. Min handel var hovedsakelig i Russel 2000 og DAX futures kontrakter. Nøkkelen til min suksess tror jeg ikke var i en sofistikert finansiell ligning, men heller i den generelle algoritmenes design som bundet sammen mange enkle komponenter og brukt maskinlæring for å optimalisere for maksimal lønnsomhet. Du behøver ikke å vite noen sofistikert terminologi her fordi når jeg satte opp programmet mitt, var det alt basert på intuisjon. (Andrew Ngrsquos fantastiske maskinopplæringskurs var ikke tilgjengelig ennå - btw hvis du klikker på linken dinsquoll blir tatt til mitt nåværende prosjekt: CourseTalk, et vurderingssted for MOOCs) Først vil jeg bare vise at suksessen min ikke bare var resultatet av flaks. Mitt program gjorde 1000-4000 handler per dag (halv lang, halv kort) og kom aldri inn i stillinger på mer enn noen få kontrakter om gangen. Dette betydde tilfeldig flaks fra en bestemt handel i gjennomsnitt ganske raskt. Resultatet var at jeg aldri mistet mer enn 2000 på en dag og aldri hatt en miste måned: (EDIT. Disse tallene er etter å betale provisjoner) Og herersquos et diagram for å gi deg en følelse av den daglige variasjonen. Merk dette utelukkende de siste 7 månedene fordi - som tallene sluttet å gå opp - mistet jeg motivasjonen min for å komme inn i dem. Min handelsbakgrunn Før jeg satte opp mitt automatiserte handelsprogram, hadde Irsquod 2 års erfaring som en ldquomanualrdquo day trader. Dette var tilbake i 2001 - det var de tidlige dagene med elektronisk handel og det var muligheter for ldquoscalpersrdquo å tjene gode penger. Jeg kan bare beskrive hva jeg gjorde som besluttet å spille et videospill gambling med en antatt kant. Å være vellykket mente å være rask, være disiplinert og ha en god intuitiv mønstergenkjenningsevne. Jeg var i stand til å lage rundt 250k, betale av studielånene mine og ha penger igjen. Vinn I løpet av de neste fem årene vil jeg starte to oppstart, og ta opp noen programmeringsevner underveis. Det ville ikke vært før slutten av 2008 at jeg ville komme tilbake til handel. Med penger som gikk lavt fra salget av min første oppstart, tilbød handel håp om litt raske penger mens jeg skjønte meg neste skritt. I 2008 var jeg ldquomanuallyrdquo dag trading futures ved hjelp av programvare kalt T4. Irsquod hadde lyst på noen tilpassede ordreoppføring hurtigtaster, så etter å ha oppdaget at T4 hadde en API, tok jeg utfordringen med å lære C (programmeringsspråket som kreves for å bruke API) og gikk videre og bygde meg noen hurtigtaster. Etter å få føttene mine våte med API hadde jeg snart større forhåpninger: Jeg ønsket å lære datamaskinen å handle for meg. API-en ga både en strøm av markedsdata og en enkel måte å sende ordre til utvekslingen - alt jeg måtte gjøre var å lage logikken i midten. Nedenfor er et skjermbilde av et T4-handelsvindu. Det som var kult er at når jeg fikk jobbet med programmet, var jeg i stand til å se på datahandelen på dette nøyaktig samme grensesnittet. Å se ekte ordre som hopper inn og ut (av seg selv med mine ekte penger) var både spennende og skummelt. Utformingen av min algoritme Fra begynnelsen var målet mitt å sette opp et system slik at jeg kunne være rimelig trygg på at Irsquod tjene penger før han noen gang utførte noen levende handler. For å oppnå dette trengte jeg å bygge et handelssimuleringsramme som ville - så nøyaktig som mulig - simulere live trading. Mens handel i live-modus kreves behandling av markedsoppdateringer strømmet gjennom API, krevde simuleringsmodus å lese markedsoppdateringer fra en datafil. For å samle inn disse dataene, konfigurerer jeg den første versjonen av programmet mitt for å bare koble til API og registrere markedsoppdateringer med tidsstempler. Jeg endte opp med å bruke 4 uker av nyere markedsdata for å trene og teste systemet mitt på. Med et grunnleggende rammeverk på plass, hadde jeg fortsatt oppgaven med å finne ut hvordan jeg kunne skape et lønnsomt handelssystem. Som det viser seg, vil algoritmen bryte seg ned i to forskjellige komponenter, som Irsquoll undersøker i sin tur: Predikere prisbevegelser og tjene lønnsomme handler Predikere prisbevegelser Kanskje en åpenbar komponent i et handelssystem kan forutsi hvor prisene skal flytte. Og min var ikke noe unntak. Jeg definerte nåværende pris som gjennomsnittet av innsiden bud og innside tilbud og jeg satte målet om å forutsi hvor prisen ville være i de neste 10 sekunder. Min algoritme vil trenge å komme opp med denne prediksjonen øyeblikk for øyeblikk gjennom hele handelsdagen. Opprette ampoptimaliseringsindikatorer Jeg opprettet en håndfull indikatorer som viste seg å ha en meningsfylt evne til å forutsi kortsiktige prisbevegelser. Hver indikator produserte et tall som var enten positivt eller negativt. En indikator var nyttig hvis oftere enn ikke et positivt tall korresponderte med at markedet gikk opp og et negativt tall korresponderte med at markedet gikk ned. Systemet tillot meg å raskt bestemme hvor mye prediktiv evne noen indikator hadde, så jeg var i stand til å eksperimentere med mange forskjellige indikatorer for å se hva som fungerte. Mange av indikatorene hadde variabler i formlene som produserte dem, og jeg var i stand til å finne de optimale verdiene for de variablene ved å gjøre side om side sammenligninger av resultater oppnådd med varierende verdier. Indikatorene som var mest nyttige var alle relativt enkle og var basert på nylige hendelser i markedet jeg var trading, samt markedene for korrelerte verdipapirer. Gjøre nøyaktige prisbevegelsesutsikter Å ha indikatorer som bare forutslo en opp - eller nedprisbevegelse var ikke nok. Jeg trengte å vite nøyaktig hvor mye prisbevegelse var spådd av hver mulig verdi for hver indikator. Jeg trengte en formel som ville konvertere en indikatorverdi til en prisforutsigelse. For å oppnå dette spores jeg spådde prisbevegelser i 50 buketter som avhenger av området som indikatorverdien falt inn. Dette ga unike spådommer for hver bøtte som jeg da kunne grave i Excel. Som du ser, øker forventet prisendring som indikatorverdien øker. Basert på en graf som dette var jeg i stand til å lage en formel som passer til kurven. I begynnelsen gjorde jeg dette ldquocurve fittingrdquo manuelt, men jeg skrev snart opp noen kode for å automatisere denne prosessen. Merk at ikke alle indikatorkurvene hadde samme form. Legg merke til at bøtter ble logaritmisk fordelt slik at dataene spredes jevnt ut. Endelig merk at negative indikatorverdier (og tilhørende nedadgående prisforutsigelser) ble vendt og kombinert med de positive verdiene. (Min algoritme behandles opp og ned akkurat det samme.) Kombinere indikatorer for en enkelt prediksjon En viktig ting å vurdere var at hver indikator ikke var helt uavhengig. Jeg couldnrsquot bare legge opp alle spådommer som hver indikator laget individuelt. Nøkkelen var å finne ut den ekstra prediktive verdien som hver indikator hadde utover det som allerede var spådd. Dette var ikke vanskelig å implementere, men det betydde at hvis jeg var ldquocurve fittingrdquo flere indikatorer samtidig måtte jeg være forsiktig med å endre en ville påvirke spådommene til en annen. For å ldquocurve fitrdquo alle indikatorene på samme tid, installerer jeg optimisatoren for å trekke bare 30 av veien mot de nye prediksjonskurverne med hvert pass. Med dette 30 hoppet fant jeg ut at prediksjonskurverne ville stabilisere seg innenfor noen få pass. Med hver indikator som nå gir oss det, er det ytterligere prisutsikt, jeg kunne bare legge dem opp for å produsere en enkelt prediksjon av hvor markedet vil være om 10 sekunder. Hvorfor forutsi priser er ikke nok Du tror kanskje at med denne kanten på markedet var jeg gylden. Men du må huske på at markedet består av bud og tilbud - det er ikke bare en markedspris. Suksess i høyfrekvent handel kommer ned til å få gode priser og itrsquos ikke så lett. Følgende faktorer gjør det vanskelig å skape et lønnsomt system: Ved hver handel måtte jeg betale provisjoner til både megler og bytte. Spredningen (forskjellen mellom høyeste bud og laveste tilbud) betydde at hvis jeg bare skulle kjøpe og selge tilfeldig, ville Irsquod miste massevis av penger. Mesteparten av markedsvolumet var andre bots som bare ville utføre en handel med meg hvis de trodde de hadde noen statistisk kanten. Å se et tilbud garanterte ikke at jeg kunne kjøpe det. Da kjøpsordren kom til utvekslingen var det veldig mulig at tilbudet hadde blitt kansellert. Som en liten markedsaktør var det ingen måte jeg kunne konkurrere på hastighet alene. Bygg en full handelssimulering Så jeg hadde et rammeverk som tillot meg å teste og optimalisere indikatorer. Men jeg måtte gå utover dette - jeg trengte et rammeverk som tillot meg å teste og optimalisere et fullhandelssystem en hvor jeg sendte ordrer og kom på stillinger. I dette tilfellet skal Irsquod optimalisere for total PampL og til en viss grad gjennomsnittlig PampL per handel. Dette ville være vanskeligere og på noen måter umulig å modellere nøyaktig, men jeg gjorde så godt som mulig. Her er noen av problemene jeg måtte håndtere: Når en ordre ble sendt til markedet i simulering måtte jeg modellere lagtid. Det faktum at systemet mitt så et tilbud, betyr ikke at det kunne kjøpe det med en gang. Systemet ville sende bestillingen, vent ca 20 millisekunder, og da bare hvis tilbudet fortsatt var der, ble det vurdert som en henrettet handel. Dette var uakseptabelt fordi den virkelige forsinkelsestiden var inkonsekvent og urapportert. Når jeg plasserte bud eller tilbud, måtte jeg se på handelsutførelsesstrømmen (levert av API) og bruke dem til å måle når bestillingen min ville ha blitt henrettet mot. For å gjøre dette riktig måtte jeg spore plasseringen av bestillingen min i køen. (Itrsquos et første-i-først-ut system.) Igjen, jeg couldnrsquot gjøre dette perfekt, men jeg gjorde en god tilnærming. For å finjustere bestillingseksempleringen jeg gjorde var å ta loggfilene mine fra live trading via API og sammenligne dem med loggfilene som ble produsert ved simulert handel fra nøyaktig samme tidsperiode. Jeg var i stand til å få simuleringen min til det punktet at det var ganske nøyaktig og for de delene som var umulige å modellere nøyaktig, sørget jeg i hvert fall for å produsere resultater som var statistisk liknende (i beregningene jeg trodde var viktig). Å tjene lønnsomme handler Med en ordreimuleringsmodell på plass kunne jeg nå sende ordrer i simuleringsmodus og se en simulert PampL. Men hvordan ville systemet vite når og hvor jeg skulle kjøpe og selge? Prissettingsspådommer var et utgangspunkt, men ikke hele historien. Det jeg gjorde var å skape et scoring system for hvert av 5 prisnivåer på bud og tilbud. Disse inkluderte ett nivå over innsiden bud (for en kjøpsordre) og ett nivå under innsiden tilbud (for en salgsordre). Hvis poengsummen til et gitt prisnivå var over en viss terskel, ville det bety at systemet mitt skulle ha et aktivt tilbud der - under terskelen skulle eventuelle aktive bestillinger bli kansellert. Basert på dette var det ikke uvanlig at systemet mitt ville blinke et bud i markedet, og deretter avbryte det umiddelbart. (Selv om jeg prøvde å minimere dette som itrsquos irriterende for alle som så på skjermen med menneskelige øyne - inkludert meg.) Prisnivåpoengene ble beregnet ut fra følgende faktorer: Prisforskjellen forutsigelsen (som vi diskuterte tidligere). Prisnivået i spørsmålet. (Inner nivå betydde større prisbevegelsesutsikter var påkrevd.) Antall kontrakter foran bestillingen min i køen. (Mindre var bedre.) Antall kontrakter bak bestillingen min i køen. (Mer var bedre.) Vesentlig disse faktorene tjente til å identifisere ldquosaferdquo steder å by på. Prisforskjellen forutsigelsen alene var ikke tilstrekkelig fordi den ikke gjorde rede for det faktum at når jeg satte et bud, ble jeg ikke fylt automatisk - jeg ble bare fylt hvis noen solgte meg der. Virkeligheten var at det faktum at noen som solgte meg til en viss pris, forandret statistiske oddsene for handelen. Variablene som ble benyttet i dette trinnet var alle gjenstand for optimalisering. Dette ble gjort på nøyaktig samme måte som jeg optimaliserte variabler i prisbevegelsesindikatorene, bortsett fra i dette tilfellet, optimaliserte jeg for bunnlinjen PampL. Hva jeg tenker på når jeg handler som mennesker, har vi ofte sterke følelser og forstyrrelser som kan føre til mindre enn optimale beslutninger. Klart ønsket jeg ikke å kodifisere disse forstyrrelsene. Her er noen faktorer som min system ignorerte: Prisen som en stilling ble oppgitt - I et handelskontor er det ganske vanlig å høre samtale om prisen som noen er lange eller korte som om det skulle påvirke deres fremtidige beslutningstaking. Selv om dette har noen gyldighet som en del av en risikoreduserende strategi, har det ingen betydning for det fremtidige kurset i markedet. Derfor ignorert programmet mitt denne informasjonen. Itrsquos samme konsept som å ignorere reduserte kostnader. Går kort vs forlater en lang posisjon - Vanligvis vil en næringsdrivende ha forskjellige kriterier som bestemmer hvor man skal selge en lang stilling versus hvor man skal gå kort. Men fra algoritmenes perspektiv var det ingen grunn til å skille. Hvis min algoritme forventet en nedadgående flytting, var det en god ide, uansett om den var for tiden lang, kort eller flat. En ldquodoubling uprdquo strategi - Dette er en felles strategi hvor handelsmenn vil kjøpe flere aksjer i tilfelle at den opprinnelige handel går imot dem. Dette resulterer i at gjennomsnittskjøpsprisen din er lavere og det betyr at når (eller om) lageret slår seg rundt, blir din saldo satt til å gjøre pengene dine tilbake på kort tid. Etter min mening er dette virkelig en fryktelig strategi, med mindre du er Warren Buffet. Yoursquore lurte på å tro at du har det bra fordi de fleste av dine handler vil bli vinnere. Problemet er at når du mister deg, mister du stor. Den andre effekten er at det gjør det vanskelig å bedømme om du faktisk har en kant på markedet eller bare blir heldig. Å kunne overvåke og bekrefte at mitt program faktisk hadde en kant var et viktig mål. Siden algoritmen min tok beslutninger på samme måte, uansett hvor det gikk inn i en handel, eller om det for øyeblikket var lenge eller kort, var det noen ganger i store og små tapende bransjer (i tillegg til noen store vinnende handler). Men du burde ikke tro at det ikke var noen risikostyring. For å håndtere risiko håndhevet jeg en maksimal posisjonsstørrelse på 2 kontrakter om gangen, noen ganger stødte opp på høyvolumsdager. Jeg hadde også en maksimal daglig tapgrense for å beskytte mot uventede markedsforhold eller en feil i min programvare. Disse grensene ble håndhevet i koden min, men også i backend gjennom megleren. Som det skjedde, møtte jeg aldri noen betydelige problemer. Kjører algoritmen Fra det øyeblikket jeg begynte å jobbe med programmet mitt, tok det meg ca 6 måneder før jeg fikk det til lønnsomhet og begynte å kjøre det live. Selv om det var rettferdig, var det betydelig tid å lære et nytt programmeringsspråk. Da jeg jobbet for å forbedre programmet, så jeg økt fortjeneste for hver av de neste fire månedene. Hver uke vil jeg omskole systemet mitt basert på de fire foregående ukers verdiene av data. Jeg fant dette traff den rette balansen mellom å ta vare på nyere markedsadferdstrender og å forsikre min algoritme hadde nok data til å etablere meningsfulle mønstre. Etter hvert som treningen begynte å ta mer og mer tid, splittet jeg det slik at det kunne utføres av 8 virtuelle maskiner ved hjelp av Amazon EC2. Resultatene ble deretter coalesced på min lokale maskin. Høydepunktet i min handel var oktober 2009 da jeg lagde nesten 100k. Etter dette fortsatte jeg å tilbringe de neste fire månedene, og prøvde å forbedre mitt program til tross for redusert fortjeneste hver måned. Dessverre på dette punktet antar jeg at Irsquod implementerte alle mine beste ideer fordi ingenting jeg prøvde syntes å hjelpe mye. Med frustrasjonen om å ikke kunne gjøre forbedringer og ikke ha en følelse av vekst, begynte jeg å tenke på en ny retning. Jeg sendte 6 forskjellige high frequency trading firmaer for å se om theyrsquod er interessert i å kjøpe min programvare og ansette meg til å jobbe for dem. Ingen svarte. Jeg hadde noen nye oppstartsidéer jeg ønsket å jobbe med, så jeg aldri fulgte opp. UPDATE - Jeg postet dette på Hacker News, og det har fått mye oppmerksomhet. Jeg vil bare si at jeg ikke fortaler noen som prøver å gjøre noe som dette selv nå. Du vil trenge et team av virkelig smarte mennesker med en rekke erfaringer å ha noe håp om å konkurrere. Selv når jeg gjorde dette, tror jeg det var svært sjelden at enkeltpersoner skulle oppnå suksess (selv om jeg hadde hørt om andre.) Det er en kommentar øverst på siden som nevner manipulert statistikk og refererer til meg som en ldquoretail investorrdquo som quants ville ldquogleefully plukke offrdquo. Dette er en ganske uheldig kommentar thatrsquos rett og slett ikke basert i virkeligheten. Innstilling som til side therersquos noen interessante kommentarer: news. ycombinatoritemid4748624 UPDATE 2 - Irsquove postet en oppfølgings FAQ som svarer på noen vanlige spørsmål Irsquove mottatt fra handelsmenn om dette innlegget. Som rent en datavitenskapsmann er du i perfekt posisjon for å komme i gang med algoritmisk handel . Dette er noe jeg har sett på førstehånd på Quantiacs1. hvor forskere og ingeniører er i stand til å hoppe rett inn i automatisert handel uten tidligere erfaring. Med andre ord, programmeringskoteletter er den viktigste ingrediensen som trengs for å komme i gang. For å få en generell forståelse av hvilke utfordringer som venter på deg etter at du har opprettet et algoritmisk handelssystem, sjekk ut dette Quora-innlegget. Å bygge et handelssystem fra grunnen vil kreve litt bakgrunnskunnskap, en handelsplattform, markedsdata og markedsadgang. Selv om det ikke er et krav, vil det være lettere å velge en enkelt handelsplattform som gir de fleste av disse ressursene. Når det er sagt, vil ferdighetene du utvikler bli overført til hvilket som helst programmeringsspråk og nesten hvilken som helst plattform. Tro det eller ei, bygger automatiserte handelsstrategier ikke på grunn av å være markedsekspert. Likevel vil læring av grunnleggende markedsmekanikk hjelpe deg med å oppdage lønnsomme handelsstrategier. Alternativer, Futures og andre Derivater av John C. Hull - Stor første bok for å skrive inn kvantitativ finans, og nærmer seg den fra matematikk siden. Kvantitativ handel av Ernie Chan - Ernie Chan gir den beste introduksjonsboken for kvantitativ handel og går deg gjennom prosessen med å skape handelsalgoritmer i MATLAB og Excel. Algoritmisk handel med futures via maskinlæring - En 5-siders oversikt over bruk av en enkel maskinlæringsmodell til ofte brukte tekniske analyseindikatorer. Heres en samlet leseliste PDF med en fullstendig oversikt over bøker, videoer, kurs og handelsfora. Den beste måten å lære er ved å gjøre, og i tilfelle av automatisert handel som kommer ned til kartlegging og koding. Et godt utgangspunkt er eksisterende eksempler på handelssystemer og eksisterende utstillinger av tekniske analyseteknikker. Videre har en dyktig datavitenskapsmann den ekstra kanten av å kunne bruke maskinlæring til algoritmisk handel. Her er noen av disse ressursene: TradingView - En fantastisk visuell kartleggingsplattform alene, TradingView er en flott lekeplass for å bli komfortabel med teknisk analyse. Det har den ekstra fordelen av å tillate deg å skript trading strategier og bla andre folks handel ideer. Automated Trading Forum - Great online community for å legge inn nybegynnere og finne svar på vanlige quant-problemer når du bare begynner. Kvantfora er et flott sted å bli nedsenket i strategier, verktøy og teknikker. YouTube-seminar om handelsideer med arbeidskodeeksempler på Github. Maskinlæring: Flere presentasjoner på automatisert handel finnes på Quantiacs Quant Club. De fleste fra en vitenskapelig bakgrunn (enten det er datavitenskap eller engineering) har hatt eksponering mot Python eller MATLAB, som tilfeldigvis er populære språk for kvantitativ finans. Quantiacs har opprettet en åpen kildekode verktøykasse som gir backtesting og 15 års historisk markedsdata gratis. Den beste delen er alt som er bygget på både Python og MATLAB, og gir deg muligheten til å utvikle systemet med. Heres en trend trend-trading strategi i MATLAB. Dette er all koden som trengs for å kjøre et automatisert handelssystem, som viser både kraften til MATLAB og Quantiacs Toolbox. Quantiacs lar deg handle 44 futures og alle aksjene i SampP 500. I tillegg støttes en rekke tilleggsbiblioteker som TensorFlow. (Ansvarsfraskrivelse: Jeg jobber hos Quantiacs). Når du er klar til å tjene penger som en quant, kan du bli med på den siste Quantiacs automatiserte handelskonkurransen, med totalt 2,250,000 i investeringer tilgjengelig. Kan du konkurrere med de beste quants 29.4k Visninger middot View Upvotes midtpunkt Ikke for reproduksjon Dette svaret har blitt fullstendig omskrevet Her er 6 hovedkunnskapsbase for bygg algoritmiske handelssystemer. Du bør være kjent med dem alle for å kunne bygge effektive handelssystemer. Noen av begrepene som brukes kan være litt tekniske, men du bør kunne forstå dem av Googling. Merk: (De fleste av) disse gjelder ikke hvis du vil gjøre High-Frequency Trading 1. Markedssteorier Du må forstå hvordan markedet fungerer. Mer spesifikt bør du forstå markedets ineffektivitet, forhold mellom ulike assetproducts og prisadferd. Handelsideer stammer fra markedets ineffektivitet. Du må vite hvordan du skal vurdere markedets ineffektivitet som gir deg en handelskant mot de som ikke gjør det. Å designe effektive roboter innebærer å forstå hvordan automatiserte handelssystemer fungerer. I hovedsak består en algoritmisk handelsstrategi av 3 kjernekomponenter: 1) Oppføringer, 2) Utganger og 3) Posisjonering. Du må designe disse 3 komponentene i forhold til markedets ineffektivitet du tar opp (og nei, dette er ikke en enkel prosess). Du trenger ikke å vite avansert matte (selv om det vil hjelpe hvis du tar sikte på å bygge mer komplekse strategier). God kritisk tenkning ferdigheter og en anstendig forståelse av statistikk vil ta deg veldig langt. Design innebærer backtesting (testing for trading kanten og robusthet) og optimalisering (maksimering ytelse med minimal kurve montering). Du trenger å vite hvordan du skal håndtere en portefølje av algoritmiske handelsstrategier også. Strategier kan være komplementære eller motstridende dette kan føre til uplanlagte økninger i risikoeksponering eller uønsket sikring. Kapitalfordeling er viktig, og du deler kapitaltall i regelmessige intervaller eller belønner vinnerne med mer kapital. Hvis du vet hvilke produkter du vil handle, kan du finne passende handelsplattformer for disse produktene. Deretter lærer du programmeringsspråket API for denne plattformen. Hvis du starter, vil jeg anbefale Quantopian (bare aksjer), Quantconnect (aksjer og FX) eller Metatrader 4 (FX og CFDs på aksjeindekser, aksjer og varer). De programmerte språkene som brukes er henholdsvis Python, C og MQL4. 4. Datastyring Søppel i søppel ut. Unøyaktige data fører til unøyaktige testresultater. Vi trenger rimelig rene data for nøyaktig testing. Rengjøringsdata er et avvik mellom kostnad og nøyaktighet. Hvis du vil ha mer nøyaktige data, må du bruke mer tid (tidspenger) å rense den. Noen problemer som forårsaker skitne data, inkluderer manglende data, dupliserte data, feil data (dårlige flått). Andre problemer som fører til misvisende data inkluderer utbytte, aksjeklover og futures rollovers etc. 5. Risikostyring Det er 2 hovedtyper av risiko: Markedsrisiko og Operasjonell risiko. Markedsrisiko innebærer risiko knyttet til din handelsstrategi. Betraktes det worst case scenarioer Hva skjer hvis en svart svanehendelse som andre verdenskrig skjer Har du sikret bort uønsket risiko Er stillingen din for stor, foruten å håndtere markedsrisiko, må du se på operasjonell risiko. Systemkrasj, tap av internettforbindelse, dårlig utførelsesalgoritme (som fører til dårlig utførte priser, eller tapte handler på grunn av manglende evne til å håndtere requoteshigh slippage) og tyveri av hackere er veldig virkelige problemer. 6. Live Execution Backtesting og live trading er svært forskjellige. Du må velge riktig meglere (MM vs STP vs ECN). Forex Market Nyheter med Forex Trading Forums amp Forex Brokers Anmeldelser er din beste venn, les megler anmeldelser der. Du trenger riktig infrastruktur (sikker VPN og nedetidshåndtering osv.) Og evalueringsprosedyrer (overvåke roboterytelsen din og analyser dem i forhold til markedets ineffektivitetstestoptimeringer) for å administrere roboten gjennom hele levetiden. Du må vite når du skal gripe inn (modifyupdateshutdownturn på roboter) og når du ikke skal. Evaluering og optimalisering av handelsstrategier Pardo (Stor innsikt i metoder for bygging og testing av handelsstrategier) Handel deg med finansiell frihet Van K Tharp (Løftig-agn-tittel til side, denne boken er en flott oversikt over mekaniske handelssystemer) Quantitative Trading Ernest Chan (Flott introduksjon til algo trading på detaljnivå.) Handel og utveksling: Markedsmikrostruktur for utøvere Larry Harris (Markedsmikrostruktur er vitenskapen om hvordan utveksling fungerer og hva som faktisk skjer når en handel er plassert. Det er viktig å vite denne informasjonen selv om du bare har begynt) Algorithmic Trading amp DMA Barry Johnson (Shed lys på banker eksekveringsalgoritmer. Dette er ikke direkte gjeldende din algo trading, men det er godt å vite) Quants Scott Patterson (Krigshistorier av noen topp quants. som sengetid leses) Quantopian (Kode, forskning og diskutere ideer med samfunnet. Bruker Python) Fundamentals of Algo Trading Algo Trading101 (Ansvarsfraskrivelse: Jeg eier denne sitecourse. Lær robot design teorier, markeds teorier og koding. Bruker MQL4) - Bli med i utfordringen (Lær handelskonsepter og backtesting teorier. De har nylig utviklet sin egen backtesting og trading plattform, så denne delen er fortsatt ny for meg. Men deres kunnskapsbase om handelskonsepter er bra.) Anbefalte BlogsForums (disse inkluderer økonomi , trading og algo trading forums): Anbefalte programmeringsspråk: Hvis du vet hvilke produkter du vil handle, kan du finne passende handelsplattformer for disse produktene. Deretter lærer du programmeringsspråket API for denne plattformen. Hvis du starter, vil jeg anbefale Quantopian (bare aksjer), Quantconnect (aksjer og FX) eller Metatrader 4 (FX og CFDs på aksjeindekser, aksjer og varer). De programmerte språkene som brukes er henholdsvis Python, C og MQL4. 17,1k Visninger middot Vis Upvotes middot Ikke for reproduksjon Hvis investering er en prosess, så er den logiske konklusjonen automatisering. Algoritmer er ingenting annet enn den ekstreme formaliseringen av en underliggende filosofi. Dette er det visuelle uttrykket for en trading edge Trading edge Vinn gjennomsnittlig gevinst - tap av gjennomsnittlig tap Det forandret livet mitt og måten jeg nærmer seg markedene. Visualiser distribusjonen din, alltid. Det vil hjelpe deg med å klargjøre dine konsepter, kaste lys på dine logiske feil, men først la oss begynne med filosofi og trosløft 1. Hvorfor er det viktig å klargjøre din tro Vi handler vår tro. Enda viktigere handler vi vår underbevisste tro. Hvis du ikke vet hvem du er, markeder er et dyrt sted for å finne outquot, Adam Smith. Mange mennesker tar ikke tid til å fremkalle sin tro og operere på lånte trosretninger. Ubesvarte spørsmål og feil logikk er grunnen til at noen systematiske forhandlere tilpasser seg systemet rundt hver drawdown. Jeg pleide å være slik i mange år. Troutløpsøvelser: Byron Kats arbeid. Etter at jeg fullførte en 2 overbevisninger en dag utfordring i 100 dager, kunne jeg forklare min stil til en bestemor 5 hvorfor. Still deg selv et spørsmål med hvorfor og dykk dypere. Mindsets: ekspansiv og subtraktiv eller smoothie Vs bandhjelp Det er to typer tankegang, og vi trenger begge på forskjellige tidspunkter: Utvidet for å utforske konsepter, ideer, triks osv. Subtraktive: forenkle og klargjøre konsepter Systematiske handelsfolk som mislykkes i å være subtraktive har en smoothie tilnærming. De kaster alle slags ting i sin strategi og blander den med en optimizer. Dårlig trekk: Kompleksitet er en form for latskap Overdriven, subtraherende systematiske handelsmenn har en båndhjelps mentalitet. De kaller hardt alt og så lykke til å patchere. Erotisk tradersquot forstår at det er en dans mellom perioder med leting og tider med hard kjerneforenkling. Enkel er ikke lett Det har tatt meg 3 873 timer, og jeg aksepterer at det kan ta livet 2. Utgang: Begynn med slutten i tankene Kontrastintuitiv sannhet Den eneste tiden når du vet om en handel var lønnsom, er etter utgang, høyre så, fokus på avslutningslogikken først. Etter min mening er hovedårsaken til at folk ikke klarer å automatisere sin strategi, at de fokuserer for mye på oppføring og ikke nok ved utgang. Kvaliteten på dine utgange danner PampL-fordelingen, se diagram over. Bruk enorm tid på å stoppe tapet da det påvirker 4 komponenter i handelssystemet ditt: Vinn, tap, gjennomsnittlig tap, handelsfrekvens Kvaliteten på systemet ditt vil bli bestemt av kvaliteten på ditt stoppfall, 3. Pengene er laget i pengestyringsmodulen Likt vekt er en form for latskap. Størrelsen på innsatsene dine bestemmer formen på avkastningen. Forstå når strategien din ikke virker og redusere størrelsen. Omvendt, øk størrelsen når den virker. Jeg vil skrive mer om stillingsstørrelsen på nettstedet mitt, men det er mange ressurser på internett. 3. Sist og minst, Innføring Etter at du har sett en hel sesong med quotesperate housewivesquot eller quotbreaking badquot, hadde litt sjokolade, gikk hunden, matet Fisken, kalt moren din, så er det tid å tenke på oppføring. Les ovenstående formel, aksjeplukking er ikke en hovedkomponent. Man kan hevde at riktig aksjeplukking kan øke seier. Kanskje, men det er verdiløst dersom det ikke finnes verken utgangspolicy eller pengehåndtering. I probabilistiske termer, etter at du har fast utgang, blir oppføring en sannsynlighet for glideskala 4. Hva skal fokusere når du tester Det er ingen magisk glidende gjennomsnittlig indikatorverdi. Når du tester systemet, fokuserer du på tre ting: False positiver: de eroderer ytelsen. Finn enkle (elegante) måter å redusere dem, arbeid på logikkperioder når strategien ikke virker: ingen strategi virker hele tiden. Vær forberedt på det og utarbeide beredskapsplaner på forhånd. Tweaking systemet under en drawdown er som å lære å svømme i en storm Kjøpekraft og penger ledelse: dette er et annet mot-intuitivt faktum. Systemet ditt kan generere ideer, men du har ikke kjøpekraften til å utføre. Vennligst ta en titt på diagrammet ovenfor. Jeg bygger alle mine strategier fra kortsiden først. Den beste testen av robusthet for en strategi er kort side: Tynt volum brutalt flyktig kortere syklus Platformer jeg startet på WealthLab-utvikleren. Den har en spektakulær posisjon dimensjonering bibliotek. Dette er den eneste plattformen som tillater porteføljebasert backtetting og optimalisering. Jeg tester alle mine konsepter på WLD. Anbefaler sterkt. Det har en ulempe, det forbinder ikke posisjon sizer med ekte live trading. Amibroker er bra også. Den har en API som kobler til interaktive meglere og en anstendig tillitsverker. Vi programmerer på Metatrader for Forex. Dessverre har Metatrader gått ned i kompleksitets kaninhullet. Det er et levende samfunn der ute. MatLab, valgfri våpen for ingeniører. Ingen kommentar. Tradestation Perry Kaufman skrev noen gode bøker om TS. Det er et levende samfunn der ute. Det er lettere enn de fleste andre plattformer. Endelig råd Hvis du vil lære å svømme, må du hoppe i vannet. Mange nybegynnere vil sende sine milliarder dollar ideer til noen billige programmerere et sted. Det virker ikke slik. Du må lære språket, logikken. Brace for en lang reise 14.9k Vis middot View Oppvoter midtpunkt Ikke for reproduksjon Selv om dette er et veldig bredt emne med referanser til bygningsalgoritmer, innstilling av infrastruktur, kapitalfordeling og risikostyring, men jeg vil bare fokusere på den første delen av hvordan det skal fungere på å bygge vår egen algoritme og gjøre de riktige tingene. 1. Byggestrategi. Noen av de viktigste punktene å merke seg her er: Catch Big Trends - En god strategi må i alle tilfeller tjene penger når markedet er trending. Markeder går med en god trend som varer bare 15-20 av tiden, men dette er tiden da alle katter og hunder (handelsmenn fra alle tidsrammer, intradag, daglig, ukentlig og lang sikt) er ute og handler, og de alle ha ett felles tema. Mange handelsfolk bygger også betydelige reverseringsstrategier der de forsøker å dømme forholdene når prisen har flyttet langt fra gjennomsnittet, og handler mot trenden, men de bør bygges når du har bygget og omsatt noen gode trender etter systemer . Odds for stabling - Folk jobber ofte for å prøve å bygge et system som har et utmerket winloss-forhold, men det er ikke riktig tilnærming. For eksempel vil en algo med en vinner på 70 med en gjennomsnittlig fortjeneste på 100 per handel og gjennomsnittlig tap på 200 per handel bare gjøre 100 per 10 handler (10trade netto). Men et algo med en vinner på 30 med en gjennomsnittlig fortjeneste på 500 per handel og tap på 100 per handel vil gi en netto overskudd på 800 for 10 handler (80trade). Så det er ikke nødvendig at winloss-forholdet skal være bra, men det er oddsen for stabling som bør være bedre. Dette fortsetter med å si kvittere tap små, men la dine vinnere runquot. Quote investing, det er komfortabelt, er sjelden lønnsomt. Quot - Robert Arnott Drawdown - Drawdown er uunngåelig, hvis du følger noen form for strategi. Så mens du designer et algo, prøv ikke å redusere drawdownen eller gjøre noen spesifikke tilpassede betingelser for å ta vare på den nedgangen. Denne spesifikke tilstanden kan i fremtiden virke som en veisklokke i å fange en stor trend, og algoet ditt kan utføre dårlig. Risikostyring - Når du bygger en strategi, bør du alltid ha en utgangsport, uansett hva markedet velger å gjøre. Markedet er et sted for odds, og du må designe et algo for å få deg ut av en handel så snart som mulig dersom den ikke passer din risikofrukt. Vanligvis argumenteres det for at du må risikere 1-2 av kapitalen i hver handel, og er optimal på mange måter, selv om du får arnd 10 falske handler i rekkefølge, vil kapitalen din gå ned med bare 20. Men dette er ikke det tilfelle i faktiske markedsscenariet. Noen avvikende handler vil være mellom 0-1, mens noen kan gå til 3-4, så det er bedre å definere gjennomsnittlig tapskapital per handel og den maksimale kapitalen du kan miste i en handel, da markedene er helt tilfeldige og kan bedømmes . QuoteMore en gang imellom, gjør markedet noe så dumt, det tar pusten bort. Quot - Jim Cramer 2. Testing og optimalisering av strategi slippe. Når vi tester en strategi for historiske data, er vi under forutsetning av at bestillingen vil bli utført på forhåndsdefinert pris ankommet av algoen. Men dette vil aldri være tilfelle, da vi må håndtere markeds beslutningstakere og HFT algo039s nå. Din bestilling i today039s verden vil aldri bli utført til ønsket pris, og det vil bli slippe. Dette må inkluderes i testingen. Market Impact: Volum handlet av algoen er en annen viktig faktor som skal vurderes mens du foretar back-testing og samler historiske resultater. Etter hvert som volumøkningene øker, vil ordrene plassert av algo ha betydelig markedsvirkning, og gjennomsnittsprisen på fylt ordre vil være mye forskjellig. Din algo kan produsere komplette forskjellige resultater i faktiske markedsforhold, hvis du ikke vil studere volumdynamikken din algo har. Optimalisering: De fleste handelsfolk foreslår at du ikke gjør kurvepassing og overoptimalisering, og de er korrekte da markedene er en funksjon av tilfeldige variabler, og ingen to situasjoner vil noensinne være de samme. Så optimalisering av parametere for bestemte situasjoner er en dårlig ide. Jeg vil foreslå at du går for Zonal Optimization. Det er en teknikk som jeg følger, kjøpe identifiserende soner som har lignende egenskaper i form av volatilitet og volum. Optimaliser disse områdene separat, i stedet for å optimalisere for hele perioden. Ovennevnte er noen av de mest grunnleggende og viktigste trinnene jeg følger, når jeg konverterer en grunnleggende tanke til en algoritme og kontrollerer validiteten av den. Sitat Alle har hjernekraft til å følge aksjemarkedet. Hvis du har gjort det gjennom femte klasse matte, kan du gjøre det. quotPeter Lynch 17.3k Vis middot Vis Upvotes middot Ikke for Reproduksjon Kort svar: Lær matematikk anvendt til handel, struktur av markeder og eventuelt være en topp nettverksdistribuert systemprogrammerer. Det er tre potensielt parallelle spor som kan tas for å lære algoritmisk handel fra grunnen avhengig av det endelige formålet med hvorfor du ønsker å lære det. Her er de i økende rekkefølge av vanskeligheter som også korrelerer med hvor mye det blir din del av ditt levebrød. De tidligere vil åpne mulighetene for de følgende. Du kan stoppe på et hvilket som helst trinn underveis når du har lært nok eller fått en jobb å gjøre det. Hvis du vil være en quant, bruker det meste matteprogramvare og egentlig ikke være programmerer for et algo-system, så er det korte svaret å få en doktorgrad i matematikk, fysikk eller noe matematisk tungt relatert teknikkemne. Prøv å få praktikplasser i topp hedgefond, stupbutikker eller investeringsbanker. Hvis du kan bli ansatt av et vellykket firma, så vil du bli undervist der ellers, det vant bare. Men i alle fall bør du fullføre 039Self Study039-delen nedenfor for å sikre at du virkelig vil gå gjennom forsøket på å få en doktorgrad. Med mindre du er et geni, hvis du ikke har en doktorgrad, kan du konkurrere med de som gjør det med mindre du spesialiserer seg i programmering av handelssystemer. Hvis du ønsker å være mer på programmeringssiden, prøv å søke om ansettelse etter hvert trinn, men ikke ofte enn en gang per år per firma. Selvstudium Det første trinnet er å forstå hva algoritmisk handel virkelig er og hvilke systemer som kreves for å støtte den. I039d anbefaler å lese gjennom quotAlgorithmic Trading amp DMAquot (Johnson, 2010), noe jeg personlig gjorde og kan anbefale. Det vil la deg forstå på et grunnleggende nivå. Deretter bør du programmere din egen bestillingsbok, en enkel markedsdata simulator og en algoritme implementering på din videre med Java eller CC. For ekstra kreditt som vil hjelpe med å få jobb, bør du også skrive ditt eget nettverkskommunikasjonslag fra begynnelsen. På dette punktet kan du kanskje være ferdig med å svare på spørsmålet alene. Men for fullstendighet og nysgjerrighet, vær så snill å fortsette: Den neste boken som skal håndteres, er quotTrading amp Exchanges: Market Microstructure for Practitionersquot (Harris, 2003). Dette vil gå inn i finere detaljer om hvordan markedene fungerer. Det er en annen bok jeg har lest, men ikke helt studert fordi jeg var en systemprogrammerer og ikke en kvant eller en leder på forretningssiden. Til slutt, hvis du vil begynne å lære matematikken på hvordan markedene fungerer, jobber du gjennom teksten og problemene i quotOptions, Futures og Other Derivativesquot (Hull, 2003). Jeg gjorde det gjennom omtrent halvparten av den læreboken, enten som forberedelse til eller som en del av intern opplæring hos en av mine tidligere arbeidsgivere. Jeg tror jeg opprinnelig fant ut om den boken fordi det var enten foreslått eller nødvendig å lese for en av vel ansett MS Financial Mathematics-programmer. For å få en bedre sjanse til å jobbe gjennom et nyfødt feederprogram, fullfør et MS Financial Mathematics-program hvis du ønsker å være programmerer for en handelsplattform eller et team av quants. Hvis du vil være den som designer algos, må du ta en doktorgrad som er forklart tidligere. Hvis du fortsatt er ferdig med college, så prøv å få en praktikplass på samme type steder. Sysselsetting Uansett hvor mye du lærer i bøker og skole, vil ingenting sammenligne med de små detaljene du lærer mens du jobber for et firma. Hvis du ikke kjenner alle kantsaker og vet når modellen din slutter å fungere, vil du tape penger. Jeg håper at svaret på spørsmålet ditt og at i løpet av læringsveien oppdager du om du virkelig ønsker å gå over fra studiet til det virkelige daglige arbeidet. 18.6k Vis middot Vis Oppvotes middot Ikke for reproduksjon Jeg har en bakgrunn som programmerer og sette opp agilescrum-lag før jeg begynte å se på algoritmisk handel. Verden av algoritmisk handel fascinerer meg, men det kan være litt overveldende. Jeg begynte å få noe perspektiv ved å dykke inn i Quantopian-plattformen, se på quant lectures serien og kjøre mine og tilpassede samfunnsbaserte algo trading systemer i sitt miljø. Som den nedenfor: Jeg skjønte da å komme i dypere raskere, jeg må møte folk som elsker å skape handelsstrategier, men kan ikke programmere - for å matche meg selv som en smidig teamleder og programmerer av handelssystemer. Så jeg skrev en bok om hvordan man lager et team for å implementere dine handelsalgoritmer. Building Trading Systems The Agile Way: Hvordan bygge Winning Algorithmic Trading Systems som et lag. I samfunnet av Quantopian så jeg økonomisk kunnskapsrike mennesker på jakt etter folk til å implementere sine handelsstrategier, men hvor redd for å be programmører å implementere sine ideer. Siden de potensielt kan begynne å drive sine handelsideer uten dem. Jeg løser dette problemet i boken min. For å unngå at programmører løper med ideene dine: Lag en spesifikasjon for din handelsidee som bruker et kodingsramme som er skreddersydd for hvilken type strategi du vil utvikle. Det høres kanskje vanskelig ut, men når du kjenner alle babystrinnene og hvordan de passer sammen, er det ganske greit og morsomt å håndtere. Hvis du likte dette svaret, vær så snill å stemme og følg. 2,7k Visninger middot Vis Oppvoter middot Ikke for reproduksjon Se på TradeLink (C) eller ActiveQuant (Java). TradeLink039s kode er mer elegant. I039m skriver dette på en mobiltelefon, så vær så snill å unnskyld min korthet. i utgangspunktet se på hva som kommer inn vs hva som går ut som en innledende måte å ramme problemet. I. markedsdata, exhangemarket-hendelser (henrettelser til transaksjoner som systemet ditt plassert, acks, avviser, handelsavbrutt varsel, osv.). Ute. Ordrer, endringer i ordre. quotBuy 100 15.5, IOCquot, for eksempel. IOC umiddelbart eller avbryt. Imellom. strategibeslutninger basert på informasjon samlet inn fra sanntidsdata, sammen med historiske data og andre innganger (trader039s kommando fra hans GUI for å handle morløst aggressivt, etc). Ting som. plassere en bestilling, endre en eksisterende ordre, osv. Nå kan du begynne å adressere den tekniske arkitekturen til et slikt system. Av sentral betydning vil være muligheten til å uttrykke strategien enkelt, elegant, til tross for kompleksiteten av hendelsesbehandlingen involvert (det er flere interessante løpevilkår som kan forvirre systemet med hensyn til markedets tilstand, dine ordrer, for eksempel). Jeg pleide å gjøre dette for å leve og kan nok gå på endeløst, men å skrive på en mobiltelefon er avskrekkende. Håper du fant dette nyttig. Kontakt meg hvis du trenger mer veiledning. 21.3k Visninger middot Vis Upvotes middot Ikke for Reproduksjon Stephen Steinberg. Grunnlegger av Raw Athletics Grunnlegger av Capitol Oppstart Interactive Brokers Interactive Brokers har en virkelig toppmodern investeringsplattform og anstendig prising. It039 er definitivt et kraftig verktøy, så du kan sannsynligvis få billigere alternativer fra rabattmeglerne som Etrade og Scottrade, men hvis du er seriøs med algoritmisk handel, er IB det hvor det er. InvestFly Suksess handler om å praktisere og teste hypotesen og algoritmer. Back-test, test markeder og sammenlign det med andre. Jeg foretrekker Investfly - Virtual Stock Exchange, Stock Market Game Amp Trading Strategies. men det er massevis av gode programmer der ute. Idea Generasjon Don039t start fra grunn null - Jeg liker å få ideer fra Motiv Investing (Online Brokerage, Investment Ideas, Stock Trading) og Seeking Alpha, men se alltid på det store bildet og tenk på hvordan disse tingene gjelder for din egen hypotese og formler. Skål og lykke 4.5k Vis middot Vis Oppvoter midtpunkt Ikke for reproduksjon Oppdatert 101w siden middot Upvoted av Patrick J Rooney. 5 års handel profesjonelt Jeg spesialiserer meg på avansert o For å begynne med det grunnleggende, få tak i Amibroker (AmiBroker - Download). Amibroker har en lett å lære språk og kraftig backtest-motor der du kan prototype dine ideer. Få også Howard Bandy 039s bok Quantitative Trading Systems. Denne boken er en veldig god introduksjon til konseptene kvant utvikling. You039ll trenger også minst en grunnleggende kunnskap om statistikk. Det er mange gode MOOC-kurs tilgjengelig for dette gratis. Slik som denne One Statistics One - Princeton University Coursera It039s er også verdt å følge The Whole Street. som er en mashup av alle kvantbloggene, hvorav mange publiserer Amibroker-kode med sine ideer. Derfra er it039s verdt å lære Python (lær python - Google Search), og gjør også Andrew Ng039s utmerkede Stanford University Machine Learning kurs, som går gratis på Coursera. Hvis du deretter vil sette dine egne algoritmer på prøve, er gode nettsteder for det Quantconnect eller Quantopian. Endelig har denne fyren noen gode råd om å gjøre det til din karriere quantstart Lykke til med reisen Delvis hentet fra Alan Clement039s svar på Hvordan kan en programvareutvikler i økonomi bli en kvantutvikler 16.3k Vis middot Vis Oppvoter midtpunkt Ikke for reproduksjon Hvilken megler kan jeg bruke for å starte papirhandel, min algoritme gratis Hvordan kan jeg bygge et ordre-rutingsystem for en algoritmisk handelsplattform Hvor lønnsomt er de beste aksjemarkedsalgoritmer Kan en enkelt person faktisk lønnsomt engasjere seg i algoritmisk handel Hvor kan jeg få ressurser til å begynne å lære Python for algoritmisk handel Hvilken megler er god for algoritmisk handel Jeg har en solid forståelse av aksjemarkeder som har Python-ferdigheter. Jeg vil utvikle et automatisert algoritmisk handelssystem. Hvor starter jeg Hva er de beste avkastningene fra algoritmehandel

No comments:

Post a Comment