Bewegende Gemiddelde Quantmod
Bewegende gemiddeldes in R Na die beste van my wete, nie R nie 'n ingeboude funksie om bewegende gemiddeldes te bereken. Die gebruik van die filter funksie, maar ons kan 'n kort funksie te skryf vir bewegende gemiddeldes: Ons kan dan gebruik maak van die funksie op enige data: MAV (data), of MAV (data, 11) as ons wil 'n verskillende aantal datapunte spesifiseer as die standaard 5 plot werke soos verwag: plot (MAV (data)). Benewens die aantal datapunte waaroor om gemiddelde, kan ons ook die kante argument van die filter funksies te verander: sides2 gebruik beide kante, sides1 gebruik net verlede waardes. Deel hierdie: Post navigasie Kommentaar navigasie Kommentaar navigationWant om 'n paar vinnige, in diepte tegniese ontleding van Apple aandele prys met behulp van R te doen Daar is 'n pakket vir daardie Die Quantmod pakket kan jy ontwikkel, toets, en sit van statisties gebaseerde handel modelle. Dit bied die infrastruktuur vir die aflaai / invoer van data uit 'n verskeidenheid van plekke, ontleed die data en produseer kaarte wat help om te bepaal statistiese tendense. Ek waardeer Digitale Dude roep hierdie pakket onder my aandag in 'n onlangse kommentaar. Ek het ook opgemerk dat Revolusie Analytics die pakket op sy finansies bladsy het uitgelig. Eintlik het ek afgekom op quantmod kom 'n paar maande gelede - en dit het dadelik my opgewonde oor die krag van R. Om jou 'n idee van 'n tipiese gebruik gee, die volgende skep 'n grafiek van die laaste drie maande van Apple voorraad data voorraad. getSymbols (quotAAPLquot) chartSeries (AAPL, subset39last 3 months39) addBBands () Die funksie getSymbols word gebruik om voorraad data te herwin. Data kan ontstaan in 'n aantal plekke. In die voorbeeld hierbo, is ons die verkryging van 'n enkelaandeel-, Apple. As jy wil 'n paar verskillende voorraadkwotasies aflaai, kan jy dit doen in 'n enkele opdrag. Sodra jy voorraad data het opgespoor, kan jy fokus op deelversamelings van datums vinnig. Jy kan ook data om vergelykings te kan sien saamsmelt. Die opdrag chartSeries skep die plot foto bo. Dit vang 'n groot hoeveelheid inligting, die datum, oop en toe die prys, en volume van die saak vir elke dag. Ten slotte, die addBBands () oproep voeg Bollinger Bands om die grafiek. Informeel, dit neerkom op 'n streep dui bewegende gemiddelde en twee lyne 'n standaardafwyking bo en onder hierdie bewegende gemiddelde. Vir die oningewydes, kan tegniese aanwysers (en overlays) opgebreek word in vier kategorieë - Trend, Volatiliteit, Momentum, en Deel. Diegene wat beskikbaar is in Quantmod word hieronder gelys. R-Charta Guide op R quantmod pakket: Aan die begin gaan Die quantmod pakket vir R is ontwerp om die kwantitatiewe handelaar help met die ontwikkeling, toets, en ontplooiing van statisties gebaseerde handel modelle. Dit is 'n vinnige prototipering omgewing waar entoesiaste verskeie tegniese aanwysers met 'n minimum moeite kan verken. Dit bied kartering fasiliteite wat beskikbaar is nêrens anders in R. Quantmod pakket maak modelle makliker en ontleding eenvoudig. Hierdie artikel het ten doel om 'n paar funksies van quantmod met behulp van data monster mark aan te bied. Die kenmerke van quantmod word in drie afdelings, laai data, kartering, tegniese aanwysers en ander funksies. Sonder veel kere sal ons die gebruik van quantmod pakket sien. data te laai Sodra die quantmod pakket is geïnstalleer en biblioteek is gelaai, hardloop die volgende opdrag om die data van Apple voorraad kry in thr R console. Trading Bewegende Gemiddeldes met minder Whipsaws Die bewegende gemiddelde stelsel is beter by verre. In die eerste plek kan ons dit hefboom 2: 1 (dus, bring CAGR tot ongeveer 13) en nog, is ons maksimum drawdown gaan vergelykbaar met die koop te wees en te hou. Verder it8217s in die mark slegs 70 8211 minder risiko en waarskynlik die opbrengs kan verder aangehelp deur die plaas van die geld om te werk in alternatiewe bates. Een probleem met hierdie tipe stelsels is whipsaws. Die stelsel werk goed wanneer die prys bly weg van die bewegende gemiddelde. Maar in die nabyheid, kan een moet / uitgang te betree in die reeks om geld te verloor op die pad. Een manier om hierdie probleem aan te spreek is om 'n alternatiewe 8220line8221 gebruik om die uitgange (of die inskrywings, wat vir die saak) te aktiveer. Dit kan 'n persentasie band, maar that8217s skaars universele. Dit is beter om wisselvalligheid in beeld bring. Let8217s doen iets meer robuuste as 'n illustrasie. Eerste pas ons die bewegende gemiddelde nie die pryse nie, maar om die opbrengs ( 'n interpretasie van Dawid Varadi8217s Fout Aangepas Momentum). Die 8220cushioned8221 stelsel gaan lank as die gemiddelde positiewe raak, maar om af te sluit, laat dit 'n paar kussing onder die bewegende gemiddelde. Wat doen ons kry Gem Jaarlikse Onttrekking Om appels te vergelyk met appels, ons twee stelsels bygevoeg. Die eerste een (genoem EA) gebruik fout aangepaste opbrengste aan die SMA bereken, maar gaan en uitgange toe die SMA kruisies die 0 lyn. Die 8220cushioned8221 weergawe is die stelsel in werking gestel word deur die bostaande kode. Selfs na inagneming dat die nuwe strategieë bly langer in die mark, lyk dit of daar effense verbetering wees. Maar that8217s nie die punt. Die 8220cushioned8221 benadering het 4 ambagte in totaal 8211 dit opgewonde vir die twee beermarkte. That8217s sowat 4 ambagte. Die nie-gebufferde benadering het 80 ambagte. Mission Accomplished met ander woorde. Kommentaar Hi, kan jy asseblief verduidelik die logika agter die aangepaste opbrengste formule adj. rets sqrt (runSum (retsrets, 10) / 9). ook waar kom die 9/10 gewig vandaan Hoekom nie 10/10 Dankie ek moet iets in jou kode vermis: DET's is positiewe en negatiewe, maar adj. rets is almal positiewe (jy die DET's vierkantig), vandaar SMA is altyd positief en dus is daar nooit 'n sell sein. Jou adj. rets gaan hoër as die opbrengs te kry kleiner (dit wil sê, piek adj. rets teen die einde van die beermarkte). Het ek net mis 'n teken iewers Nie hardloop R, maar die implementering van hierdie as 'n toets op my eie stelsel en kry nie wat ek verwag het. Ps. I8217d nog nooit gehoor van die gebruik van 'n eenvoudige SMA 200 soos hierdie (waarskynlik as gevolg van al die whipsaws), so sou verwag dat jy 'n dood kruis / goue kruis toets (SMA 50/200) plaas. Goud / Dood kruis is byna vergelykbaar met jou berig EA resultate (vir beide CAGR en maksimum drawdown) deur my testing8230 maar I8217d graag jou EA werk om te sien vir myself te kry. Ag. Ek dink miskien het jy bedoel om plaas te sit 8220rets8221 in die SMA berekening van 8220adj. rets8221. It8217s nie duidelik uit hierdie R-kode wat die tydperk is vir jou DET's (dit wil sê, 'n 1-dag terugkeer 1-maand opbrengs), maar as ek 'n 21-bar terugkeer met daaglikse data, kry ek 'n EA wat vergelykbaar is met die uwe (CAGR 9.5, blootstelling 75, maksimum DD 19.3). Maar tot dusver nie kan kry Versagte EA bo 10 CAGR, so sal verder werk om te sien of I8217m behoorlik jou algoritme duplisering. Wel, ek het 'n fout in die kode 8211 sien die kommentaar, en die kode. Ek is jammer. Ja, 'n mens kan die opbrengs direk gebruik, maar uit my ervaring it8217s beter om hulle te normaliseer vir wisselvalligheid. Een manier om dit te doen, is om 'n kort SD neem (of SD behulp 0 vir die gemiddelde, soos ek) en verdeel die opbrengs deur daardie value. Lets ryk sien hoe en R kan verryk jou kennis van die finansiële markte Check uit my nuwe klas op quantatative en tegniese ontleding met quantmod en finansiële data: 25 koepon vir my nuwe Udemy natuurlik - Praktiese data Wetenskap: die analiseer beurs data met R pakkette wat in hierdie Walk - finansiële data en modellering gereedskap - hantering van tyd-gebaseerde data klasse - vinnige modellering algoritme - oppervlakte onder die kromme (AUC) funksies dit walkthrough bestaan uit twee dele: die eerste deel is 'n baie basiese inleiding tot quantmod en, as jy dit voor havent gebruik en basiese toegang tot daaglikse aandelemark data en kartering nodig, dan is jy in vir 'n groot verrassing. Die tweede deel gaan dieper in kwantitatiewe finansies deur gebruik te maak van quantmod om toegang tot al die aandele komponeer die NASDAQ 100 Indeks 'n woordeskat van die mark beweeg bou en probeer om te voorspel of die volgende handelsdae volumne sal hoër of laer wees. quantmod staan vir Kwantitatiewe finansiële modellering en Trading Raamwerk vir R Dit het baie funksies so check die hulp lêer vir 'n volledige dekking of die Quantmods amptelike webwerf. Kom ons kyk hoe Amazon is die afgelope tyd doen: Die getSymbols funksie afgelaai daaglikse data gaan al die pad terug tot Januarie 2007. Die barChart funksie vertoon die data in 'n mooi skoon mode aanleiding van 'n tema-gebaseerde parameter (sien die hulp lêer vir meer). Nie sleg vir 2 lyne kode. Dit raak beter - kan sien hoe maklik dit is om 'n volledige voorraad grafiek met aanwysers vertoon in net 3 lyne kode: quantmod gebruik Yahoo om sy finansiële data te kry. In die voorbeeld hierbo GSPC verteenwoordig die SampP 500 Indeks. Die meeste finansiële produk simbole is eenvoudig soos MSFT vir Microsoft. Vir indekse en ander esoteriese simbole, verwys na finance. yahoo/lookup~~V om te sien hoe hulle verkorte dit. chartSeries is eenvoudig en sal plot watter simbool is afgelaai na geheue met behulp van getSymbols. addBBands funksie sal plot Bollinger Bands om jou prys reeks. Daar is baie maniere om die vertoning aan te pas, vir 'n paar voorbeelde te kyk na die Quantmod Galery. Beweeg dieper in kwantitatiewe finansies, kan ontwerp 'n patroon-gebaseerde stelsel om te voorspel of 'n bepaalde finansiële produk 'n verhoging sal sien of daling in volume die volgende verhandelingsdag. Wel gebruik quantmod om al die aandele wat die NASDAQ 100 Indeks komponeer aflaai. Toe goed saamsmelt saam al ons tyd reeks om hulle te sinchroniseer. Dit sal die data versamel deur tyd en in enige ontbrekende data met NA s vul: Wees gewaarsku, dat dit 'n bietjie tyd in beslag neem as quantmod die aflaai sal smoor. Elke simbool is gelaai in die geheue onder die naam simbool, dus het ons meer as 100 nuwe voorwerpe gelaai ter nagedagtenis elk met jare se daaglikse mark data. As dit is n onafhanklike tydreekse, ons het alles saam smelt en in vermiste data te vul sodat alles pas mooi in 'n data raam. Wel gebruik die merge. xts funksie om saam te smelt met die tyd al hierdie voorwerpe in 'n data raam: Nou dat ons 'n handvol van die jaar van die mark data vir elke voorraad tans in die NASDAQ 100 Indeks. ons nodig het om iets te doen met dit. Op pad was na 'n verskeidenheid van maatreëls tussen prys en volume punte te skep. Die idee is om voorraad beweeg as patrone kwantifiseer deur te trek op 'n dag teenoor 'n vorige een. Wel skep 'n reeks van verskille: 1 dag teenoor 2 dae gelede 1 dag teenoor 3 dae gelede 1 dag versus 5 dae gelede 1 dag teenoor 20 dae gelede (soortgelyk n 20 dag bewegende gemiddelde) Die skep van die uitslag Veranderlike Dit is die hart van die stelsel en sy 'n bietjie vervelig so vashou. Wat ons probeer om te voorspel of die volgende handelsdae volume vir 'n gekose simbool hoër of laer as die huidige handel dag (dit nie die geval is moet die veld volume van FISV wees sal wees. Dit kan wees van die hoë of naby enige ander simbool vir wat ons het data): Skuif die gevolg is probeer om te voorspel die een verhandelingsdag met behulp van die lag funksie. Dit sal die veld volume van ons uitkoms simbool voeg met 'n lag van 1 handel dag, sodat sy op dieselfde lyn as die voorspellers. Ons sal staatmaak op hierdie waarde vir opleiding en toetsing doeleindes. 'N Waarde van 1 beteken die volume opgegaan, en 'n 0. dat dit afgegaan: Gooi die veld datum tot op hede tik as dit op die oomblik is van tipe karakter en sorteer op dalende volgorde: Hier is die patroon maker funksie. Dit sal ons rou mark data neem en skaal dit so dat ons enige simbool kan vergelyk met enige ander simbool. Dit trek dan die deur die dae parameter met behulp van die ewenaar en lag oproepe versoek ander dag reekse en sit hulle almal op dieselfde ry saam met die uitslag. Om dinge nog meer versoenbaar te maak, kan die parameter roundByScaler resultate te rond. Bel die funksie met die volgende verskille en skaal dit af tot 2 desimale punte (dit neem 'n rukkie om te hardloop): Ons verwyder die laaste ry van ons data raam as dit nie die geval is 'n uitkoms veranderlike (wat in die toekoms):
Comments
Post a Comment