Saturday, October 8, 2016

Kwantitatiewe Handel Strategieë In R

FINC 621 Finansiële Wiskunde en modellering II (FINC 621) is 'n klas nagraadse vlak wat tans by Loyola Universiteit in Chicago aangebied tydens die winter kwartaal. FINC 621 verken onderwerpe in kwantitatiewe finansies, wiskunde en programmering. Die klas is prakties van aard en bestaan ​​uit beide 'n lesing en 'n laboratorium komponent. Die laboratoriums gebruik maak van die R programmeringstaal en studente word verwag om hul individuele opdragte aan die einde van elke klas voor te lê. Die einddoel van FINC 621 is om studente toe te rus met praktiese gereedskap wat hulle kan gebruik om te skep, model en ontleed eenvoudige handel strategieë. 'N paar nuttige R skakels Oor die Instrukteur Harry G. is 'n senior kwantitatiewe handelaar vir 'n HFT handel firma in Chicago. Hy het 'n master8217s graad in elektriese ingenieurswese en 'n master8217s graad in Finansiële Wiskunde aan die Universiteit van Chicago. In sy vrye tyd, Harry leer 'n gegradueerde vlak kursus in Kwantitatiewe Finansies aan die Loyola Universiteit in Chicago. Hy is ook die skrywer van Kwantitatiewe Trading met R. Quantocracy is een van die voorste Quant skakel aggregator webwerwe. Ek lees dit elke dag en ek raai jy check dit uit as jy wil om te bly op die top van die nuus in die quant blogosfeer: Welkom by jou GRATIS Algorithmic Trading hulpbron waar jy sal leer hoe om winsgewend algoritmiese handel strategieë te ontwikkel en kry 'n loopbaan in kwantitatiewe handel. Laaste Artikels deur Michael Saal-Moore op 28 September 2016 Dit is 'n kort boodskap om jou te laat QuantStart lesers weet dat Siek praat op 'n sekere gebeure in New York en Singapoer oor die volgende paar maande: Lees meer. Deur Michael Saal-Moore op 27 September 2016 In die vorige artikel in die reeks verborge Markov Models bekendgestel. Hulle is in die konteks van die breër klas van Markov Models bespreek. Hulle is gemotiveer deur die behoefte aan kwantitatiewe handelaars om die vermoë om regimes mark op te spoor ten einde aan te pas hoe hul Quant strategieë bestuur het. Lees meer. Deur Michael Saal-Moore op 21 September 2016 Voorheen op QuantStart ons die wiskundige onderbou van toestand modelle en Kalman filters beskou. sowel as die toepassing van die pykalman biblioteek om 'n paar van ETF's te dinamies aanpas 'n heining verhouding as 'n basis vir 'n gemiddelde terugkeer handel strategie. Lees meer. Deur Michael Saal-Moore op 6 September 2016 Die wêreld van kwantitatiewe finansies voort om te ontwikkel teen 'n vinnige tempo. Selfs in die laaste vier jaar van die bestaan ​​van hierdie werf die mark vir Quant werk het aansienlik verskuif. In hierdie artikel skets ons hierdie verskuiwings. Die raad oor wat waarskynlik is om te wees in die vraag in die volgende paar jaar sal van toepassing beide diegene wat nog in die onderwys, asook diegene dink vooruit na 'n loopbaan verandering wees. Lees meer. Deur Michael Saal-Moore op 5 September 2016 'n konsekwente uitdaging vir kwantitatiewe handelaars is die gereelde gedragsverandering van finansiële markte, dikwels skielik, as gevolg van die verandering van tydperke van die regering se beleid, regulatoriese omgewing en ander makro-ekonomiese gevolge. Sulke tye is die omgangstaal bekend as regimes mark en die opsporing van sulke veranderinge is 'n algemene, al is dit moeilik proses wat deur kwantitatiewe deelnemers aan die mark. Lees more. Beginner39s Guide to Kwantitatiewe Trading Deur Michael Saal-Moore op 26 Maart 2013 In hierdie artikel Im gaan jy kennis maak met 'n paar van die basiese konsepte wat 'n end-tot-end kwantitatiewe handel stelsel vergesel. Hierdie pos sal hopelik dien twee gehore. Die eerste sal wees individue probeer om 'n werk te kry by 'n fonds as 'n kwantitatiewe handelaar. Die tweede sal wees individue wat wil om te probeer en die opstel van hul eie kleinhandel algoritmiese handel besigheid. Kwantitatiewe handel is 'n uiters gesofistikeerde omgewing van Quant finansies. Dit kan 'n aansienlike bedrag van die tyd om die nodige kennis te verkry neem om 'n onderhoud te slaag of bou jou eie handel strategieë. Nie net dit nie, maar dit verg 'n uitgebreide programmering kundigheid, op die heel minste in 'n taal soos MATLAB, R of Python. Maar as die handel frekwensie van die strategie toeneem, sal die tegnologiese aspekte baie meer relevant. So wat vertroud is met C / C sal van kardinale belang wees. 'N Kwantitatiewe handel stelsel bestaan ​​uit vier hoofkomponente: Strategie Identifikasie - Vind 'n strategie, die ontginning van 'n voorsprong en besluit oor handel frekwensie Strategie back testing - Die verkryging van data, ontleding van strategie prestasie en die verwydering van vooroordele Execution System - 'n skakel na 'n makelaar, outomatisering van die handel en die vermindering van transaksiekoste Risikobestuur - Optimale kapitaal toekenning, weddenskap grootte / Kelly maatstaf en handel sielkunde Wel begin deur die neem van 'n blik op hoe om 'n handel strategie te identifiseer. Strategie Identifikasie Alle kwantitatiewe handel prosesse begin met 'n aanvanklike tydperk van navorsing. Dit navorsingsproses behels die vind van 'n strategie, sien of die strategie pas in 'n portefeulje van ander strategieë wat jy kan hardloop, die verkryging van enige data wat nodig is om die strategie te toets en probeer om die strategie vir hoër opbrengste en / of 'n laer risiko te optimaliseer. Jy sal nodig hê om faktor in jou eie kapitaal vereistes as die bestuur van die strategie as 'n kleinhandel handelaar en hoe enige transaksiekoste sal die strategie beïnvloed. In teenstelling met die algemene opvatting is dit eintlik baie maklik om winsgewend strategieë deur middel van verskeie openbare bronne te vind. Akademici gereeld teoretiese handelsresultate (al is dit meestal bruto van transaksiekoste) publiseer. Kwantitatiewe finansies blogs sal strategieë in detail bespreek. Handel tydskrifte sal 'n paar van die strategieë wat deur fondse te skets. Jy kan die vraag waarom individue en maatskappye is gretig om hul winsgewende strategieë te bespreek, veral wanneer hulle weet dat ander verdring die handel die strategie kan stop van die werk in die lang termyn. Die rede lê in die feit dat hulle die presiese parameters en tuning metodes wat hulle uit gedra het nie dikwels sal bespreek. Hierdie optimalisatie is die sleutel tot die draai 'n relatief middelmatige strategie in 'n hoogs winsgewende een. Trouens, een van die beste maniere om jou eie unieke strategieë te skep is om soortgelyke metodes te vind en dan uit te voer jou eie optimalisering proses. Hier is 'n klein lys van plekke om te begin soek na strategie idees: Baie van die strategieë wat jy sal kyk na sal in die kategorieë van gemiddelde-terugkeer en-tendens volgende / momentum val. A-gemiddelde terugkeer strategie is een wat poog om die feit dat 'n langtermyn-gemiddelde op 'n prys-reeks (soos die verspreiding tussen twee gekorreleer bates) te ontgin bestaan ​​en dat korttermyn afwykings van hierdie gemiddelde sal uiteindelik terugkeer. A momentum strategie poog om beide belegger sielkunde en 'n groot fonds struktuur ontgin deur aankoppelen 'n rit op 'n mark neiging, wat momentum kan versamel in een rigting, en volg die tendens totdat dit omkeer. Nog 'n baie belangrike aspek van kwantitatiewe handel is die frekwensie van die handel strategie. Lae frekwensie handel (LFT) verwys oor die algemeen na 'n strategie wat bates langer hou as 'n handel dag. Dienooreenkomstig, hoë frekwensie handel (HFT) verwys oor die algemeen na 'n strategie wat bates intraday hou. Ultrahoëfrekwensie handel (UHFT) verwys na strategieë wat bates vashou aan die orde van sekondes en millisekondes. As 'n kleinhandel praktisyn HFT en UHFT is seker moontlik, maar slegs met 'n gedetailleerde kennis van die handel tegnologie stapel en bestelboek dinamika. Ons sal nie bespreek hierdie aspekte aan enige groot mate in hierdie inleidende artikel. Een keer 'n strategie, of 'n stel van strategieë, is dit nou geïdentifiseer moet word getoets vir winsgewendheid op historiese data. Dit is die domein van back testing. Strategie back testing Die doel van back testing is om bewyse te verskaf dat die strategie geïdentifiseer deur bogenoemde proses is nuttig wanneer dit toegepas word om beide die historiese en out-of-monster data. Dit stel die verwagting van hoe die strategie sal optree in die werklike wêreld. Maar back testing is nie 'n waarborg van sukses, om verskeie redes. Dit is dalk die mees subtiele gebied van kwantitatiewe handel omdat dit behels talle vooroordele, wat versigtig oorweeg moet word en soveel uitgeskakel as moontlik. Ons sal die algemene vorme van vooroordeel insluitend blik lig vooroordeel te bespreek. oorlewing vooroordeel en optimalisering vooroordeel (ook bekend as-data Snooping vooroordeel). Ander gebiede van belang binne back testing sluit beskikbaarheid en netheid van historiese data, factoring in realistiese transaksiekoste en besluit op 'n robuuste back testing platform. Wel bespreek transaksiekoste verder in die artikel Execution Systems hieronder. Een keer 'n strategie is geïdentifiseer, is dit nodig om die historiese data waardeur toets uit te voer en, miskien, verfyning verkry. Daar is 'n beduidende aantal data verkopers in alle bateklasse. Hul koste oor die algemeen skaal met die kwaliteit, diepte en tydigheid van die data. Die tradisionele beginpunt vir die begin Quant handelaars (ten minste op die kleinhandel-vlak) is die stel van Yahoo Finansies gratis data te gebruik. Ek sal nie ingaan op verskaffers te veel hier, eerder wil ek konsentreer op die algemene kwessies wanneer jy met historiese data stelle. Die grootste kommer met historiese data sluit akkuraatheid / netheid, oorlewing vooroordeel en aanpassing vir korporatiewe aksies soos dividende en voorraad split: Akkuraatheid betrekking het op die algehele gehalte van die data - of dit enige foute bevat. Foute kan soms maklik om te identifiseer, soos met 'n skerp styging filter. wat sal kies uit verkeerde spykers in tydreeksdata en korrek vir hulle. Ander kere kan hulle baie moeilik om raak te sien wees. Dit is dikwels nodig om twee of meer verskaffers en dan check al hul data teen mekaar. Overlevingspensioen vooroordeel is dikwels 'n kenmerk van gratis of goedkoop datastelle. 'N datastel met oorlewing vooroordeel beteken dat dit nie bates wat nie langer verhandel bevat. In die geval van aandele beteken dit gedenoteer / bankrot aandele. Dit vooroordeel beteken dat enige-beurs strategie getoets op so 'n dataset waarskynlik sal beter presteer as in die werklike wêreld as die historiese wenners is reeds vooraf aangewys. Korporatiewe aksies sluit in logistieke aktiwiteite wat uitgevoer word deur die maatskappy gedra wat gewoonlik 'n stap-funksie verandering in die rou prys, wat nie moet ingesluit word in die berekening van opgawes van die prys veroorsaak. Aanpassings vir dividende en voorraad split is die algemene skuldiges. 'N proses bekend as terug aanpassing nodig het op elke een van hierdie aksies word uitgevoer. 'N Mens moet baie versigtig wees om nie te verwar n voorraad split met 'n ware opbrengs aanpassing. Baie 'n handelaar is gevang deur 'n korporatiewe aksie Ten einde 'n backtest prosedure is dit nodig om 'n sagteware platform gebruik om uit te voer. Jy het die keuse tussen toegewyde backtest sagteware, soos TradeStation, 'n numeriese platform soos Excel of MATLAB of 'n volledige persoonlike implementering in 'n programmeertaal soos Python of C. Ek sal nie te veel op TradeStation (of soortgelyke) woon, Excel of MATLAB, soos ek glo in die skep van 'n volledige in-huis tegnologie stapel (vir redes hieronder uiteengesit). Een van die voordele van om dit te doen, is dat die backtest sagteware en uitvoering stelsel styf geïntegreer kan word, selfs met 'n baie gevorderde statistiese strategieë. Vir HFT strategieë in die besonder, is dit noodsaaklik om 'n persoonlike implementering gebruik. Wanneer back testing 'n stelsel moet 'n mens in staat wees om te kwantifiseer hoe goed dit werk nie. Die industrie standaard statistieke vir kwantitatiewe is die maksimum drawdown en die Sharpe verhouding. Die maksimum drawdown kenmerkend van die grootste piek-tot-trog daling in die rekening aandele kurwe oor 'n bepaalde tydperk (gewoonlik jaarlikse). Dit is die mees dikwels aangehaal as 'n persentasie. LFT strategieë sal neig om groter onttrekkings as HFT strategieë, te danke aan 'n aantal statistiese faktore. 'N Historiese backtest sal die afgelope maksimum drawdown, wat is 'n goeie riglyn vir die toekoms drawdown prestasie van die strategie te wys. Die tweede meting is die Sharpe verhouding, wat heuristies word gedefinieer as die gemiddelde van die oortollige opbrengste gedeel deur die standaardafwyking van die oortollige opbrengste. Hier, oortollige opbrengste verwys na die terugkeer van die strategie bo 'n voorafbepaalde norm. soos die SP500 of 'n 3-maande Tesourie Bill. Let daarop dat geannualiseerde opbrengs is nie 'n maatstaf gewoonlik gebruik, omdat dit nie rekening hou met die wisselvalligheid van die strategie (in teenstelling met die Sharpe Ratio). Een keer 'n strategie backtested is en word geag vry van vooroordele te wees (in so veel as wat moontlik is), met 'n goeie Sharpe en die minimum beperk onttrekkings, dit is tyd om 'n uitvoering te bou. Uitvoering Systems 'n uitvoering stelsel is die manier waarop die lys van ambagte wat gegenereer word deur die strategie deur die makelaar gestuur en uitgevoer. Ten spyte van die feit dat die handel geslag kan word semi of selfs ten volle outomatiese, kan die uitvoering meganisme handleiding, semi-handleiding (dit wil sê 'n klik) wees of ten volle outomaties. Vir LFT strategieë, handleiding en semi-handleiding tegnieke is algemeen. Vir HFT strategieë is dit nodig om 'n ten volle outomatiese uitvoering meganisme, wat dikwels styf sal gepaard gaan met die handel kragopwekker (as gevolg van die interafhanklikheid van strategie en tegnologie) te skep. Die sleutel oorwegings wanneer die skep van 'n uitvoering stelsel is die koppelvlak tot die makelaars. minimalisering van transaksiekoste (insluitende kommissie, glip en die verspreiding) en divergensie van prestasie van die lewendige stelsel van backtested prestasie. Daar is baie maniere om te koppel aan 'n makelaar. Hulle wissel van 'n beroep op jou makelaar op die telefoon regdeur tot 'n ten volle outomatiese hoë-prestasie Application Programming Interface (API). Ideaal wat jy wil hê dat die uitvoering van jou ambagte so veel as moontlik te outomatiseer. Dit bevry jy om te konsentreer op verdere navorsing, sowel as jou toelaat om verskeie strategieë of selfs strategieë van hoër frekwensie hardloop (in werklikheid, HFT is in wese onmoontlik sonder outomatiese uitvoering). Die algemene back testing sagteware hierbo uiteengesit, soos MATLAB, Excel en TradeStation is goed vir 'n laer frekwensie, eenvoudiger strategieë. Maar sal dit nodig wees om 'n in-huis uitvoering stelsel wat geskryf is in 'n hoë werkverrigting taal te rig soos C om enige werklike HFT doen. As 'n staaltjie, in die fonds gebruik ek om in diens geneem word by, ons het 'n 10 minuut handel lus waar ons nuwe mark data elke 10 minute sou dit aflaai en dan ambagte te voer op grond van die inligting in dieselfde tyd raam. Dit was die gebruik van 'n optimale Python script. Vir iets nader minute - of tweede-frekwensie data, ek glo C / C sou meer ideaal wees. In 'n groter fonds is dit dikwels nie die domein van die quant handelaar om uitvoering te optimaliseer. Maar in kleiner winkels of HFT firmas, die handelaars die eksekuteurs en so 'n veel wyer skillset is dikwels wenslik. Hou dit in gedagte as jy wil in diens geneem word deur 'n fonds. Jou programmeringsvaardighede sal net so belangrik, indien nie meer so wees, as julle statistieke en ekonometrie talente Nog 'n groot probleem wat val onder die vaandel van die uitvoering is dié van transaksie koste vermindering. Daar is oor die algemeen drie komponente om transaksiekoste: Kommissies (of belasting), wat die gelde wat gehef word deur die makelaar, die uitruil en die SEC (of 'n soortgelyke regeringsorganisasies regulerende liggaam) glip, wat is die verskil tussen wat jy jou bestelling te wees bedoel is gevul by teenoor wat dit was eintlik gevul by versprei, wat is die verskil tussen die bod / vra prys van die sekuriteit verhandel. Let daarop dat die verspreiding is nie konstant en is afhanklik van die huidige likiditeit (dit wil sê die beskikbaarheid van koop / verkoop bestellings) in die mark. Transaksiekoste kan die verskil tussen 'n uiters winsgewende strategie met 'n goeie Sharpe verhouding en 'n uiters winsgewende strategie met 'n verskriklike Sharpe verhouding maak. Dit kan 'n uitdaging om transaksiekoste van 'n backtest korrek voorspel word. Afhangende van die frekwensie van die strategie, sal jy toegang tot historiese ruil data, wat bosluis data sal sluit vir bodpryse / vra nodig. Die hele spanne van kwantitatiewe is toegewyd aan die optimalisering van die uitvoering in die groter fondse vir hierdie redes. Kyk na die scenario waar 'n fonds moet 'n aansienlike hoeveelheid ambagte af te laai (waarvan die redes om dit te doen is baie en gevarieerde). Deur storting soveel aandele op die mark, sal hulle vinnig onderdruk die prys en kan optimale uitvoering nie te kry. Vandaar algoritmes wat drup voer bestellings op die mark bestaan, hoewel dan die fonds die risiko van glip loop. In aansluiting by wat, ander strategieë prooi op hierdie noodsaaklikhede en kan die ondoeltreffendheid te ontgin. Dit is die domein van fonds struktuur arbitrage. Die finale groot probleem vir die uitvoering stelsels betref verskil van strategie prestasie van backtested prestasie. Dit kan gebeur vir 'n aantal redes. Weve al bespreek blik lig vooroordeel en optimalisering vooroordeel in diepte, by die oorweging van backtests. Maar sommige strategieë nie maak dit maklik om te toets vir hierdie vooroordele voor ontplooiing. Dit gebeur in HFT mees oorwegend. Daar kan foute in die uitvoering stelsel sowel as die handel strategie self nie opgegaan nie wys op 'n backtest maar toon nie in lewende handel wees. Die mark kan onderhewig aan 'n regime verandering ná die ontplooiing van jou strategie gewees het. Nuwe regulatoriese omgewing, verandering beleggersentiment en makro-ekonomiese verskynsels kan alles lei tot verskille in die manier waarop die mark optree en dus die winsgewendheid van jou strategie. Risikobestuur Die laaste stukkie tot die kwantitatiewe handel legkaart is die proses van risikobestuur. Risiko sluit al die vorige vooroordele wat ons bespreek het. Dit sluit tegnologie risiko, soos bedieners mede-geleë op die uitruil skielik ontwikkeling van 'n hardeskyf wanfunksioneer. Dit sluit makelaars risiko, soos die makelaar besig om bankrot (nie so gek soos dit klink, gegewe die onlangse bang met MF Global). In kort is dit 'byna alles wat moontlik kan inmeng met die handel implementering, waarvan daar baie bronne. Hele boeke is gewy aan risikobestuur vir kwantitatiewe so ek wontt poog om lig op alle moontlike bronne van risiko hier. Risikobestuur sluit ook wat bekend staan ​​as optimale kapitaalstruktuur toekenning. wat is 'n tak van portefeulje teorie. Dit is die manier waarop kapitaal om 'n stel van verskillende strategieë en die ambagte binne daardie strategieë toegeken. Dit is 'n komplekse omgewing en maak staat op 'n nie-triviale wiskunde. Die industrie standaard waarvolgens optimale toewysing kapitaal en hefboom van die strategieë wat verband hou is die Kelly maatstaf genoem. Aangesien dit 'n inleidende artikel, sal nie ek woon op die berekening. Die Kelly maatstaf maak 'n paar aannames oor die statistiese aard van opbrengste, wat nie dikwels hou waar in die finansiële markte, sodat handelaars dikwels konserwatiewe wanneer dit kom by die implementering. Nog 'n belangrike komponent van risikobestuur is in die hantering van kinders eie sielkundige profiel. Daar is baie kognitiewe vooroordele wat in kan insluip om handel. Alhoewel hierdie is weliswaar minder problematies met algoritmiese handel as die strategie alleen oorgebly 'n Algemene vooroordeel is dié van verlies weersin waar 'n verlore posisie nie uit sal gesluit word as gevolg van die pyn van 'n verlies te realiseer. Net so kan winste te vroeg geneem word omdat die vrees vir die verlies van 'n reeds opgedoen wins te groot kan wees. Nog 'n algemene vooroordeel staan ​​bekend as relevante vooroordeel. Dit manifesteer wanneer handelaars te veel klem op die onlangse gebeure en nie op die langer termyn. Dan is daar natuurlik die klassieke denim emosionele vooroordele - vrees en gierigheid. Dit kan dikwels lei tot onder - of oor-hefboom, wat blow-up (dit wil sê die rekening gelykheid opskrif aan nul of erger) of verminder winste kan veroorsaak. Opsomming Soos gesien kan word, kwantitatiewe handel is 'n uiters komplekse, al is dit baie interessant, gebied van kwantitatiewe finansies. Ek het letterlik die oppervlak krap van die onderwerp in hierdie artikel en dit is reeds om eerder 'n lang Hele boeke en papiere is oor kwessies wat ek net 'n sin of twee gegee het teenoor geskryf. Om dié rede, voordat hulle aansoek doen vir kwantitatiewe fonds handel werk, is dit nodig 'n beduidende bedrag van grondwerk studie uit te voer. Op die heel minste wat jy sal 'n uitgebreide agtergrond in statistiek en ekonometrie, met 'n baie ondervinding in die implementering nodig, via 'n programmeertaal soos MATLAB, Python of R. Vir meer gesofistikeerde strategieë op die hoër frekwensie einde, jou vaardigheid stel waarskynlik om Linux-kern verandering, C / C, vergadering programmering en netwerk latency optimalisering sluit. As jy belangstel in 'n poging om jou eie algoritmiese handel strategieë te skep is, sou my eerste voorstel word goed in die ontwikkeling te kry. My voorkeur is om soveel as moontlik van die data haai, strategie backtester en uitvoering te bou deur jouself as moontlik. As jou eie kapitaal is op die spel, wouldnt jy slaap beter in die nag om te weet dat jy ten volle jou stelsel getoets en is bewus van die slaggate en veral kwessies Uitkontraktering hierdie na 'n verskaffer, terwyl potensieel spaar tyd in die kort termyn, kan uiters wees duur in die lang termyn. 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 verskansing funds. Model n Kwantitatiewe Trading Strategie in R QuantInsti Fakulteit QuantInsti is een van asias pionier Algoritme Trading Navorsing en Opleiding Institute gefokus op die voorbereiding van finansiële markte professionele vir die kontemporêre veld van Algorithmic en High Frequency Trading. QuantInsti instituut ontwikkel die kurrikulum vir die asias eerste Uitvoerende Program in Algorithmic Trading (E-PAT) in 2009. As 'n inisiatief van die finansiële markte professionele persone met sterre akademiese en professionele kwalifikasies, die program het ten doel om die dringende eise vir hoogs gespesialiseerde vaardigheid stelle vervul 'n potensieel winsgewende domein. QuantInsti hy het die deure na globale deelnemers in 2012 deur die instelling van virtuele klaskamers vir sy vlagskip E-PAT natuurlik en gesien deelname van alle bewoonde vastelande sedertdien. Natuurlik beskrywing R word algemeen gebruik deur ontleders en handelaars regoor die wêreld om kwantitatiewe handel strategieë wat met die hand of deur middel van program handel uitgevoer kan word ontwikkel. Dit is 'n inleidende kursus vir beginners in R te kry vertroud gemaak met 'n handel strategie en ervaring kodering n tegniese aanwyser in R. Jy sal tegniese terme wat verband hou met 'n handel strategie te leer, te werk met data. tables in R en die insette data te manipuleer skep handel seine en wins-en-verlies kolomme. Jy sal ook leer oor die optimalisering van parameters om in staat wees om die wins te maksimeer. Hierdie kursus is vir almal wat 'n belang in Algorithmic handel en wil om te begin Geen vorige kennis word vereis 1 Inleiding tot R vir verhandeling Kry vertroud is met die nuwe koel taal van die finansiële ontleders: R Hierdie hoofstuk is om jou toe te rus met die basiese programmeringsvaardighede in R voordat ons voortgaan om strategie te skryf. Jy sal baie tegnieke leer op 'n interaktiewe mode, vereis dat jy jou eie een-twee lyne van kodes te skryf in elke oefening. Hierdie hoofstuk dek lees van 'n data. table, die skep van nuwe kolomme in die tabel, die berekening van opgawes deur verskillende metodes, lus-funksies, voorwaardelike funksies en plot van die datastel. 2 Kode n basiese handel strategie In hierdie hoofstuk sal ons werk met 'n monster dataset, wat die prys van 'n voorraad en sy beste koop en beste verkoop prys in die mark te eniger tyd t. Jy sal leer om 'n eenvoudige strategie wat gebaseer is op prysbewegings van die voorraad te skryf. Leer om handel seine op te wek hoe om te besluit oor die handel hoeveelheid en verhandelingsprys te plaas bestellings. Ten slotte, leer om jou strategie te ontleed wat gebaseer is op die opgehoopte wins en verlies. Gebruik R as 'n statistiese hulpmiddel om jou eerste ten volle funksionele programmeringskode wat outomaties hierdie take verrig en gee jou die finale uitset skryf. 3 Skep 'n tegniese aanwyser Pas die kennis van vorige hoofstukke om 'n meer gesofistikeerde handel strategie wat gebaseer is op Point Syfers skryf. Skep 'n tegniese aanwyser in jou strategie om jou uitset te verbeter. Jy sal leer om jou strategys opbrengste te verbeter deur die verandering van die insette parameters. Vandaar, jou eerste stap in die rigting optimalisering van 'n handel strategie te neem nie. Na hierdie hoofstuk sal die kompleksiteit wat betrokke is by die skep van kwantitatiewe handel strategieë te waardeer en sal toegerus wees met kennis en vaardighede wat nodig is om jou eie handel strategieë in RArchive skryf vir die handel strategieë Kategorie Wanneer die toets van handel strategieë 'n gemeenskaplike benadering is om die aanvanklike datastel verdeel in in steekproefdata: die deel van die data wat ontwerp is om die model en uit steekproefdata kalibreer: die deel van die wat gebruik word om die kalibrasie bekragtig en te verseker dat die prestasie geskep in voorbeeld sal weerspieël word in die werklike wêreld data. As 'n reël sowat 70 van die aanvanklike data kan gebruik word vir kalibrasie (dit wil sê in voorbeeld) en 30 vir validering (dit wil sê uit monster). Dan is 'n vergelyking van die in en uit steekproefdata help om te besluit of die model is sterk genoeg. Hierdie pos het ten doel om te gaan 'n stap verder en bied 'n statistiese metode om te besluit of die uit steekproefdata is in lyn met wat geskep is in die monster. In die grafiek hieronder die blou gebied verteenwoordig die uit monster prestasie vir een van my strategieë. 'N Eenvoudige visuele inspeksie toon 'n goeie passing tussen die binne en buite monster prestasie, maar watter mate van vertroue moet ek in hierdie In hierdie stadium nie veel en dit is die probleem. Wat werklik nodig is 'n maatstaf van ooreenkoms tussen die binne en buite monster datastelle. In statistiese terme kan dit vertaal word as die waarskynlikheid dat die in en uit van die monster prestasie syfers kom uit dieselfde verspreiding. Daar is 'n nie-parametriese statistiese toets wat presies beteken dit: die Kruskall-Wallis toets. 'N Goeie definisie van hierdie toets kan gevind word op R-Tutor 8220A versameling van data monsters is onafhanklik indien hulle vandaan kom nie verband hou bevolkings en die monsters nie mekaar beïnvloed. Die gebruik van die Kruskal-Wallis toets. ons kan besluit of die populasieverdelings identies sonder dat hulle die veronderstelling om die normale distribution.8221 Die bykomende voordeel van hierdie toets is nie die aanvaarding van 'n normale verspreiding volg. Dit bestaan ​​ander toetse van dieselfde aard wat kan inpas in daardie raamwerk. Die Mann-Whitney-Wilcoxon-toets of die Kolmogorov-Smirnov toets sou perfek pas by die raamwerk beskryf hier egter dit is buite die bestek van hierdie artikel om die voor - en nadele van elk van hierdie toetse te bespreek. 'N Goeie beskrywing saam met R voorbeelde kan hier gevind word. Here8217s die kode gebruik om die grafiek hierbo en die ontleding te genereer: In die voorbeeld hierbo die in die monster tydperk langer as die uit monster tydperk dus ek lukraak geskep 1000 deelversamelings van die in steekproefdata elkeen van hulle met dieselfde lengte as die uit van steekproefdata. Dan getoets Ek elkeen monster subset teen die uit steekproefdata en ek aangeteken die p-waardes. Hierdie proses skep nie 'n enkele p-waarde vir die Kruskall-Wallis-toets, maar 'n verspreiding wat die ontleding sterker. In hierdie voorbeeld is die gemiddelde van die p-waardes is ver bo nul (0,478) wat aandui dat die nulhipotese aanvaar moet word: daar is 'n sterk bewyse dat die in en uit steekproefdata is afkomstig van dieselfde verspreiding. Soos gewoonlik wat aangebied word in hierdie pos is 'n speelding byvoorbeeld dat slegs krap die oppervlak van die probleem en moet aangepas word om individuele behoeftes. Maar ek dink dit stel 'n interessante en rasionele statistiese raamwerk uit monster resultate te evalueer. Hierdie pos is geïnspireer deur die volgende twee vraestelle: Vigier Alexandre, Chmil Swann (2007), uitwerking van verskeie Optimization funksies op die Out of Voorbeeld Performance van Geneties Ontwikkel handel strategieë, voorspelling Finansiële Markte Konferensie Vigier Alexandre, Chmil Swann (2010), 'n optimalisering proses te verbeter in / uit monster konsekwentheid, 'n beurs geval, JP Morgan Cazenove Equity Kwantitatiewe konferensie in Londen Oktober 2010 fidlr is 'n RStudio invoegsel wat ontwerp is om die finansiële data te laai proses van verskeie verskaffers te vereenvoudig. Hierdie aanvanklike weergawe is 'n wrapper rondom die funksie getSymbols in die quantmod pakket en net Yahoo, Google, Fred en site OANDA word ondersteun. Ek sal waarskynlik funksies by te voeg met verloop van tyd. Soos gewoonlik met die dinge net 'n soort herinnering: 8220THE SAGTEWARE WORD 8220AS IS8221, SONDER WAARBORG VAN ENIGE KIND82308221 Hoe om te installeer en te gebruik fidlr Jy kan die invoegsel / pakket te kry van sy GitHub bewaarplek hier (Ek sal dit registreer op CRAN later) die installering van die invoegsel. Daar is 'n uitstekende handleiding om RStudio addins hier installeer. Sodra die invoegsel geïnstalleer moet word in die menu Addin. Net gekies fidlr in die spyskaart en 'n venster soos hieronder uitgebeeld moet verskyn. Kies 'n data verskaffer van die die Bron dropdown menu. Kies 'n tydperk van die spyskaart Datum Tik die simbool wat jy wil in die instrument tekskassie om af te laai. Om 'n paar simbole aflaai gaan net die simbole deur kommas geskei. Gebruik die Radio knoppies om te kies of jy wil hê dat die instrument te laai in 'n CSV-lêer of in die globale omgewing. Die CSV sal gered word in die werk gids en daar sal 'n CSV-lêer per instrument wees. Press hardloop na die data te kry of naby die invoegsel Fout boodskappe en waarskuwings sluit word hanteer deur die onderliggende pakkette (quantmod en blink) en kan gelees word vanaf die konsole Dit is 'n heel eerste weergawe van die projek so moenie verwag perfeksie, maar hopelik sal dit beter met verloop van tyd te kry. Meld asseblief enige kommentaar, voorstelle, bug etc8230 om: thertradergmail Doen kwantitatiewe navorsing impliseer 'n baie data crunc en 'n mens moet skoon en betroubare data om dit te bereik. Wat is werklik nodig is skoon data wat maklik toeganklik is (selfs sonder 'n internet konneksie). Die mees doeltreffende manier om dit te doen vir my is om 'n stel van CSV lêers in stand te hou. Dit is duidelik dat hierdie proses kan op baie maniere hanteer word, maar ek het gevind dat baie doeltreffende en eenvoudige oortyd om 'n gids waar ek slaan en update CSV lêers in stand te hou. Ek het 'n CSV-lêer per instrument en elke lêer is vernoem na die instrument wat dit bevat. Die rede waarom ek dit doen is tweeledig: Eerstens, ek don8217t wil (prys) data te laai vanaf Yahoo, Google etc8230 elke keer as ek wil 'n nuwe idee te toets, maar meer belangrik as ek geïdentifiseer en 'n probleem vasgestel, don8217t ek wil hê doen dit weer die volgende keer wat ek dieselfde instrument nodig. Eenvoudige, maar baie effektief tot dusver. Die proses word opgesom in die onderstaande grafiek. In alles wat volg, ek neem aan dat die data vandaan kom Yahoo. Die kode sal moet verander om data van Google het, Quandl etc8230 Daarbenewens bied ek die proses van opdatering daaglikse prys data. Die opstel sal verskillend wees vir hoër frekwensie data en ander tipe dataset (dit wil sê anders as pryse) wees. 1 8211 Aanvanklike data aflaai (listOfInstruments. R amp historicalData. R) Die lêer listOfInstruments. R is 'n lêer met net die lys van alle instrumente. As 'n instrument isn8217t deel van my lys (maw geen CSV in my gids data) of as jy dit doen vir die heel eerste keer wat jy het om die aanvanklike historiese datastel te laai. Die voorbeeld hieronder afgelaai 'n stel van ETF daaglikse pryse van Yahoo Finansies terug tot Januarie 2000 en die data op te slaan in 'n CSV-lêer. 2 8211 Update bestaande data (updateData. R) Die onderstaande kode begin van bestaande lêers in die toegewyde gids en updates almal een na die ander. Ek loop gewoonlik hierdie proses alledaagse behalwe wanneer I8217m op vakansie. Om 'n nuwe instrument te voeg, net hardloop stap 1 hierbo vir nog hierdie instrument. 3 8211 Skep 'n bondel lêer (updateDailyPrices. bat) Nog 'n belangrike deel van die werk is die skep van 'n bondel lêer wat die opdatering proses hierbo (I8217m n Windows gebruiker) automatiseert. Dit vermy die opening van R / RStudio en hardloop die kode van daar af. Die kode hieronder is geplaas op 'n bat lêer (die pad moet gewysig word met die reader8217s opstel). Let daarop dat ek 'n uitset lêer (updateLog. txt) bygevoeg om die uitvoering te spoor. bo die proses is baie eenvoudig, want dit net beskryf hoe om die daaglikse prys data te verfris. I8217ve gebruik dit vir 'n rukkie en dit is baie glad werk vir my tot dusver. Vir meer gevorderde data en / of hoër frekwensies, kan dinge baie moeiliker te kry. Soos gewoonlik enige kommentaar verwelkom Wanneer dit kom by die bestuur van 'n portefeulje van aandele teenoor 'n maatstaf van die probleem is baie anders as die definisie van 'n absolute opbrengs strategie. In die voormalige n mens moet meer aandele besit as in die latere waar geen aandele glad gehou kan word indien daar nie goed genoeg geleentheid. Die rede daarvoor is die dop fout. Dit word gedefinieer as die standaardafwyking van die portefeulje opbrengs minus die maatstaf terugkeer. Die minder aandele gehou teen 'n maatstaf hoe hoër die navolgingsfout (bv 'n hoër risiko). Die analise wat volg is grootliks geïnspireer deur die boek 8220Active Portefeulje Management8221 deur Grinold amp Kahn. Dit is die Bybel vir almal wat belangstel in die bestuur van 'n portefeulje teen 'n maatstaf. Ek raai enigiemand met 'n belangstelling in die onderwerp om die boek van die begin tot die einde te lees. It8217s baie goed geskryf en lê die fondamente van sistematiese aktiewe portefeuljebestuur (Ek het geen affiliasie met die redakteur of die skrywers). 1 8211 faktorontleding Hier we8217re probeer om so akkuraat rang as moontlik die aandele in die belegging heelal op 'n vooruitprysingsgrondslag terugkeer basis. Baie mense het met baie instrumente en talle variant van die instrumente is ontwikkel om dit te bereik. In hierdie post fokus ek op twee eenvoudige en wyd gebruik statistieke: Inligting-koëffisiënt (IC) en Quantiles Return (QR). 1.1 8211 Inligting koëffisiënt Die horison vir die voorwaartse terugkeer moet gedefinieer word deur die ontleder en 'n funksie van die strategy8217s omset en die alfaverval it8217s (hierdie is die onderwerp van uitgebreide navorsing was). Dit is duidelik dat IC moet so hoog as moontlik in absolute terme nie. Vir die ywerige leser, in die boek deur Grinold amp Kahn n formule met 'n skakel Inligting verhouding (IR) en IC gegee: met breedte synde die aantal onafhanklike verbintenis (ambagte). Hierdie formule is bekend as die fundamentele reg van aktiewe bestuur. Die probleem is dat dikwels, definieer breedte akkuraat is nie so maklik soos dit klink. 1.2 8211 Quantiles Return Ten einde 'n meer akkurate skatting van die faktor voorspellende krag het it8217s nodig om 'n stap verder en groep aandele gaan deur kwantielverhouding van faktor waardes dan analiseer die gemiddelde vorentoe terugkeer (of enige ander sentrale neiging metrieke) van elk van dié Quantiles. Die nut van hierdie instrument is eenvoudig. 'N Faktor kan 'n goeie IC het maar sy voorspellende krag sou word beperk tot 'n klein aantal aandele. Dit is nie goed as 'n portefeuljebestuurder sal aandele in die ganse heelal te kies ten einde sy navolgingsfout beperking te voldoen. Goeie Quantiles terugkeer word gekenmerk deur 'n eentonige verhouding tussen die individu Quantiles en vorentoe opbrengste. Al die aandele in die SampP500 indeks (ten tyde van die skryf). Dit is duidelik dat daar 'n oorlewing skip vooroordeel: die lys van aandele in die indeks het aansienlik tussen die begin en die einde van die monster tydperk verander egter it8217s goed genoeg vir net illustrasie doeleindes. Die onderstaande kode afgelaai individuele aandele pryse in die SampP500 tussen Januarie 2005 en vandag (dit neem 'n rukkie) en draai die rou pryse in opbrengs oor die afgelope 12 maande en die laaste maand. Die voormalige is ons faktor, laasgenoemde sal gebruik word as die vorentoe terugkeer meet. Hier is die kode te bereken Inligting koëffisiënt en Quantiles terug. Let daarop dat ek gebruik kwintiele in hierdie voorbeeld, maar enige ander metode groepering (terciles, desiele etc8230) gebruik kan word. dit hang af van die steekproefgrootte, wat jy wil om op te vang en die weer wat jy wil om 'n breë oorsig te hê of fokus op die verspreiding sterte. Vir die beraming van opbrengste binne elke kwintiel, het mediaan is gebruik as die sentrale neiging beramer. Hierdie maatreël is baie minder sensitief vir uitskieters as rekenkundige gemiddelde. En ten slotte die kode om die Quantiles Return grafiek produseer. 3 8211 Hoe om die inligting hierbo in die grafiek hierbo Q1 ontgin is laagste afgelope 12 maande terug te keer en V5 hoogste. Daar is 'n byna monotoniese verhoging in die Quantiles terugkeer tussen Q1 en V5 wat duidelik aandui dat aandele val in V5 oortref dié val in Q1 met sowat 1 per maand. Dit is baie belangrik en kragtig vir so 'n eenvoudige faktor (nie regtig 'n verrassing though8230). Daarom is daar 'n groter kans om die indeks te klop deur overweighting die aandele val in V5 en underweighting diegene val in Q1 relatief tot die maatstaf. 'N IK van 0,0206 dalk nie dat 'n groot deel op sigself maar it8217s aansienlik verskil van 0 en dui op 'n goeie voorspellende krag van die afgelope 12 maande terug te keer algehele. Formele betekenis toetse geëvalueer kan word, maar dit is buite die bestek van hierdie artikel. 4 8211 Praktiese beperkings Bogenoemde raamwerk is uitstekend vir die evaluering van beleggings factor8217s gehalte maar daar is 'n aantal praktiese beperkings wat vir implementering werklike lewe aangespreek moet word: Rebalancing. In die beskrywing hierbo, it8217s aanvaar dat aan die einde van elke maand die portefeulje is ten volle herbalanseer. Dit beteken dat alle aandele val in Q1 is ondergewig en al aandele val in V5 oorgewig relatief tot die maatstaf. Dit is nie altyd moontlik om praktiese redes: sommige aandele kan uitgesluit word van die belegging heelal, is daar beperkings op die industrie of sektor gewig, is daar beperkings op omset etc8230 transaksiekoste. Dit het nie in ag in die ontleding hierbo geneem word en dit is 'n ernstige rem om die werklike lewe implementering. Omset oorwegings word gewoonlik geïmplementeer in die werklike lewe in 'n vorm van straf op faktor gehalte. Oordragkoëffisiënt. Dit is 'n uitbreiding van die fundamentele reg van aktiewe bestuur en dit ontspan die aanname van Grinold8217s model wat bestuurders in die gesig staar nie beperkinge wat hulle verhoed om hul beleggings insigte direk vertaal in portefeulje verbintenis. En ten slotte, I8217m verstom oor wat bereik kan word in minder as 80 reëls van die kode met R8230 Soos gewoonlik enige kommentaar verwelkom ek kom oor 'n baie strategieë op die blogosfeer paar interessante sommige is 'n mors van tyd, maar die meeste deel 'n gemeenskaplike kenmerk : mense ontwikkel wat strategieë doen hul huiswerk in die tweede kwartaal van die ontleding van die opbrengs, maar veel minder aandag gegee aan die risiko kant sy ewekansige natuur. I8217ve gesien kommentaar soos 8220a 25 drawdown in 2011, maar 'n uitstekende opbrengs overall8221. Wel my weddenskap is dat niemand op aarde sal laat jy ervaar 'n 25 verlies met hul geld (tensy spesiale ooreenkomste in plek is). In die hedge fund wêreld mense het 'n baie lae toleransie vir onttrekking. Oor die algemeen, as 'n nuwe handelaar in 'n heining fonds, in die veronderstelling dat jy kom met geen reputasie, jy het baie min tyd om jouself te bewys. Jy moet geld maak uit dag 1 en aanhou om dit te doen vir 'n paar maande voordat jy 'n bietjie van geloofwaardigheid te verkry. Eerste let8217s sê jy het 'n slegte begin en jou geld te verloor aan die begin. Met 'n 10 drawdown you8217re beslis uit, maar selfs met 'n 5 drawdown die kanse te sien hoe jou toekenning verminder is baie hoog. Dit het beduidende implikasies op jou strategieë. Let8217s aanvaar dat as jy verloor 5 jou toekenning is gedeel deur 2 en jy kom terug na jou aanvanklike toekenning slegs wanneer jy weer verby die hoogwatermerk (bv die onttrekking kom terug na 0). In die onderstaande grafiek gesimuleerde ek die eksperiment met een van my strategieë. Jy begin beurs in 1 Junie 2003 en alles goed gaan, totdat 23 Julie 2003 waar jou drawdown kurwe treffers die -5 drumpel (1). Jou toekenning gesny met 50 en jy don8217t oor die hoogwatermerk vlak terug tot 5 Desember 2003 (3). As jy die toekenning onveranderd gehou het, sou die hoogwatermerk vlak is gekruis het op 28 Oktober 2003 (2) en teen die einde van die jaar sal jy meer geld gemaak het. Maar let8217s stoot die redenasie 'n bietjie verder. Steeds op die grafiek hierbo, aanvaar jy regtig ongelukkig en jy begin handel in die rigting van die middel van Junie 2003. Jy slaan die 10 drawdown limiet deur die begin van Augustus en you8217re waarskynlik uit die spel. Jy sal begin vroeg in Augustus jou toekenning sal nie by almal gesny en beland jy doen 'n goeie jaar in net 4 volle maande van die saak. In dié twee voorbeelde niks het verander, maar jou begin date8230. Die handel sukses van enige individu het 'n vorm van afhanklikheid pad en daar is nie veel wat jy daaraan kan doen nie. Maar jy kan die grootte van 'n strategy8217s drawdown beheer en dit moet met groot sorg word. 'N Portefeulje moet diversifiseer in elke moontlike aspek: bateklasse, beleggingstrategieë, handel frekwensies etc8230. Van daardie perspektief risiko is jou 8220survival variable8221. As dit behoorlik bestuur word jy 'n kans om te bly in die spel lank genoeg om die potensiaal van jou strategie te verwesenlik. Anders sal jy won8217t daar volgende maand om te sien wat gebeur nie. Soos gewoonlik enige kommentaar verwelkom Dit is 'n opvolg op my vorige post 8220A Eenvoudige Blink App vir monitering handel strategieë 8220. Ek het ook 'n paar verbeterings wat die jeug 'n bietjie beter te maak (ten minste vir my). Hier is die lys van nuwe funksies: 'n monster CSV-lêer (die een wat die rou data bevat) 'n 8220EndDate8221 drop down box sodat aan die einde van die tydperk spesifiseer. A 8220Risk8221 bladsy bevat 'n VaR analise en 'n grafiek van die ergste prestasie oor verskeie horisonne A 8220How To8221 bladsy verduidelik hoe om te gebruik en op maat van die jeug om individuele behoeftes Ek het ook die jeug heeltemal self vervat. Dit is nou beskikbaar as 'n alleenstaande produk en daar is geen rede R / RStudio op jou rekenaar geïnstalleer om dit te doen te hê. Dit kan afgelaai word vanaf die R Trader Google Drive rekening. Hierdie weergawe van die app loop met behulp van draagbare R en draagbare Chrome. Vir die ywerige leser, hierdie skakel verduidelik in volle besonderhede hoe om 'n blink artikels in 'n desktop app pakket (Windows net vir nou). 1 8211 Hoe om te installeer amp hardloop die app op jou rekenaar Skep 'n spesifieke gids Pak die bevat van die Zip lêer op dat nuwe gids. Verander die paaie in die runShinyApp lêer na jou setings ooreenstem met die app hardloop, jy moet net die bekendstelling van die lêer run. vbs. Ek het ook 'n ikoon (RTraderTradingApp. ico) moet jy 'n kortpad op jou lessenaar te skep. Die app gebruik as insette verskeie CSV lêers (een vir elke strategie). Elke lêer het twee kolomme: datum en daaglikse opbrengs. Daar is 'n voorbeeld van so 'n lêer in die GitHub repository. Die kode is in wese gemaak van 3 lêers. ui. R: beheer die uitleg en voorkoms van die jeug server. R: bevat die instruksies wat nodig is om die jeug te bou. Jy kan soveel strategieë te laai as jy so lank as wat die ooreenstemmende CSV het die reg formaat (sien onder) wil. shinyStrategyGeneral. R: laai die vereiste pakkette en loods die jeug sit ui. R en server. R lêer in 'n aparte gids In die server. R lêer verander die inputPath, inputFile en keepColumns parameters om jou stellings te pas. Die eerste twee is selfverduidelikend die derde een is 'n lys van kolom name in die CSV. Hou net die datum en daaglikse opbrengs. 3 8211 Hoe om by te voeg 'n handel strategie Skep die ooreenstemmende CSV-lêer in die regte gids Skep 'n nuwe insette in die data reaktiewe funksie (binne die server. R lêer) Voeg 'n ekstra element by die keuse parameter in die eerste selectInput in die sidebarPanel (binne die ui. R lêer). Die element8217s naam moet ooreenstem met die naam van die nuwe insette hierbo. 4 8211 Hoe om 'n handel strategie te verwyder Verwyder die insette in die data reaktiewe funksie wat ooreenstem met die strategie wat jy wil verwyder (binne die server. R lêer) Verwyder die element in die keuse parameter in die eerste selectInput in die sidebarPanel wat ooreenstem met die strategie wat jy wil verwyder (binne die lêer ui. R). Voel asseblief vry om kontak te kry moet jy 'n voorstel. In 'n vorige post het ek hoe om R, Knitr en LaTeX gebruik om 'n sjabloon strategie verslag te bou. Hierdie pos gaan 'n stap verder deur die ontleding interaktiewe. Behalwe die interaktiwiteit, die Blink App los ook twee probleme: ek het nou toegang tot al my handel strategieë uit 'n enkele punt ongeag die instrument verhandel. Tesame met die blink interaktiwiteit, dit maak dit makliker vergelyking. Ek kan fokus op 'n spesifieke tydperk. Die kode wat in hierdie pos is beskikbaar op 'n Yeast / GitHub repository. Daar is in wese 3 lêers. ui. R. beheer die uitleg en voorkoms van die jeug. server. R. bevat die instruksies wat nodig is om die jeug te bou. Dit laai die data en formaat nie. Daar is 'n CSV-lêer per strategie wat elk ten minste twee kolomme: datum en terugkeer met die volgende formaat: (82202010-12-228243,82210.048221). Jy kan soveel strategieë te laai as jy so lank as wat hulle die reg formaat wil. shinyStrategyG eneral. R. laai die vereiste pakkette en loods die jeug. Hierdie inligting is waarskynlik ver van volmaak en ek sal beslis verbeter in die toekoms. Voel vry om in kontak indien u enige voorstel. Baie dankie aan die RStudio / Blink span vir so 'n groot hulpmiddel. Die vraag mens moet altyd vra hom / haarself by die gebruik van tegniese aanwysers is wat 'n objektiewe kriteria om aanwysers parameters te kies sou wees (bv waarom die gebruik van 'n 14 dae RSI eerder as 15 of 20 dae). Genetiese algoritmes (GA) is uiters geskik gereedskap om daardie vraag te beantwoord. In hierdie post I8217ll jou wys hoe om die opstel van die probleem in R. Voordat ek gaan die gewone herinnering: Wat ek teenwoordig is in hierdie pos is net 'n speelding voorbeeld en nie 'n uitnodiging om te belê. Dit is nie 'n finale strategie óf maar 'n ondersoek idee dat moet verder nagevors, ontwikkel en op maat van individuele behoeftes. Wat is genetiese algoritmes Die beste beskrywing van GA ek afgekom het kom uit Cybernatic Trading 'n boek deur Murray A. Ruggiero. 8220Genetic Algoritmes is uitgevind deur John Holland in die middel van 1970 tot hard optimeringsprobleme op te los. Hierdie metode maak gebruik van natuurlike seleksie, oorlewing van die fittest8221. Die algemene proses volg die volgende stappe: enkodeer die probleem in chromosome Die gebruik van die kodering, 'n fiksheid funksie vir gebruik ontwikkel vir die evaluering van elke chromosome8217s waarde in 'n gegewe probleem inisialiseer 'n bevolking van chromosome Evalueer elke chromosoom in die bevolking Skep nuwe chromosome deur paring twee chromosome. Dit word gedoen deur te demp en recombining twee ouers aan twee kinders (ouers lukraak gekies, maar bevooroordeeld deur hul fiksheid) Evalueer die nuwe chromosoom Verwyder 'n lid van die bevolking wat minder fiks as die nuwe chromosoom vorm en voeg die nuwe chromosoom in die bevolking . As die stop kriteria bereik word (maksimum aantal generasies, fiksheid kriteria is goed enough8230) dan terug die beste chromosoom alternatiewelik gaan na Stap 4 Uit 'n handel perspektief GA is baie nuttig, want hulle is goed in die hantering van hoogs-lineêre probleme. Maar hulle toon 'n paar nare eienskappe wat noemenswaardig is: Oor pas: Dit is die grootste probleem en it8217s af na die ontleder by die opstel van die probleem op 'n manier dat dit die risiko verminder. Rekentyd. As die probleem behoorlik isn8217t gedefinieer, kan dit uiters lank om 'n ordentlike oplossing te bereik en die kompleksiteit verhoog eksponensieel met die aantal veranderlikes. Vandaar die noodsaaklikheid om versigtig te kies die parameters. Daar is 'n hele paar R pakkette wat handel oor GA, het ek gekies om die mees algemene een gebruik: rgenoud Daily sluitingstyd pryse vir die meeste vloeistof ETF van Yahoo Finansies gaan terug tot Januarie 2000. Die in monster tydperk strek van Januarie 2000 tot Desember 2010. Die Buite monster tydperk begin op Januarie 2011. die logika is soos volg: die fiksheid funksie is geskik oor die in die monster tydperk om 'n stel van optimale parameters vir die gekose tegniese aanwysers verkry. Die prestasie van die aanwysers is dan geëvalueer in die buite monster tydperk. Maar voordat dit te doen die tegniese aanwysers moet gekies word. Die aandelemark toon twee hoofeienskappe wat bekend is aan almal met 'n paar handel ervaring is. Langtermyn momentum en korttermyn ommekeer. Diegene funksies vertaal kan word in terme van tegniese aanwysers deur: bewegende gemiddeldes te steek oor en RSI. Dit verteenwoordig 'n stel van 4 parameters: Kyk terug periodes vir 'n lang en korttermyn bewegende gemiddeldes, kyk terug tydperk vir RSI en RSI drumpel. Die stelle parameters is die chromosome. Die ander belangrike element is die fiksheid funksie. Ons wil dalk iets soos gebruik: maksimum opbrengs of Sharpe verhouding of minimum gemiddelde Onttrekking. In wat volg, het ek gekies om die Sharpe-verhouding te maksimeer. Die R implementering is 'n stel van 3 funksies: fitnessFunction. definieer die fiksheid funksie (bv maksimum Sharpe verhouding) wat gebruik gaan word in die GA enjin tradingStatistics. opsomming van statistieke handel vir die in en uit van die monster periodes vir vergelykingsdoeleindes gebruik Genoud. die GA enjin van die rgenoud pakket Die Genoud funksie is eerder komplekse maar I8217m nie van plan om te verduidelik wat elke parameter beteken as ek wil hierdie post kort hou (en die dokumentasie is regtig 'n goeie). In die onderstaande tabel Ek bied vir elke instrument die optimale parameters (RSI kyk terug tydperk, RSI drumpel, korttermyn bewegende gemiddelde en die lang termyn bewegende gemiddelde) saam met die in en uit van die monster handel statistieke. Voordat kommentaar bogenoemde resultate, ek wil 'n paar belangrike punte te verduidelik. Om die logika hierbo omskryf pas, ek begrens die parameters om seker te maak die blik terug tydperk vir die lang termyn bewegende gemiddelde maak altyd meer dat die korter bewegende gemiddelde. Ek beperk ook die optimaliseerder net die oplossings met meer as 50 ambagte in die in die monster tydperk (bv, statistiese betekenisvolheid) kies. Algehele die uit monster resultate is ver van 'n indrukwekkende. Die opbrengs is laag selfs al is die aantal ambagte is klein om die uitslag werklik beduidende maak. Maar there8217s 'n beduidende verlies van doeltreffendheid tussen in en uit van die monster tydperk vir Japan (EWJ) wat baie waarskynlik beteken meer as gepas. Hierdie pos is bedoel om die leser die gereedskap om GA behoorlik te gebruik in 'n kwantitatiewe handel raamwerk gee. Weereens, It8217s net 'n voorbeeld wat gevolg moet verder verfyn word. 'N Paar moontlike verbetering te verken sou wees: fiksheid funksie. maksimering van die Sharpe-verhouding is baie eenvoudig. A 8220smarter8221 funksie sal beslis verbeter die uit monster handel statistieke patroon. Ons probeer om 'n baie eenvoudige patroon vas te vang. 'N meer in diepte patroon navorsing is beslis nodig. optimalisering. Daar is baie maniere om die manier waarop die optimalisering gedoen word verbeter. Dit sou beide die berekening spoed en die rasionaliteit van die resultate te verbeter. Die kode wat in hierdie pos is beskikbaar op 'n Yeast repository. Soos gewoonlik enige kommentaar verwelkom Daar is 'n enorme liggaam van literatuur beide akademiese en empiriese oor mark vooruitskatting. Die meeste van die tyd wat dit meng twee mark funksies: grootte en rigting. In hierdie artikel wil ek om te fokus op die identifisering van net die mark rigting. Die doel Ek stel myself, is om marktoestande te identifiseer wanneer die kans aansienlik voorkeur vir 'n up of 'n down mark. Hierdie pos gee 'n voorbeeld van hoe Cart (Klassifikasie en regressie bome) kan gebruik word in hierdie konteks. Voordat ek verder gaan die gewone herinnering: Wat ek bied in hierdie pos is net 'n speelding voorbeeld en nie 'n uitnodiging om te belê. Dit is nie 'n finale strategie óf maar 'n ondersoek idee dat moet verder nagevors, ontwikkel en op maat van individuele behoeftes. 1 8211 Wat is wa en waarom dit gebruik Van statistieke, wa is 'n stel tegnieke vir klassifikasie en voorspelling. Die tegniek is gemik op die vervaardiging van reëls wat die waarde van 'n uitkoms (teiken) veranderlike van bekende waardes van voorspeller (verklarende) veranderlikes voorspel. Daar is baie verskillende implementerings maar hulle is almal deel van 'n algemene kenmerk en dis wat Im belangstel in. Van Wikipedia, Algoritmes vir die bou van besluit bome gewoonlik werk top-down, deur die keuse van 'n veranderlike by elke stap wat die beste split die stel van items. Verskillende algoritmes gebruik verskillende maatstawwe vir die meet van 8220best8221. Hierdie meet die algemeen die homogeniteit van die teiken veranderlike binne die deelversamelings. Hierdie statistieke word toegepas op elke kandidaat subset, en die gevolglike waardes gekombineer (bv gemiddeld) om 'n mate van die kwaliteit van die skeuring te voorsien. CART metode vertoon 'n aantal kenmerke wat baie goed is geskik vir analise van die mark: Nie parametriese. CART kan enige tipe statistiese verdelings Nie lineêre hanteer. CART kan 'n groot spektrum van afhanklikheid tussen veranderlikes (bv nie beperk tot lineêre verwantskappe) Robuuste om uitskieters Daar is verskeie R pakkette wat handel oor Rekursiewe Verdeling hanteer, ek gebruik hier rpart vir bome skatting en rpart. plot vir bome teken. Oornag opbrengste aansienlik afbreuk te doen aan die algehele prestasie. 0,720 sekondes.


No comments:

Post a Comment