Skryf Trading System


Trading Systems: Wat is 'n handel stelsel 13 A handel stelsel is eenvoudig 'n groep van spesifieke reëls, of parameters, wat bepaal toegang en uitgang punte vir 'n gegewe aandele. Hierdie punte, bekend as seine, word dikwels gemerk op 'n kaart in reële tyd en gevra die onmiddellike uitvoering van 'n handelsmerk. Hier is 'n paar van die mees algemene instrumente tegniese ontleding gebruik word om die parameters van handel stelsels te bou: bewegende gemiddeldes (MA) 13 Stogastiese 13 Ossillators 13 relatiewe sterkte 13 Bollinger Bands Dikwels twee of meer van hierdie vorme van aanwysers sal gekombineer word in die skepping van 'n reël. Byvoorbeeld, die MA crossover stelsel maak gebruik van twee bewegende gemiddelde parameters, die langtermyn en die kort termyn, om 'n reël te skep: koop wanneer die kort termyn kruis bo die lang termyn, en te verkoop wanneer die teenoorgestelde is waar. In ander gevalle, 'n reël gebruik slegs een aanwyser. Byvoorbeeld, kan 'n stelsel 'n reël dat 'n aankoop verbied, tensy die relatiewe sterkte is bo 'n sekere vlak. Maar dit is 'n kombinasie van al hierdie vorme van reëls wat 'n verhandeling maak system. MSFT bewegende gemiddelde cross-over stelsel met behulp van 5 en 20 Bewegende Gemiddeldes Omdat die sukses van die algehele stelsel hang af van hoe goed die reëls uit te voer, stelsel handelaars spandeer tyd optimalisering ten einde risiko te bestuur. verhoog die opgedoen per handel bedrag en bereik langtermyn stabiliteit. Dit word gedoen deur 'n wysiging verskillende parameters in elke reël. Byvoorbeeld, om die MA crossover stelsel te optimaliseer, 'n handelaar sal toets om te sien wat bewegende gemiddeldes (10 dae, 30 dae, ens) werk die beste, en dan te implementeer. Maar optimalisering kan resultate deur slegs 'n klein marge te verbeter - dit is die kombinasie van parameters gebruik wat uiteindelik die sukses van 'n stelsel sal bepaal. Voordele So, hoekom wil jy dalk 'n handel stelsel Dit neem al emosie uit handel te neem - Emosie word dikwels aangehaal as een van die grootste foute van individuele beleggers. Beleggers wat nie in staat is om te gaan met verliese hul besluite tweede raai en uiteindelik verloor geld is. Deur streng volgende 'n pre-ontwikkelde stelsel, kan die stelsel handelaars die behoefte om enige besluite sodra die stelsel is ontwikkel en gevestig te maak af te sien, handel is nie empiriese want dit is outomatiese. Deur die vermindering van die menslike ondoeltreffendheid, kan die stelsel handelaars winste te verhoog. Dit kan 'n baie tyd te bespaar - Sodra 'n doeltreffende stelsel is ontwikkel en new. is min of geen moeite deur die handelaar. Rekenaars word dikwels gebruik om nie net die sein generasie, maar ook die werklike handel te outomatiseer, sodat die handelaar, is geregverdig van die besteding van tyd op die ontleding en maak trades. Its maklik as jy toelaat dat ander dit vir jou doen - het al van die werk wat gedoen is vir jou 'n paar maatskappye verkoop handel stelsels wat hulle ontwikkel het. Ander maatskappye sal jy die seine wat gegenereer word deur hul interne handel stelsels vir 'n maandelikse fooi te gee. Wees versigtig want - baie van hierdie maatskappye is bedrieglike. Neem 'n vinnige blik op wanneer die resultate wat hulle spog oor geneem. Na alles, dit is maklik om te wen in die verlede. Kyk vir maatskappye wat 'n verhoor, wat kan jy toets die stelsel in real-time bied. Nadele Weve gekyk na die belangrikste voordele van die werk met 'n handel stelsel, maar die benadering het ook sy nadele. Handel stelsels is kompleks - Dit is hul grootste nadeel. In die ontwikkelingstadiums, handel stelsels vereis 'n goeie begrip van tegniese ontleding, die vermoë om empiriese besluite en 'n deeglike kennis van hoe parameters werk maak. Maar selfs as jy nie die ontwikkeling van jou eie handel stelsel, dit is belangrik om vertroud te raak met die parameters wat die een wat jy gebruik nie. Die verkryging van al hierdie vaardighede kan 'n challenge. You moet in staat wees om realistiese aannames te maak en effektief in diens van die stelsel - System handelaars moet realisties aannames oor transaksiekoste maak. Dit sal bestaan ​​uit meer as kommissie koste - die verskil tussen die uitvoering prys en die vul prys is 'n deel van transaksiekoste. Hou in gedagte, is dit dikwels onmoontlik om stelsels akkuraat te toets, wat veroorsaak dat 'n mate van onsekerheid wanneer die totstandkoming van die stelsel live. Probleme wat as gesimuleerde resultate voorkom verskil grootliks van werklike resultate bekend as glip. Baie tyd kan gaan in die ontwikkeling van 'n handel stelsel om dit te loop en behoorlik werk te kry - die doeltreffende hantering van glip kan 'n groot padblokkade te ontplooi 'n suksesvolle system. Development kan 'n tydrowende taak wees. Ontwikkeling van 'n stelsel konsep en om dit in die praktyk behels baie van die toets, wat 'n rukkie neem. Historiese back testing neem 'n paar minute egter terug alleen toets is nie voldoende nie. Stelsels moet ook papier verhandel in reële tyd om betroubaarheid te verseker. Ten slotte, kan glip laat handelaars om 'n paar wysigings aan hul stelsels, selfs nadat ontplooiing. Werk dit Daar is 'n aantal internet bedrog wat verband hou met stelsel handel, maar daar is ook baie wettige, suksesvolle stelsels. Miskien is die mees bekende voorbeeld is die een ontwikkel en geïmplementeer deur Richard Dennis en Bill Eckhardt, wat die oorspronklike skilpad Handelaars. In 1983, hierdie twee het 'n geskil oor die vraag of 'n goeie handelaar gebore of gemaak. So, het hulle 'n paar mense van die straat af en opgelei hulle op grond van hul nou-beroemde skilpad Trading System. Hulle versamel 13 handelaars en uiteindelik die maak van 80 jaar oor die volgende vier jaar. Bill Eckhardt het eenkeer gesê, iemand met 'n gemiddelde intelligensie kan leer om handel. Dit is nie vuurpyl wetenskap. Maar dit is baie makliker om te leer wat jy moet doen in die handel as om dit te doen. Handel stelsels is besig om meer en meer gewild onder professionele handelaars, fondsbestuurders en individuele beleggers gelyk - miskien is dit 'n bewys van hoe goed hulle work. Dealing met Scams As jy op soek na 'n handel stelsel te koop, kan dit moeilik wees om 'n betroubare besigheid te vind . Maar die meeste swendelary kan waargeneem word deur gesonde verstand. Byvoorbeeld, 'n waarborg van 2500 jaarliks ​​duidelik verregaande as dit beloof dat met net 5000 wat jy kan 125,000 maak in een jaar. en dan deur middel van samestelling vir vyf jaar, 48828125000 As dit waar was, wouldnt die skepper handel sy of haar pad om 'n miljardêr Ander aanbiedings is egter moeiliker om te ontsyfer, maar 'n algemene manier om swendelary te vermy is om te soek na stelsels wat bied 'n gratis toets. Op dié manier kan jy die stelsel te toets jouself. Nooit blindelings vertrou die die besigheid spog oor Dit is ook 'n goeie idee om ander wat die stelsel gebruik, om te sien of hulle sy betroubaarheid en winsgewendheid kan bevestig kontak. Gevolgtrekking Die ontwikkeling van 'n doeltreffende handel stelsel is geensins 'n maklike taak nie. Dit vereis 'n goeie begrip van die baie parameters beskikbaar, die vermoë om realistiese aannames te maak en die tyd en toewyding aan die stelsel te ontwikkel. Maar as ontwikkelde en behoorlik ontplooi, 'n handel stelsel kan baie voordele oplewer. Dit kan doeltreffendheid verhoog, vry te maak tyd en, bowenal, jou wins verhoog. Trading Systems: Ontwerp jou stelsel - Deel 1Trading Systems Kodering handel stelsels is eenvoudig stelle reëls wat handelaars gebruik om hul inskrywings en uitgange te bepaal van 'n posisie. Die ontwikkeling en gebruik van handel stelsels kan help handelaars bereik konsekwente opbrengste, terwyl die beperking van risiko. In 'n ideale situasie, moet handelaars voel soos robotte, die uitvoering van ambagte stelselmatig en sonder emosie. So, miskien youve gevra jouself: Wat is 'n robot te verhoed handel my stelsel Die antwoord: Niks Hierdie handleiding sal jou bekendstel aan die gereedskap en tegnieke wat jy kan gebruik om jou eie outomatiese handel stelsel te skep. Hoe word outomatiese handel stelsels geskep outomatiese handel stelsels is geskep deur die omskakeling van jou handel stelsels reëls in kode wat jou rekenaar kan verstaan. Jou rekenaar loop dan die reëls deur jou handel sagteware wat lyk vir ambagte wat voldoen aan jou reëls. Ten slotte, is die ambagte outomaties geplaas met jou makelaar. Hierdie handleiding sal fokus op die tweede en derde dele van die proses, waar jou reëls is omskep in 'n kode wat jou handel sagteware kan verstaan ​​en gebruik. Wat Trading sagteware ondersteun outomatiese handel stelsels Daar is baie handel programme wat ondersteun outomatiese handel stelsels. Sommige sal outomaties genereer en plek ambagte met jou makelaar. Ander sal outomaties vind ambagte wat pas by jou kriteria, maar vereis dat jy die opdragte met jou makelaar hand plaas. Verder, ten volle outomatiese handel programme vereis dikwels dat jy spesifieke makelaars dat sodanige eienskappe wat jy kan ook 'n addisionele magtiging voltooi ondersteun. Voor - en nadele outomatiese handel stelsels het 'n paar voordele, maar hulle het ook hul nadele. Na alles, as iemand 'n handel stelsel wat outomaties gemaak geld al die tyd gehad het, kan hy of sy sou letterlik self 'n geld maak masjien Voordele: 'n outomatiese stelsel neem die emosie en besig-werk van die saak, wat jou toelaat om te fokus op die verbetering van jou strategie en geldbestuur reëls. 13 keer 'n winsgewende stelsel is ontwikkel, dit vereis geen werk van jou kant totdat dit breek, of marktoestande vereis 'n verandering. Nadele: As die stelsel nie behoorlik gekodeer en getoets, kan groot verliese baie vinnig gebeur. 13 Soms is dit onmoontlik om sekere reëls in kode sit, wat dit moeilik maak om 'n outomatiese handel stelsel te ontwikkel. In hierdie handleiding sal jy leer hoe om te beplan en te ontwerp 'n outomatiese handel stelsel, hoe om dit te ontwerp vertaal in kode wat jou rekenaar sal verstaan, hoe om jou plan te toets om optimale prestasie te verseker en, ten slotte, hoe om jou stelsel te gebruik geneem. Trading Systems Kodering: Stelsel DesignSubscribe om nuus te gebruik vir die nuutste insigte en ontleding Dankie vir jou inskrywing om Investopedia insigte - Nuus om te gebruik. Outomatiese handel stelsels te verminder emosies, voorsiening te maak vir vinniger orde inskrywing, lei tot groter konsekwentheid en los vlieënier fout probleme. Stelsels handelaars verdeel hul tyd tussen handel, ontwikkeling, back testing, optimalisering en vorentoe toets, om lewensvatbare en hoë-waarskynlikheid handel stelsels te skep. Outomatiese forex sagteware skanderings die mark vir gunstige ambagte op grond van jou insette. Vind meer uit oor hierdie waardevolle buitelandse valuta instrument. Deur vermenging goeie analise met 'n doeltreffende implementering, kan jy dramaties verbeter jou wins in hierdie mark. Leer om struktuur te voeg tot jou handel metodes met dié ses belangrike stappe. Die meeste makelaars sal u voorsien van handel rekords, maar it039s ook belangrik om tred te hou op jou eie te hou. Sagteware dag handel vinnige en outomatiese gemaak - des te meer rede om as deurdagte as moontlik wees wanneer die keuse van die regte een vir jou behoeftes. Investopedia verduidelik: Die globale interkonneksie van betaling stelsels VS maak kommersiële en finansiële oordragte moontlik. Kwelvrae Waardevermindering kan gebruik word as 'n belasting-aftrekbare uitgawe aan belasting koste te verminder, versterk kontantvloei Leer hoe Warren Buffett het so suksesvol deur sy bywoning van verskeie gesogte skole en sy werklike ervarings. Die CFA Instituut stel 'n individu 'n onbeperkte bedrag van pogings om elke examination. Although jy die eksamen kan probeer. Meer inligting oor die gemiddelde aandelemark ontleder salarisse in die VSA en ander faktore wat salarisse en algehele vlakke beïnvloed. Kwelvrae Waardevermindering kan gebruik word as 'n belasting-aftrekbare uitgawe aan belasting koste te verminder, versterk kontantvloei Leer hoe Warren Buffett het so suksesvol deur sy bywoning van verskeie gesogte skole en sy werklike ervarings. Die CFA Instituut stel 'n individu 'n onbeperkte bedrag van pogings om elke examination. Although jy die eksamen kan probeer. Meer inligting oor die gemiddelde aandelemark ontleder salarisse in die VSA en ander faktore wat salarisse en algehele levels. How invloed op Skryf 'n Trading Plan Skryf 'n verhandeling van plan is 'n integrale deel van 'n suksesvolle mark handelaar. Of handel aandele, geldeenhede of kommoditeite, 'n gedetailleerde handel plan help om 'n handel strategie stol en moedig die nakoming van 'n goed ontwikkelde handel stelsel. 'N doeltreffende handel plan besonderhede van die stappe wat 'n handelaar moet volg by die betreding en opwindende ambagte. Sonder 'n verhandeling van plan in plek, handelaars is meer vatbaar vir handel foute, overtrading en maak impulsiewe besluite in wisselvallige markte, veral wanneer aanlyn handel. Hier is die stappe vir die skryf van 'n verhandeling van plan. Stappe wysig Besluit watter finansiële instrumente wat jy sal handel. Jy kan streng n voorraad of valuta handelaar, of jy kan handel verskeie markte. Skep 'n aparte kategorie in jou handel plan vir elke finansiële instrument. Kan jy asseblief sit wikiHow op die witlys vir jou advertensie blokker wikiHow staatmaak op advertensie geld vir julle ons gratis gee hoe-om-gidse. Leer hoe. Bepaal watter aandele, geldeenhede en ander finansiële instrumente om handel te dryf. Byvoorbeeld, kan jy belangstel in 'n paar maatskappy aandele wees. Of wanneer die handel geldeenhede, kan jy net een geldeenheid paar of al pare wat verband hou met die Great British Pound (GBP) handel. Lys die name van die spesifieke maatskappye, geldeenhede of kommoditeite. Identifiseer jou mark aanwysers. Byvoorbeeld, kan jy 'n spesifieke geldeenheid gebaseer op 'n reeks van grafiek aanwysers met betrekking tot momentum, bewegende gemiddeldes en die tendens lyne handel. Skryf die presiese voorwaardes waaraan voldoen moet word voordat julle 'n bepaalde handel kan betree. Besluit voor die tyd hoeveel aandele of baie jy sal koop. Dink deur die handel grootte voor die tyd sal jou help om die neem van risiko's wat kan lei tot groot verlies te vermy. Teken die aantal aandele of baie jy van plan is om te koop. Stel spesifieke prys inskrywing punte. Jou doel is om 'n bepaalde voorraad aan te koop wanneer dit 'n spesifieke prys bereik. Skryf waarteen prys wat jy die voorraad sal koop, plus of minus 'n paar punte, indien van toepassing. Skryf die proses van hoe jy elke handel sal monitor. Wanneer die dag handel, byvoorbeeld, kan jy dalk die prys van jou voorraad of valuta elke 15 minute na te gaan. Of jy kan 'n alarm stel om jou te waarsku om hierdie stappe tyd. Besluit op die parameters vir handel uitgange. Dokumentasie van jou presiese strategie vir handel uitgange verhoed laaste-minuut of impulsief handel besluite, soos 'n handelsmerk te vroeg verlaat of hou dit vir te lank. As jy 'n goed getoets en winsgewende handel stelsel met 'n streng geld bestuursplan, verlaat jou handel op grond van vasgestelde parameters sal die beste resultate lewer. Skryf die presiese voorwaardes waaraan voldoen moet word voordat jy jou handel kan verlaat. Dit kan 'n presiese prys, 'n grafiek aanwyser vlak of 'n spesifieke tyd van die dag wees. Sluit 'n afdeling vir handel tye. As die handel die 24-uur valutamark, kan handel 'n ononderbroke geval wees. Besluit op 'n handel skedule en skryf dit in jou handel plan. Wanneer die dag handel aandele, kan jy werk vir 4 ure per dag vanaf die daagliks oop. As jy handel in langer tydperke, kan jou handel skedule slegs 'n 15-minuut daaglikse verbintenis tot pryse na te gaan en te lees relevante mark nuus betrek. Evalueer jou handel plan. Sluit in 'n artikel in jou handel plan vir die evaluering van jou ambagte. Dit kan 'n kommentaar blokkie waar jy af of jy voldoen aan jou handel plan te skryf. Alternatiewelik, kan dit 'n lys van stappe moet jy af te gaan, terwyl trading. Creating n Trading System binne Trading System Lab Trading System Lab sal outomaties genereer Trading Systems op enige mark in 'n paar minute met behulp van 'n baie gevorderde rekenaarprogram bekend as 'n AIMGP (wees outomatiese Induksie van masjienkode met genetiese programmering). Skepping van 'n Trading System binne Trading System Lab word bereik in 3 maklike stappe. In die eerste plek is 'n eenvoudige voorverwerker loop wat outomaties uittreksels en preprocesses die nodige inligting uit die mark wat jy wil om te werk met. TSL aanvaar CSI, Meta, AIQ, TradeStation, Free Internet data, ASCII, TXT, CSV, CompuTrac, DowJones, Futuresource, TeleChart2000v3, TechTools, XML, Binary en Internet Streaming data. Tweedens, die Trading System Generator (GP) is hardloop vir 'n paar minute, of meer, om 'n nuwe Trading System ontwikkel. Jy kan jou eie data, patrone, aanwysers, Intermarket verhoudings of fundamentele data gebruik binne TSL. Derde, is die ontstaan ​​Trading System geformateer om nuwe Trading System seine produseer vanuit TradeStation of vele ander handel platforms. TSL sal outomaties skryf Maklik taal, Java, Assembler, C-kode, C-kode en WealthLab script taal. Die Trading System kan dan met die hand verhandel, verhandel deur 'n makelaar, of outomaties verhandel. Jy kan die Trading System jouself te skep of kan ons dit vir jou doen. Dan kan jy of jou makelaar die stelsel óf met die hand of outomaties handel. Trading System Labs Genetiese Program bevat verskeie kenmerke wat die moontlikheid van krommepassing verminder, of die vervaardiging van 'n Trading System wat nie voortgaan om uit te voer in die toekoms. In die eerste plek het die ontstaan ​​Trading Systems hul grootte gesnoei af na die laagste moontlike grootte deur wat Parsimony Druk genoem, teken van die konsep van 'n minimale beskrywing lengte. So het die gevolglike Trading System is so eenvoudig as moontlik en dit is algemeen geglo dat die eenvoudiger die handel stelsel is, hoe beter sal dit uit te voer in die toekoms. In die tweede plek is willekeur opgeneem in die evolusionêre proses, wat die moontlikheid van die vind van oplossings wat plaaslik is verminder, maar nie globaal optimum. Ewekansigheid is ingestel oor nie net die kombinasies van die genetiese materiaal wat gebruik word in die ontstaan ​​Trading Systems, maar in Parsimony druk, mutasie, Crossover en ander hoër-vlak GP parameters. Uit Voorbeeld toets uitgevoer word, terwyl opleiding is aan die gang met statistiese inligting wat op beide die In Voorbeeld en uit Voorbeeld Trading System toets. Begin logs word aan die gebruiker vir opleiding, Validering en Uit Voorbeeld data. Goed gedra Uit Voorbeeld prestasie kan 'n aanduiding dat die handel stelsel is ontwikkel met robuuste eienskappe wees. Aansienlike verswakking in die outomatiese Uit Voorbeeld toets in vergelyking met die in die monster toets kan daardie skepping van 'n robuuste Trading System impliseer is in twyfel of dit die terminale, of insette Stel mag nodig wees om te verander. Ten slotte, is die Terminal Stel versigtig gekies word om nie té afvallig die keuse van die aanvanklike genetiese materiaal na 'n bepaalde mark vooroordeel of sentiment. TSL begin nie sy lopie met 'n Trading System gedefinieerde. Trouens, net die Input Stel en 'n seleksie van die mark inskrywing af of modes, vir 'n outomatiese inskrywing soek en opdrag, is aanvanklik gemaak. 'N patroon of aanwyser gedrag wat van 'n lomp situasie kan gedink kan word, weggegooi of omgekeerde binne die GP. Geen patroon of aanwyser is pre-opgedra aan 'n bepaalde mark beweging vooroordeel. Dit is 'n radikale afwyking van die hand gegenereer Trading System ontwikkeling. 'N Trading System is 'n logiese stel instruksies wat die handelaar vertel wanneer om te koop of te verkoop 'n spesifieke mark. Hierdie instruksies benodig selde ingryping deur 'n handelaar. Trading Systems kan met die hand verhandel, deur die waarneming van handel instruksies op 'n rekenaarskerm, of kan verhandel deur toe te laat dat die rekenaar ambagte in die mark outomaties binnegaan. Beide metodes is in wydverspreide gebruik vandag. Daar is meer professionele geld bestuurders wat hulself as Sistematiese of Meganiese handelaars as diegene wat hulself as Diskresionêre, en die prestasie van Sistematiese geld bestuurders is oor die algemeen beter as dié van Diskresionêre geld bestuurders. Studies het getoon dat handel rekeninge algemeen geld verloor meer dikwels as die kliënt nie die gebruik van 'n Trading System. Die beduidende toename in handel stelsels oor die afgelope 10 jaar is duidelik veral in die kommoditeit makelaarsfirmas egter gelykheid en effektemark makelaarsfirmas toenemend bewus van die voordele deur die gebruik van handel stelsels en 'n paar het begin om handel stelsels bied om hul kleinhandel kliënte. Die meeste onderlinge fonds bestuurders is reeds met behulp van gesofistikeerde algoritmes om hul besluite te lei oor wat warm voorraad te tel of wat sektor rotasie is ten gunste. Rekenaars en algoritmes hoofstroom in te belê word en ons verwag dat hierdie tendens sal voortduur as jonger, meer rekenaar vaardig beleggers voortgaan om toe te laat gedeeltes van hul geld deur Trading Systems bestuur moet word om risiko te verminder en opbrengste te verhoog. Die groot verliese ervaar word deur beleggers wat deelneem aan die koop en hou voorrade en wedersydse fondse as die aandelemark gesmelt in die afgelope jaar is die bevordering van hierdie beweging na 'n meer gedissiplineerde en logiese benadering tot aandelemark te belê. Die gemiddelde belegger besef dat hy of sy tans kan baie aspekte van hul lewens en die lewens van hul geliefdes gehandhaaf moet word of beheer word deur rekenaars soos die motors en vliegtuie wat ons gebruik vir vervoer, die mediese diagnostiese toerusting wat ons gebruik vir die gesondheid onderhoud, die verhitting en verkoeling beheerders wat ons gebruik vir temperatuurbeheer, die netwerke wat ons gebruik vir die internet-gebaseerde inligting, selfs die speletjies wat ons speel vir vermaak. Hoekom dan doen 'n paar klein beleggers glo dat hulle kan skiet uit die heup in hul besluite oor wat voorraad of onderlinge fonds te koop of te verkoop en verwag om geld Uiteindelik maak, het die gemiddelde belegger versigtig vir die raad en inligting aangestuur deur gewetenlose makelaars geword , rekenmeesters, korporatiewe hoofde en finansiële adviseurs. Vir die afgelope 20 jaar wiskundiges en sagteware-ontwikkelaars het aanwysers en patrone in voorraad en kommoditeitsmarkte gesoek op soek na inligting wat kan dui op die rigting van die mark. Hierdie inligting kan gebruik word om die prestasie van handel stelsels te verbeter. Oor die algemeen hierdie ontdekking proses word bereik deur 'n kombinasie van trial and error en meer gesofistikeerde data-ontginning. Tipies, sal die ontwikkelaar weke of maande van verwerking van syfers ten einde 'n potensiële Trading System vervaardig neem. Baie keer hierdie Trading System sal nie goed presteer wanneer eintlik gebruik in die toekoms as gevolg van wat genoem word krommepassing. Oor die jare was daar baie Trading Systems (en Trading System ontwikkeling maatskappye) wat gekom en gegaan soos hul stelsels in lewende handel gefaal het. Die ontwikkeling van handel stelsels wat voortgaan om uit te voer in die toekoms is moeilik, maar nie onmoontlik om te bereik, alhoewel daar geen etiese ontwikkelaar of geld bestuurder 'n onvoorwaardelike waarborg dat enige handel stelsel, of vir daardie saak enige voorraad, verband of onderlinge fonds, sal voortgaan sal gee wins vir ewig te produseer in die toekoms. Wat het weke of maande vir die Trading System ontwikkelaar te produseer in die verlede kan nou geproduseer word in minute deur die gebruik van Trading System Lab. Trading System Lab is 'n platform vir die outomatiese generasie van handel stelsels en Trading Indicators. TSL maak gebruik van 'n hoë spoed Genetiese Programmering Engine en sal handel stelsels produseer teen 'n koers van meer as 16 miljoen stelsel-bars per sekonde gebaseer op 56 insette. Let daarop dat slegs 'n paar insette eintlik gaan word of nodig wat lei tot die algemeen eenvoudige ontwikkelde strategie strukture. Met ongeveer 40,000 tot 200,000 stelsels wat nodig is vir 'n konvergensie, tyd na die samevloeiing vir enige datastel kan benader. Let daarop dat ons nie net hardloop 'n brute krag optimalisering van bestaande aanwysers op soek na 'n optimale parameters waaruit om te gebruik in 'n reeds gestruktureer Trading System. Die Trading System Generator begin by 'n nul punt oorsprong maak geen aannames oor die beweging van die mark in die toekoms en dan ontwikkel Trading Systems op 'n baie hoë tempo kombinasie inligting teenwoordig is in die mark en die formulering van nuwe filters, funksies, voorwaardes en verhoudings soos dit vorder na 'n geneties gemanipuleerde Trading System. Die gevolg is dat 'n uitstekende Trading System kan gegenereer word in 'n paar minute op 20-30 jaar van die daaglikse mark data op feitlik enige mark. Oor die afgelope paar jaar is daar verskeie benaderings tot Trading System optimalisering dat die minder kragtige genetiese algoritme in diens gewees het. Genetiese Programme (AP) is beter as genetiese algoritmes (gas) om verskeie redes. In die eerste plek GPS konvergeer op 'n oplossing op 'n eksponensiële koers (baie vinnig en kry vinniger) terwyl Genetiese algoritmes konvergeer op 'n lineêre koers (veel stadiger en geen vinniger kry). In die tweede plek GPS eintlik genereer Trading System masjienkode wat die genetiese materiaal (aanwysers, patrone, inter-mark data) in unieke maniere gekombineer word. Hierdie unieke kombinasies kan nie intuïtief duidelik wees en moenie aanvanklike definisies deur die stelsel ontwikkelaar nie nodig. Die unieke wiskundige verhoudings geskep kan nuwe aanwysers, of variante in Tegniese Analise word, nog nie ontwikkel of ontdek. Gas, aan die ander kant, net kyk vir 'n optimale oplossings soos hulle vorder oor die parameter reeks hulle nie ontdek nuwe wiskundige verhoudings en nie hul eie Trading System kode nie skryf. AP skep Trading System kode van verskillende lengtes, met behulp van veranderlike lengte genome, sal die lengte van die handel stelsel deur wat nie-homoloë crossover genoem verander en sal 'n aanduiding of patroon wat nie bydra tot die doeltreffendheid van die handel stelsel heeltemal te verwyder. Gas gebruik net vaste grootte opdrag blokke, gebruik te maak van slegs homoloë crossover en produseer nie veranderlike lengte Trading System kode, of sal hulle weggooi 'n ondoeltreffende aanwyser of patroon so geredelik as 'n algemene praktisyn. Ten slotte, genetiese Programme is 'n onlangse vooruitgang in die domein van die masjien leer, terwyl Genetiese algoritmes 30 jaar gelede ontdek is. Genetiese programme sluit al die belangrikste funksies van genetiese algoritmes crossover, voortplanting, mutasie en fiksheid egter AP sluit baie vinniger en robuuste funksies, maak AP die beste keuse vir die vervaardiging van handel stelsels. Die GP diens in TSLs Trading System Generator is die vinnigste GP tans beskikbaar en is nie beskikbaar in enige ander finansiële markte sagteware in die wêreld. Die Genetiese Programmering Algoritme, Trading Simulator en fiksheid Engines gebruik binne TSL het meer as 8 jaar te produseer. Trading System Lab is die resultaat van jare se harde werk deur 'n span van ingenieurs, wetenskaplikes, programmeerders en handelaars, en ons glo verteenwoordig die mees gevorderde tegnologie wat vandag beskikbaar is vir die handel die markets. Best Programmering taal vir Algorithmic Trading Systems Deur Michael Saal-Moore op 26 Julie 2013 Een van die mees algemene vrae wat ek ontvang in die QS Koevert is Wat is die beste programmeertaal vir algoritmiese handel. Die kort antwoord is dat daar geen beste taal. Strategie parameters, prestasie, modulariteit, ontwikkeling, veerkragtigheid en koste moet al oorweeg. In hierdie artikel sal uiteensetting van die nodige komponente van 'n algoritmiese handel stelsel argitektuur en hoe besluite oor die implementering invloed op die keuse van taal. Eerstens, sal die belangrikste komponente van 'n algoritmiese handel stelsel in ag geneem word, soos die navorsing gereedskap, portefeulje-optimaliseerder, risikobestuurder en uitvoering enjin. Daarna sal verskillende handel strategieë ondersoek word en hoe hulle invloed op die ontwerp van die stelsel. In die besonder die frekwensie van die saak en die waarskynlike handel volume sal beide bespreek word. Sodra die handel strategie gekies is, is dit nodig om argitek die hele stelsel. Dit sluit in die keuse van hardeware, die bedryfstelsel (s) en stelsel veerkragtigheid teen seldsame, potensieel katastrofiese gebeure. Terwyl die argitektuur oorweeg word, moet daar behoorlik ag gegee word aan prestasie - beide om die navorsing gereedskap sowel as die lewendige uitvoering omgewing. Wat is die handel stelsel probeer om te doen voordat jy besluit op die beste taal waarmee 'n outomatiese handel stelsel is dit nodig om die vereistes te definieer skryf. Is die stelsel gaan suiwer uitvoering gebaseer Sal die stelsel vereis dat 'n risikobestuur of portefeulje konstruksie kursus sal die stelsel vereis dat 'n hoë-prestasie backtester Vir die meeste strategieë die handel stelsel kan verdeel word in twee kategorieë wees: Navorsing en sein generasie. Navorsing handel oor evaluering van 'n strategie prestasie oor historiese data. Die proses van evaluering van 'n handel strategie oor data voor mark staan ​​bekend as back testing. Die grootte van data en algoritmiese kompleksiteit sal 'n groot impak op die rekenaarmatige intensiteit van die backtester het. CPU spoed en samelopendheid is dikwels die beperkende faktore in die optimalisering van uitvoering navorsing spoed. Sein generasie is gemoeid met die opwekking van 'n stel van handel seine van 'n algoritme en sulke bestellings stuur na die mark, gewoonlik deur 'n makelaar. Vir sekere strategieë 'n hoë vlak van prestasie vereis. I / O kwessies soos netwerk bandwydte en latency is dikwels die beperkende faktor in die optimalisering van die uitvoering stelsels. So die keuse van tale vir elke komponent van jou hele stelsel kan heel anders wees. Tipe, frekwensie en volume van Strategie Die tipe algoritmiese strategie in diens sal 'n aansienlike impak op die ontwerp van die stelsel het. Dit sal nodig wees om te oorweeg die markte verhandel word, die konneksie na eksterne data verskaffers, die frekwensie en volume van die strategie, die kompromis tussen gemak van ontwikkeling en verbetering van die prestasie, sowel as enige persoonlike hardeware, insluitend mede geleë persoonlike bedieners, GPU's of FPGAs wat nodig mag wees. Die tegnologie keuses vir 'n lae-frekwensie Amerikaanse aandele strategie sal grootliks verskil van dié van 'n hoë-frekwensie statistiese arbitrage strategie handel oor die termynmark wees. Voor die keuse van taal baie data verskaffers moet geëvalueer alledaagse n strategie aan die hand. Dit sal nodig wees om verbinding met die verkoper, struktuur van enige APIs, tydigheid van die data, bergingsvereistes en veerkragtigheid te oorweeg in die lig van 'n ondernemer gaan af. Dit is ook wys om 'n vinnige toegang tot verskeie verskaffers in besit te neem Verskeie instrumente almal hul eie stoor eienaardighede, voorbeelde van wat insluit verskeie ENKELE simbole vir aandele en verval datums vir Toekomsnavorsing (nie aan enige spesifieke OTC data te noem). Dit moet ingereken in die platform ontwerp. Frekwensie van strategie is waarskynlik een van die grootste oorsake van hoe die tegnologie stapel sal gedefinieer word nie. Strategieë in diens data meer dikwels as fyn of tweedens bars vereis betekenisvolle ag met betrekking tot prestasie. 'N Strategie oorskry tweedens bars (bv merk data) lei tot 'n prestasiegedrewe ontwerp as die primêre vereiste. Vir 'n hoë frekwensie strategieë 'n aansienlike bedrag van die mark data sal moet word gestoor en geëvalueer. Sagteware soos HDF5 of KDB word algemeen gebruik vir hierdie rolle. Met die oog op die uitgebreide volumes van data wat nodig is vir HFT aansoeke te verwerk, moet 'n groot skaal new backtester en uitvoering stelsel gebruik word. C / C (moontlik met 'n paar assembler) is geneig om die sterkste taal kandidaat. Ultrahoëfrekwensie strategieë sal ongetwyfeld vereis persoonlike hardeware soos FPGAs, ruil mede-plek en kernal / netwerk koppelvlak tuning. Navorsing Systems Research stelsels tipies behels 'n mengsel van interaktiewe ontwikkeling en outomatiese script. Die voormalige vind dikwels plaas in 'n IDE soos Visual Studio, Matlab of R Studio. Laasgenoemde behels uitgebreide numeriese berekeninge oor talle parameters en data punte. Dit lei tot 'n taalkeuse verskaffing van 'n eenvoudige omgewing te toets kode, maar bied ook voldoende prestasie om strategieë oor verskeie parameter dimensies evalueer. Tipiese Ides in hierdie ruimte sluit Microsoft Visual C / C, wat uitgebreide ontfouting nuts,-kode voltooiing vermoëns bevat (via IntelliSense) en eenvoudige oorsigte van die hele projek stapel (via die databasis ORM, LINQ) Matlab. wat ontwerp is vir 'n uitgebreide numeriese lineêre algebra en gevectoriseerd bedrywighede, maar in 'n interaktiewe konsole wyse R Studio. wat vou die R statistiese taal konsole in 'n volwaardige IO Eclipse IDE vir Linux Java en C en semi-eiendom Ides soos Enthought Canopy vir Python, wat data-analise biblioteke soos Numpy sluit. Scipy. scikit-leer en pandas in 'n enkele interaktiewe (konsole) omgewing. Vir numeriese back testing, al die bogenoemde tale is geskik, maar dit is nie nodig om 'n GUI / IDE gebruik as die kode in die agtergrond sal uitgevoer word. Die eerste oorweging in hierdie stadium is dat van die uitvoering spoed. A saamgestel taal (soos C) is dikwels nuttig as die back testing parameter dimensies is groot. Onthou dat dit nodig versigtig vir sulke stelsels te wees is as wat die saak gevolge het verduidelik tale soos Python dikwels gebruik van 'n hoë-prestasie biblioteke soos Numpy / pandas vir die back testing stap maak, ten einde 'n redelike mate van mededingendheid te behou met saamgestel ekwivalente. Uiteindelik is die wat gekies is vir die back testing taal sal bepaal word deur spesifieke algoritmiese behoeftes sowel as die verskeidenheid van biblioteke beskikbaar in die taal (meer op wat hieronder). Tog kan die taal wat gebruik word vir die backtester en navorsing omgewings heeltemal onafhanklik van dié wat in die portefeulje konstruksie, risikobestuur en uitvoering komponente, soos gesien sal word. Portefeulje Konstruksie en Risikobestuur Die portefeulje konstruksie en risikobestuur komponente word dikwels oor die hoof gesien deur kleinhandel algoritmiese handelaars. Dit is byna altyd 'n fout. Hierdie gereedskap verskaf die meganisme waardeur kapitaal sal bewaar word. Hulle het nie net probeer om die aantal riskant verbintenis te verlig, maar ook hulself te verminder kansellasies van die ambagte, die vermindering van transaksiekoste. Gesofistikeerde weergawes van hierdie komponente kan 'n beduidende invloed op die gehalte en consistentcy van winsgewendheid het. Dit is maklik om 'n stabiele strategieë as die portefeulje konstruksie meganisme en risikobestuurder skep kan maklik aangepas word om verskeie stelsels te hanteer. So moet hulle in aanmerking kom essensiële komponente aan die begin van die ontwerp van 'n algoritmiese handel stelsel. Die werk van die portefeulje konstruksie stelsel is om 'n stel van gewenste ambagte te neem en te produseer die stel van die werklike ambagte wat kansellasies te verminder, blootstelling aan verskeie faktore (soos sektore, bateklasse, wisselvalligheid ens) in stand te hou en te optimaliseer die toekenning van kapitaal na verskeie strategieë in 'n portefeulje. Portefeulje konstruksie verminder dikwels 'n lineêre algebra probleem (soos 'n matriks faktorisering) en vandaar prestasie is hoogs afhanklik van die doeltreffendheid van die numeriese lineêre algebra implementering beskikbaar. Gemeenskaplike biblioteke sluit uBLAS. LAPACK en NAG vir C. MatLab beskik ook op groot skaal new matriksbewerkings. Python gebruik Numpy / Scipy vir sulke berekeninge. 'N gereeld herbalanseer portefeulje sal 'n saamgestel (en goed new) matriks biblioteek vereis dat hierdie stap uit te voer, sodat dit nie die handel stelsel knelpunt. Risikobestuur is 'n ander baie belangrike deel van 'n algoritmiese handel stelsel. Risiko kan kom in baie vorms: Groter wisselvalligheid (hoewel dit as wenslik vir sekere strategieë kan gesien word), verhoogde korrelasies tussen bateklasse, teenparty verstek bediener kragonderbrekings, Black Swan gebeure en ongemerk foute in die handel kode, te noem 'n paar. Risikobestuur komponente probeer antisipeer die gevolge van oormatige wisselvalligheid en korrelasie tussen bateklasse en hul daaropvolgende effek (s) op die handel kapitaal. Dikwels is dit verminder tot 'n stel van statistiese berekeninge soos Monte Carlo stres toetse. Dit is baie soortgelyk aan die computational behoeftes van 'n afgeleide pryse enjin en as sodanig sal CPU-gebonde wees. Hierdie simulasies is hoogs parallelisable (sien onder), en 'n sekere mate, is dit moontlik om die hardeware te gooi by die probleem. Uitvoering Systems Die werk van die uitvoering stelsel is om gefiltreer handel seine van die portefeulje konstruksie en risikobestuur komponente ontvang en stuur hulle oor na 'n makelaar of 'n ander manier van toegang tot die mark. Vir die meerderheid van die kleinhandel algoritmiese handel strategieë behels dit 'n API of FIX verbinding met 'n makelaars soos Interaktiewe Brokers. Die primêre oorwegings wanneer jy moet besluit op 'n taal insluit gehalte van die API, taal-wrapper beskikbaarheid vir 'n API, uitvoering frekwensie en die verwagte glip. Die kwaliteit van die API verwys na hoe goed gedokumenteer is dit, watter soort prestasie dit bied, of dit moet selfstandige sagteware te verkry of 'n poort vasgestel kan word in 'n onthoofde mode (dit wil sê geen GUI). In die geval van Interaktiewe Brokers, die Trader WorkStation instrument moet hardloop in 'n GUI omgewing ten einde toegang tot hul API. Een keer het ek 'n lessenaar Ubuntu uitgawe installeer op 'n wolk bediener Amazon toegang Interaktiewe Brokers afstand, suiwer vir hierdie rede waarom die meeste API sal 'n C en / of Java koppelvlak verskaf. Dit is gewoonlik tot die gemeenskap te taalspesifieke omhulsels vir C, Python, R, Excel en MatLab ontwikkel. Let daarop dat met elke bykomende plugin gebruik (veral API omhulsels) is daar ruimte vir foute insluip in die stelsel. toets altyd plugins van hierdie soort en verseker dat hulle aktief in stand gehou. 'N waardevolle meter is om te sien hoeveel nuwe updates vir 'n kodebasis is gemaak in die afgelope maande. Uitvoering frekwensie is van die uiterste belang in die uitvoering algoritme. Let daarop dat honderde bestellings elke minuut kan gestuur word en as sodanig prestasie is van kritieke belang. Glip aangegaan sal word deur middel van 'n erg-presterende uitvoering stelsel en dit sal 'n dramatiese impak op winsgewendheid het. Staties-getik tale (sien onder) soos C / Java is oor die algemeen 'n optimale vir uitvoering maar daar is 'n trade-off in die ontwikkeling tyd, toetsing en gemak van die onderhoud. Dinamiese-getik tale, soos Python en Perl is nou algemeen vinnig genoeg. Maak altyd seker dat die komponente is ontwerp om in 'n modulêre wyse (sien onder), sodat hulle kan omgeruil uit die stelsel skale. Argitektoniese beplanning en ontwikkelingsproses Die komponente van 'n handel stelsel, die frekwensie en volume vereistes wat hierbo bespreek is, maar stelsel infrastruktuur het nog gedek moet word. Diegene wat optree as 'n kleinhandel handelaar of besig om in 'n klein fonds sal waarskynlik dra baie regeer. Dit sal die finale implementering van die stelsel wat nodig is om te wees wat die alfa model, risikobestuur en uitvoering parameters wees, en ook. Voordat delf in spesifieke tale die ontwerp van 'n optimale stelsel argitektuur bespreek sal word. Skeiding van Kommer Een van die belangrikste besluite wat by die begin moet word, is hoe om die belange van 'n handel stelsel te skei. In die ontwikkeling van sagteware, beteken dit in wese hoe om op te breek die verskillende aspekte van die handel stelsel in aparte modulêre komponente. Deur bloot koppelvlakke by elk van die komponente is dit maklik om te ruil uit dele van die stelsel vir ander weergawes wat prestasie hulp, betroubaarheid of onderhoud, sonder om die wysiging enige eksterne afhanklikheid kode. Dit is die beste praktyk vir sulke stelsels. Vir strategieë teen laer frekwensies sulke praktyke word aangeraai. Vir ultra hoë frekwensie handel die reëlboek mag hê om dit te ignoreer ten koste van die opstel van die stelsel vir nog meer prestasie. 'N Meer styf gekoppel stelsel wat wenslik mag wees. Die skep van 'n komponent kaart van 'n algoritmiese handel stelsel is 'n artikel op sigself die moeite werd. Maar 'n optimale benadering is om seker te maak daar is afsonderlike komponente vir die historiese en real-time mark data insette, data stoor, toegang tot die inligting API, backtester, strategie parameters, portefeulje konstruksie, risikobestuur en outomatiese uitvoering stelsels. Byvoorbeeld, as die data stoor wat gebruik is tans onderpresteer, selfs teen beduidende vlakke van optimalisering, kan dit omgeruil met 'n minimale herskryf om die data inname of toegang data-API. Sover die as backtester en daaropvolgende komponente betref, is daar geen verskil. Nog 'n voordeel van vervreem komponente is dat dit kan 'n verskeidenheid van programmeertale wat gebruik word in die algehele stelsel. Daar is geen rede om te beperk tot 'n enkele taal as die kommunikasie metode van die komponente is taal onafhanklik. Dit sal die geval wees indien hulle kommunikeer via die TCP / IP, ZeroMQ of 'n ander taal-onafhanklike protokol. As 'n konkrete voorbeeld, kyk na die geval van 'n back testing stelsel in C vir verwerking van syfers prestasie geskryf, terwyl die portefeuljebestuurder en uitvoering stelsels in Python geskryf met behulp van Scipy en IBPy. Prestasie oorwegings prestasie is 'n belangrike oorweging vir die meeste handel strategieë. Vir hoër frekwensie strategieë is dit die belangrikste faktor. Prestasie dek 'n wye verskeidenheid van onderwerpe, soos algoritmiese uitvoering spoed, netwerk latency, bandwydte, data I / O, concurrency / parallelisme en skalering. Elkeen van hierdie gebiede word individueel gedek deur groot handboeke, so hierdie artikel sal net krap die oppervlak van elke onderwerp. Argitektuur en taalkeuse sal nou in terme van hul effek op prestasie bespreek word. Die heersende wysheid soos deur Donald Knuth. een van die vaders van Rekenaarwetenskap, is dat voortydige optimalisering is die wortel van alle kwaad. Dit is byna altyd die geval nie - behalwe wanneer die bou van 'n hoë frekwensie handel algoritme Vir diegene wat belangstel in die laer frekwensie strategieë is, 'n gemeenskaplike benadering is om 'n stelsel te bou in die eenvoudigste manier moontlik en net optimaliseer as knelpunte begin om te verskyn. Profilering gereedskap gebruik om te bepaal waar knelpunte ontstaan. Profiele gemaak kan word vir al die bogenoemde faktore, hetsy in 'n MS Windows of Linux-omgewing. Daar is baie bedryfstelsel en taal gereedskap wat beskikbaar is om dit te doen, sowel as nuts derde party. Taalkeuse sal nou in die konteks van prestasie bespreek word. C, Java, Python, R en MatLab bevat almal 'n hoë-prestasie biblioteke (hetsy as deel van hul standaard of ekstern) vir basiese datastrukture en algoritmiese werk. C skepe met die Standard Sjabloon Biblioteek, terwyl Python bevat Numpy / Scipy. Gemeenskaplike wiskundige take te vinde in hierdie biblioteke en dit is selde voordelig vir 'n nuwe implementering skryf. Een uitsondering is wanneer hoogs persoonlike hardeware argitektuur vereis en 'n algoritme maak uitgebreide gebruik van eiendom uitbreidings (soos persoonlike caches). Maar dikwels heruitvinding van die wiel afval tyd dat 'n beter bestee kan word ontwikkel en die optimalisering van ander dele van die handel infrastruktuur. Ontwikkeling tyd is uiters kosbare veral in die konteks van uitsluitlike ontwikkelaars. Latency is dikwels 'n kwessie van die uitvoering stelsel as die navorsing gereedskap gewoonlik op dieselfde masjien. Vir die eerste keer nie kan latency voorkom by verskeie plekke langs die uitvoering pad. Databasisse moet geraadpleeg word (skyf / netwerk latency), seine moet gegenereer word (bedryfstelsel firmas, kernal boodskappe latency), handel seine gestuur (NIC latency) en bestellings verwerk (ruil stelsels interne latency). Vir hoër frekwensie bedrywighede is dit nodig om intiem vertroud is met kernal optimalisering asook die optimalisering van die netwerk oordrag geword. Dit is 'n diep gebied en is aansienlik buite die bestek van die artikel, maar as 'n UHFT algoritme dan verlang bewus te wees van die diepte van kennis wat nodig is Caching is baie nuttig in die toolkit van 'n kwantitatiewe handel ontwikkelaar. Caching verwys na die konsep van die stoor gereeld besoek data op 'n wyse wat toegang hoër-prestasie kan, ten koste van die potensiële staleness van die data. 'N Algemene gebruik geval kom voor in die web-ontwikkeling by die neem van die data van 'n skyf gerugsteun relasionele databasis en sit dit in die geheue. Enige daaropvolgende versoeke vir die data het nie na die databasis en so prestasie winste kan beduidend wees getref. Vir handel situasies kan caching uiters voordelig wees. Byvoorbeeld, kan die huidige stand van 'n strategie portefeulje bewaar word in 'n kas totdat dit herbalanseer, sodanig dat die lys nie die geval is moet herskep op elke lus van die handel algoritme. Sulke wedergeboorte is geneig om 'n hoë CPU of skyf I / O werking wees. Maar kas is nie sonder sy eie sake. Herlewing van die kas data in 'n keer, as gevolg van die volatilie aard van die kas stoor, kan beduidende vraag op infrastruktuur te plaas. Nog 'n probleem is hond-hei. waar verskeie generasies van 'n nuwe kas kopie onder uiters hoë lading, wat lei tot mislukking waterval gedra. Dinamiese geheuetoekenning is 'n duur operasie in uitvoering sagteware. Dit is dus noodsaaklik vir hoër prestasie handel aansoeke om goed bewus wees hoe geheue word toegeken en deallocated tydens program vloei. Nuwer taal standaarde soos Java, C en Python al uit te voer outomatiese vullisverwydering. wat verwys na deallocation van dinamiese toegeken geheue wanneer voorwerpe uitgaan van omvang. Vullisverwydering is baie nuttig tydens ontwikkeling as dit verminder foute en hulpmiddels leesbaarheid. Dit is egter dikwels sub-optimale vir sekere hoë frekwensie handel strategieë. Custom vullisverwydering word dikwels verlang vir hierdie gevalle. In Java, byvoorbeeld deur tuning die vullis versamelaar en hoop opset, is dit moontlik om 'n hoë werkverrigting vir HFT strategieë te verkry. C nie die geval bied 'n boorling vullis versamelaar en daarom is dit nodig om al geheuetoekenning / deallocation hanteer as deel van 'n implementering voorwerpe. Terwyl potensieel vatbaar fout (potensieel lei tot hangend wysers) is dit baie nuttig om fyn beheer van hoe voorwerpe verskyn op die hoop vir sekere aansoeke het. By die keuse van 'n taal te verseker om te bestudeer hoe die vullis versamelaar werk en of dit kan verander word om te optimaliseer vir 'n spesifieke gebruik geval. Baie bedrywighede in algoritmiese handel stelsels is vatbaar vir Parallellisatie. Dit verwys na die konsep van die uitvoering van verskeie programmatiese bedrywighede op dieselfde tyd, d. w.z in parallel. Sogenaamde embarassingly parallelle algoritmes sluit stappe wat ten volle onafhanklik van ander stappe kan bereken word. Sekere statistiese bedrywighede, soos Monte Carlo simulasies, is 'n goeie voorbeeld van embarassingly parallelle algoritmes soos elke ewekansige trekking en daaropvolgende operasie pad kan bereken word sonder kennis van ander paaie. Ander algoritmes is slegs gedeeltelik parallelisable. Vloeidinamika simulasies is so 'n voorbeeld, waar die domein van berekening kan onderverdeel, maar uiteindelik hierdie domeine moet met mekaar en sodoende die bedrywighede is gedeeltelik opeenvolgende kommunikeer. Parallelisable algoritmes is onderhewig aan Amdahls wet. wat 'n teoretiese boonste limiet aan die prestasie verhoging van 'n parallelised algoritme toe onderhewig aan N aparte prosesse (bv op 'n CPU kern of draad). Parallellisatie het al hoe belangriker as 'n middel van die optimalisering geword sedert verwerker klok-spoed het gestagneer, soos nuwer verwerkers bevat baie kern waarmee parallel berekeninge uit te voer. Die opkoms van die verbruikers grafiese hardeware (predominently vir die video speletjies) het gelei tot die ontwikkeling van grafiese verwerking van eenhede (GPU), wat honderde kerne vir hoogs konkurrente bedrywighede bevat. Sulke GPU's is nou baie bekostigbaar. Hoë-vlak raamwerke, soos Nvidias CUDA het gelei tot wydverspreide aanvaarding in die akademie en finansies. Sulke GPU hardeware is oor die algemeen slegs geskik vir die navorsing aspek van kwantitatiewe finansies, terwyl ander meer gespesialiseerde hardeware (insluitend veldwerk-programmeerbare Gate Arrays - FPGAs) word gebruik vir (O) HFT. Tans is die meeste moderne langauges ondersteun 'n mate van concurrency / multi-threading. Dit is dus maklik om 'n backtester optimaliseer, aangesien alle berekeninge is oor die algemeen onafhanklik van die ander. Skalering in sagteware-ingenieurswese en bedrywighede verwys na die vermoë van die stelsel om konsekwent te verhoog vragte in die vorm van 'n groter versoeke, hoër gebruik verwerker en meer geheue toekenning te hanteer. In algoritmiese handel strategie is in staat om te skaal as dit groter hoeveelhede kapitaal kan aanvaar en steeds lewer konsekwente opbrengste. Die handel tegnologie stapel skale as dit groter handel volumes en verhoogde latency kan verduur, sonder Bottelnek. Terwyl stelsels moet ontwerp volgens skaal, is dit dikwels moeilik om vooraf te voorspel waar 'n bottelnek sal plaasvind. Wettisch meld, toetsing, profilering en monitering sal grootliks help in sodat 'n stelsel op skaal. Tale self dikwels beskryf as onbestygbare. Dit is gewoonlik die gevolg van verkeerde inligting, eerder as harde werklikheid. Dit is die totale tegnologie stapel wat gevolg moet word vasgestel vir scalability, nie die taal. Dit is duidelik dat sekere tale het 'n groter prestasie as ander in die besonder gebruik gevalle, maar een taal is nooit beter as 'n ander in elke sin. Een middel van die bestuur van skaal is kommer skei, soos hierbo genoem. Met die oog op die vermoë om spykers te hanteer in die stelsel (dit wil sê 'n skielike wisselvalligheid wat 'n reeks van bedrywe snellers) verder te voer, is dit nuttig om 'n boodskap toustaan ​​argitektuur te skep. Dit beteken eenvoudig die plasing van 'n boodskap tou stelsel tussen komponente sodat bestellings gestapel as 'n sekere komponent is nie in staat om baie versoeke te verwerk. Eerder as om versoeke verlore hulle is eenvoudig gehou in 'n stapel, totdat die boodskap hanteer. Dit is veral nuttig vir die stuur van ambagte 'n uitvoering enjin. As die enjin is wat ly onder swaar latency dan sal dit te staaf ambagte. 'N tou tussen die handel seingenerator en die uitvoering API sal hierdie kwessie te verlig ten koste van potensiële handel glip. 'N gerespekteerde open source boodskap tou makelaar is RabbitMQ. Hardeware en bedryfstelsels Die hardeware bestuur van jou strategie kan 'n beduidende impak op die winsgewendheid van jou algoritme het. Dit is nie 'n probleem beperk tot 'n hoë frekwensie handelaars nie. 'N swak keuse in hardeware en bedryfstelsel kan lei tot 'n masjien crash of herlaai op die mees ongeleë oomblik. Dit is dus nodig om te oorweeg waar jou aansoek sal woon. Die keuse is oor die algemeen tussen 'n persoonlike lessenaar masjien, 'n afgeleë bediener, 'n wolk verskaffer of 'n ruil mede-geleë bediener. Desktop masjiene is maklik om te installeer en te administreer, veral met nuwer use bedryfstelsels soos Windows 08/07, Mac OSX en Ubuntu. Lessenaar stelsels te doen in besit te neem 'n paar belangrike nadele egter. Die eerste is dat die weergawes van bedryfstelsels ontwerp vir desktop masjiene is geneig om te herselflaai benodig / lap (en dikwels op die slegste tye). Hulle gebruik ook meer computational hulpbronne deur die hoofde van wat 'n grafiese gebruikerskoppelvlak (GUI). Benutting hardeware in 'n huis (of plaaslike kantoor) omgewing kan lei tot die internet konneksie en krag uptime probleme. Die volgende stap is om te bespreek hoe programmeertale algemeen geklassifiseer. Michael Saal-Moore Mike is die stigter van QuantStart en is betrokke by die kwantitatiewe finansiële sektor vir die afgelope vyf jaar, in die eerste plek as 'n quant ontwikkelaar en later as 'n quant handelaar konsultasie vir verskansingsfondse.

Comments

Popular Posts