Tuesday, September 6, 2016

Trading Strategie Back Testing In R

Dit is die derde pos in die back testing in Excel en R-reeks en dit sal wys hoe om 'n eenvoudige strategie in R. Dit volg die 4 stappe Damian uiteengesit in sy pos oor hoe om 'n eenvoudige strategie in Excel backtest backtest. Stap 1: Kry die data Die funksie getSymbols in quantmod maak hierdie stap maklik as jy daaglikse data kan gebruik van Yahoo Finansies. Daar is ook metodes (nie in die streng sin) om data uit ander bronne trek (FRED, Google, site OANDA, R red lêers, databasisse, ens). Jy kan dit ook gebruik as 'n sjabloon om 'n persoonlike funksie te skryf vir 'n spesifieke verskaffer wat jy gebruik. hardloop die opdrag hieronder as quantmod isnt reeds geïnstalleer gebruik die quantmod pakket (vragte TTR, xt, en dieretuin) trek SPX data van Yahoo (getSymbols terug 'n xt voorwerp) Stap 2: Maak jou wyser Die TTR pakket bevat 'n menigte van aanwysers. Die aanwysers is geskryf om te maak dit maklik om hulle te kombineer in kreatiewe en onkonvensionele maniere. Begin met hersiening 106 op R-Forge, TTR het 'n DVI aanwyser. bereken DVI aanwyser DVI - DVI (Cl (GSPC)) Cl () uittreksels van die beslote prys kolom Stap 3: Stel jou handel reël Aangesien hierdie handel reël is eenvoudig - ons weer 'n lang 100 indien die DVI is onder 0.5 en kort 100 anders - dit kan geskryf word in 'n enkele lyn. Meer ingewikkelde reëls en / of posisie sizings kan net so goed gedoen, maar vereis meer kode (RSI (2) met Posisie Sizing is 'n voorbeeld van meer komplekse posisie sizing reëls). Let ook op dat die sein vektor is uitgestel, wat uitkyk voor vooroordeel vermy. skep sein: (lang (kort) as DVI is onder (bo) 0.5) Lag so gister se sein is van toepassing op vandag se opbrengste SIG 0.5, 1, -1)) Stap 4: Die handel reëls / aandele kurwe Soos in Damian se byvoorbeeld, die kode hieronder is 'n vereenvoudigde benadering wat wrywinglose en nie rekening vir glip. Die onderstaande kode neem vandag se persentasie opbrengs en vermeerder dit deur gister se sein / posisie grootte (altyd / - 100 in hierdie voorbeeld). Ek subset ook die stelsel terug na die resultate in die lêer Excel te pas. bereken-sein gebaseer opbrengste ret - ROC (Cl (GSPC)) SIG subset terug na data te pas in Excel lêer ret - ret 2009/06/02 / 2010/09/07 Stap 5: Evalueer strategie prestasie Damian melding gemaak van die belangrikheid van die evaluering van jou strategie. Gelukkig vir R gebruikers, die PerformanceAnalytics pakket maak dit maklik. Met 'n paar reëls van die kode kan ons die onttrekkings, negatiewe risiko's, en 'n opsomming prestasie te sien. gebruik die PerformanceAnalytics pakket te skep tabel wat drawdown statistieke skep tafel van daalrisiko skat grafiek aandele kurwe, daaglikse prestasie, en onttrekkings Dit is al wat daar is om back testing 'n eenvoudige strategie in R. Dit wasn t wat intimiderend, is dit asseblief terugvoer gee as jy Re beweging van jou back testing van Excel om R en daar is iets wat jy weer hang op of jy het 'n awesome punt wat jy wil deel. Hier is 'n bondige weergawe van die kode in die bogenoemde pos as jy wil in staat wees om te kopieer / plak dit alles in een blok: back testing: interpretasie van die verlede back testing is 'n belangrike komponent van doeltreffende handel-stelsel ontwikkeling. Dit word gedoen deur rekonstruksie, met historiese data, ambagte wat sou plaasgevind het in die verlede met behulp van reëls bepaal deur 'n gegewe strategie. Die resultaat bied statistieke wat gebruik kan word om die doeltreffendheid van die strategie te meet. Die gebruik van hierdie data, kan handelaars te optimaliseer en hul strategieë te verbeter, vind 'n tegniese of teoretiese tekortkominge, en vertroue in hul strategie te verkry voordat hulle aansoek doen dit aan die werklike markte. Die onderliggende teorie is dat enige strategie wat goed in die verlede gewerk het, is geneig om goed te werk in die toekoms, en omgekeerd, 'n strategie wat swak presteer in die verlede is geneig om swak presteer in die toekoms. Hierdie artikel neem 'n blik op wat aansoeke word gebruik om backtest, watter soort data is verkry, en hoe om dit om die data en die gereedskap back testing kan baie waardevolle statistiese terugvoer te gee oor 'n gegewe stelsel gebruik. Sommige universele statistieke back testing sluit in: netto wins of verlies - Net persentasie wins of verlies. Tydraamwerk - Past datums waarop toets ing plaasgevind. Heelal - Voorrade wat ingesluit is in die backtest. Wisselvalligheid maatreëls - Maksimum persentasie onderstebo en negatiewe kant. Gemiddeldes - Persentasie gemiddelde wins en gemiddelde verlies, gemiddelde bars gehou. Blootstelling - Persentasie van kapitaal belê (of blootgestel word aan die mark). Verhoudings - Oorwinning-tot-verliese verhouding. Geannualiseerde opbrengs - Persentasie opbrengs oor 'n jaar. Risiko-aangepaste opbrengs - Persentasie opbrengs as 'n funksie van risiko. Tipies, sal back testing sagteware twee skerms wat belangrik is nie. Die eerste kan die handelaar om die instellings aan te pas vir back testing. Hierdie veranderinge sluit alles van tyd tot kommissie koste. Hier is 'n voorbeeld van so 'n skerm in AmiBroker: Die tweede skerm is die werklike back testing resultate verslag. Dit is hier waar jy al die bogenoemde statistieke kan kry. Weereens, hier is 'n voorbeeld van hierdie skerm in AmiBroker: In die algemeen, die meeste handel sagteware bevat soortgelyke elemente. Sommige hoë-end sagteware programme sluit ook bykomende funksies outomatiese posisie sizing, optimalisering en ander meer gevorderde funksies uit te voer. Die 10 Gebooie Daar is baie faktore handelaars aandag gee aan wanneer hulle back testing handel strategieë. Hier is 'n lys van die 10 mees belangrike dinge om te onthou, terwyl back testing: Neem in ag die breë mark tendense in die tyd waarin 'n gegewe strategie is getoets. Byvoorbeeld, as 'n strategie was net backtested vanaf 1999-2000, is dit dalk nie goed vaar in 'n beermark. Dit is dikwels 'n goeie idee om backtest oor 'n lang tyd dat 'n hele paar verskillende tipes marktoestande sluit. Neem in ag die heelal waarin back testing plaasgevind. Byvoorbeeld, as 'n breë mark stelsel is getoets met 'n heelal wat bestaan ​​uit tegnologie-aandele, kan dit nie goed doen in verskillende sektore. As 'n algemene reël, indien 'n strategie is gerig op 'n spesifieke genre van voorraad, beperk die heelal aan dié genre, maar in alle ander gevalle, in stand te hou 'n groot heelal vir toetsdoeleindes. Wisselvalligheid maatreëls is uiters belangrik om te oorweeg in die ontwikkeling van 'n handel stelsel. Dit is veral waar vir aged rekeninge, wat is onderhewig aan marge oproepe as hul aandele daal onder 'n sekere punt. Handelaars moet poog om wisselvalligheid lae om risiko te verminder en in staat stel om makliker oorgang in en uit 'n gegewe voorraad hou. Die gemiddelde aantal bars gehou is ook baie belangrik om te kyk by die ontwikkeling van 'n handel stelsel. Hoewel die meeste back testing sagteware sluit kommissie koste in die finale berekeninge, dit beteken nie dat jy moet hierdie statistiek te ignoreer. As dit moontlik is, die verhoging van jou gemiddelde aantal bars gehou kan kommissie koste te verminder, en die verbetering van jou algemene terugkeer. Blootstelling is 'n tweesnydende swaard. Verhoogde blootstelling kan lei tot hoër winste of hoër verliese, terwyl afgeneem blootstelling beteken laer winste of laer verliese. Maar in die algemeen, is dit 'n goeie idee om blootstelling onder 70 om risiko te verminder en in staat stel om makliker oorgang in en uit 'n gegewe voorraad hou. Die gemiddelde-wins / verlies statistiek, gekombineer met die oorwinnings-tot-verliese verhouding, kan nuttig wees vir die bepaling van optimale posisie sizing en geldbestuur met behulp van tegnieke soos die Kelly Criterion wees. (Sien Geldbestuur Die gebruik van die Kelly Criterion.) Handelaars kan groter posisies te neem en kommissie koste te verminder deur die verhoging van hul gemiddelde winste en die verhoging van hul oorwinnings tot verliese verhouding. Geannualiseerde opbrengs is belangrik omdat dit gebruik word as 'n instrument om 'n benchmark s 'n stelsel opbrengste teen ander belegging plekke. Dit is belangrik om nie net te kyk na die algehele geannualiseerde opbrengs nie, maar ook om in ag te neem die verhoog of verlaag risiko. Dit kan gedoen word deur te kyk na die risiko-aangepaste opbrengs, wat verantwoordelik is vir verskeie risikofaktore. Voordat 'n handel stelsel is aangeneem, moet dit alle ander belegging plekke klop op gelyke of minder risiko. Back testing aanpassing is uiters belangrik. Baie back testing aansoeke insette vir kommissie bedrae, ronde (of fraksionele) baie groottes, merk groottes, vereistes marge, rentekoerse, glip aannames,-posisie sizing reëls, dieselfde-bar uitgang reëls, (sleep) stop instellings en nog baie meer. T o kry die mees akkurate back testing resultate, ek t is belangrik om te stem hierdie instellings aan die makelaar wat gebruik sal word naboots wanneer die stelsel gaan woon. Back testing kan soms lei tot iets wat bekend staan ​​as oor-optimalisering. Dit is 'n toestand waar prestasie resultate so hoog is ingeskakel om die verlede dat hulle nie meer so akkuraat in die toekoms. Dit is oor die algemeen 'n goeie idee om reëls wat van toepassing is op alle aandele, of 'n uitgesoekte versameling van geteikende aandele, en is nie gemaak om die mate waarin die reëls is nie meer verstaanbaar deur die skepper implementeer. Back testing is nie altyd die mees akkurate manier om die doeltreffendheid van 'n gegewe handel stelsel te meet. Soms strategieë wat goed presteer in die verlede versuim om goed te doen in die hede. Vorige prestasie is nie 'n aanduiding van toekomstige resultate. Maak seker dat jy papier handel 'n stelsel wat suksesvol backtested voor live gaan om seker te wees dat die strategie steeds van toepassing in die praktyk is. Gevolgtrekking back testing is een van die belangrikste aspekte van die ontwikkeling van 'n handel stelsel. As geskep en behoorlik geïnterpreteer is, kan dit help om handelaars te optimaliseer en hul strategieë te verbeter, vind 'n tegniese of teoretiese tekortkominge, asook vertroue in hul strategie te verkry voordat hulle aansoek doen dit aan die werklike wêreld markte. Hulpbronne Tradecision (tradecision) - High-end Trading System Development AmiBroker (amibroker) - Begroting Trading System Development. Hoe om 'n strategie in R backtest Ons gaan om die back testing vermoëns van R. verken In 'n vorige post ons ontwikkel 'n paar eenvoudige inskrywing geleenthede vir die dollar / CAD behulp van 'n masjien leer algoritme en tegnieke van 'n subset van data-ontginning genoem vereniging reël leer. In hierdie post, ons gaan om te verken hoe om 'n volledige backtest in R doen met behulp van ons reëls van die vorige post en implementering neem wins en stop verliese. Laat s duik reg in: Let wel: die backtest gebou van die 4-uur bars in ons datastel en kom nie t het 'n meer gedetailleerde siening. Die CAGR (saamgestelde jaarlikse groeikoers) is die persentasie wins / verlies jaargrondslag, wat beteken dat dit glad uit die groei in gelyke paaiemente elke jaar. Sedert ons toets was oor Laat ons kyk of ons die prestasie kan verbeter deur die byvoeging van 'n stop verlies en neem wins te maak. Met net 'n stop verlies, prestasie afgegaan. Dit lyk soos wat ons kry uit ons ambagte voordat hulle in staat is om te herstel. Ten einde te sluit in ons winste, laat ons gaan voort en te implementeer 'n Neem Wins. Sluit in ons winste met 'n Neem Wins effens verbeter die prestasie, maar nie drasties. Laat s inkorporeer beide 'n stop verlies en 'n Neem Wins. Nou laat se vergelyk die basislyn Lang Kort strategie, met net 'n stop verlies, net 'n Neem Wins, en beide 'n take stop verlies en neem wins te maak. Nou weet jy hoe om 'n Neem Wins voeg en stop verlies, Ek beveel aan jy om te speel met die data en toets verskillende waardes op grond van jou eie persoonlike risiko parameters en die gebruik van jou eie reëls. Selfs met 'n kragtige algoritmes en gesofistikeerde gereedskap, is dit moeilik om 'n suksesvolle strategie te bou. Vir elke goeie idee, ons is geneig om baie meer slegte mense nie. Gewapen met die regte gereedskap en kennis, kan jy effektief jou idees te toets totdat jy die goeies. Ons het hierdie proses in TRAIDE vaartbelyn. Ons vyf het 'n toets infrastruktuur wat jou toelaat om te sien waar die patrone is in jou data is en in real-time te sien hoe hulle oor jou historiese data sal presteer. Ons sal die vrystelling van TRAIDE vir 7 groot pare in die FX mark met tegniese aanwysers in twee weke. As jy belangstel in die toets van die sagteware en die verskaffing van terugvoer, stuur 'n e-pos aan info inovancetech. Ons het 50 plekke beskikbaar.


No comments:

Post a Comment