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. Trading Strategieë Kopiereg afskrif 2016 MarketWatch, Inc. Alle regte voorbehou. Deur die gebruik van hierdie webwerf, stem jy in om die Algemene Diens. Privaatheidsbeleid en Koekie Beleid. Intraday Data verskaf deur ses finansiële inligting en onderhewig aan terme van gebruik. Historiese en huidige data einde van die dag wat deur ses finansiële inligting. Intraday data vertraag per vereistes ruil. SP / Dow Jones Indekse (SM) van Dow Jones Company, Inc. Alle kwotasies is in plaaslike valuta tyd. Real-time laaste veiling data voorsien deur NASDAQ. Meer inligting oor NASDAQ verhandel simbole en hul huidige finansiële status. Intraday data 15 minute vertraag vir Nasdaq, en 20 minute vir ander ruil. SP / Dow Jones Indekse (SM) van Dow Jones Company, is Inc. SEHK intraday data voorsien deur ses finansiële inligting en is ten minste 60 minute vertraag. Alle kwotasies is in plaaslike valuta tyd. MarketWatch Top StoriesArchive vir die handel strategieë Kategorie Wanneer die toets van handel strategieë 'n gemeenskaplike benadering is om die aanvanklike datastel in in steekproefdata verdeel: die deel van die data wat ontwerp is om die model te kalibreer en uit steekproefdata: die deel van die wat gebruik word om data die geldigheid van die kalibrasie en te verseker dat die prestasie geskep in voorbeeld sal weerspieël word in die werklike wêreld. 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 is 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. 2 8211 Data amp eksperimentele ontwerp Daily OHLC pryse vir die meeste vloeistof ETF vanaf Januarie 2000 tot Desember 2013 uit Google Finansies. Die in monster tydperk strek van Januarie 2000 tot Desember 2010 die res van die datastel is die buite monster tydperk. Voordat jy 'n tipe van analise die dataset het om voorbereid te wees vir die taak. Die teiken veranderlike is die ETF weeklikse vorentoe terugkeer gedefinieer as 'n twee state van die wêreld uitkoms (op of af). As weeklikse vorentoe terugkeer GT 0 dan is die mark in die UP staat, AF staat anders Die verklarende veranderlikes is 'n stel van tegniese aanwysers afgelei van die aanvanklike daaglikse OHLC dataset. Elke aanwyser verteenwoordig 'n goed gedokumenteer mark gedrag. Met die oog op die geraas in die data verminder en om te probeer om robuuste verhoudings te identifiseer, is elke onafhanklike veranderlike beskou as 'n binêre uitkoms te hê. Wisselvalligheid (VAR1). Hoë wisselvalligheid word gewoonlik geassosieer met 'n down mark en 'n lae wisselvalligheid met 'n up mark. Wisselvalligheid word gedefinieer as die 20 dae rou ATR (Gemiddelde Ware Range) versprei na sy bewegende gemiddelde (MA). As rou ATR GT MA dan VAR1 1, anders VAR1 -1. Korttermyn momentum (VAR2). Die aandelemark uitstallings korttermyn momentum gedrag hier gevang deur 'n 5 dae eenvoudige bewegende gemiddeldes (SMA). As Prys GT SMA dan VAR2 1 anders VAR2 -1 Langtermyn momentum (VAR3). Die aandelemark uitstallings langtermyn momentum gedrag hier gevang deur 'n 50 dae eenvoudige bewegende gemiddeldes (LMA). As Prys GT LMA dan VAR3 1 anders VAR3 -1 Korttermyn ommekeer (VAR4). Dit is gevang deur die CRTDR wat staan vir naasbestaande daagliks Range en bereken soos volg:. As CRTDR GT 0.5, dan VAR4 1 anders VAR4 -1 Outokorrelasie regime (VAR5). Die aandelemark is geneig om te gaan deur tydperke van negatiewe en positiewe outokorrelasie regimes. As opbrengste outokorrelasie in die afgelope 5 dae GT 0 dan VAR5 1 anders VAR5 -1 Ek sit onder 'n boom byvoorbeeld met 'n paar verduidelikings In die boom bokant, die pad na nodus 4 bereik is: VAR3 gt0 (Lang Termyn Momentum GT 0) en VAR4 GT 0 (CRTDR GT 0). Die rooi reghoek dui dit 'n down blaar (bv terminale knoop) met 'n waarskynlikheid van 58 (1 8211 0.42). In terme mark beteken dit dat as die lang termyn Momentum is Up en CRTDR is GT 0.5 dan is die waarskynlikheid van 'n positiewe opbrengs volgende week is 42 gebaseer op die in die monster monster data. 18 dui die persentasie van die datastel wat in daardie terminale knoop (bv blaar) val. Daar is baie maniere om die bogenoemde benadering te gebruik, het ek gekies om te skat en te kombineer alle moontlike bome. Van die in steekproefdata, ek versamel al blare van alle moontlike bome en ek het hulle versamel in 'n matriks. Dit is die 8220rules matrix8221 gee die waarskynlikheid van volgende week wensen styg of daal. Ek die reëls in die bogenoemde matriks om die uit steekproefdata (Januarie 2011 8211 Desember 2013) en ek die resultate van die werklike uitkoms te vergelyk. Die probleem met hierdie benadering is dat 'n enkele punt (week) in verskeie reëls kan val en selfs behoort aan UP en reëls gelyktydig. Daarom pas ek 'n stem skema. Vir 'n gegewe week Ek vat al die reëls wat van toepassing is op daardie week gee 'n 1 vir 'n UP reël en -1 vir 'n down reël.
No comments:
Post a Comment