Tuesday 3 October 2017

Maskinlærings Alternativer Handel


Jeg er ikke veldig sikker på om dette spørsmålet passer inn her. Jeg har nylig begynt å lese og lære om maskinlæring. Kan noen kaste litt lys på hvordan man skal gå om det, eller heller kan noen dele sin erfaring og få grunnleggende poeng om hvordan man skal gå om det eller i det minste begynne å bruke det for å se noen resultater fra datasett. Hvor ambisiøs høres dette også også om standard algoritmer som bør prøves eller sees mens du gjør dette. spurte feb 1 11 klokka 18:35 Det ser ut til å være en grunnleggende feil at noen kan komme sammen og lære noen maskinlæring eller AI-algoritmer, sette dem opp som en svart boks, gå og gå tilbake mens de går på pensjon. Mitt råd til deg: Lær statistikk og maskinlæring først, så bekymre deg for hvordan du søker dem på et gitt problem. Det er ingen gratis lunsj her. Dataanalyse er hardt arbeid. Les Elements of Statistical Learning (pdf er tilgjengelig gratis på nettstedet), og ikke begynn å prøve å bygge en modell til du forstår minst de første 8 kapitlene. Når du forstår statistikk og maskinlæring, må du lære å teste og bygge en handelsmodell, regnskap for transaksjonskostnader, etc. som er et helt annet område. Etter at du har et håndtak på både analyse og økonomi, vil det være noe tydelig hvordan du bruker det. Hele punktet i disse algoritmene prøver å finne en måte å tilpasse en modell til data og produsere lav bias og varians i prediksjon (dvs. at trenings - og testforutsigelsesfeilen vil være lav og liknende). Her er et eksempel på et handelssystem ved hjelp av en støttevektormaskin i R. Men bare vær oppmerksom på at du vil gjøre deg selv en stor misforståelse hvis du ikke bruker tid til å forstå det grunnleggende før du prøver å bruke noe esoterisk. Bare for å legge til en underholdende oppdatering: Jeg har nylig kommet over denne masteroppgaven: En novell algoritmisk handelsramme som bruker evolusjon og maskinlæring for porteføljeoptimalisering (2012). Det er en omfattende gjennomgang av ulike maskininnlæringsmetoder sammenlignet med buy-and-hold. Etter nesten 200 sider kommer de til den grunnleggende konklusjonen: Ingen handelssystem kunne overgå referanseindeksen ved bruk av transaksjonskostnader. Unødvendig å si betyr dette ikke at det ikke kan gjøres (jeg har ikke brukt noen tid på å gjennomgå metodene sine for å se validiteten av tilnærmingen), men det gir absolutt noen flere bevis til fordel for den gratis lunsjteorien. svarte feb 1 11 kl 18:48 Jase Som en av forfatterne til nevnte masteroppgave kan jeg sitere mitt eget arbeid og si: "Hvis noen faktisk oppnår lønnsomme resultater, er det ikke noe incitament til å dele dem, da det ville negere deres fordel. Selv om resultatene våre kan gi støtte til markedshypotesen, utelukker det ikke at det eksisterer systemer som fungerer. Det kan være som sannsynlighetsteori: Det er spekulert at gjennombrudd innen sannsynlighetsteori har skjedd flere ganger, men aldri delt. Dette kan skyldes det praktiske programmet i gambling. quot Så igjen, kanskje dette er alt moderne alkymi. ndash Andr233 Christoffer Andersen 30 Apr 13 kl 10:01 Mitt råd til deg: Det er flere Maskinvare LearningArtificial Intelligence (MLAI) grener der ute: www-formal. stanford. edujmcwhatisainode2.html Jeg har bare prøvd genetisk programmering og noen nevrale nettverk, og Jeg tror personlig at læringen fra erfaringbransjen synes å ha størst potensial. GPGA og neurale nett ser ut til å være de mest utforskede metodene for formålet med aksjemarkedet spådommer, men hvis du gjør noe data mining på Predict Wall Street. du kan også gjøre noen følelsesanalyser også. Tilbring litt tid på å lære om de ulike MLAI-teknikkene, finn noen markedsdata, og prøv å implementere noen av disse algoritmer. Hver og en vil ha sine sterke og svake sider, men du kan kanskje kombinere prognosene for hver algoritme til en sammensatt forutsigelse (likt hva vinderne av NetFlix-prisen gjorde). Noen ressurser: Her er noen ressurser du kanskje vil se på: The Chatter: Den generelle konsensus blant handelsmenn er at Artificial Intelligence er en voodoo-vitenskap, du kan ikke få en datamaskin til å forutsi aksjekurser, og du er sikker på å miste pengene dine hvis du prøver gjør det. Likevel vil de samme folkene fortelle deg at omtrent den eneste måten å tjene penger på aksjemarkedet, er å bygge og forbedre din egen handelsstrategi og følge den nøye (noe som egentlig ikke er en dårlig ide). Ideen om AI-algoritmer er ikke å bygge Chip og la han handle for deg, men å automatisere prosessen med å skape strategier. Det er en veldig kjedelig prosess, og på ingen måte er det lett :). Minimere overfitting: Som vi tidligere har hørt, er et grunnleggende problem med AI-algoritmer overfitting (aka datamining bias): gitt et sett med data, kan AI-algoritmen finne et mønster som er spesielt relevant for treningssettet. men det kan ikke være aktuelt i testsettet. Det er flere måter å minimere overfitting på: Bruk et valideringssett. Det gir ikke tilbakemelding til algoritmen, men det lar deg oppdage når algoritmen din potensielt begynner å overfit (dvs. du kan slutte å trene hvis du overfitterer for mye). Bruk online maskinlæring. det eliminerer i stor grad behovet for back-testing og det er svært aktuelt for algoritmer som forsøker å gjøre markedsspådommer. Ensemble Learning. gir deg muligheten til å ta flere maskinlæringsalgoritmer og kombinere sine spådommer. Forutsetningen er at ulike algoritmer kan ha overfit dataene i noe område, men den riktige kombinasjonen av sine spådommer vil ha bedre prediktiv kraft. To aspekter ved statistisk læring er nyttige for handel 1. Først de nevnte tidligere: Noen statistiske metoder fokusert på å jobbe med levende datasett. Det betyr at du vet at du observerer bare et utvalg av data, og du vil ekstrapolere. Du må derfor håndtere i utvalg og ut av prøveproblemer, overfitting og så videre. Fra dette synspunkt er data-mining mer fokusert på døde datasett (det vil si at du kan se nesten alle dataene, du har et eneste problem i prøven) enn statistisk læring. Fordi statistisk læring handler om å jobbe med levende datasett, må de anvendte matematikkene som omhandler dem, fokusere på et toskala problem: venstre X ampamp Ftheta (Xn, xi) ampamp L (pi (Xn), n) slutter til høyre. hvor X er det (flerdimensjonale) tilstandsrommet for å studere (du har i de forklarende variablene dine og de som skal forutsi), F inneholder dynamikken til X som trenger noen parametere theta. Tilfeldigheten av X kommer fra innovasjonen xi, som er i. i.d. Målet med statistisk læring er å bygge en metode L ith som inputs en delvis observasjon pi av X og gradvis justere et estimat hattheta av theta, slik at vi vil vite alt som trengs på X. Hvis du tenker på å bruke statistisk læring for å finne Parametrene for en lineær regresjon. vi kan modellere tilstandsrommet slik: underbrace yx ende høyre) venstre begynner amp amp b amp 1 1 amp 0 amp 0 end høyre cdot underbrace x 1 epsilon ende høyre) som dermed tillater å observere (y, x) n på en hvilken som helst n her theta (a, b). Da må du finne en måte å gradvis bygge en estimator av theta ved hjelp av våre observasjoner. Hvorfor ikke en gradient nedstigning på L2 avstanden mellom y og regresjonen: C (hat a, hatt b) n sum (yk - (hat a, xk hat b)) 2 Her er gamma en vektingsplan. Vanligvis er en fin måte å bygge en estimator på å skrive riktig kriteriene for å minimere og implementere en gradient nedstigning som vil produsere læringsskjema L. Går tilbake til vårt opprinnelige generiske problem. Vi trenger noen anvendte matematikker å vite når par dynamiske systemer i (X, hattheta) konvergerer, og vi trenger å vite hvordan å bygge estimeringsordninger L som konvergerer mot den opprinnelige theta. Å gi deg poeng på slike matematiske resultater: Nå kan vi gå tilbake til det andre aspektet av statistisk læring som er veldig interessant for quant traderstrateger: 2. Resultatene som brukes til å bevise effektiviteten av statistiske læringsmetoder, kan brukes til å bevise effektiviteten av handelsalgoritmer. For å se at det er nok å lese igjen det koblede dynamiske systemet som gjør det mulig å skrive statistisk læring: venstre M ampamp Frho (Mn, xi) ampamp L (pi (Mn), n) slutter til høyre. Nå er M markedsvariabler, Rho er underliggende PnL, L er en handelsstrategi. Bare erstatte minimering av et kriterium ved å maksimere PnL. Se for eksempel Optimal deling av ordrer over likviditetspuljer: en stokatisk algoritm tilnærming av: Gilles Pags, Sophie Laruelle, Charles-Albert Lehalle. I dette papiret viser forfattere hvem som skal bruke denne tilnærmingen for å optimalisere en rekkefølge på forskjellige mørke bassenger samtidig som de lærer mulighetene til bassengene for å gi likviditet og bruke resultatene til å handle. De statistiske læringsverktøyene kan brukes til å bygge iterative handelsstrategier (de fleste er iterative) og bevise effektiviteten. Det korte og brutale svaret er: du gjør det ikke. For det første fordi ML og statistikk ikke er noe du kan kommandere godt om ett eller to år. Min anbefalte tidshorisont for å lære noe som ikke er trivielt, er 10 år. ML ikke en oppskrift å tjene penger, men bare en annen måte å observere virkeligheten på. For det andre, fordi en god statistiker vet at forståelsen av dataene og problemdomenet er 80 av arbeidet. Det er derfor du har statistikere som fokuserer på fysikkdataanalyse, genomik, sabermetri osv. For posten er Jerome Friedman, medforfatter av ESL sitert ovenfor, fysiker og har fortsatt en høflighet på SLAC. Så studer statistikk og finans i noen år. Vær tålmodig. Gå din egen vei. Kilometerstanden kan variere. besvart 9. februar 11 klokka 4:41 Jeg er helt enig. Bare fordi du vet maskinlæring og statistikk, betyr det ikke at du vet hvordan du skal søke på det for å finansiere. ndash Dr. Mike 10 Aug 11 kl 20:25 Også en viktig ting å huske er at du ikke kommer til å handle mot folk, du vil handle mot andre kunstige intelligensalgoritmer som ser på handlingene dine i hakk, og er rasende å beregne oddsene at kollektiv yous ville bli spooked ut av en produsert tilbakegang og ta det mindre tapet i å lage en spikedip og lure alle de AI39s til å stoppe ut, og deretter ruller dukkert tilbake i det og ri bølgen, tjener dine tap. Aksjemarkedet er et nullsum spill, behandler det som å legge inn en pro-boksekamp, ​​hvis du er en 20-årig veteran, kommer du til å miste ndash Eric Leschinski 13. februar kl. 1:56 En grunnleggende søknad er å forutse økonomisk nød. Få en masse data med noen selskaper som har misligholdt, og andre som ikke har, med en rekke økonomiske opplysninger og forhold. Bruk en maskinlæringsmetode som SVM for å se om du kan forutsi hvilke firmaer som skal standard og hvilke som ikke vil. Bruk den SVM i fremtiden til korte høye sannsynlighet standard selskaper og lange lav sannsynlighet standard selskaper, med fortjeneste av kort salg. Det er et ordtak med å pynte pennies opp foran steam rollersquot. Du gjør det tilsvarer å selge en out-of-the-money put. I dette tilfellet vil du gjøre lite fortjeneste i mange år, så bli helt renset når markedet smelter ned hvert 10. år eller så. Det er også en likestillende strategi som kjøper penger utenom penger: de mister penger i årevis, så gjør en drap når markedet smelter ned. Se Talabs Svarte Svanen. ndash Contango 5 Jun 11 kl 22:20 Husk at internasjonale selskaper har tilbrakt hundrevis av milliarder dollar og man timer på de aller beste og mest lysende kunstige intelligenshodet de siste 40 årene. Jeg har snakket med noen av tårnene som er ansvarlige for alfaene over på Citadel og Goldman Sachs, og hubrisen fra nybegynnere til å tro at de kan sette sammen en algoritme som vil gå tå til tå med dem og vinne, er nesten like dum som Et barn forteller deg at han kommer til å hoppe til månen. Lykke til barn, og pass på plassmartierne. Ikke for å si at nye mestere kan gjøres, men oddsen er mot deg. ndash Eric Leschinski 13 februar 16 klokken 2:00 En mulighet verdt å utforske er å bruke læringsverktøyet for støttevektorer på Metatrader 5-plattformen. For det første, hvis du ikke er kjent med det, er Metatrader 5 en plattform utviklet for brukere å implementere algoritmisk handel i forex og CFD-markeder (jeg er ikke sikker på om plattformen kan utvides til aksjer og andre markeder). Den brukes vanligvis til tekniske analysebaserte strategier (dvs. bruker indikatorer basert på historiske data) og brukes av folk som ønsker å automatisere sin handel. Støttevektormaskinens læringsverktøy har blitt utviklet av et av brukerne i samfunnet for å tillate at støttevektormaskiner skal brukes til tekniske indikatorer og gi råd om handel. En gratis demoversjon av verktøyet kan lastes ned her hvis du vil undersøke videre. Som jeg forstår, bruker verktøyet historiske prisdata for å vurdere om hypotetiske handler tidligere hadde vært vellykkede. Det tar da disse dataene sammen med de historiske verdiene fra en rekke tilpassbare indikatorer (MACD, oscillatorer osv.), Og bruker dette til å trene en støttevektormaskin. Deretter bruker den utdannet støttevektormaskinen til å signalisere fremtidige buysell-bransjer. En bedre beskrivelse finner du på linken. Jeg har spilt rundt med det litt med noen svært interessante resultater, men som med alle algoritmiske handelsstrategier, anbefaler jeg solid tilbakemelding før du tar den til live-markedet. Besvart 10. desember klokken 11:59 Beklager, men til tross for at det ble brukt som et populært eksempel på maskinlæring, har ingen noensinne oppnådd et aksjemarkedsprognose. Det virker ikke av flere grunner (sjekk tilfeldig spasertur av Fama og ganske mange andre, rasjonell beslutningsfeil, feil antagelser.), Men det mest overbevisende er at hvis det ville fungere, kunne noen bli vanvittig rike innen måneder, i utgangspunktet eie hele verden. Da dette ikke skjer (og du kan være sikker på at hele banken har prøvd det), har vi gode bevis for at det bare ikke fungerer. Foruten: Hvordan tror du at du vil oppnå det tiotusenvis av fagfolk har mislyktes, ved å bruke de samme metodene de har, pluss begrensede ressurser og bare grunnleggende versjoner av metodene deres svarte 4 juni 15 klokka 7:47 Bare en side om din Den største begrunnelsen: Strategier har kapasitetsgrenser, dvs. nivåer utover hvilke markedsvirkningen vil overstige den tilgjengelige alfa, selv om du antar at du hadde ubegrenset kapital. Jeg er ikke sikker på hva du mener med et aksjemarkedsprognos (index futures ETF39s), men absolutt er det mange mennesker som gjør kortsiktige spådommer, og nyter godt av dem, hver dag på markeder. ndash afekz 23 nov 15 kl 13:19 Jeg ekko mye av hva Shane skrev. I tillegg til å lese ESL, foreslår jeg en enda mer grunnleggende studie av statistikk først. Utover det er problemene jeg skisserte i i et annet spørsmål på denne utvekslingen svært relevante. Spesielt er problemet med datamining bias en alvorlig veikryss for enhver maskinlæringsbasert strategi. Dette 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 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 sikker på at Irsquod tjener penger før han noensinne har gjort 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 mitt 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 min algoritme har truffet beslutninger på samme måte, uansett hvor det gikk inn i en handel, eller om det for tiden var kort 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 høyfrekvent 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ølging FAQ som svarer på noen vanlige spørsmål Irsquove mottatt fra handelsmenn om dette innlegget. Det er vanskelig å gjøre spådommer, spesielt om fremtiden, sa baseballlegenden Yogi Berra . Men det stopper ikke folk fra å prøve, særlig innen finansmarkeder, hvor maskinvarehandlingsalgoritmer utvikles og lanseres av hedgefond, med sikte på å finne praktiske anvendelser av den store teorien som eksisterer for kunstig intelligens. Kanskje ikke overraskende, holder mange av dem i forkant av avanserte grader i matematikk eller datavitenskap. Mens du har en doktorgrad er ikke obligatorisk, er det tydeligvis en fordel. Spencer Greenberg. medgrunnlegger, opprørforskning Da jeg lærte om maskinlæring, skjedde det meg at det kunne være nyttig i økonomiske applikasjoner, sier Spencer Greenberg, medgrunnlegger av Rebellion Research, et New York-basert hedgefond. Greenberg driver for tiden doktorgrad ved New York Universitys Courant Institute of Mathematical Sciences. Når vi prøver å tjene penger på aksjemarkedet, har vi ingen fullstendige oppfatninger om hvorvidt vi skal kjøpe og selge, verdi, momentum, relativ verdi etc., sa Greenberg. Kanskje maskinlæring kan trekke ut investeringsstiler på en automatisk måte, og en algoritme kan opprettes for å lære den prosessen. Jeg ble fascinert med det. Rebellion Research benytter et maskinbasert læringsbasert system for å gjøre forutsigelser om utførelsen av aksjer og andre aktivaklasser. Den grunnleggende forutsetningen er at maskiner kan programmeres av Google for å gjennomføre nettsøk eller Amazon og Netflix for å anbefale filmer og bøker, så det er ingen grunn til at de ikke bør kunne trent til å ta investeringsbeslutninger. En grunn til at folk er skeptiske til å bruke kunstig intelligens for å investere, tenker de på å investere som noe som er for vanskelig for et menneske å løse, og derfor er det for vanskelig å programmere, 8221 sa Greenberg. 8220Det er mange teorier om hvordan markedet fungerer. Vår tilnærming er å ha maskinlæringsalgoritmer analysere å investere på en automatisert måte. Kunnskapsområdet i området ekspanderer med et raskt klipp. I flere tiår har maskinbaserte kunstig intelligenssteknikker vært kjernevirksomhetene i algoritmisk handel og beregningsfinansiering generelt, sa Vadim Mazalov, forsknings - og utviklingsspesialist hos handelssystemleverandøren Cyborg Trading Systems, og en doktorand i datavitenskap som spesialiserer seg på maskinlæring på Western University i London, Ontario. Maskinlæring Den omfattende kunnskapen innen kunst inneholder allerede en rekke modeller som kan brukes på forskjellige nivåer og skaleres fra høyfrekvent til systematisk handel. I løpet av de siste fem årene har vi sett enorme fremskritt innen automatisert handelsteknologi, sa Alfred Eskandar, daglig leder for handelssystemleverandøren Portware. Avanserte front-end-løsninger har introdusert enorme effektiviteter, redusert operasjonell risiko og gitt forhandlere enestående tilgang til global likviditet. Den nåværende generasjonen av eksekveringsstyringssystemer har imidlertid tatt handel og arbeidsflytautomatisering så langt som mulig. Ansvaret for en helhetlig livscyklusanalyserende markedssituasjon, valg av riktig strategi for en bestemt ordre, overvåkning av gjennomføringsfremdrift og eventuelle nødvendige endringer, faller til menneskehandlere. I løpet av de neste årene skulle vi se bedrifter som bruker teknologi som vil hjelpe selgere automatisk å velge og implementere den optimale algoritmiske strategien, slik at de kan øke kapasiteten og forbedre den generelle handelsytelsen, sa Eskandar. Men så mye som handelsmenn vil være i riktig algoritme til rett tid, vil de heller ikke være i feil algoritme på feil tidspunkt. Noen av markedene de siste feilstrinnene viser hvor viktig det er å håndtere handelsrisiko, sa Eskandar. Denne nye teknologien vil tillate bedrifter å administrere sine algoritmer dynamisk og sikre sikker drift av handelsbord i alle markedsforhold. Adventen av maskinbaserte handelsalgoritmer skyldes ikke mindre enn kapasiteten til å analysere dataoverføringer i sanntid ved hjelp av avansert maskinvare og programvare. Det handler om å lete etter mønstre i data, sa Tucker Balch, professor i datavitenskap ved Georgia Institute of Technology, og grunnlegger av Lucena Research, et kunstig intelligensbasert investeringsteknologisfirma. Når det gjelder økonomi, ser du etter forhold mellom data om et selskap og dets fremtidige pris. Det er hva Lucena gjør, og hva jeg gjør med min forskning ved Georgia Tech. Matematiske Modeller Lucena gir kvantitativ analyse og statistisk maskininnlæringsteknologi til hedgefond, rikdomskonsulenter og avanserte individuelle investorer. Dens skybaserte teknologiske beslutningsstøtteteknologi gjør det mulig for kortsiktige investorer og handelsmenn å finne markedsmuligheter og å redusere risikoen i porteføljen ved hjelp av teknisk og grunnleggende kvantitativ mønstermatching. Systemet får så mye historiske data, inkludert grunnleggende data og tekniske indikatorer, som mulig, og søker å finne forhold mellom den historiske data og fremtidige priser, sa Balch. Det forholdet er en modell, noe som relaterer noen målbar mengde egenkapital til en fremtidig pris, sa han. Lucenas maskininnlæringsbaserte prognosealgoritme progniserer fem, 10 og 20 dagers avkastning på tvers av alle dekket aksjer. Vi bruker ikke statiske modeller, vår forspiller blir revidert daglig for å tilpasse seg automatisk til endrede markedsforhold, sa Balch. Prognosen kan brukes til å identifisere kortsiktige lange eller korte muligheter. Lucasas ultimate mål, sier han, er å bringe bevissthet om kraften til maskininnlæringsmønsteranalyse, og å revolusjonere det underverdige investeringsfaglige samfunnet ved å gi verktøy og teknologi som normalt ikke tilgjengelig for bedrifter av deres størrelse. (Besøkte 835 ganger, 5 besøk i dag)

No comments:

Post a Comment