Monday 25 September 2017

Suksesvolle Back Testing Van Algorithmic Handel Strategieë , Deel 1


Suksesvolle back testing van Algorithmic handel strategieë, Deel 1 30 Junie 2014 05:00 3 kommentaar Views: 1498 In hierdie artikel gaan voort die reeks oor kwantitatiewe handel, wat begin met die Beginners Gids en Strategie Identifikasie. Beide van hierdie langer, meer betrokke artikels is baie gewild so siek voortgaan in hierdie trant en verskaf besonderhede oor die onderwerp van strategie back testing. Algoritmiese back testing vereis kennis van baie gebiede, insluitende sielkunde, wiskunde, statistiek, sagteware-ontwikkeling en die mark / ruil mikrostruktuur. Ek kon nie hoop om al daardie onderwerpe dek in een artikel, sodat Im gaan hulle verdeel in twee of drie kleiner stukkies. Wat sal ons bespreek in hierdie artikel? Siek begin met die definisie van back testing en dan sal ek die basiese beginsels van hoe dit uitgevoer word beskryf. Dan sal ek lig op die vooroordele wat ons op aangeraak in die Beginners Gids tot Kwantitatiewe Trading. Volgende sal ek 'n vergelyking van die verskillende beskikbare back testing sagteware opsies aan te bied. In die daaropvolgende artikels gaan ons kyk na die besonderhede van implementering van die strategie wat dikwels skaars genoem word of geïgnoreer. Ons sal ook kyk hoe die back testing proses meer realistiese deur die insluiting van die eienaardighede van 'n handel ruil te maak. Dan sal ons transaksiekoste en hoe om korrek te modelleer hulle in 'n backtest omgewing te bespreek. Ons sal eindig met 'n bespreking oor die prestasie van ons backtests en uiteindelik 'n voorbeeld van 'n gemeenskaplike Quant strategie, bekend as 'n gemiddelde terugkeer pare handel. Kom ons begin met 'n bespreking wat back testing is en waarom ons dit moet uit te voer in ons algoritmiese handel. Wat is back testing? Algoritmiese handel staan ​​apart van ander vorme van belegging klasse omdat ons meer betroubaar kan voorsien verwagtinge oor toekomstige prestasie van vorige prestasie, as gevolg van 'n oorvloedige beskikbaarheid data. Die proses waardeur dit uitgevoer staan ​​bekend as back testing. In eenvoudige terme, is back testing deur jou spesifieke strategie algoritme bloot te stel aan 'n stroom van historiese finansiële inligting, wat lei tot 'n stel van handel seine gedra. Elke handel (wat ons hier sal beteken 'n heen-en terugreis van twee seine wees) sal 'n gepaardgaande wins of verlies nie. Die opeenhoping van hierdie wins / verlies oor die duur van jou strategie backtest sal lei tot die totale wins en verlies (ook bekend as die PL of PNL). Dit is die essensie van die idee, hoewel natuurlik die 8220; duiwel is altyd in die details8221 ;! Wat is die sleutel redes vir back testing 'n algoritmiese strategie? Filtrasie As jy onthou van die artikel oor strategie Identifikasie. Ons doel op die aanvanklike navorsing stadium was om 'n strategie pyplyn en dan filter enige strategie wat nie aan sekere kriteria voldoen. Back testing voorsien ons van 'n ander filter meganisme, soos ons strategieë wat nie aan ons prestasie behoeftes kan uitskakel. Modellering back testing stel ons in staat om (veilig!) Toets nuwe modelle van sekere mark verskynsels, soos transaksiekoste, order routing, latency, likiditeit of ander mark mikrostruktuur kwessies. Optimering Hoewel strategie optimalisering is belaai met vooroordele, back testing stel ons in staat om die prestasie van 'n strategie te verhoog deur die wysiging van die hoeveelheid of waardes van die parameters wat verband hou met die strategie en herbereken sy prestasie. Verifikasie Ons strategieë is dikwels ekstern verkry, via ons strategie pyplyn. Back testing n strategie verseker dat dit nie verkeerd geïmplementeer. Hoewel ons selde toegang tot die seine wat gegenereer word deur eksterne strategieë moet word, sal ons dikwels het toegang tot die prestasie statistieke soos die Sharpe Ratio en Onttrekking eienskappe. So kan ons hulle vergelyk met ons eie implementering. Back testing bied 'n magdom voordele vir algoritmiese handel. Dit is egter nie altyd moontlik om reguit backtest n strategie. In die algemeen, as die frekwensie van die strategie toeneem, word dit moeiliker om korrek te modelleer die mikrostruktuur effekte van die mark en die uitruil. Dit lei tot minder betroubaar backtests en dus 'n moeiliker evaluering van 'n gekose strategie. Dit is 'n besondere probleem waar die uitvoering stelsel is die sleutel tot die strategie prestasie, soos met ultra-hoë frekwensie algoritmes. Ongelukkig back testing is belaai met vooroordele van alle soorte. Ons het gepraat oor 'n paar van hierdie kwessies is in die vorige artikels, maar ons sal nou bespreek dit in diepte. Vooroordele word beïnvloed Strategie Backtests Daar is baie vooroordele wat die prestasie van 'n backtested strategie kan beïnvloed. Ongelukkig is hierdie vooroordele het 'n neiging om die prestasie te verhoog eerder as om afbreuk aan dit. So jy moet altyd oorweeg om 'n backtest 'n geïdealiseerde bogrens op die werklike prestasie van die strategie te wees. Dit is byna onmoontlik om vooroordele uit algoritmiese handel uit te skakel sodat dit is ons taak om hulle te verminder as die beste wat ons kan om ingeligte besluite oor ons algoritmiese strategieë te maak. Daar is vier groot vooroordele wat ek wil bespreek: Optimering Vooroordeel, Kyk-Ahead Vooroordeel, Overlevingspensioen Vooroordeel en sielkundige Verdraagsaamheid Vooroordeel. Optimering Vooroordeel Dit is waarskynlik die mees verraderlike van alle backtest vooroordele. Dit behels die aanpassing of die bekendstelling van bykomende handel parameters totdat die strategie prestasie op die backtest datastel is baie aantreklik. Maar een keer leef die prestasie van die strategie kan aansienlik anders wees. Nog 'n naam vir hierdie vooroordeel is 8220; kurwe fitting8221; of 8220; data-snuffel bias8221 ;. Optimering vooroordeel is moeilik om te skakel as algoritmiese strategieë dikwels betrek baie parameters. 8220; Parameters8221; In hierdie geval sou wees toevoeging / onttrekking kriteria, kyk terug tydperke, gemiddeld tydperke (d. w.z die bewegende gemiddelde glad parameter) of wisselvalligheidsmeting frekwensie. Optimering vooroordeel kan beperk word deur die behoud van die aantal parameters tot 'n minimum en die verhoging van die hoeveelheid data punte in die opleiding stel. Trouens, moet 'n mens ook versigtig vir die laaste wees as ouer opleiding punte kan wees onderhewig aan 'n vorige regime (soos 'n regulatoriese omgewing) en dus kan nie aan jou huidige strategie betrokke wees. Een metode om te help versag hierdie vooroordeel is 'n sensitiwiteit analise uit te voer. Dit beteken wisselende die parameters inkrementeel en plot 'n 8220; surface8221; van prestasie. Klank, fundamentele redenasie vir parameter keuses moet, met alle ander faktore oorweeg word, lei tot 'n gladder parameter oppervlak. As jy 'n baie spring prestasie oppervlak, beteken dit dikwels dat 'n parameter nie wat 'n verskynsel en is 'n produk van die toetsdata. Daar is 'n groot literatuur oor 'n multi-dimensionele optimeringsalgoritmes en dit is 'n uiters aktiewe gebied van navorsing. Ek sal nie ingaan op dit hier, maar hou dit in die agterkant van jou gedagtes wanneer jy 'n strategie met 'n fantastiese backtest vind! Kyk-Ahead Vooroordeel Kyk lig vooroordeel is opgeneem in 'n back testing stelsel wanneer toekomstige data ongeluk is ingesluit by 'n punt in die simulasie waar daardie data sal nie eintlik beskikbaar is. As ons die backtest chronologies loop en kom ons keer punt N. dan kyk lig vooroordeel voorkom indien data ingesluit vir enige punt N + k. waar k & gt; 0. Kyk lig vooroordeel foute kan ongelooflik subtiel wees. Hier is drie voorbeelde van hoe voorkoms lig vooroordeel ingestel kan word: Tegniese foute Skikkings / vektore in kode dikwels iterators of indeks veranderlikes. Foutiewe skyf van hierdie indekse kan lei tot 'n blik lig vooroordeel deur die inlywing van data by N + k vir nie-nul k. Parameter Berekening Nog 'n algemene voorbeeld van blik lig vooroordeel ontstaan ​​wanneer die berekening van optimale strategie parameters, soos met lineêre regressies tussen twee tydreekse. As die hele datastel (insluitend toekomstige data) word gebruik om die regressiekoëffisiënte te bereken, en dus terugwerkend toegepas op 'n handel strategie vir die optimalisering doeleindes, dan toekoms data word opgeneem en 'n blik lig vooroordeel bestaan. Maxima / Minima Sekere handel strategieë gebruik maak van ekstreemwaardes in enige tydperk, soos die integrasie van die hoë of lae pryse in OHLC data. Maar, aangesien hierdie maksimale / minimale waardes kan slegs bereken aan die einde van 'n tydperk, 'n blik lig vooroordeel is ingestel as hierdie waardes word gebruik - during - die huidige tydperk. Dit is altyd nodig om 'n hoë / lae waardes lag deur ten minste een tydperk in enige handel strategie maak gebruik van hulle. overlevingspensioen Vooroordeel Overlevingspensioen vooroordeel is 'n besonder gevaarlike verskynsel en kan lei tot 'n aansienlike opgeblaas prestasie vir sekere tipes strategie. Dit vind plaas wanneer strategieë getoets op datastelle wat nie sluit in die volle heelal van vorige bates wat moontlik gekies op 'n bepaalde punt in die tyd, maar slegs oorweeg diegene wat 8220 het; survived8221; om die huidige tyd. As 'n voorbeeld, oorweeg die toets van 'n strategie op 'n ewekansige seleksie van aandele voor en na die ineenstorting 2001. Sommige tegnologie-aandele bankrot, terwyl ander het daarin geslaag om te bly dryf en selfs voorspoedig. As ons hierdie strategie net om aandele wat dit gemaak het deur die mark drawdown tydperk het beperkte, sou ons die bekendstelling van 'n overlevingspensioen vooroordeel omdat hulle reeds hul sukses het getoon vir ons. Trouens, dit is net nog 'n spesifieke geval van voorkoms lig vooroordeel, as toekomstige inligting word opgeneem in die verlede ontleding. Daar is twee hoof maniere om oorlewing vooroordeel te verminder in jou strategie backtests: Overlevingspensioen Vooroordeel Gratis Datastelle In die geval van aandele data is dit moontlik om datastelle wat insluit gedenoteer entiteite te koop, hoewel hulle nie goedkoop en net geneig om dit moontlik te maak deur institusionele firmas. In die besonder, Yahoo Finansies data is nie overlevingspensioen vooroordeel gratis, en dit word algemeen gebruik word deur baie kleinhandel algo handelaars. 'N Mens kan ook handel oor bateklasse wat nie geneig is tot oorlewing vooroordeel, soos sekere kommoditeite (en hul toekoms weergawes). Gebruik meer onlangse data in die geval van aandele, met behulp van 'n meer onlangse datastel verlaag die moontlikheid dat die voorraad seleksie gekies is geweeg om 8220; survivors8221 ;, bloot omdat daar minder kans op algehele voorraad denotering in korter tydperke. 'N Mens kan ook begin met die bou van 'n persoonlike oorlewing-vooroordeel gratis dataset deur die versameling van data van die huidige punt af. Na 3-4 jaar, sal jy 'n stewige oorlewing-vooroordeel vrymaak van aandele data waarmee verdere strategieë backtest het. Ons sal nou kyk na sekere psigologiese fenomene wat jou handel prestasie kan beïnvloed. Ons sal nou kyk na sekere psigologiese fenomene wat jou handel prestasie kan beïnvloed. Sielkundige Verdraagsaamheid Vooroordeel Hierdie spesifieke verskynsels is nie dikwels bespreek in die konteks van kwantitatiewe handel. Dit word egter uitvoerig bespreek met betrekking tot meer diskresionêre handel metodes. Dit het verskeie name, maar Ive het besluit om dit 8220 bel, sielkundige verdraagsaamheid bias8221; want dit omvat die kern van die probleem. Wanneer die skep van backtests oor 'n tydperk van 5 jaar of meer, is dit maklik om te kyk na 'n opwaarts neig aandele kurwe, bereken die saamgestelde jaarlikse opbrengs, Sharpe verhouding en selfs eienskappe drawdown en tevrede wees met die resultate. As 'n voorbeeld, kan die strategie 'n maksimum relatiewe drawdown van 25% en 'n maksimum drawdown duur van 4 maande in besit te neem. Dit sou nie atipiese vir 'n momentum strategie wees. Dit is maklik om jouself te oortuig dat dit maklik is om sodanige tydperke van verliese duld omdat die algehele prentjie is rooskleurig. Maar in die praktyk, is dit veel moeiliker! As historiese onttrekkings van 25% of meer voorkom in die backtests, dan in alle waarskynlikheid sal jy tydperke van soortgelyke drawdown in lewende handel te sien. Hierdie periodes van onttrekking is sielkundig moeilik om te verduur. Ek het eerstehandse wat 'n uitgebreide drawdown kan wees soos in 'n institusionele omgewing waargeneem, en dit is nie lekker, selfs as die backtests stel sodanige tydperke sal plaasvind. Die rede waarom ek het dit 'n 8220 genoem; bias8221; is wat dikwels 'n strategie wat andersins suksesvol sou wees in tye van uitgebreide drawdown is verstop raak van die handel en sodoende sal lei tot beduidende onderprestasie in vergelyking met 'n backtest. Dus, selfs al is die strategie is algoritmiese in die natuur, sielkundige faktore kan nog 'n swaar invloed op winsgewendheid. Die afhaal is om te verseker dat as jy sien onttrekkings van 'n sekere persentasie en duur in die backtests, dan moet jy verwag dat hulle kom in lewende handel omgewings, en sal moet volhard om winsgewendheid weer bereik. Sagteware pakkette vir back testing Die sagteware landskap vir strategie back testing is groot. Oplossings wissel van ten volle geïntegreerde institusionele graad gesofistikeerde sagteware deur te programmeertale soos C ++, Python en R waar byna alles moet geskryf van nuuts af (of geskikte plugins verkry). Soos Quant handelaars ons is geïnteresseerd in die balans van die vermoë om 8220; own8221; ons handel tegnologie stapel teenoor die spoed en betroubaarheid van ons ontwikkeling metodologie. Hier is die sleutel oorwegings vir sagteware keuse: Ontwikkeling vaardigheid Die keuse van die omgewing sal in 'n groot deel kom neer op jou vermoë om sagtewareprogram. Ek sou argumenteer dat in beheer van die totale stapel 'n groter uitwerking op jou langtermyn PL as uitkontraktering so veel as moontlik om sagteware verskaffer sal hê. Dit is te danke aan die negatiewe kant risiko van 'n eksterne foute of eienaardighede wat jy nie in staat is om op te los in ondernemer sagteware is, wat andersins maklik sou word reggestel as jy meer beheer oor jou 8220 het; tegnologie stack8221 ;. Jy wil ook 'n omgewing te skep wat die regte balans tussen produktiwiteit, biblioteek beskikbaarheid en spoed van uitvoering tref. Ek maak my eie persoonlike aanbeveling hieronder. Uitvoering Capability / Broker interaksie Sekere back testing sagteware, soos TradeStation, bande in direk met 'n makelaar. Ek is nie 'n fan van hierdie benadering as die vermindering van transaksiekoste is dikwels 'n groot komponent van om 'n hoër Sharpe verhouding. As jy vasgebind in 'n bepaalde makelaar (en TradeStation 8220; forces8221; jy om dit te doen), dan sal jy 'n moeiliker tyd oorgang na nuwe sagteware (of 'n nuwe makelaar) indien die behoefte ontstaan ​​het. Interaktiewe Brokers bied 'n API wat robuuste, al is dit met 'n effens stomp koppelvlak. Aanpassing n omgewing soos MATLAB of Python gee jou 'n groot mate van buigsaamheid wanneer die skep van algo strategieë as wat hulle lewer fantastiese biblioteke vir byna enige wiskundige operasie denkbaar, maar ook 'n uitgebreide aanpassing waar nodig toe te laat. Strategie Kompleksiteit Sekere sagteware net isnt uitgeknip vir swaar verwerking van syfers of wiskundige kompleksiteit. Excel is een so 'n stukkie van die sagteware. Terwyl dit is goed dat eenvoudiger strategieë, kan dit nie regtig gaan met talle bates of meer ingewikkeld algoritmes, op spoed. Vooroordeel Minimalisering Is 'n bepaalde stuk sagteware of data leen homself meer te handel vooroordele? Jy moet seker maak dat as jy wil al die funksies jouself te skep, wat jy hoef te stel foute wat kan lei tot vooroordele. Spoed van Ontwikkeling Een behoort nie moet maande en maande spandeer implementering van 'n backtest enjin. Prototyping moet net 'n paar weke neem. Maak seker dat jou sagteware jou vordering op enige groot mate nie verhinder nie, net om 'n paar ekstra persentasiepunte van uitvoering spoed gryp. C ++ is die 8220; olifant in die room8221; hier! Spoed van die uitvoering van As jou strategie is heeltemal afhanklik van uitvoering tydigheid (soos in HFT / UHFT) dan 'n taal soos C of C ++ sal nodig wees. Jy sal egter wees grense aan Linux-kern optimalisering en FPGA gebruik vir hierdie gebiede, wat buite die bestek van hierdie artikel! Kos Baie van die sagteware omgewings wat jy kan program algoritmiese handel strategieë met heeltemal gratis en open source. Trouens, baie verskansingsfondse maak gebruik van open source sagteware vir hul hele algo handel stapels. Daarbenewens, Excel en MATLAB is albei relatief goedkoop en daar is selfs gratis alternatiewe vir elke. Noudat ons die kriteria waaraan ons moet ons sagteware infrastruktuur kies gelys, ek wil uit te voer deur middel van 'n paar van die meer gewilde pakkette en hoe vergelyk hulle: Let wel: Ek is net gaan om sagteware wat beskikbaar is om die meeste kleinhandel praktisyns en sluit sagteware-ontwikkelaars, want dit is die lesers van die site. Terwyl ander sagteware is beskikbaar soos die meer institusionele graad gereedskap, ek voel dit is te duur om effektief gebruik word in 'n kleinhandel omgewing en ek het persoonlik geen ondervinding met hulle. Beskrywing. WYSIWYG (wat-jy-sien-is-wat-jy-kry) spreadsheet sagteware. Uiters wydverspreid in die finansiële bedryf. Data en algoritme is styf gekoppel. Uitvoering . Ja, Excel kan vasgemaak word in die meeste makelaars. Aanpassing. VBA makro toelaat meer gevorderde funksies ten koste van die wegsteek van implementering. Strategie Kompleksiteit. Meer gevorderde statistiese gereedskap is moeiliker om te implementeer asook strategieë met baie honderde bates. Vooroordeel Minimalisering. Kyk lig vooroordeel is maklik om op te spoor via-sel beklemtoon funksie (met die aanvaarding nie VBA). Ontwikkeling Speed. Vinnige basiese strategieë te implementeer. Uitvoering spoed. Stadige uitvoering spoed slegs geskik vir laer-frekwensie strategieë. Koste. Goedkoop of gratis (afhangende van lisensie). Alternatiewe. OpenOffice Beskrywing. Programmeer omgewing oorspronklik ontwerp vir computational wiskunde, fisika en ingenieurswese. Baie goed geskik vir gevectoriseerd bedrywighede en dié wat numeriese lineêre algebra. Bied 'n wye verskeidenheid van plugins vir Quant handel. In algemene gebruik in kwantitatiewe verskansingsfondse. Uitvoering . Geen moedertaal uitvoering vermoë, MATLAB vereis 'n aparte uitvoering stelsel. Aanpassing. Groot verskeidenheid van gemeenskap plugins vir byna alle gebiede van Berekeningswiskunde. Strategie Kompleksiteit. Baie gevorderde statistiese metodes wat reeds beskikbaar is en goed getoets. Vooroordeel Minimalisering. Moeiliker om op te spoor kyk lig vooroordeel, vereis uitgebreide toetsing. Ontwikkeling Speed. Kort skrifte kan gesofistikeerde backtests maklik te skep. Uitvoering spoed. Die aanvaarding van 'n gevectoriseerd / parallelised algoritme, is MATLAB geoptimaliseerde. Swak vir tradisionele herhaal loops. Koste. Beskrywing. Hoëvlaktaal ontwerp vir spoed van ontwikkeling. Wye verskeidenheid van biblioteke vir byna enige programmatiese taak denkbaar. Besig om wyer aanvaarding in hedge fund en beleggingsbank gemeenskap. Nie heeltemal so vinnig as C / C ++ vir uitvoering spoed. Uitvoering . Python plugins bestaan ​​vir groter makelaars, soos interaktiewe Brokers. Vandaar backtest en uitvoering stelsel kan almal deel van dieselfde 8220; tegnologie stack8221 ;. Aanpassing. Python het 'n baie gesonde ontwikkeling gemeenskap en is 'n volwasse taal. Numpy / Scipy verskaf vinnige wetenskaplike gereedskap rekenaar en statistiese analise wat relevant is vir Quant handel. Strategie Kompleksiteit: Baie plugins bestaan ​​vir die grootste algoritmes, maar nie heeltemal so 'n groot quant gemeenskap as daar vir MATLAB. Vooroordeel Minimalisering. Dieselfde vooroordeel minimalisering probleme bestaan ​​as vir enige hoëvlak taal. Nodig om uiters versigtig oor die toets te wees. Ontwikkeling Speed. Luislange grootste voordeel is die ontwikkeling spoed, met robuuste in gebou in toets vermoëns. Uitvoering spoed. Nie heeltemal so vinnig as C ++, maar wetenskaplike berekening komponente is gemaak en Python kan tot inheemse C-kode gesels met sekere plugins. Koste. Gratis / Oop Bron Alternatiewe. Ruby. Erlang. Haskell Beskrywing. Omgewing ontwerp vir gevorderde statistiese metodes en tydreeksanalise. Wye verskeidenheid van spesifieke statistiek, ekonometriese en inheemse grafiese Tool. Groot ontwikkelaar gemeenskap. Uitvoering . R beskik plugins sommige makelaars, veral Interaktiewe Brokers. So 'n end-tot-end-stelsel kan heeltemal geskryf in R. Aanpassing. R kan aangepas word met 'n pakket, maar sy krag lê in statistiese / ekonometriese domeine. Strategie Kompleksiteit. Meestal nuttig as die uitvoering van ekonometriese, statistiese of masjien-leer strategieë te danke aan beskikbare plugins. Vooroordeel Minimalisering. Soortgelyke vlak van vooroordeel moontlikheid vir 'n hoëvlaktaal soos Python of C ++. So toets moet uitgevoer word. Ontwikkeling Speed. R is 'n vinnige vir skryfstrategieë gebaseer op statistiese metodes. Uitvoering spoed. R is stadiger as C ++, maar bly redelik geskik vir gevectoriseerd bedrywighede (soos met MATLAB). Koste. Gratis / Oop Bron Alternatiewe. SPSS. Stata Beskrywing. Volwasse, hoëvlaktaal ontwerp vir spoed van uitvoering. Wye verskeidenheid van kwantitatiewe finansies en numeriese biblioteke. Harder te ontfout en dikwels neem langer om te implementeer as Python of MATLAB. Uiters algemeen in beide die koop - en verkoop-kant. Uitvoering . Die meeste makelaars API is geskryf in C ++ en Java. So bestaan ​​baie plugins. Aanpassing. C / C ++ kan direkte toegang tot die onderliggende geheue, kan dus ultrahoëfrekwensie strategieë geïmplementeer word. Strategie Kompleksiteit. C ++ STL bied n wye verskeidenheid van new algoritmes. Byna enige gespesialiseerde wiskundige algoritme beskik oor 'n vrye, open-source C / C ++ implementering op die web. Vooroordeel Minimalisering. Kyk lig vooroordeel kan lastig om te skakel, maar geen harder as ander hoëvlaktaal. Goeie ontfouting gereedskap, maar 'n mens moet versigtig wees wanneer hulle met onderliggende geheue. Ontwikkeling Speed. C ++ is nogal uitgebreide vergelyking met Python of MATLAB vir dieselfde algorithmm. Meer lyne-van-kode (LOC) lei dikwels tot 'n groter waarskynlikheid van foute. Uitvoering spoed. C / C ++ het 'n baie vinnige uitvoering spoed en kan goed geskik vir spesifieke computational argitekture. Dit is die hoofrede om dit aan te wend. Koste. Verskeie opstellers: Linux / GCC is gratis, MS Visual Studio het verskillende lisensies. Alternatiewe. C #. Java. Scala Verskillende strategieë sal verskillende sagtewarepakkette vereis. HFT en UHFT strategieë sal geskryf in C / C ++ (deesdae word hulle dikwels uit op GPU's en FPGAs gedra), terwyl 'n lae-frekwensie rigting ekwiteit strategieë is maklik om te implementeer in TradeStation, as gevolg van die 8220, al in one8221; aard van die sagteware / makelaars. My persoonlike voorkeur is vir Python aangesien dit die regte mate van aanpassing, spoed van ontwikkeling, toetsing vermoë en uitvoering spoed vir my behoeftes en strategieë. As ek iets vinniger nodig het, kan ek 8220; drop in8221; C ++ direk uit my Python programme. Een metode bevoordeel deur baie Quant handelaars is om hul strategieë in Python prototipe en dan sit die stadiger uitvoering afdelings om C ++ in 'n iteratiewe wyse. Uiteindelik het die hele algo is geskryf in C ++ en kan wees 8220; alleen gelaat om trade8221 ;! In die volgende paar artikels oor back testing sal ons 'n blik op 'n paar spesifieke kwessies rondom die implementering van 'n algoritmiese handel back testing stelsel, sowel as hoe om die gevolge van die saak handel te neem te neem. Ons sal strategie prestasiemeting te bespreek en uiteindelik sluit af met 'n voorbeeld strategie. Deur Michael Saal-Moore van QuantStart

No comments:

Post a Comment