Saturday, October 15, 2016

Bou High Frequency Trading System

Stickin Dit om die Nerds: Die bou van 'n hoë-frekwensie Trading stelsel as 'n kind, het jy al ooit droom om 'n nerd ek didnt so dink. Maar oor die afgelope paar jaar, hoeveel glimlag mense het wat jy sien in die finansiële nuus wat soos, wel, nerds geskool in rekenaar teorie, wiskunde, fisika, wat ook al, hierdie nerds was in die nuus vir die maak van 'n klomp geld met gekyk gerekenariseerde beurs: hoë-volume, split-sekonde,-masjien gedryf koop en verkoop wat genette miskien 0,05 per 100 aandele. Wat nie die geval klink soos 'n klomp geld, maar vermenigvuldig met honderde duisende aandele oor duisende ambagte per dag, en dit begin optel. Trouens, dit is verantwoordelik vir die meerderheid van vandag se voorraad handel volume. En as jy oorskakel op jou onvoldoende laptop, kan jy dalk wonder, is dit wat ek moet doen om geld te handel Kort antwoord maak: No. Langer antwoord: Absoluut geen. Nerd Afwerend Medium Wat daardie stories havent het jy is dat die onlangse skerp swaai in wisselvalligheid baie mense wat gerekenariseerde handel te ontwikkel om hul strategieë te heroorweeg het gedwing. Die kort termyn, back-en-weer prysbewegings wat gerekenariseerde handel veronderstel is om te vang het meer uni-directional, en het 'n paar handelaars met 'n groot verlies van poste verlaat. Goed dan, vra jy, indien nie 'n hoë-frekwensie, gerekenariseerde handel, dan wat jy 'n strategie-gebaseerde benadering tot handel nodig het, sodat ongeag die voorraad of indeks, ongeag van die markomgewing, jy 'n benadering tot die vind van en die uitvoering het ambagte wat sin maak. Met ander woorde, 'n stelsel. Dit beteken dat jy nodig het om 'n stel reëls wat jy volg vir die kry in en uit van die ambagte elke keer, eerder as om net te skiet uit die heup te skep. Jou stelsel kan nie altyd uitdraai as wat jy verwag, of altyd geld te maak, maar jy sal 'n plan vir die plasing van ambagte. Jy mag nie jou foto te kry in die finansiële nuus, maar miskien betaal sal jy jou rekeninge en nog tyd om 'n normale persoon wees. Bou 'n 1-2-3 System So, hoe kan jy dit goed te doen, om te begin, as jy reeds die thinkorswim platform gelaai op jou laptop, jy het gereedskap tot jou beskikking wat ontwerp is om meer as wat die meeste van die Wall bied Street nerds het. Ernstig. En jy gaan aan dié gereedskap gebruik om ambagte wat voldoen aan die volgende drie kriteria te vind: 2. Positiewe tyd verval 3. Gunstige kans Kom elkeen af ​​te breek. Dit beteken nie saak wat die voorraad of indeks doen, of dit gaan op groot, af groot of nêrens glad, jou maksimum potensiële verlies is bekend voordat jy selfs die handel te doen. Byvoorbeeld, het 'n kort oproep vertikale risiko omskryf. 'N Kort naak oproep nie. Met die kort vertikale, die maksimum verlies is die verskil tussen die staking pryse minus die krediet ontvang. Dis dit. Met 'n naakte kort oproep, dont jy regtig weet wat jou maksimum verlies kan wees. Selfs as jy dink jy sal gebruik om 'n aftrekorder aan die kort oproep terug te koop indien die verlies raak te groot, wat as die voorraad gapings te oornag wanneer jy kan nie handel Stick met 'n gedefinieerde-risiko ambagte. 2. Positiewe Tyd Bederf Behalwe die dood en belasting, die enigste ander ding wat jy kan reken op is tyd verbygaan. En as dit nie die geval is, weve al het groter probleme. As gevolg van dat onvermydelikheid, jy wil tyd verby aan jou kant. Dit beteken dat jy jou posisies om positiewe tyd verval het, sodat alle ander dinge gelyk, eendag verby beteken dat jou posisie is die moeite werd om 'n bietjie meer. Positiewe tyd verval kom gewoonlik van 'n kort opsie iewers in die posisie. Dit nie die geval 'n blote kort (sien maatstaf 1) te wees, maar as deel van 'n verspreiding soos 'n kort vertikale, lang kalender. of yster Condor. 'n kort opsie sal tyd sit aan jou kant. 3. Gunstige kans Maak nie saak hoeveel navorsing wat jy doen, is die waarskynlikheid van 'n voorraad of indeks beweeg op of af is 50. Maar jy nie wil jou handel te afhanklik van die flip van 'n muntstuk. Die pad na die kans tip in jou guns is met slimmer strategie seleksie. Dit begin deur te soek die opsie ketting vir 'n korter termyn verstryk en 'n hoë waarskynlikheid van verval waardeloos. Dit sal jou laat versprei dat minder afhanklik van wat reg op rigting en meer op premium verval skep. Goed, nou Wat Nie te nerdy, is dit Kom ons draai die teoretiese in praktiese met 'n paar van die werklike lewe voorbeelde vir beide die voorraad en opsies handelaar. Die Stock Trader Julle n voorraad handelaar. Miskien is jy nie heeltemal gereed vir al die opsie verspreiding dinge. So, hoe doen die drie kriteria work for you As jy lank voorraad, jy reeds weet wat jou maksimum potensiële verlies indien die voorraad gaan na nul. Selfs al is die risiko 'n baie groot aantal sou wees, Ill argumenteer dat dit gedefinieer op sy eie manier. Dis maatstaf 1. Vir 2, kyk jy na 'n kort gedek oproep teen daardie lang voorraad te skep om jou 'n paar positiewe tyd verval gee. Wanneer jy kort 'n oproep teen jou lang voorraad, vir elke dag wat die aandeelprys nie die geval skuif, wat kort oproep gaan goedkoper en goedkoper te kry en maak dat jy 'n bietjie geld. Vir 3, kry die kans aan jou kant beteken die verkoop van 'n out-of-the-geld oproep dat 'n waarskynlikheid van verval waardeloos van ongeveer 60, wat jy kan doen van TD Ameritrades thinkorswim verhandelingsplatform (Figuur 1 hieronder) het. Die voorraad kan opstaan ​​om die trefprys van die kort oproep deur verstryking, en die oproep sal steeds verval waardeloos. Dit verminder die koste basis van jou lang voorraad, wat ook verlaag sy gelykbreekpunt. Dit beteken dat die voorraad kan 'n groter beweging af te maak, en jy kan nog steeds nie geld verloor. In thinkorswim, sien die waarskynlikheid van 'n opsie verval in-die-geld (ITM). Hier, 'n oproep met 'n 34 waarskynlikheid van verval ITM is dieselfde as om te sê dit het 'n 66 waarskynlikheid van verval waardeloos. Slegs ter illustrasie doeleindes. Die Options Trader Julle slaggereed om ontslae te gaan met opsies, maar jy nie seker is of jy moet lomp of lomp op 'n bepaalde voorraad of indeks wees. Moenie sweet die rigting van die voorraad. Die gebruik van die drie kriteria, kan jy 'n strategie wat nog geld selfs al is jy verkeerd op jou directional verbintenis kan maak vind. Kom ons kyk hoe. In die eerste plek begin met 'n paar rigtinggewende vooroordeel van die aandeel of indeks. Miskien is sy op grond van tegniese of fundamentele analise, of dalk jou gunsteling praat kop op TV voorgestel. Op pad was na 'n kort vertikale verspreiding (kriteria 1 en 2) 'n kort oproep vertikale skep as jy 'n lomp vooroordeel, of 'n kort stel vertikale as jy 'n lomp vooroordeel. Begin deur die vind van die verstryking van 25 tot 45 dae. Vir kriteria 3 As julle lomp, vind die out-of-the-geld kort oproep dat 'n 60-70 kans verval waardeloos het. As julle lomp, oorweeg om die out-of-the-geld kort sit dit 'n waarskynlikheid van verval waardeloos van tussen 60 en 70 het. Om 'n kort oproep skep vertikale, oorweeg die koop van die opsie oproep dis een staking verdere buite-die-geld as jou kort oproep. Om 'n kort put skep vertikale, oorweeg die koop van die verkoopopsie dis een staking verdere buite-die-geld as jou kort plaas. Nou, hier is wat kan gebeur. Met die kort oproep out-of-the-geld vertikale as die voorraad afbeweeg deur verstryking, jy geld maak. As die voorraad bly dieselfde deur verstryking, jy geld maak. As die voorraad beweeg op verby die kort staking van die kort oproep vertikale, sal jy waarskynlik geld verloor. Maar as dit net gaan 'n bietjie, nie so hoog soos die kort staking van die kort oproep vertikale, jy kan nog steeds geld maak. Die kort verkoopopsie werk op dieselfde manier, maar verloor geld indien die voorraad afbeweeg verby die kort staking van die kort sit vertikale. Dit is nie 'n dwaas-bewys, gewaarborgde manier om geld te maak handel. Maar dit is beter as die vergadering op die kantlyn, gefrustreerd en verward deur nie in staat is om die manier waarop jy dink die Wall Street voor - doen dit handel. Elke handel jy maak op grond van hierdie kriteria sal redenasie agter dit. En selfs al is die handel geld verloor, sal jy weet presies hoeveel en hoekom. Dis om 'n opgevoede handelaar. In plaas van 'n nerd. Het jy thinkorswim As jy hoef nie thinkorswim om waarskynlikhede, waarvoor wag jy nog vir Check uit wat sy alles oor amp deel te neem aan die pret te ontleed. Multi-been opsie-strategieë soos dié in hierdie artikel bespreek sal bykomende koste as gevolg van die bykomende stakings verhandel het. Maak seker dat jy al die risiko's wat betrokke is by elke strategie, transaksiekoste ingesluit verstaan, voordat jy probeer om 'n bedryf te plaas. Wees bewus daarvan dat opdrag op kort opsie-strategieë in hierdie artikel bespreek kan lei tot ongewenste lang of kort posisies op die onderliggende sekuriteit. Markonbestendigheid, volume, en beskikbaarheid stelsel kan toegang tot jou rekening en handel teregstellings vertraag. Vorige prestasie van 'n sekuriteit of strategie waarborg nie toekomstige resultate of sukses. Opsies is nie geskik vir alle beleggers as die spesiale risiko's wat inherent is aan handel opsies beleggers om potensieel vinnige en aansienlike verliese kan blootstel. handel opsies onderhewig aan TD Ameritrade hersiening en goedkeuring. Lees Eienskappe en risiko's van gestandaardiseerde Options voor te belê in opsies. Ondersteunende dokumentasie vir enige eise, vergelykings, statistieke, of ander tegniese data sal verskaf word op aanvraag. Die inligting is nie bedoel om beleggingsadvies word of as 'n aanbeveling of onderskrywing van 'n bepaalde belegging of beleggingstrategie, en is slegs vir illustratiewe doeleindes. Maak seker dat jy al die risiko's wat betrokke is by elke strategie, insluitend kommissie koste te verstaan, voordat jy probeer om 'n bedryf te plaas. Kliënte moet oorweeg alle relevante risikofaktore, insluitend hul eie persoonlike finansiële situasies, voordat die saak. TD Ameritrade, Inc. lid FINRA / SIPC. TD Ameritrade is 'n handelsmerk gesamentlik besit word deur TD Ameritrade IP Company, Inc en die Toronto-Dominion Bank. 2016 TD Ameritrade IP Company, Inc. Alle regte voorbehou. Gebruik met toestemming. Inconceivable. Heres Hoe jy jou eie hoë-frekwensie Trading operasie verlede week, het ons die voorreg van die vergadering af met Mike Felix en Dokter Lawrence Hansen van Lime makelaarsloon. 'n New York City-gebaseerde agentskap makelaar wat spesialiseer in 'n hoë-frekwensie. lae-latency handel. Die belangrikste afhaal. Diegene wat dink die spoed is onaanvaarbaar beter daaraan gewoond te raak, want hulle is hier om te bly en sy enigste gaan vinniger van hier te kry. Ons het hulle gevra hoe 'n mens te werk sal gaan om hul eie hoë-frekwensie handel werking op 'n amateur / kleinhandel vlak. Na spyker af presies wat die definisie van 'n hoë-frekwensie handel is. Toe het ons oor die stappe wat jy moet neem om dit te laat gebeur. Gebruik: One Page SlidesHigh frekwensie handel stelsel ontwerp en proses bestuur Hoë frekwensie handel stelsel ontwerp en proses bestuur adviseur: Roy E. Welsch. Departement: System Design and Management Program. Uitgewer: Massachusetts Institute of Technology Datum Uitgereik: 2009 firmas deesdae is hoogs afhanklik van data-ontginning, rekenaarmodellering en die ontwikkeling van sagteware. Finansiële ontleders te voer baie soortgelyke take aan dié in sagteware en vervaardigingsbedrywe. Maar die finansiële sektor het nog nie ten volle 'n hoë-standaard stelsels ingenieurswese raamwerke en proses bestuur benaderings wat suksesvol was in die sagteware en vervaardigingsbedrywe aangeneem. Baie van die tradisionele metodes vir die produk ontwerp, gehaltebeheer, sistematiese innovering, en deurlopende verbetering in ingenieursdissiplines aangewend kan word om die veld van finansies. Hierdie tesis wys hoe die kennis wat uit ingenieursdissiplines die ontwerp en prosesse bestuur van 'n hoë frekwensie handel stelsels kan verbeter. Hoë frekwensie handel stelsels is-berekening gebaseer. Hierdie stelsels is 'n outomatiese of semi-outomatiese sagteware stelsels wat inherent kompleks en vereis 'n groot mate van ontwerp presisie. Die ontwerp van 'n hoë frekwensie handel stelsel koppel verskeie velde, insluitend kwantitatiewe finansies, stelsel ontwerp en sagteware-ingenieurswese. In die finansiële sektor, waar wiskundige teorieë en handel modelle relatief goed nagevors, die vermoë om hierdie ontwerpe te implementeer in real handel praktyke is een van die belangrikste elemente van 'n belegging maatskappye mededingendheid. Die vermoë van die omskakeling van belegging idees in 'n hoë werkverrigting handel stelsels doeltreffend en effektief kan 'n belegging firma 'n groot mededingende voordeel te gee. (Verv.) Hierdie tesis verskaf 'n gedetailleerde studie bestaan ​​uit 'n hoë frekwensie handel stelsel ontwerp, stelsel modellering en beginsels, prosesse en bestuur vir stelsel ontwikkeling. Besondere klem word aan back testing en optimalisering, wat beskou word as die belangrikste dele in die bou van 'n handel stelsel. Hierdie navorsing bou stelsel ingenieurswese modelle wat die ontwikkelingsproses te lei. Dit maak ook gebruik van eksperimentele handel stelsels te verifieer en te bekragtig beginsels in hierdie tesis aangespreek. Ten slotte, hierdie tesis tot die gevolgtrekking dat stelselingenieurswese beginsels en raamwerke die sleutel tot sukses vir die implementering van 'n hoë frekwensie handels - of kwantitatiewe belegging stelsels kan wees. Proefskrif (S. M.) - Massachusetts Institute of Technology, System Design and Management Program, 2009.Cataloged uit PDF-weergawe van thesis. Includes bibliografiese verwysings (bl 78-79.). Sleutelwoorde: System Design and Management Program. Kyk na My AccountThis pos sal detail wat ek gedoen het om ongeveer maak. 500k van hoë frekwensie handel vanaf 2009 tot 2010. Sedert ek was heeltemal onafhanklik handel en is nie meer loop my program Irsquom gelukkig om al te vertel. My handel was meestal in Russel 2000 en DAX termynkontrakte. Die sleutel tot my sukses, glo ek, was nie in 'n gesofistikeerde finansiële vergelyking nie, maar eerder in die algehele algoritme ontwerp wat saam baie eenvoudige komponente en gebruik masjien leer wat gekoppel is aan te optimaliseer vir maksimum winsgewendheid. Jy wonrsquot nodig om enige gesofistikeerde terminologie hier weet, want toe ek die opstel van my program dit alles is gebaseer op intuïsie. (Andrew Ngrsquos ongelooflike masjien leer kursus was nog nie beskikbaar - BTW as jy op die skakel kliek yoursquoll word om my huidige projek: CourseTalk, 'n review site vir MOOCs) In die eerste plek wil ek net om te wys dat my sukses was nie net die gevolg van geluk. My program gemaak 1000-4000 ambagte per dag (half lank, half kort) en het nooit in posisies van meer as 'n paar kontrakte op 'n slag. Dit het beteken die ewekansige geluk van enige een spesifieke handel gemiddeld uit redelik vinnig. Die gevolg was ek nooit meer as 2000 verloor het in 'n dag en nog nooit 'n verlies van maand: (. EDIT Hierdie syfers is na die betaling van kommissie) En herersquos n grafiek gee jou 'n gevoel van die daaglikse variasie gee. Let op hierdie sluit die afgelope 7 maande, want - soos die figure gestop terwyl hulle opgaan - ek my motivering om hulle te gaan verloor. My handel agtergrond Voor die oprigting van my outomatiese handel program Irsquod het 2 jaar ondervinding as 'n ldquomanualrdquo dag handelaar. Dit was terug in 2001 - dit was die vroeë dae van elektroniese handel en daar geleenthede vir ldquoscalpersrdquo om goeie geld te maak. Ek kan net beskryf wat ek doen as wat verwant is aan die speel van 'n video game / dobbel met 'n veronderstelde rand. Om suksesvol te wees beteken om 'n vinnige, gedissiplineer word, en 'n goeie intuïtief patroonherkenning vermoëns. Ek was in staat om rond 250K, afbetaal my studentelenings en het geld oor. Oorwinning oor die volgende vyf jaar sal ek twee startups te loods, pluk 'n paar ontwikkeling vaardighede wat langs die pad. Dit wouldnrsquot wees tot die einde van 2008 dat ek terug in die handel sou kry. Met geld lae hardloop uit die verkoop van my eerste begin, handel aangebied hoop van 'n paar vinnige kontant terwyl ek uitgepluis het my volgende skuif. In 2008 was ek ldquomanuallyrdquo dag handel termynmark gebruik van sagteware genoem T4. Irsquod dit altyd 'n paar persoonlike orde inskrywing sleutelbordkortpaaie, so na die ontdekking van T4 'n API het, het ek op die uitdaging om C (die taal programmering nodig is om die API te gebruik) en voortgegaan en gebou myself 'n paar sleutelbordkortpaaie. Na om my voete nat met die API Ek het gou groter aspirasies: Ek wou die rekenaar te leer om handel te dryf vir my. Die API verskaf beide 'n stroom van die mark data en 'n maklike manier om bestellings by die uitruil stuur - al wat ek moes doen, was die skep van die logika in die middel. Hier is 'n kiekie van 'n T4 handel venster. Wat was cool is dat wanneer ek my program werk kon ek die rekenaar handel te kyk op hierdie presiese dieselfde koppelvlak. Kyk werklike bestellings knal in en uit (deur hulself met my regte geld) was beide opwindend en vreesaanjaend. Die ontwerp van my algoritme uit die staanspoor my doel was om te installeer 'n stelsel soos wat ek redelik vol vertroue Irsquod geld te maak voordat ooit om enige lewendige ambagte kan wees. Om dit te bereik wat ek nodig het om 'n handel simulasie raamwerk wat sou bou - so akkuraat as moontlik - simuleer lewende handel. Terwyl die handel in lewende modus vereis mark updates verwerking gestroom deur die API, simulasie af vereis lees mark updates van 'n data lêer. Om hierdie data Ek opstel in te samel die eerste weergawe van my program om net aan te sluit op die API en rekord mark updates met tyd tempel. Ek het uiteindelik met behulp van 4 weke die moeite werd om van die onlangse data mark op te lei en te toets my stelsel aan. Met 'n basiese raamwerk in plek het ek nog die taak van die uitzoeken hoe om 'n winsgewende handel stelsel te maak. As dit blyk dat sou my algoritme af te breek in twee afsonderlike komponente, wat Irsquoll verken op sy beurt: Die voorspelling van prysbewegings en die maak van winsgewende bedrywe voorspelling prysbewegings Miskien 'n duidelike komponent van enige handel stelsel is in staat om te voorspel waar pryse sal beweeg. En my vrou was geen uitsondering nie. Ek gedefinieer die huidige prys as die gemiddelde van die binnekant bod en binne aanbod en ek stel die doel van die voorspelling van waar die prys in die volgende 10 sekondes sal wees. My algoritme nodig sou wees om vorendag te kom met hierdie voorspelling oomblik-vir-oomblik dwarsdeur die handel dag. Die skep van amp optimalisering aanwysers ek het 'n handvol van die aanwysers wat bewys dat 'n betekenisvolle vermoë om korttermyn prysbewegings te voorspel het. Elke aanwyser het 'n getal wat positief of negatief was. 'N aanduiding was nuttig as meer dikwels as nie 'n positiewe getal ooreengestem met die mark gaan en 'n negatiewe getal ooreengestem met die mark afgaan. My stelsel het my toegelaat om vinnig te bepaal hoeveel voorspellende vermoë enige aanduiding gehad sodat ek in staat was om te eksperimenteer met 'n baie verskillende aanwysers om te sien wat gewerk. Baie van die aanwysers het veranderlikes in die formules wat hulle geproduseer en ek was in staat om die optimale waardes vir daardie veranderlikes te vind deur te doen langs mekaar vergelyk van bereik met wisselende waardes resultate. Die aanwysers wat baie nuttig is almal relatief eenvoudig en is gebaseer op die onlangse gebeure in die mark Ek kon die handel, sowel as die markte van gekorreleer sekuriteite. Die maak van die presiese prys skuif voorspellings Met aanwysers wat bloot voorspel 'n op of af prysbewegings wasnrsquot genoeg. Ek nodig het om te weet presies hoeveel die prys beweging is voorspel deur elke moontlike waarde van elke aanwyser. Ek benodig 'n formule wat 'n aanduiding waarde sal skakel na 'n prys voorspelling. Om dit Ek bijgehouden voorspel prysbewegings in 50 emmers wat afhanklik is van die reeks dat die aanwyser waarde het in te voer. Dit vervaardig unieke voorspellings vir elke emmer wat ek was toe in staat om grafiek in Excel. As jy die verwagte prys verandering neem toe soos die aanwyser waarde toeneem kan sien. Op grond van 'n grafiek soos hierdie Ek was in staat om 'n formule om die kurwe pas te maak. In die begin het ek dit ldquocurve fittingrdquo hand, maar ek het gou 'n paar kode om hierdie proses te outomatiseer. Let daarop dat nie al die aanwyser kurwes het dieselfde vorm. Let ook op die emmers is logaritmies versprei ten einde versprei die data wys daarop eweredig. Ten slotte daarop dat negatiewe aanwyser waardes (en hul ooreenstemmende afwaartse prys voorspellings) is omgekeer en gekombineer met die positiewe waardes. (My algoritme behandel op en af ​​presies dieselfde.) Die kombinasie van aanwysers vir 'n enkele voorspelling 'n belangrike ding om te oorweeg, is dat elke aanwyser was nie heeltemal onafhanklik. Ek couldnrsquot eenvoudig net optel al die voorspellings dat elke aanwyser individueel gemaak. Die sleutel was om uit te vind die bykomende voorspellende waarde wat elke aanwyser het as wat reeds voorspel. Dit wasnrsquot om hard te implementeer, maar dit het beteken dat as ek was ldquocurve fittingrdquo verskeie aanwysers terselfdertyd het ek versigtig die verandering van een van die voorspellings van 'n ander sou bewerkstellig word. Ten einde fitrdquo ldquocurve al die aanwysers op dieselfde tyd Ek opstel van die optimizer te stap net 30 van die pad na die nuwe voorspelling kurwes met mekaar pas. Met hierdie 30 sprong het ek gevind dat die voorspelling kurwes binne 'n paar passe sou stabiliseer. Met elke aanwyser nou gee ons itrsquos bykomende prys voorspelling kon ek net voeg dit tot 'n enkele voorspelling van waar die mark in 10 sekondes sal wees produseer. Hoekom voorspel pryse is nie genoeg Jy mag dalk dink dat hierdie voorsprong op die mark was ek goue. Maar jy moet in gedagte gehou word dat die mark bestaan ​​uit bod en bied te hou - itrsquos nie net een markprys. Sukses in 'n hoë frekwensie handel kom neer op om goeie pryse en itrsquos nie so maklik nie. Die volgende faktore maak die skep van 'n winsgewende stelsel moeilik: Met elke handel moes ek kommissies te betaal om beide my makelaar en die uitruil. Die verspreiding (verskil tussen hoogste bod en laagste aanbod) beteken dat as ek net koop en verkoop lukraak Irsquod verloor 'n ton geld. Die meeste van die volume mark was ander bots wat net 'n handel met my sou voer as hulle gedink het hulle het 'n paar statistiese rand. Aangesien 'n aanbod nie waarborg dat ek dit kan koop. Teen die tyd dat my koop orde gekry om die uitruil was dit baie moontlik dat daardie aanbod sou gewees het gekanselleer. As 'n klein speler in die mark was daar geen manier wat ek kon alleen meeding op spoed. Die bou van 'n volledige handel simulasie So ek het 'n raamwerk wat my toegelaat het om backtest en te optimaliseer aanwysers. Maar ek het om te gaan na hierdie - ek nodig om 'n raamwerk wat jou sal toelaat om my te backtest en te optimaliseer 'n volledige handel stelsel een waar ek bestellings stuur en om in posisies. In hierdie geval Irsquod word optimalisering vir totale PampL en tot 'n mate gemiddelde PampL per handel. Dit sou moeiliker en in sommige maniere onmoontlik om presies te modelleer, maar ek het so goed as wat ek kon. Hier is 'n paar van die kwessies wat ek moes hanteer: Wanneer 'n bevel in simulasie op die mark gestuur moes ek die tydsverloop te modelleer. Die feit dat my stelsel het 'n aanbod nie beteken dat dit dit kan koop dadelik. Die stelsel sal die einde stuur, wag sowat 20 millisekondes en dan slegs indien die aanbod is steeds was daar dit beskou word as 'n uitgevoer handel. Dit was onjuiste omdat die werklike tydsverloop was teenstrydig en aangemeld word nie. Toe ek bod of aanbod geplaas moes ek kyk na die uitvoering handel stroom (wat deur die API) en gebruik die om vas te stel wanneer my einde sou gekry uitgevoer teen. Om hierdie reg ek moes die posisie van my bestelling in die tou op te spoor nie. (Itrsquos n eerste-in-eerste-uit-stelsel.) Weereens, ek couldnrsquot hierdie perfek te doen, maar ek het 'n beste benadering. Om my uitvoering orde simulasie verfyn wat ek gedoen het, was om my log lêers van lewende handel deur middel van die API en vergelyk kan word om lêers wat deur gesimuleerde handel van die presiese dieselfde tydperk aanteken. Ek was in staat om my simulasie kry tot op die punt dat dit was 'n bietjie akkurate en vir die dele wat onmoontlik is om 'n model was presies gemaak ek seker dat ten minste produseer uitkomste wat statisties soortgelyke was (in die statistieke wat ek gedink het belangrik). Die maak van winsgewende handel dryf met 'n bevel simulasiemodel in plek wat ek kon nou bestellings in simulasie af te stuur en sien 'n gesimuleerde PampL. Maar hoe sou my stelsel weet wanneer en waar om te koop en te verkoop Die prys skuif voorspellings was 'n beginpunt, maar nie die hele storie. Wat ek gedoen het, was te skep 'n puntestelsel vir elk van 5 prysvlakke op die bod en aanbod. Dit sluit in 'n vlak bo die binnekant bod (vir 'n koop orde) en een vlak laer as die binnekant aanbod (vir 'n sell volgorde). As die telling op enige vlak gegewe prys bo 'n sekere drumpel dat my stelsel sou beteken moet 'n aktiewe poging / aanbod daar het was - onder die drumpel dan enige aktiewe bestellings gekanselleer moet word. Op grond van hierdie dit was nie ongewoon dat my stelsel 'n poging in die mark sal flits dan onmiddellik te kanselleer dit. (Alhoewel ek probeer om hierdie te verminder as itrsquos irriterende as klink na iemand te kyk na die skerm met menslike oë - insluitend my.) Die prys vlak tellings is bereken gegrond op die volgende faktore: Die prys skuif voorspelling (wat ons vroeër bespreek). Die prys vlak betrokke. (Inner vlakke bedoel groter prys skuif voorspellings is nodig.) Die aantal kontrakte in die voorkant van my bestelling in die tou. (Minder is beter.) Die aantal kontrakte agter my bestelling in die tou. (Meer was beter.) In wese hierdie faktore gedien om ldquosaferdquo plekke te identifiseer om te bie / aanbod. Die prys skuif voorspelling alleen was nie voldoende, want dit het nie rekening vir die feit dat wanneer die plasing van 'n poging was ek nie outomaties gevul - ek het net gevul as iemand daar vir my verkoop. Die werklikheid is dat die blote feit dat iemand verkoop om my op 'n sekere prys verander die statistiese kans van die handel. Die veranderlikes wat in hierdie stap was almal onderworpe aan optimalisering. Dit is gedoen in presies dieselfde manier as ek veranderlikes in die prys skuif aanwysers new behalwe in hierdie geval is ek optimalisering vir bottom line PampL. Wat my program geïgnoreer Wanneer die handel as mense ons dikwels kragtige emosies en vooroordele wat kan lei tot minder as optimale besluite. Dit is duidelik dat ek wou nie hierdie vooroordele te kodifiseer. Hier is 'n paar faktore my stelsel geïgnoreer: Die prys wat 'n posisie is ingevoer - In 'n handel kantoor itrsquos redelik algemeen om gesprek oor die prys waarteen iemand lang of kort asof dit hul toekomstige besluitneming moet bewerkstellig hoor. Terwyl dit het 'n paar geldigheid as deel van 'n strategie risikovermindering dit regtig geen invloed op die toekomstige verloop van die gebeure in die mark. Daarom heeltemal my program geïgnoreer hierdie inligting. Itrsquos dieselfde konsep as ignoreer gesink koste. Gaan kort teen verlaat 'n lang posisie - Tipies van 'n handelaar sou verskillende kriteria wat bepaal waar 'n lang posisie teenoor waar om kort te gaan verkoop. Maar uit my algoritmes perspektief was daar geen rede om 'n onderskeid te maak. As my algoritme verwag 'n afwaartse beweging verkoop was 'n goeie idee, ongeag of dit op die oomblik lank, kort, of plat was. A ldquodoubling uprdquo strategie - Dit is 'n algemene strategie waar handelaars meer voorraad in die geval sal koop dat daar oorspronklike handel gaan teen hulle. Dit lei tot die gemiddelde koopprys wat laer en dit beteken as (of as) die voorraad omdraai yoursquoll ingestel word om jou geld terug in geen tyd. Na my mening is dit regtig 'n verskriklike strategie tensy yoursquore Warren Buffet. Yoursquore om die bos gelei om te dink jy goed doen, want die meeste van jou ambagte sal wees wenners. Die probleem is wanneer jy verloor jou groot verloor. Die ander effek is dit maak dit moeilik om te bepaal of jy eintlik 'n voorsprong op die mark of is net om gelukkig. In staat is om te monitor en bevestig dat my program wel het 'n voorsprong was 'n belangrike doel. Sedert my algoritme gemaak besluite op dieselfde manier, ongeag van waar dit 'n bedryf aangegaan of as dit op die oomblik lank of kort dit het soms sit in (en neem) 'n paar groot verloor ambagte (bykomend tot 'n groot wen ambagte). Maar, shouldnrsquot jy dink daar wasnrsquot enige risikobestuur. Om risiko te bestuur ek afgedwing n maksimum posisie grootte van 2 kontrakte op 'n tyd, soms gestamp het in die hoogte volume dae. Ek het ook 'n maksimum daaglikse verlies limiet te beskerm teen enige onverwagse marktoestande of 'n fout in my sagteware. Hierdie beperkinge is afgedwing in my kode nie, maar ook in die agterkant deur my makelaar. As dit gebeur het ek nooit teëgekom enige noemenswaardige probleme. Die uitvoer van die algoritme Vanaf die oomblik dat ek begin werk aan my program dit het my ongeveer 6 maande voordat ek het dit tot op die punt van winsgewendheid en begin om dit te draai live. Hoewel om eerlik te wees 'n beduidende hoeveelheid tyd was om te leer 'n nuwe programmeertaal. Soos ek gewerk om die program te verbeter sien ek groter winste vir elk van die volgende vier maande. Elke week Ek sal my stelsel lei op grond van die vorige 4 weke die moeite werd om van data. Ek het gevind dat hierdie geslaan die regte balans tussen die opneem van onlangse mark gedrags - tendense en die versekering van my algoritme het genoeg data om sinvolle patrone te vestig. Soos die opleiding begin neem meer en meer tyd ek verdeel dit uit sodat dit kan uitgevoer word deur 8 virtuele masjiene met behulp van Amazon EC2. Die resultate is dan gebind op my plaaslike masjien. Die hoogtepunt van my handel was Oktober 2009 toe ek amper 100k gemaak. Hierna het voortgegaan ek na die volgende vier maande spandeer probeer om my program te verbeter ten spyte van verminderde wins elke maand. Ongelukkig hierdie punt dink ek Irsquod geïmplementeer al my beste idees omdat niks wat ek probeer het voorgekom om te veel te help. Met die frustrasie van nie in staat is om verbeteringe aan te bring en nie 'n gevoel van groei begin ek dink oor 'n nuwe rigting. Ek e-pos 6 verskillende hoë frekwensie firmas om te sien of theyrsquod belangstel in die aankoop van my sagteware en die verhuring van my werk vir hulle te wees. Niemand het geantwoord. Ek het 'n paar nuwe begin idees wat ek wou om te werk, sodat ek nooit opgevolg. UPDATE - ek gepos hierdie op Hacker Nuus en dit het 'n baie aandag gekry. Ek wil net sê dat ek nie iemand probeer om iets self nou doen soos hierdie advokaat. Jy sal 'n span van baie slim mense nodig het met 'n verskeidenheid van ervarings om enige hoop van mededingende het. Selfs wanneer ek dit doen Ek glo dit was baie skaars vir individue om sukses te behaal (al het ek gehoor het van ander.) Daar is 'n kommentaar aan die bokant van die bladsy wat gemanipuleerde statistieke noem en verwys na my as 'n ldquoretail investorrdquo dat kwantitatiewe sou ldquogleefully haal offrdquo. Dit is 'n nogal jammer kommentaar thatrsquos eenvoudig nie gebaseer in die werklikheid. Die opstel wat opsy therersquos 'n paar interessante opmerkings: news. ycombinator / itemid4748624 UPDATE 2 - Irsquove gepos word 'n opvolg vrae wat 'n paar algemene vrae Irsquove ontvang van handelaars oor hierdie post. This antwoord 'n baie meer pret as klassieke codewars kan wees. Vir 99 van die stelsel Theres geen spesifieke rede youd het om toegang tot die NYSE en handel werklike aandele vir die regte geld. Dit lyk asof hulle is voeding van iqfeed, maar ek dink dit sal groot pret om 'n denkbeeldige kompetisie ruil skep, te oortuig sowat 100 algo skrywers om te kompeteer, en stoot hulle teen mekaar suiwer vir die pret daarvan, sien whos 'n beter algo skrywer . Met moderne skynwerklikmaking, moet dit redelik maklik wees om 'n pakkie van beelde te versprei, insluitende die praktyk data, 'n hele finansiële stelsel te herhaal op 'n klein skaal in jou kelder, dan sodra jy dink jy het 'n ordentlike algo, laai jou foto om die kompetisie liga. As jou HFT codewars liga wil perke vir die stoor of CPU siklusse, skynwerklikmaking is 'n mooi maklike manier om dit te implementeer. Oppervlakkig die mees voor die hand liggende ding om te doen is heeltemal te maak alles op, van bo tot onder, maar dit sal waarskynlik werk net so goed om die werklike lewe markdata en oortrek gebruik op die top van dit. Net soos lugverkeerbeheer simulasie baie stadig oor die dekades het verskuif van suiwer ewekansige om Sorta realisties werklike lughawe data. Dit kan nogal 'n bietjie pret wees. Ons het dit in samewerking met UofC, met behulp van ons Algo verhandelingsplatform (www. optionscity / gebeurtenis / uchicago-Weste-handel-co.) En dit was regtig pret. Hm, ek wonder of daar 'n belang om dit 'n meer oop geval :) Dankie vir buite die beheer van Julia maak. Ek vrees daar 'n billike bedrag van verkeerde inligting in jou kommentaar, maar so blyk dit dat 'n paar dinge is verlore in jou lees van Julias kode (waarvan sommige is weliswaar baie moeilike). Ek hoop jy hoef gedagte as ek 'n gedeelte daarvan aan te spreek. Die eerste punt is dat Julia het reeds 'n uitstekende prestasie op 'n gelyke voet met die meeste saamgestel tale, insluitend, bv Haskell, of hulle gebruik LLVM of nie. Reguit-vorentoe Julia kode is tipies binne 'n faktor van twee van C. Dis wat in die microbenchmarks op Julias webwerf julialang. org/, maar, natuurlik, dis nie heeltemal oortuigend, want jy weet, hulle is microbenchmarks en ons het hulle. Dit is egter soortgelyke prestasie konsekwent gevind in die werklike wêreld aansoeke deur ander mense. Jy hoef nie na my woord vir dit hier is wat Tim Heilige holylab. wustl. edu te sê: groups. google/d/msg/julia-users/eQTYBxTnVEs/LDAv. . Iain Dunning en Miles Lubin ook gevind dat dit goed binne 'n faktor van 2 van geoptimaliseerde C-kode vir die uitvoering van realistiese lineêre programmering kodes in suiwer Julia wees: GitHub / JuliaLang / Julia-handleiding / blob / Master / Nume. . Die maatstawwe verskyn op bladsy 7 van hul aanbieding. Hierdie stelling oor Julias hoëvlak optimalisaties is heeltemal verkeerd: 62 ive gekyk na hoe dit stel om llvm, en dit basies trappe enige optimalisering om die llvm kant, opsy, weg van die mees basiese opsporing JIT metode monomorphization / spesialisasie. Julia doen nie opsporing glad, so dit is beslis nie 'n opsporing JIT. 'N relatief klein (maar groeiende) baie belangrike bedrag van 'n hoë-vlak optimalisering is uitgevoer op die Julia AST voor genereer LLVM kode. In die besonder 'n dinamiese-gegevensstroom gebaseer tipe afleiding pas gedoen op die Julia AST. GitHub / JuliaLang / Julia / blob / Master / basis / inferenc: Sedert Julia is homoiconic, kan hierdie tipe afleiding pas in Julia self, wat kan wees waarom jy dit gemis het geïmplementeer word. . Dont mislei word deur die bondig van die kode Jeffs dinamiese tipe afleiding algoritme is een van die mees gesofistikeerde om oral te vinde sien arxiv. org/pdf/1209.5145v1.pdf vir 'n meer uitgebreide verduideliking. Dit is ook hoogs effektief: 60 van die tyd wat dit bepaal die presiese aard van die uitdrukking en die meeste van die uitdrukkings wat nie konkreet kan getik is nie prestasie kritieke sien afdeling 5.2 van dieselfde papier. Jy is korrek dat ons verlaat masjienkode geslag tot LLVM na alles is, dis wat sy vir maar sonder al daardie tipe inligting, Theres geen manier waarop ons kan LLVM coax in die opwekking van goeie masjien kode. Ander baie belangrike optimalisering passe gedoen op die Julia AST sluit aggressiewe metode inlining en uitskakeling van tuple toekenning. 62 meer succintly, Julia het nie 'n duidelike genoeg deurdagte keuse in statiese / dinamiese semantiek vir die pre LLVM kant om 'n maklike optimalisering storie het 'n klein grootte kernspan, sal so 'n optimalisering ingenieurswese óf 'n lang tyd om te ontwikkel, of sal 'n paar nodig kommersiële entiteit om ernstige kapitaal sink in die skryf van 'n goeie JIT / optimizer. Daar is 'n baie duidelike en deurdagte keuse in statiese teen dinamiese semantiek in Julia: al semantiek is dinamiese daar geen statiese semantiek glad. As jy dink oor jou kode te voer ten volle dinamiese, dit is presies hoe dit sal optree. Natuurlik, om goeie prestasie te kry, die stelsel figure uit wanneer jou kode is eintlik baie staties nie, maar jy het nooit na te dink oor die onderskeid. En weer, Julia het reeds 'n uitstekende prestasie, en ons het bereik wat met 'n weliswaar klein en relatief swak befonds span. (Al die geld in die wêreld gewoond te koop jy 'n ander Jeff Bezanson.) 62 ook: Julia nie die geval 'n soort stelsel, dit het 'n dinamiese tjek stelsel. (Wys my die kode vir statiese tipe tjek in die Julia kode basis as dit bestaan ​​op GitHub en swak skuld jou 'n bier :)) Die akademiese programme taalgemeenskap het geleidelik vernou hul idee van wat 'n tipe is die afgelope dekades tot die punt waar 'n tipe stelsel kan net iets gebruik word vir statiese tipe nagaan. Intussen het die werklike wêreld weg Full Throttle in die ander rigting: ten volle dinamiese tale het baie gewild geword. So ja, as jy 'n programmeertaal teoretikus, wil jy dalk om aan te dring dat Julia het 'n tag stelsel eerder as 'n tipe stelsel en ander tipe teoretici sal hul koppe knik in ooreenkoms. Maar die res van die wêreld noem die klasse van vertoë vir waardes in 'n dinamiese taal soos Python tipes en verstaan ​​dat 'n stelsel vir praat oor die tipes nagegaan of nie kwalifiseer as 'n tipe stelsel. So, terwyl jy korrek dat Julia nie die geval nie enige statiese tipe kontrole is, is dit nog steeds verstaan ​​het wat die meeste mense noem 'n tipe stelsel. Theres werklik 'n belangrike punt van programmeertaal filosofie hier: een van die perseel van Julia is dat statiese tipe kontrole isnt eintlik die grootste voordeel dis om die tafel deur 'n tipe stelsel gebring. Inteendeel, ons hefboom dit vir 'n groter uitdrukking en prestasie, verlaat tipe kontrole op die tafel vir nou. Hierdie klem beteken nie dat ons kan nie voeg 'n soort nagaan later aangesien ons presiese tipes 60 van die tyd kan aflei, kan ons seker maak dat daardie situasies hoef lei tot foute. Ons kan ook terugvoering aan die programmeerder oor plekke waar hulle die staticness van hul kode kan verbeter en beter prestasie of beter checkability. Dit laat die programmeerder te gebruik 'n dinamiese styl vir prototipering en geleidelik hul program meer en meer statiese maak as wat dit nodig het vinniger en / of meer betroubaar te wees. 62 Nogmaals Julia nie die geval is nie duidelik statiese semantiek / fase onderskeid, en nie die geval lyk regtig iets buite metode spesialisasie doen voordat hy kode op te LLVM. Dit beteken dit kan nie dwingende prestasie te kry in vergelyking met enige ander LLVM gerugsteun taal. Siek herhaal myself 'n bietjie te. Julia het 'n baie duidelike statiese semantiek daar is niemand. Die aanloop tyd doen nogal 'n bietjie van analise en optimalisering ná metode spesialisasie (aggressiewe run-time metode spesialisasie is ongelooflik belangrik, egter, so een behoort nie afslag dit). En, natuurlik, Julia het reeds dwingende prestasie in vergelyking met ander tale, beide statiese en dinamiese, in maatstawwe en werklike wêreld aansoeke. Python is beslis verkies op die navorsing eerder as die produksiekant algemeen. Sommige organisasies doen gebruik dit op die kant infrastruktuur ook, maar hierdie ouens is algoritmiese handelaars, en nie HFTs so latency isnt dat 'n groot deal. WRT om die probleem van die implementering van prototipering / navorsing kode, daar is die volgende onopgeloste probleme wat Im bewus van: Gaan uit matriksbewerkings oor die hele tijdreeksen (wees versigtig om probleme met jou algo vooruit te vermy) vir spoed in 'n navorsingsomgewing te ontplooi om 'n omgewing te skep wat updates vir die tijdreeksen een op 'n slag strome. Ek dink dat dit 'n gebied wat HASKELL het die potensiaal om te presteer op, gegewe sy sterk waarborge op struktuur. Concurrency. Die opsies in Python al suig tot 'n mate - veral as jy in interaksie te tree met C biblioteke of uitbreidings. Ek dont dink dit sal ooit sin maak om jou real-time mark datum in Python bou. Weereens hier HASKELL het 'n voordeel. die luislang ekosisteem blyk egter byna perfek vir navorsers te wees: Uitstekende en buigsame data slurp / munging / transformasie. Numpy, Scipy, pandas, theano, scikits. Nuff said 62 Gaan uit matriksbewerkings oor die hele tijdreeksen. om die implementering van 'n omgewing wat updates vir die tijdreeksen een op 'n slag strome. Ek dink dat dit 'n gebied wat HASKELL het die potensiaal om te presteer op, gegewe sy sterk waarborge op struktuur. presies my gedagte. Algo ouens vasval in matriks land omdat dis waar hul gereedskap neem hulle. AANGESIEN dit het uitgekom in R verlede week: cran. r-project. org/web/packages/stream/index luislang is 'n beter toolset as R miskien, maar die R probleem domein lyk breër in die laaste paar maande in elk geval. My belangstelling is in die monitering van duisende algoritmes in real-time direk binne die boodskap omgewing, en voor die data treffers van 'n databasis. Dat die tipe van concurrency is waar HASKELL kan spiere en doen die werk. Sommige van die werk wat kontinuum gedoen op bles 1 blik te aanpak van die probleem van stroom in Python ook. Om die waarheid te sommige van die idees in hierdie biblioteek kom direk uit HASKELL en een van die belangrikste ontwikkelaars is Stephen Diehl, wat die baie gewilde wat ek wens ek het geweet oor HASKELL skyfies onlangs gepos. Lyk soos 'n wedstryd in die hemel gemaak :-) Stephen hier, ja boothead is reg. Met behulp van 'n kombinasie van Haskell en Python jy kan 'n baie kragtige handel stelsel te maak. Python het 'n baie gebruikers in die gesig staar algoritme gereedskap en Haskell het die robuustheid en parallelisme vir die backend wat Python nie die geval is. As jy belangstel in raad oor hoe om te oorbrug die twee wêrelde laat my weet, Theres baie van opkomende tegnologie (LLVM, Blaze, pype, zeromq, wolk-HASKELL) wat kan baie nuttig wees. Dit voel soos Id swem teen die stroom op pad af in die R pad. Dankie vir die aanbod :) Ek havent het in iets soos 'n hoë werkverrigting, aangesien dit (al Ive doen baie verwerking van syfers in Python onlangs), maar daar is 'n paar groot biblioteke wat jy kan gebruik voor jy spring in Cython. Kyk bietjie na Numba 1 en numexpr 2 Is jy bewus van Zipline hawens (of 'n soortgelyke biblioteke) in Ruby of ObjectiveC (of plain C) Is jy probeer om te kry gehuur deur die finansiële bedryf, of is daar 'n ander rede om dit te doen soos jy dalk goed bewus, HFT is 'n plaag op die wêrelde ekonomie, en dit is 'n spel net die grootste en beste verbind spelers baat. Nee, ek is reeds in die finansiële sektor. Daar is twee hoofredes Im dit te doen: - Ek dink die finansiële sektor is baie geslote wanneer dit kom by intellektuele eiendom ontwikkeling, en 'n open source benadering kan ernstig kompeterend te wees. 'N oop benadering kan die toekoms goed wees wanneer dit kom by wat verband hou - HFT is 'n interessante multi-dissiplinêre probleem en die skeer breedte van kundigheid vereis - moderne chip ontwerp, lae-latency sagteware / hardeware interaksie, uitsluiting gratis concurrency, fault - verdraagsaam stelsel ontwerp, adaptive leer algoritmes, k-middel groepering - beteken Im leer hope elke dag. Ek net nie saamstem dat HFT is 'n plaag. Dit is 'n ekologiese verskuiwing (nie goed of sleg) en langer-horison beleggers nodig om te ontwikkel. Trading (soos in HFT) isnt dieselfde as belê. Terwyl die meganika soms soortgelyk kan wees, 'n handelaar is anders as 'n belegger. Wat HFT doen is segment van die mark. Sy het waarskynlik die beste beskryf word as 'n vorm van arbitrage. Arbitrage is nodig nie, maar in 'n goeie mark hopelik dit gestoot om een ​​of ander vorm van balans. HFT het 'n impak op die handel in die mark. Maar dit nie die geval is outomaties uit te brei na belegging. HFT is soos 'n miljoen klein trolle onder die brug probeer om hul belasting te onttrek. vervanging van 'n groot trol op die brug wat gebruik word om meer as die miljoen klein kinders totale onttrek. Die rede versprei het afgekom is hoofsaaklik te danke aan 'n beter inligting oor die deel van die handelaars. Elektroniese markte gemaak dit moontlik. HFT is 'n interessante multi-dissiplinêre probleem Dit maak dit 'n baie moeite werd projek: of enigiets kom van dit (Ek het gesien hoe die skryf van tegniese ontleding handel sagteware vir presies dieselfde rede). Sommige dokumentasie oor die patrone en tegnieke wat jy gebruik sou waarskynlik tot voordeel van die gemeenskap 'n klein bietjie meer. Nie almal verstaan ​​Haskell (of, verbied, het die tyd om groot codebases nagaan). Die beste van geluk aan julle Daar is baie ander interessante multi-dissiplinêre probleme wat nie so omstrede soos HFT en waarskynlik meer in die openbaar aanvaarbaar en die moeite werd is. Maar as HFT is die domein wat u omgee, go for it. Cool baie interessant. Ek dink die lig van die wat jy gekies het jy meer kom uit 'n quant agtergrond Hierdie tale is 'n groot vir heuristiek en ontleding tale, maar sou jy regtig wil al statiese komponente soos verbinding gebou in die gemeente / C / C. Vir algo komponente Ek hou van Java as jy nog micro orde latencies kan trek wanneer crunc getalle maar meer belangrik dit gee jou 'n groot tyd om voordeel te bemark as die C / C vir byna dieselfde spoed. Im ook nie duidelik op as jy direk verbind tot die mark vir die mark data of die gebruik van samevoeging (soos Reuters). Laasgenoemde sou te stadig wees. Im ook nie duidelik oor wat middleware wat jy gebruik wat waarskynlik die grootste besluit wat jy sal hê om te maak. Die meeste óf gebruik inhouse tegnologie of 29west LBM (almal noem dit steeds dat selfs al het hulle is uitgekoop). 'N misgekyk deel van HFT in my ervaring OS optimalisering en selfs dinge soos TCP verbypad (vir 'n paar komponente) wat kan lei tot groot spoed voordele en eindig om latency verlagings eindig. Ek stem saam met diegene oor FPGA. In my ervaring hulle regtig nie kom in die vergelyking behalwe vir komponente wat selde verander. In elk geval 'n paar ouens insluitende Martin Thompson het insgelyks voel vir jou en begin die magneetsteen projek (lodestonefoundation. wordpress /). As jy gretig is om meer hul argitektuur leer vir lae latency, versprei en componentisation is dan voel ek dat jy kragte kan aansluit en 'n bydrae tot hierdie inisiatief. FYI: Martin gebou meeste van die tegnologie agter die disruptor (lmax-exchange. github. io/disruptor/). Groot belangstelling sien in die maak van hierdie kennis meer algemeen beskikbaar :) Quant. Hoe kan jy sê Im conecting met 'n aggregator veroorsaak dat die direkte mark feeds is monopolistiese prys gougers. Dit is 'n maklike skakel as ons dit wat kurwe. Ek is nie seker of ek nog verstaan ​​wat middleware is (Im n quant), maar ek dink die antwoord is die disruptor Van die tale. Ive het saam met baie van die kwantitatiewe en hulle het almal rave oor R Yeah..the aggregator is waar jy gedoen in beide koste en latency. Die stut winkels en verskansingsfondse betaal deur die neus vir daardie dinge so tensy jy kom pak 'n bietjie kapitaal, waar HFT is 'n probleem. Op die middleware, nie regtig nie. sodat jy sal 'n mark data komponent wat dinge om verskillende komponente sal stoot (real time risiko, die pricer, en die handel enjin) het. Die disruptor sit op die in die tou om die komponente. die middleware is wat boodskappe tussen gevalle wat uitgevoer word op dieselfde / verskillende masjiene stoot. Hoop dit help :) Ek kry die gevoel dat die magneetsteen projek is nou ontbinde. In nog 'n maand of twee die analitiese gereedskap om dit te doen statistieke en numerieke in Haskell land gaan 'n groot stap vorentoe in vermoëns. Dalk die moeite werd oorweging gaan vol Haskell dan :-) Nog besig met dit is die neem van 'n bietjie langer die kern uitgewerk dat id graag te kry, maar die lewe gebeur (bv my ma het kanker vir 'n maand in die winter, maar shes goed nou Dit is awesome. Sy didnt selfs chemo of rad nodig). Ook, ek was oorspronklike beplanning te skryf nie my eie lineêre algebra substraat, maar ek het gou besef al die huidige tools suig, en dat ek nodig het om te kom met 'n beter numeriese substraat as ek wou om beter te doen. Wat bedoel ek met dit met al die numeriese gereedskap daar buite tans is daar niemand wat die volgende leuen dat baie mense glo is waar aanspreek: jy kan 'n hoë vlak gereedskap wat extensible Arent maar is vinnig, of jy kan 'n lae vlak gereedskap het dat extensible en vinnig is .. Ek wil 'n hoë vlak gereedskap wat vinnig is. Ek wil 'n hoë vlak gereedskap wat vinnig en skaal is. Ek wil hê dit moet maklik wees vir die eindgebruiker nuwe matriks uitlegte (dig en struktuur, gestruktureerde yl, of algemene yl) voeg en het generiese masjinerie vir die feit dat jy al die algemene lineêre algebra masjinerie met net 'n handjievol van nuwe reëls van die kode per nuwe fancy uitleg. Ek wil dit idiomatiese en natuurlik al jou algoritmes op 'n wyse wat gee skryf maak jy Vlak 3 gehalte geheue ligging. Ek wil om seker te maak dat vir almal, maar die mees eksotiese van prestasie behoeftes, kan jy al jou kode in HASKELL skryf. (En deur eksotiese Ek bedoel, miskien die toevoeging van 'n paar gespesialiseerde kode vir sekere vaste grootte matriks blokke wat T2 of T1 pas, maar regtig dis nie die meeste mense werklike probleme). Hier is die belangrikste punt in daardie Ramble dis kinda 'n groot deal: om vlak 3 gehalte geheue ligging vir beide yl en digte lineêre algebra. Ek dink Ive opgelos dat, alhoewel uiteindelik die realiteit van maatstawwe sal my vertel oor die komende paar weke as ek of nie. Net so, ek dink ek het 'n oulike manier om al hierdie dinge masjinerie om 'n normale prestasie storie gee vir 'n groter as ram op 'n masjien lineêre algebra Theres gaan 'n paar inherente oorhoofse wees om dit, maar dit sal werk. en doen 'n kas onbewus optimale digte matriks vermeerder van 2 vierkante 4GB ish grootte matrikse op 'n MacBook Air met 4 GB RAM gaan wees 'n oulike maatstaf waar geen ander lib kan doen uit die boks sal wees. Net so sal 'n yl lineêre algebra laer flops deurset as sy digte ekwivalent het, maar dis kinda die prys wat jy betaal vir yl. Wat ek vind baie baie interessant is dat geen kinders regtig gedoen 'n goeie werk van die verskaffing van yl lineêre algebra met enige skyn van geheue ligging. Ek kinda dink dat ek 'n mooi storie vir daardie, maar weer, aan die einde van die dag die maatstawwe sal sê. Ek ten minste hoop dat die basiese tegnologie Valid, want daar moet 'n goeie nie GPL lin alg suite met 'n goeie perf vir HASKELL wees. Hmatrix om GPL het haan geblokkeer die groei van 'n mooi numerieke ekosisteem op hackage / in HASKELL vir die jaar, en sy oor tyd iemand sit op 'n paar broeke en vasgestel dat. Die aanvaarding van die tegnologie Valid, ek hoop regtig die biz bekragtig te (ten spyte van my waarskynlik die maak van verskeie stukke oop bron in 'n BSD3 styl manier om die gemeenskap te verryk / kry entoesias aanneming / ander libs geskryf op die top, mense in HASKELL land probeer om te verhoed dat die gebruik van libs wat gebruik lisensies wat BSD / MIT / Apache style Arent), want daars soveel meer wat gedoen moet word om werklik 'n dwingende tool chain vir data-analise / numeriese berekening / masjienleer / ens, en ek regtig soos die besteding van my tyd gebou moet beter gereedskap. Die bou van die res van die stapel sal outlandishly soepel wees veronderstelling my lineêre algebra tegnologie bekragtig met die regte regimes van prestasie op 'n groot matrikse. (Aantrekkelijke, niemand ooit meet lineêre algebra gereedskap in die 1GB regime, en ek vermoed dis omdat op daardie stadium, vektorisering beteken niks, sy alles oor geheue ligging geheue ligging, en 'n tikkie van die kas bewus parallelisme). dis die vae weergawe :) En dis ook nie eens my gedagtes op die analise / data vis gereedskap wat gaan op die top raak. (Of die verskriklike feit dat almal is gretig vir 'n beter data vis gereedskap, selfs al is die meeste data vis werk is omtrent so waardevol soos die ontwerp van mooi lessenaar muur vraestelle om agtergrond jou kragpunt aanbiedings. Sodat selfs wanneer ek kry alles werk. Ek het 'n verskriklike vermoede dat as ek toegelaat ongesofistikeerde mense om die gereedskap te gebruik, die meeste van die inkomste / rente sou wees om data vis gereedskap wat meestal gebruik sou word om hul kliënte / einde gebruikers te voorsien met mooi foto's wat hulle te laat goed voel, maar hulle help dit nie) Punt wat Ek wil in staat wees om te sê jy verstaan ​​wiskunde, jy jou probleem domein verstaan, en jy kan dinge leer. Spandeer 2-3 weke speel met HASKELL en my gereedskap, en jy sal in staat wees om te fokus op die toepassing van die wiskunde vir jou probleem domein soos nog nooit tevore nie, want jy didnt selfs besef hoe verskriklik die meeste van die huidige gereedskap daar buite wat jy het geworstel met is


No comments:

Post a Comment