Saturday, October 22, 2016

Back testing handel strategieë in matlab

Terwyl ek graag waar hierdie vraag gaan, sou ek raai om dit 'n bietjie meer konkrete maak. Watter dele van die back testing proses sal jy graag wil weet kan enige plek wissel van net die skatte van 'n normale terugkeer, waar die portefeulje opbrengste van jou strategie reeds tot die implementering van 'n volledige portefeulje vorming reël algoritmies word. â € Constantin 30 Desember 14 by 21:06 Om eerlik te wees ek don39t veel oor back testing weet nie. Ek is meegedeel dat ek sal moet nuwe strategieë backtest of verbeter huidige een in my internskap. So ek wil graag 'n bietjie meer oor die onderwerp te wete voor die aanvang van. Wat is die verskillende dele daarvan. â € Maxime 30 Desember 14 by 21:31 Die algemene idee vir ekwiteitsekuriteite, 'n eenvoudige backtest sal tipies bestaan ​​uit twee stappe: Berekening van die portefeulje-opbrengste as gevolg van jou portefeulje vorming reël (of handel strategie) Risiko-aanpassing van portefeulje opbrengste met behulp van 'n bate prysmodel Stap 2 is bloot 'n regressie en bestryk baie eenvoudig in Matlab. Wat moeiliker is die implementering van stap 1, wat jy sal benodig baie gemaklik in Matlab te wees, en daar is verskillende maniere om dit te doen. As jy weet hoe om 'n OLS regressie in Matlab te doen, wat jy moet fokus op is alle vorme van matriksbewerkings. Implementering in Matlab Portefeulje vorming en opbrengste berekening Om jou 'n voorbeeld van hoe 'n primitiewe handel strategie in Matlab geïmplementeer kan word gee, kan aanvaar maandelikse opbrengs data en 'n eenvormige hou tydperk van een maand op N bates oor k periodes, waar ek in en k in. Die aanvaarding van geen verandering in die samestelling van jou voorraad heelal, jou opbrengs matriks X is van dimensies k keer n. X begin x amp kolle amp x amp kolle amp x vdots amp ddots amp vdots amp ddots amp vdots x amp kolle amp x amp kolle amp x vdots amp ddots amp vdots amp ddots amp vdots x amp kolle amp x amp kolle amp x einde Waar opbrengste word bereken as x frac -1. Die veronderstelling dat jou keuse maatstaf is 'n soort van voorraad eienskap wat beskikbaar is op maandelikse frekwensie, sal jy ook 'n eienskappe matriks C. Jy kan dan 'n algoritme wat die inskrywings in C wat jou keuse maatstaf voldoen identifiseer skryf (bv bo 'n sekere drumpel ) en die ooreenstemmende inskrywings (waar ek en t is dieselfde) van 'n aanwyser matriks I (wat is geïnisialiseer as 'n nul matriks met behulp van die nulle funksie) met kinders te vervang. Jy kan dan vermeerder die inskrywings van ek deur dié van die opbrengste matriks X 'n oorsig R wat die opbrengste as gevolg van jou hoewes dui verkry. Jy kan dan bereken die gemiddelde van die nie-nul inskrywings vir elke ry van R om jou vektor van portefeulje opbrengste verkry. Risiko-aanpassing en identifisering van abnormale opbrengste In stap 2 te vergelyk u hierdie vektor na die normale opbrengste verkry uit regressie skatting van 'n bate prysmodel soos die Fama-Franse model. Deur te trek die normale opbrengs vektor van jou portefeulje opbrengste vektor, jy bepaal of jou handel strategie het gelei tot 'n positiewe abnormale terugkeer, en dit is wat julle streef na. Aanbevelings As jy nuut is tot Matlab, ek persoonlik stel voor dat jy jouself vertroud te maak met dit voldoende om hierdie eenvoudige strategie te implementeer voordat ontspan 'n paar van die vereenvoudigende aannames (soos uniform hou tydperk en periodisiteit) en voort te gaan om meer gesofistikeerde implementering. Weereens, wat ek wil beklemtoon is dat dit vereis dat jy baie gemaklik met Matlab en veral die verskillende maniere te wees om matrikse te manipuleer, wat 'n geruime tyd kan neem. As jy nie verwag om Matlab te gebruik vir jou internskap en wil resultate vinnig te kry, kan jy stap 1 in Excel doen in plaas daarvan, wat is vervelig, maar nie die geval vereis dat die (die moeite werd) aanvanklike belegging wat jy nodig het om te maak vir Matlab. Om vertroud te raak met Matlab, ek is seker jy het al die baie goeie dokumentasie wat daarmee gepaard gaan ontdek. Dit, vir my, is die enkele mees waardevolle hulpbron en waarskynlik meer nuttig as 'n meer finansies-spesifieke hulpbronne (waarmee ek sou wag totdat jy vertroud is met Matlab self is). Alle dis nodig om die normale opbrengs te bepaal is 'n OLS regressie en 'n rudimentêre begrip van bate pryse modelle. antwoord 30 Desember 14 aan 22: 20Strategy back testing Strategie back testing is 'n noodsaaklike instrument om te sien of jou strategie werk of nie. Back testing sagteware simuleer jou strategie op historiese data en bied 'n back testing verslag, wat jou toelaat om behoorlike handel stelsel analise uit te voer. Die 64-bis weergawe kan jy soveel data te laai as wat jy nodig het vir selfs die mees veeleisende back testing. Vir tegniese inligting oor hierdie funksie blik op die verwante Wiki bladsy. Akkuraatheid is die sleutel MultiCharts is 'n oplossing wat spesifiek vir strategie-ontwikkeling en back testing. Ons filosofie is dat die strategie back testing so realisties moet wees as die moderne tegnologie maak dit moontlik - dis hoekom gebruik ons ​​multi-threading en 64-bit-tegnologie. Minimale aannames te skep meer realistiese toets Selfs al geen benadering 100 perfekte kan wees, het ons alles gedoen om akkuraat te herskep verlede marktoestande en orde uitvoering vir strategie handel. Tipiese back testing enjins het 'n baie aannames en kortpaaie, wat lei tot onrealistiese toetsing en onbetroubare resultate. MultiCharts is 'n institusionele-vlak verhandelingsplatform wat aannames verminder en is van mening baie faktore. Moderne tegnologie vir 'n kragtige rekenaars Strategie back testing moet dikwels 'n baie data en sagteware wat in staat is van die verwerking van dit. Byna al die rekenaars nou funksie multi-core setups met baie van die geheue, sodat jy nodig het om voordeel te trek uit dit. Multi-threading beteken dat MultiCharts versprei baie take in verskillende cores, sodat hulle baie vinniger af te handel. 64-bis weergawe van MultiCharts kan jy soveel data te laai as pas in jou geheue vir analise - selfs jare en jare van bosluis data vir 'n gedetailleerde prysbewegings. Maak 'n regmerkie-vir-blok simulasie Ons noem hierdie funksie die Bar vergrootglas. Dit is noodsaaklik vir die verhoging van presisie tydens back testing. MultiCharts kan groter bars bou uit kleiner bars componentssecond en minuut uit bosluise, uur en dag bars uit minute. Jy kan presies prysbewegings in elke bar te herskep deur die gebruik van die Bar vergrootglas, wat groter bars sal bou uit kleiner komponente. Byvoorbeeld, een-uur bars het vier visuele pointsopen, hoog, laag, en naby. Die Bar vergrootglas kan onsigbaar laai minute wat die uur, en strategie sal backtested wees op 'n minuut-vir-minuut basis. Vra, uitnooi en handel pryse back testing in ag neem dat die werklike aankoop gebeur teen pryse, ware verkoop vra bod pryse. Dit maak ons ​​back testing simulasie so realisties as possible. Successful back testing van Algorithmic handel strategieë - Deel I Deur Michael Saal-Moore op 26 April 2013 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 Algorithmic 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 duiwel is altyd die besonderhede 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) te toets nuwe modelle van sekere mark verskynsels, soos transaksiekoste, order routing, latency, likiditeit of ander mark mikrostruktuur kwessies. Optimisation - 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 krommepassing of data-snuffel vooroordeel. Optimering vooroordeel is moeilik om te skakel as algoritmiese strategieë dikwels betrek baie parameters. Parameters 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 oppervlak 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 Look-Ahead Vooroordeel Kyk lig vooroordeel is opgeneem in 'n back testing stelsel vind 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 ons bereik tyd punt N, dan kyk lig vooroordeel voorkom indien data ingesluit vir enige punt NK, waar K0. 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 op Nk 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. Soos met optimization vooroordeel, moet 'n mens baie versigtig wees om sy bekendstelling vermy. Dit is dikwels die hoofrede waarom handel strategieë onderpresteer hul backtests aansienlik in lewende handel. 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 oorleef het 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 oorlewendes, net soos 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. 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 te noem sielkundige verdraagsaamheid vooroordeel omdat dit die kern van die probleem vang. 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 al is die backtests stel sodanige tydperke sal plaasvind. Die rede waarom ek het dit 'n vooroordeel genoem 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 eie 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 afgekom om 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 tegnologie stapel gehad. 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 forseer jou 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 olifant in die kamer 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 Koste - 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. Back testing sagteware Vergelyking 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 tegnologie stapel. 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 Spoed: 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 / Open Source 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 Spoed: 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. 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 alles in een 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, kan ek direk val in by C van 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 alleen gelaat te handel in die volgende paar artikels oor back testing 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 te neem te neem handel ruil. Ons sal strategie prestasiemeting te bespreek en uiteindelik sluit af met 'n voorbeeld strategie. 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. Verwante ArticlesStrategy Toets Need more info Terug-toetsing handel strategieë met Wealth-Lab Pro. Die handel strategieë en strategie toets funksie en handel seine wat gegenereer word deur die strategieë word vir opvoedkundige doeleindes en slegs as voorbeelde, en hulle moet nie gebruik word of staatgemaak om besluite te neem oor jou eie situasie te maak. Jy kan die strategie Toets parameters verander soos jy goeddink. Fidelity is nie aanneem, maak 'n aanbeveling vir of aansluit by enige handels - of beleggingstrategie of bepaalde sekuriteit. Die strategie toets funksie bied 'n hipotetiese berekening van hoe 'n sekuriteit of portefeulje van sekuriteite, onderhewig aan 'n voorbeeld handel strategie, sou die loop van 'n historiese tydperk. Slegs sekuriteite wat bestaan ​​tydens die historiese tydperk was en wat historiese pryse data is beskikbaar vir gebruik in die funksie Strategie toets. Die funksie het slegs 'n beperkte vermoë om hipotetiese handel kommissies te bereken, en dit nie rekening vir enige ander gelde of vir belasting gevolge wat kan ontstaan ​​as gevolg van 'n handel strategie. Jy moet nie aanneem dat Strategie Toets van 'n handel strategie enige aanduiding van hoe jou portefeulje van effekte, of 'n nuwe portefeulje van effekte sou vervul met verloop van tyd sal gee. Jy moet jou eie handel strategieë te kies wat gebaseer is op jou spesifieke doelwitte en toleransies risiko. Maak seker dat jy jou besluite van tyd tot tyd hersien om seker te maak hulle is nog steeds in ooreenstemming met jou doelwitte te bereik. Vorige prestasie is geen waarborg van toekomstige resultate. kopieer 1998 ndash 2012 FMR LLC. Alle regte reserved. Walk vorentoe Analise: Die gebruik van MATLAB om jou handel strategie Oorsig Baie handelaars, fondsbestuurders backtest, of beleggers mag vind dat hulle loop in beperking op hul handel idees backtest. Of die bestaande back testing raamwerke kan nie gebruik word om hul handel idees ten volle te toets. 'N toenemende kompleksiteit in die mark data, handel strategieë, en back testing raamwerke is 'n uitdagende probleem. In hierdie webinar, sal jy leer hoe MATLAB die prototipe en ontwikkeling van loop-forward ontleding kan ondersteun ten einde jou handel idees backtest, vanaf kry markdata, implementeer handel strategie, toets raamwerk, en prestasie analise. Jy sal sien hoe MATLAB bied 'n enkele platform wat die doeltreffende oplossing van loop-forward ontleding laat. Met MATLAB, kan jy effektief te verken, te ontleed en te visualiseer jou data. Deur middel van hierdie webinars, sal jy leer: Die uitdagende kwessies op die ontwikkeling van handel strategieë Verskillende tipes back testing raamwerk Verskillende tipes optimalisering metode wat gebruik kan word vir die optimalisering van handel parameters Die basiese paar handel strategie wat gebaseer is op Bollinger Band Die berekening van tegniese aanwysers en prestasie metrieke die belangrikste van parallel rekenaar vir scalability Dit webinar is vir finansiële spesialiste, kwantitatiewe navorsers en ontleders, handelaars, en portefeuljebestuurders wie se fokus is kwantitatiewe ontleding, handel strategie ontwikkeling, of aandele navorsing. Laat asseblief ongeveer 45 minute tot die aanbieding en QA bywoon. Ons sal die opname van hierdie webinar, so as jy dit kan nie vir die regstreekse uitsending, registreer en ons sal aan jou stuur 'n skakel om dit te sien op-aanvraag. Oor die aanbieder Kawee Numpacharoen is 'n rekenaar Finansies produk bestuurder by MathWorks. Voordat hy by MathWorks, Kawee gewerk by Phatra Securities as 'n senior vise-president in Ekwiteit en Derivatives Trading departement. Kawee verdien 'n B. S. in elektriese ingenieurswese aan King Mongkuts Institute of Technology Ladkrabang, M. S. in Finansiële Ingenieurswese aan die Universiteit van Michigan, Ann Arbor, en 'n Ph. D. in Wiskunde van Mahidol Universiteit. Produk Fokus Finansiële Gereedskap 8482 MATLAB 174 Parallel Computing Gereedskap 8482 Datafeed Gereedskap 8482


No comments:

Post a Comment