Friday, October 7, 2016

Back Testing Trading Strategieë 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 LT DVI (Cl (GSPC)) Cl () uittreksels van die beslote prys kolom Stap 3: Stel jou handel reël Aangesien hierdie handel reël is eenvoudig - was lank 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 yesterdays sein is van toepassing op vandag se opbrengste SIG LT Lag (ifelse (dvidvi Dit 0,5, 1, -1)) Stap 4: Die handel reëls / aandele kurwe Soos in Damians byvoorbeeld die kode hieronder is 'n vereenvoudigde benadering wat wrywinglose en nie rekening vir glip. Die onderstaande kode neem vandag persentasie opbrengs en vermeerder dit deur yesterdays 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 LT ROC (Cl (GSPC)) SIG subset terug na data in Excel te pas lêer ret LT ret2009-06-02 / 2010/09/07 Stap 5: Evalueer strategie prestasie Damian melding gemaak van die belangrikheid van die evaluering 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 Dis al wat daar is om back testing 'n eenvoudige strategie in R. Dit was nie dat intimiderend, was dit asseblief terugvoer gee as jy beweeg jou back testing van Excel om R en Theres iets julle hang op of jy het 'n awesome punt youd 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 Wat is back testing back testing is die proses van toetsing van 'n handel strategie op relevante historiese data om sy lewensvatbaarheid te verseker voordat die handelaar's geen werklike kapitaal. 'N handelaar kan die verhandeling van 'n strategie na te boots oor 'n gepaste tydperk en die resultate vir die vlakke van winsgewendheid en risiko te ontleed. Afbreek van back testing As die resultate aan die nodige kriteria wat aan die handelaar aanvaarbaar is, kan die strategie dan geïmplementeer word met 'n mate van vertroue dat dit sal lei tot winste. As die resultate is minder gunstig is, kan die strategie verander, aangepas en geoptimaliseer om die gewenste resultate te bereik, of dit kan heeltemal geskrap word. 'N Beduidende bedrag van die volume verhandel in vandag se finansiële markte word gedoen deur handelaars wat 'n soort van rekenaar outomatisering gebruik. Dit is veral waar vir handel strategieë gebaseer op tegniese ontleding. Back testing is 'n integrale deel van die ontwikkeling van 'n outomatiese handel stelsel. Betekenisvolle back testing Wanneer jy klaar is korrek, kan back testing 'n waardevolle hulpmiddel vir die neem van besluite oor die vraag of 'n handel strategie te benut nie. Die monster tydperk waarop 'n backtest is uitgevoer op is van kritieke belang. Die duur van die monster tydperk moet lank genoeg om tydperke van wisselende marktoestande insluitend Uptrends, downtrends en-reeks gebind handel te sluit. Die uitvoer van 'n toets op slegs een tipe mark toestand kan uniek resultate wat nie goed in ander marktoestande, wat kan lei tot valse gevolgtrekkings kan funksioneer oplewer. Die steekproefgrootte in die aantal ambagte in die toetsuitslae is ook noodsaaklik. As die monster aantal ambagte te klein is, kan die toets nie statisties beduidend wees. 'N Monster met te veel ambagte oor te lank 'n tydperk kan produseer new resultate waarin 'n oorweldigende aantal wen ambagte hom verenig rondom 'n spesifieke toestand mark of tendens wat gunstig is vir die strategie. Dit kan ook veroorsaak dat 'n handelaar om misleidende gevolgtrekkings. Hou dit real A backtest moet die werklikheid om die beste moontlike mate weerspieël. Trading koste wat anders kan oorweeg weglaatbaar deur handelaars te wees wanneer individueel ontleed kan 'n beduidende impak hê wanneer die totale koste word bereken oor die hele back testing tydperk. Hierdie koste sluit in kommissies, versprei en glip, en hulle kon die verskil tussen of 'n handel strategie is winsgewend of nie bepaal. Die meeste back testing sagteware pakkette sluit metodes om verantwoording te doen hierdie koste. Miskien is die belangrikste maatstaf wat verband hou met back testing is die strategys vlak van robuustheid. Dit word gedoen deur die resultate van 'n optimale terug toets te vergelyk in 'n spesifieke voorbeeld tydperk (verwys na as in-monster) met die resultate van 'n backtest met dieselfde strategie en instellings in 'n ander monster tydperk (verwys na as buite van-monster). As die resultate is soortgelyk winsgewende, dan is die strategie kan geag geldig en robuuste te wees, en dit is gereed om in real-time markte uit te voer. As die strategie misluk in buite-monster vergelykings, dan is die strategie moet verdere ontwikkeling, of dit moet laat vaar altogether. How om backtest n strategie in R gaan 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. Kom ons spring sommer weg: Let wel: die backtest gebou van die 4-uur bars in ons datastel en nie die geval '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 Kom 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 gaan voort en te implementeer 'n Neem Wins. Sluit in ons winste met 'n Neem Wins effens verbeter die prestasie, maar nie drasties. Kom ons neem beide 'n stop verlies en 'n Neem Wins. Nou kan 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. Weve ontwikkel '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. Wel die vrystelling 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 infoinovancetech. Ons het 50 plekke available. Strategy back testing Strategie back testing is 'n noodsaaklike instrument om te sien of jou strategie werk of nie. Back testing sagteware simuleer jou strategie op historiese data en bied 'n back testing verslag, wat jou toelaat om behoorlike handel stelsel analise uit te voer. Die 64-bis weergawe kan jy soveel data te laai as wat jy nodig het vir selfs die mees veeleisende back testing. Vir tegniese inligting oor hierdie funksie blik op die verwante Wiki bladsy. Akkuraatheid is die sleutel MultiCharts is 'n oplossing wat spesifiek vir strategie-ontwikkeling en back testing. Ons filosofie is dat die strategie back testing so realisties moet wees as die moderne tegnologie maak dit moontlik - dis hoekom gebruik ons ​​multi-threading en 64-bit-tegnologie. Minimale aannames te skep meer realistiese toets Selfs al geen benadering 100 perfekte kan wees, het ons alles gedoen om akkuraat te herskep verlede marktoestande en orde uitvoering vir strategie handel. Tipiese back testing enjins het 'n baie aannames en kortpaaie, wat lei tot onrealistiese toetsing en onbetroubare resultate. MultiCharts is 'n institusionele-vlak verhandelingsplatform wat aannames verminder en is van mening baie faktore. Moderne tegnologie vir 'n kragtige rekenaars Strategie back testing moet dikwels 'n baie data en sagteware wat in staat is van die verwerking van dit. Byna al die rekenaars nou funksie multi-core setups met baie van die geheue, sodat jy nodig het om voordeel te trek uit dit. Multi-threading beteken dat MultiCharts versprei baie take in verskillende cores, sodat hulle baie vinniger af te handel. 64-bis weergawe van MultiCharts kan jy soveel data te laai as pas in jou geheue vir analise - selfs jare en jare van bosluis data vir 'n gedetailleerde prysbewegings. Maak 'n regmerkie-vir-blok simulasie Ons noem hierdie funksie die Bar vergrootglas. Dit is noodsaaklik vir die verhoging van presisie tydens back testing. MultiCharts kan groter bars bou uit kleiner bars componentssecond en minuut uit bosluise, uur en dag bars uit minute. Jy kan presies prysbewegings in elke bar te herskep deur die gebruik van die Bar vergrootglas, wat groter bars sal bou uit kleiner komponente. Byvoorbeeld, een-uur bars het vier visuele pointsopen, hoog, laag, en naby. Die Bar vergrootglas kan onsigbaar laai minute wat die uur, en strategie sal backtested wees op 'n minuut-vir-minuut basis. Vra, uitnooi en handel pryse back testing in ag neem dat die werklike aankoop gebeur teen pryse, ware verkoop vra bod pryse. Dit maak ons ​​back testing simulasie so realisties as possible. How om backtest Jou Trading Strategie korrek Baie suksesvolle handelaars deel een gewoonte 8211 hulle backtest hul handel strategieë. Back testing jou handel strategie sal nie alleen waarborg dat jy sal winsgewend te word, maar dit is 'n reuse-stap in die regte rigting. In hierdie artikel ondersoek ons ​​'n paar potensiële vooroordele wat kan insluip in jou back testing, en ons sal kyk na hoe om die impak van hierdie vooroordele te verminder. Daar is baie probleme wat kan voorkom wanneer jy jou handel stelsel backtest, maar die meeste probleme val in een van drie kategorieë: postdictive foute, te veel veranderlikes, of versuim om drastiese veranderinge in die mark verwag. Elkeen van hierdie foute word verduidelik, saam met die metodes van die voorkoms van foute. Klik hier om te leer hoe om Bollinger Bands gebruik met 'n gekwantifiseerde, gestruktureerde benadering tot jou handel kante verhoog en te verseker groter winste met Trading met Bollinger Bands 8211 A Gekwantificeerde Guide. 1. Postdictive Fout Die postdictive fout is net 'n fancy manier om te sê wat jy gebruik inligting slegs beskikbaar 8220after die fact8221 om jou stelsel te toets. Glo dit of nie, dit is 'n baie algemene fout wanneer die toets handel stelsels. Hierdie fout is maklik om te maak. Sommige sagteware sal jou toelaat om today8217s data gebruik in die toets van 'n handel stelsel, wat altyd 'n postdictive fout (ons weet nie of today8217s data is nuttig nog vir die voorspelling van die toekoms, maar ons beslis weet of dit is nuttig in die voorspelling van die verlede ). Wouldn8217t jy graag in staat wees om die sluitingsprys van die GBP / USD gebruik om te voorspel wat die mark vandag sal doen Natuurlik jy wil, ek sou beslis, maar ongelukkig, hierdie inligting is nie beskikbaar vir ons tot op die dag is verby. Byvoorbeeld, kan jy 'n stelsel wat die sluitingsprys inkorporeer het, dan beteken dit natuurlik dat die handel nie kan begin totdat die dag is verby. anders is dit 'n postdictive fout. Nog 'n voorbeeld kan help illustreer die postdictive fout, as jy 'n reël in jou handel stelsel oor hoogste pryse het, dan sal jy 'n postdictive fout het. Dit is omdat hoogste pryse dikwels gedefinieer deur data wat later kom, in die toekoms. Die pad na die postdictive fout te vermy, is om seker te maak dat wanneer jy backtest 'n stelsel wat net inligting wat beskikbaar is in die verlede op daardie tydstip gebruik word in back testing. Met handleiding back testing of back testing met forex tester jy kan dit maklik te bereik, maar met outomatiese back testing die postdictive fout kan insluip in jou handel stelsel. 2. te veel veranderlikes Dit is ook bekend as die 8220Degrees van Freedom8221 vooroordeel. Dit beteken eenvoudig dat jy te veel veranderlikes, of handel aanwysers in jou handel stelsel. Dit is baie moontlik om vorendag te kom met 'n handel stelsel wat verlede prys gedrag van 'n geldeenheid paar kan verduidelik. Trouens, die meer aanwysers jy voeg, hoe makliker is dit dikwels raak. Die probleem kom wanneer jy wil hierdie stelsel van toepassing op die toekoms. Dikwels wanneer 'n handel stelsel het te veel aanwysers kan die gedrag van die mark gedurende 'n tydperk baie goed voorspel. Maar, that8217s al die stelsel is goed vir, want in die toekoms die stelsel uitmekaar val. Bogenoemde stelling is dikwels moeilik vir handelaars om te vang met kom, maar dit is waar. Dink na oor wat William Eckhardt, van die New Market Wizards te sê het oor handel stelsels in die algemeen, die delikate toetse wat statistici gebruik om betekenis uit te druk van marginale data het geen plek in die handel. Ons moet stomp statistiese instrumente, robuuste tegnieke. Dit is duidelik dat hy waarsku teen die grade van die dwaling vryheid en wat daarop dui dat eenvoudige handel stelsels is meer geneig om toets van die tyd staan. Dit is absoluut waar. Sommige van die mees kragtige handel stelsels beskikbaar is baie eenvoudig. Hou dit in gedagte as jy handel dryf, en as jy probeer om 'n winsgewende handel stelsel te vind. Die meeste handelaars sal vind dat met ervaring, raak hulle meer geneig om die siening dat eenvoudiger handel word verkies bo 'n komplekse benadering omhels. 3. drastiese veranderinge in die mark Baie handelaars vergeet om te verwag onvoorsiene gebeure wat sal plaasvind in die toekoms. Dit doesn8217t regtig saak wat jy don8217t weet wat gaan gebeur in die toekoms 8211 omdat jy weet: daar sal tye in die toekoms wanneer die markte wisselvallig sal optree. Wanneer dit gebeur, moet jy jou handel stelsel ontwerp om funksionering bly in hierdie tye. Miskien 'n paar voorbeelde kan help met die volgende: Wanneer Saddam Hussein is gevind (oor die naweek), die geldeenheid markte gereageer nogal drasties op Monday8217s opening. Wanneer die wêreldwye finansiële krisis begin ontvou in September 2008, het die meeste munt pare verhandel met baie meer wisselvallig is as gesien is vir die jaar. Die feit is dat daar onverwagte gebeurtenisse in die toekoms, en hierdie gebeure sal die markte beïnvloed, so die beste ding wat jy kan doen is om voorbereid te wees. Hoe kan jy voor te berei vir die onverwagte Oorweeg hierdie eenvoudige oplossings: 1) dryf jou verwagte verliese. As jou back testing onthul 'n maksimum verlies van 5000, aanvaar 'n maksimum verlies van 10,000. Sal jou handel stelsels steeds winsgewend wees onder hierdie toestande 2) Besluit op 'n gepaste vlak van risiko vir elke handel. Onthou dat selfs hierdie vlak van risiko is geneig om te wees oorskry. As jy besluit het om te waag 1 op elke handel, moet jy dit een of ander tyd in die toekoms aanvaar, kan jy in 'n bedryf en 'n onverwagte gebeurtenis sal plaasvind, en jou handel sal nie verloor nie 1 nie, maar in plaas 5 sal verlore gaan. 3) Jy moet 'n noodplan opgestel het. Dit wil sê, hoe sal jy 'n handelsmerk te verlaat as iets sleg gebeur en jy kan nie toegang tot jou rekening Byvoorbeeld, wat gebeur as jou verhandelingsplatform is ontoeganklik en jy desperaat wil uit 'n bedryf meeste makelaars bied 'n telefoonlyn aan handelaars vir hierdie gevalle. Het jy die telefoonnommer 4) Het jy 'n maksimum risiko vlak voorhou, sal van toepassing as jy het 'n paar ambagte gelyktydig oop wees. As jy besluit om te waag 1 per handel en u 7 ambagte gelyktydig oopmaak, beteken dit dat jy sal waag 7 van jou rekening of het jy besluit op 'n maksimum risiko vlak van byvoorbeeld 3 in gedagte hou dat die onverwagte sal plaasvind, moet jy dalk 'n maksimum risiko vlak vir daardie tye wanneer jy 'n paar oop ambagte. 5) Wat is die maksimum drawdown (bedrag geld jou handel stelsel verloor oor 'n lang tydperk van die tyd) wat jy bereid is om te verdra Hou in gedagte dat jy (en jy is nie alleen) is meer geneig om die erns van onttrekkings oorskat dat jy kan weerstaan, is dit belangrik realisties wees. As jy 30 van jou rekening te verloor sal jy ophou handel Wat van as jy 50 verloor Of as jy sien 70 van jou rekening weer verdwyn, die beste manier om te beplan vir onttrekkings is om uitgebreide back testing doen om uit te vind watter soort historiese onttrekkings jou handel stelsel ervarings en dan beplan vir nog erger onttrekkings in die toekoms. Vooruit drastiese veranderinge in die markte is die enkele beste manier om die aandele in jou rekening te bewaar. So, jy weet dat suksesvolle handelaars deel hierdie gewoonte 8211 hulle backtest hul handel strategieë. Jy weet dat back testing skei die rykes handelaars van diegene wat geld verloor. Jy weet ook verskeie maniere om te inkorporeer back testing in jou handel regime. En jy weet van die slaggate 8211 wat op die uitkyk vir 8211 wanneer jy back testing, sodat jy die meeste uit van die proses kan kry. Maar, wat presies is, sal jy uit back testing jou handel stelsel In die volgende artikel sal ek die newe-effekte van back testing verken. Walter Peters, PhD is 'n professionele forex handelaar en geld bestuurder vir 'n private forex fonds. Daarbenewens Walter is die mede-stigter van Fxjake. 'n hulpbron vir forex handelaars. Walter is lief vir om te hoor van ander handelaars, kan hy bereik per e-pos by walterfxjake.


No comments:

Post a Comment