Ek probeer om 'n basiese bewegende gemiddelde algoritme te implementeer. Die kern van die algoritme is (1) Daaglikse bereken die 35 dae - bewegende gemiddelde en 'n 1 dag bewegende gemiddelde vir 'n gegewe sekuriteit. (2) As die waarde vir 1 dag bewegende gemiddelde is laer as die 35 dae bewegende gemiddelde dan kort die sekuriteit (3) Aan die ander kant, indien die waarde 1 dag bewegende gemiddelde is groter as die 35 dae bewegende gemiddelde dan 'n lang posisie in die sekuriteit Ek gekodeerde die algoritme en ek wat 'n verlies 80% in kapitaal :( Ek het 'n paar basiese vrae Is daar 'n bepaalde soort van sekuriteit wat meer geskik is vir hierdie soort van algoritmes? Ek verkies Apple net op 'n bevlieging. Wat is die beste praktyke vir die bepaling van hoeveel hoeveelheid voorraad te koop / te kort wees? Weereens het ek gekies 100 eenhede op 'n bevlieging? Vir hierdie spesifieke algoritme, hoe besluit jy whats die ideale tyd uit jou posisie te kry? Laastens hoe ek my algoritme / resultate skakel na hierdie post? Doeltreffende bewegende gemiddelde algoritme Dankie aan diegene wat hier al voorheen gepos, het ek 'n paar nuttige antwoorde gevind! Ek het 'n paar groot datastelle (20 miljoen punte elk!) Van 'n ossilloskoop. Ek wil 'n bewegende gemiddelde te bereken. Maar die algoritme Ek het uitgedink is baie stadig. Hier is die kode vir my formule: Dit maak gebruik van die spoed van die matriks werking. Die onderskrif van die huidige kolom in hierdie formule is 'n oorsig van die ry getalle vanaf die begin van die bewegende gemiddelde venster na die huidige ry getal. My subscript die kolom op hierdie manier JMP gee 'n oorsig en die som funksie is relatief doeltreffend oor 'n matriks. 'N Eenvoudige bewegende gemiddelde Algoritme 'N Eenvoudige bewegende gemiddelde algoritme. Inleiding Ek benodig 'n lopende gemiddelde om CPU gebruik te monitor en geëindig skryf van 'n klein klas om dit te doen die berekening. In die skryf van die kode, het ek besef dat selfs iets so eenvoudig soos 'n lopende gemiddelde algoritme vereis 'n paar gedagtes om goed te skryf nie. So ek het hierdie artikel vir beginners geskryf, om te illustreer hoe selfs eenvoudige algoritmes sommige het gedink nodig. Wat is 'n lopende gemiddeld? 'N loop gemiddelde (ook bekend as 'n bewegende gemiddelde) kan op verskillende maniere geïmplementeer word. Vir 'n in-diepte beskrywing, verwys na Wikipedia. Eenvoudig bewegende gemiddelde 'N Eenvoudige bewegende gemiddelde is die ongeweegde gemiddelde (die som van al die items in 'n lys gedeel deur die aantal items in die lys) van die vorige N datapunte. Dit is die maklikste hardloop gemiddelde te implementeer en is die een wat ek illustreer in hierdie artikel. Geweegde bewegende gemiddelde 'N Geweegde bewegende gemiddelde is 'n gemiddelde waarin die datapunte in die lys word verskillende vermenigvuldiging faktore. Dit het die uitwerking van die maak van 'n paar items in die lys belangriker (gegewe meer gewig) as ander. Byvoorbeeld, kan jy wil ouer waardes moet meer gewig dra as nuwer kinders, of andersom. Brute krag Implementering 'N Eenvoudige bewegende gemiddelde neem die monster waardes en verdeel hulle deur die monster telling. 'N Basiese implementering kan lyk iets soos hierdie: Trouens, dit laat my dink aan 'n baie 'n algoritme wat ek geskryf het toe ek die eerste program in Commodore BASIC is begin! Daar is verskeie probleme met hierdie algoritme: Tot die monster verskeidenheid heeltemal gelaai, sluit die Gemiddelde berekening afgelaai word (en 'n nul) monster waardes. Dit lei tot die verkeerde gemiddelde Die algoritme is baie ondoeltreffend vir groot steekproefgroottes, met die monsters in totaal elke keer as die gemiddelde geneem Die algoritme implementeer 'n omsendbrief lys. Sou dit nie lekker wees om die implementering van die omsendbrief lys van die implementering van die lopende gemiddelde algoritme te onttrek? Daar is nie 'n goeie manier om die eenvoudige verloop gemiddelde met, sê, 'n geweegde hardloop gemiddelde vervang, omdat die klas 'n koppelvlak wat gebruik-geval buigsaamheid bevorder nie implementeer. 'N Beter Implementering Skei die versameling en iterasie; Logika Die eerste stap, in my mening, sou wees om te skei uit die iterasie logika. Ons moet hier versigtig wees, want die omsendbrief lys wat ons nodig het is nie net 'n iterator - ons eintlik moet die waardes wat in die lys, sowel. 'N iterator beteken dit nie toelaat nie. Van MSDN: 'N opnemer bly geldig solank die versameling onveranderd bly. As veranderinge aan die versameling, soos die toevoeging van, verander, of die verwydering van elemente, is die opnemer reddeloos ongeldig en die volgende oproep tot Move Next of Herstel gooi 'n InvalidOperationException. Die verandering van die bestuur van die voorbeeld lys 'n omsendbrief lys elimineer twee probleme: Die lys bestuur is losgekoppeld van die algoritme Ons kan die Telling metode van die omsendbrief lys gebruik om die telling van gelaaide items, nie net die totale aantal items in die lys te kry Verder is dit maak gebruik van hergebruik van kode en help ontfouting - ons kan toets van die omsendbrief lys isoleer van probleme in die loop gemiddelde klas. Met ander woorde, sou dit maklik wees om eenheid toetse vir die omsendbrief lys skryf, te bekragtig die werking daarvan, dan skryf eenheid toetse om te bevestig dat die Averager korrek werk. Die nuwe kode lyk soos volg: Dit is 'n baie skoner implementering reeds! prestasie Die volgende uitgawe is prestasie. Vir 'n groot monster grootte, ons wil nie te iterating oor die hele monster van die totale kry. Dit sou meer sin om 'n lopende totaal bestuur. Dit vereis 'n bietjie van logika toe te voeg 'n monster waarde, om te bepaal of 'n monster wat reeds bestaan, sodat dit kan afgetrek word van die totale: en die gemiddelde lucky nie meer nodig het om op te som al die monsters: Maar is dit regtig beter prestasie? Dit is altyd die vraag, en dit hang af van die gebruik! Waarskynlik, sou die eerste metode beter presterende wees as verhouding van monsters word bygevoeg aan die aantal kere wat die gemiddelde geneem is baie hoog. Byvoorbeeld, kan jy die toevoeging van 'n miljoen monsters tussen die neem van die gemiddelde en die steekproefgrootte kan slegs 'n honderd items. In hierdie scenario, die oorhoofse van die behoud van die totale stroom waarskynlik veel groter as die oorhoofse van die berekening van die totale op die vlieg. So, die regte antwoord met betrekking tot prestasie is om die algoritme wat goed werk vir jou behoeftes te kies. Die algoritme wat ek hierbo beskryf is wat ek oorweeg om 'n tipiese geval, waar die gemiddelde na elke nuwe monster geneem word, en in hierdie geval, is dit nie sin maak om 'n lopende totaal gebruik, veral as die steekproefgrootte is groot. Die verbetering van Bruikbaarheid Bruikbaarheid verbeter kan word deur middel van 'n koppelvlak wat die programmeerder eerder direk kan gebruik as die klas. Deur die gebruik van 'n koppelvlak, kan die programmeerder die korrekte bewegende gemiddelde algoritme te skep sonder die kode hoef te weet watter (eenvoudige of geweegde) eintlik gebou. 'N ander deel van die aansoek kan hierdie besluit te neem. Kommentaar, foutopsporing en klokkies en fluitjies Die finale implementering, met 'n paar ekstra foutopsporing en die vermoë om die gemiddelde of pre-laai die monsters met 'n bepaalde waarde skoon te maak, lyk soos volg: 'N Eenvoudige program toon die gebruik van die SimpleMovingAverage klas is: Let op hoe die steekproefgrootte is 10 items, maar daar is 20 monsters by die bewegende gemiddelde. Die ou monsters vervang as nuwe monsters bygevoeg. As die kode illustreer, is 'n SimpleMovingAverage byvoorbeeld gebou en gebruik om die veranderlike avg, wie se tipe is IMovingAverage inisialiseer. Die toets metode neem die koppelvlak vir 'n parameter. As ons geïmplementeer, sê, 'n WeightedMovingAverage klas, kon ons die konstruksie te verander: en noem die presiese dieselfde toets roetine hoe die nuwe bewegende gemiddelde werke sien. Deur die gebruik van die koppelvlak, bevorder ons die bruikbaarheid van die kode. Al hierdie werk! Toegegee, dit is 'n baie werk vir 'n eenvoudige algoritme. Persoonlik, het ek probeer om die beginsel van die werk te doen reg volg, selfs al is dit 'n klein werk nie, want klein werk vinnig draai in 'n groot werk. Die ou verskoning "Ons het nie die tyd en die begroting", of "dit is eenvoudig, net bang dit uit en ons sal refactor dit later" het keer op keer bewys weer leuens wees. Dit maak nie tyd en geld te spaar om te doen dit verkeerd eerste! Refactoring word seldom die "nuwe" begroting. Slegte praktyke voortgaan op, tensy hulle verander van die begin af. Die enigste rede om te hack uit 'n algoritme is 'n prototipe, sodat jy kan leer en korrek te ontwikkel die produksie algoritme. As jy nog steeds probleme lees, anders Geluk op die oplossing van jou probleem! Ek is 'n bietjie verward deur jou strategie, kan jy dit verduidelik nog een keer? Sommige van die dinge wat jy genoem is 'n bietjie verwarrend Hierdie verklaring is altyd waar, ook is ook altyd waar nie. Vir jou ondergrens logika die prys stelling jy is altyd geëvalueer as True, en jou volume verklaring is altyd vals. Daarbenewens jy doen 'n beroep die geskiedenis () funksie en nie met behulp van die data. En as jy hierdie reël van die kode te bel volume = data [context. stock].volume Jy is eintlik om die volume verhandel vir die huidige handel selfs en so dit is nie die gemiddelde volume verhandel die afgelope 20 dae as Ek vermoed van wat jy geskryf het. As jy wil hê dat die gemiddelde volume te kry oor die afgelope 20 dae 'n maklike manier is om die volume data uit die DataFrame terugkeer deur die geskiedenis () funksie kry. volume = geskiedenis (20, '1d "," volume ") en dan. vavg = volume [context. stock].mean () is een manier om die te kry die gemiddelde waarde van wat ooit data is vervat in die gegewe reeks. Dus, voordat jy die kwessies van re-balans en marge pak jy moet versigtig wees om van daardie. Ek luister op hierdie draad, so as jy 'n reaksie te plaas ek sal probeer om so gou as moontlik te antwoord. Detrending bewegende gemiddelde algoritme: 'n geslote-vorm aanpassing van die skalering wet Die Hurst eksponent H van 'n lang reeks gekorreleer reeks kan geskat word deur middel van die detrending bewegende gemiddelde (DMA) metode. Die computational instrument, waarop die algoritme gebaseer is, is die algemene afwyking, met synde die gemiddelde oor die bewegende venster N en N die dimensie van die stogastiese reeks. Die vermoë om H te lewer is afhanklik van die eiendom van wissel as oor 'n wye verskeidenheid van skubbe [E. Alessio, A. Carbone, G. Castelli, V. Frappietro, Euro. J. Phys. B 27 (2002) 197]. Hier gee ons 'n geslote vorm 'n bewys dat is gelykstaande aan en bied 'n eksplisiete uitdrukking vir. Ons vergelyk verder die waardes van dié verkry deur die toepassing van die DMA algoritme om kunsmatige self-soortgelyke seine. Hurst eksponent Moving gemiddelde DMA algoritme Fig. 1. Fig. 2. Bewegende gemiddelde (hoe om te bereken) Ek nodig het om te bereken bewegende gemiddeldes van weeklikse data tydens die laaste Na 'n paar soek, ek glo dat die beste benadering sal wees om 'n te kry dataset van die SQL Server databasis, blaai deur die rekords en, met behulp van 'n algoritme, bereken die bewegende gemiddelde. Daar is 'n artikel oor die & quot; Kode Project & quot; webwerf getiteld & quot; A Simple Op 4 Augustus, 6: 02 * pm, Michel & lt; MichelCou. @ Gmail. comwrote: Hallo, Ek nodig het om te bereken bewegende gemiddeldes van weeklikse data tydens die laaste Na 'n paar soek, ek glo dat die beste benadering sal wees om 'n te kry dataset van die SQL Server databasis, blaai deur die rekords en, met behulp van 'n algoritme, bereken die bewegende gemiddelde. navorsingsartikel 'N Algoritme vir die toets van die doeltreffende markhipotese Ioana-Andreea Boboc Affiliasie: Finansiële Ingenieurswese Afdeling, Switserse Finansies Instituut by École Poly Technique Federale die Lausanne, Lausanne, Switserland Mihai-Cristian Dinică Affiliasie: Departement van Finansies, Boekarest Universiteit van Ekonomiese Studies, Boekarest, Roemenië Die doel van hierdie navorsing is om die doeltreffendheid van EUR / USD mark te ondersoek deur die toepassing van 'n handel stelsel. Die stelsel maak gebruik van 'n genetiese algoritme gebaseer op die ontleding aanwysers tegniese soos Eksponensiële bewegende gemiddelde (EMA), bewegende gemiddelde Konvergensie divergensie (MACD), relatiewe sterkte-indeks (RSI) en Filter dat die koop en verkoop van aanbevelings aan beleggers gee. Die algoritme optimaliseert die strategieë wat deur dinamiese soek na parameters wat winsgewendheid in die opleiding tydperk verbeter. Die beste stelle reëls word dan toegepas op die toetstydperk. Die resultate toon teenstrydigheid in die vind van 'n stel van handel reëls wat goed presteer in beide tydperke. Strategieë wat 'n baie goeie opbrengste in die tydperk van opleiding show moeilik terugkeer positiewe resultate in die toetstydperk bereik, hierdie word in ooreenstemming met die doeltreffende markhipotese (EMH). Citation: Boboc ek-A, Dinică M-C (2013) 'n algoritme vir toetsing die doeltreffende markhipotese. PLoS ONE 8 (10): e78177. doi: 10,1371 / journal. pone.0078177 Redakteur: Rodrigo Huerta-Quintanilla, Cinvestav-Merida, Mexico Ontvang: 1 Julie 2013; Aanvaar: September 13, 2013, Gepubliseer: 29 Oktober 2013 Kopiereg: © 2013 Boboc, Dinică. Dit is 'n oop-toegang artikel versprei onder die terme van die Creative Commons Attribution-lisensie, aan wie onbeperkte gebruik, verspreiding, en voortplanting toelaat in enige medium, op voorwaarde dat die oorspronklike skrywer en 'n bron word gekrediteer. Befondsing: Hierdie werk is saam gefinansier word uit die Europese Sosiale Fonds deur Sektorale Operasionele Program Human Resources Development 2007-2013, projeknommer POSDRU / 107 / 1.5 / S / 77213, Ph. D. vir 'n loopbaan in interdissiplinêre ekonomiese navorsing by die Europese standaarde. Die finansiers het geen rol in studie ontwerp, data-insameling en analise, besluit om te publiseer, of voorbereiding van die manuskrip. Mededingende belange: Die skrywers verklaar dat daar geen botsende belange bestaan. Inleiding Hierdie artikel beskryf 'n genetiese algoritme wat gebruik word om 'n handel stelsel te skep, bestaande uit 'n paar reëls vir die opening en sluiting van handel posisies in die FX mark. Die doel van hierdie studie is om die swak vorm doeltreffendheid van die euro / dollar mark te evalueer. Ons papier toon dat die verspreiding van die uitslag in die tydperk buite-monster eenvormig versprei rondom 'n gemiddelde naby aan 0. Hierdie bevestig dat al die beskikbare in die euro / dollar markinligting word weerspieël in die prys en nie arbitrage kan gemaak word deur die handel hierdie geldeenheid paar wat gebaseer is op historiese inligting. Ons bevindinge moet onder die aandag van beleggers in die FX mark wat hul besluite baseer op tegniese ontleding seine op te vang. Die resultate is in die ondersteuning van vorige akademiese literatuur wat oor die algemeen bevestig die onmoontlikheid van die voorspelling van finansiële markbewegings deur net die ontleding van historiese pryse. Algoritmiese handel het eksponensieel gegroei in die afgelope jaar as gevolg van vinnige reaksie op tydelike mispricing en makliker prysbestuur van verskeie markte [1]. Soos in vergelyking met menslike handelaars, kan rekenaars gelyktydig leer uit duisende inligtingsbronne en vermy emosionele invloed. Tegniese ontleding is 'n metode van vooruitskatting prysbewegings deur die ontleding van die verlede mark data [2]. Die doeltreffende markhipotese (EMH) [3] weerspreek hierdie benadering deur te sê dat alle openbare inligting in die mark onmiddellik word weerspieël in die pryse; Daarom kan geen arbitrage word gemaak op grond van historiese data. Tydreeks is verdeel in twee dele. Die stelsel handel met verskeie parameters word toegepas in-monster oor die opleidingstydperk moet ontruim en strategieë wat die hoogste opbrengste te genereer is gekies en getoets oor die volgende tydperk (out-of-monster). Die doel van die stelsel is om hoë opbrengste oor die toetstydperk bereik. Die onmoontlikheid van die vind van 'n goeie uitvoering strategie oor beide opleiding en toetsing tydperk sal die EMH ondersteun. Die navorsing verloop soos volg. Hierdie afdeling bied 'n oorsig van die bestaande literatuur met betrekking tot die toetse op die doeltreffende markhipotese, studies oor die prestasie van tegniese ontleding gebaseer op verskeie aanwysers, asook die verbetering van handel strategieë met behulp van genetiese algoritmes. Artikel 2 stel die databasis wat gebruik word vir die toets van die doeltreffendheid van die stelsel en die metodologie wat betrokke is. Artikel 3 bespreek empiriese bevindinge van ons analise en sluit af. Een geldeenheid paar is gebruik, EUR / USD. Doeltreffende markhipotese EMH, wat ontwikkel is deur Eugene Fama [3]. veronderstel dat al die inligting in die mark op 'n spesifieke oomblik word weerspieël in die pryse en dus markdeelnemers kan nie konsekwent beter as die gemiddelde mark opbrengs op 'n risiko-aangepaste grondslag. Tog het empiriese bevindinge toon dat die EMH twyfelagtige kan wees. Hasan et al. [4] vind ondoeltreffendheid in die Dhaka aandelemark. Hulle sien dat faktore soos terugkeer, markkapitalisasie, boek-tot-mark-verhouding en markwaarde van die aandeel opbrengste beïnvloed. Verder het soortgelyke eienskappe soos dun handel, wisselvalligheid, klein aantal genoteerde sekuriteite en houding beleggers se tot beleggingstrategie kenmerk DSE, sowel as ander ontluikende markte. Verskeie studies vind wisselvalligheid in die vlak van doeltreffendheid met verloop van tyd en onder verskillende markte. Alvarez-Ramirez et al. [5] sien dat die doeltreffendheid mate van finansiële markte verander met verloop van tyd. Die relatiewe doeltreffendheid van die Amerikaanse aandelemark het gewissel oor 1929-2012, met 'n afname in die laat 2000's veroorsaak deur die ekonomiese resessie. Die mees doeltreffende tydperk was 1973-2003. Nog 'n studie toon dat die mate van ondoeltreffendheid is nie konstant oor tyd gemaak in [6]. IRR / dollar mark was ondoeltreffend oor 2005-2010 en dit kan veroorsaak word deur die negatiewe lang afstand afhanklikheid, wat beteken dat indien die wisselkoers is op dit waarskynlik om af te gaan in die naby toekoms. 'N Soortgelyke gevolg word geopenbaar deur Kim et al. [7]. Hulle bied 'n bewys dat-time wisselende ruil voorspelbaarheid van die Dow Jones Industrial Average indeks oor die tydperk 1900-2009 ondersteun. Terwyl die mark blyk doeltreffend tydens mark crashes, ekonomiese en politieke krisisse veroorsaak voorspelbaarheid in opbrengste. Die doeltreffendheid van die Asiese aandelemarkte wissel met die vlak van die aandelemark ontwikkeling [8]. Die ontwikkelde ontluikende markte gevind swak-vorm doeltreffend wees, terwyl die sekondêre ontluikende markte word gekenmerk deur ondoeltreffendheid. Dragota et al. [9] kan nie verwerp die swak-vorm EMH vir die Boekarest Aandelebeurs deur verskillende Variansie verhouding toets ewekansige loop hipotese. Vir dieselfde mark, Armeanu en Balu [10] getoets die doeltreffendheid van die Markowitz model, beklemtoon die voordele van portefeulje diversifikasie. Charles et al. [11] geëvalueer die voorspelbaarheid van wisselkoers opbrengste en bevind dat terwyl hulle onvoorspelbaar meeste van die tyd, terugkeer voorspelbaarheid mag voorkom met gekoördineerde sentrale bank intervensie en finansiële krisisse. Die Chinese aandelemarkte doeltreffendheid is ondersoek in [12]. Die resultate dui daarop dat die Klas A-aandele, wat oor die algemeen beskikbaar vir plaaslike beleggers is, blyk doeltreffend, terwyl aandele Klas B, in aanmerking kom vir buitelanders, is aansienlik ondoeltreffend. Trolle en Schwartz [13]. met behulp van 'n databasis van 11 jaar van data vir ru-olie en aardgas futures en opsies verhandel op Nymex, gevind dat dit moeilik is om die variasie en die vlak in energie variansie risiko premies met behulp van sistematiese faktore soos die opbrengs op kommoditeite of aandelemark verduidelik portefeuljes of spesifieke faktore soos voorrade. tegniese ontleding Die meeste outomatiese handel stelsels gebruik 'n paar aanwysers ten einde die aankoop en verkoop aanbevelings te genereer [14]. Een het bevind dat die beste aanwyser vir maatskappye met 'n hoë kapitalisasie is RSI en die beste vir klein kapitalisasie maatskappye is Momentum. Daarbenewens aanwysers wat nie baie handel seine hoef te gee, soos Momentum, is meer geskik as die transaksie koste is hoog. Een navorsing beoordeel die prestasie van tegniese ontleding in die VSA aandelemark vir 'n paar tegniese nywerheidsektore en klein pette, oor die tydperk 1995-2010 [15]. Resultate toon dat die strategieë in staat is om beter as die koop-en-hou-strategie na aanpassing vir-data Snooping vooroordeel en sonder transaksiekoste in die eerste helfte van die monster tydperk. Maar dieselfde strategieë is nie in staat om beter prestasie te lewer oor die tweede helfte. Sukses in die tydperk 1995-2002 is gehard wanneer die bekendstelling van transaksiekoste. Verder het die vooruitsig van kort termyn terugkeer het swakker in die afgelope jaar, die feit dat in ooreenstemming met die EMH in die aandelemark. 'N Positiewe prestasie van tegniese ontleding is gegenereer deur die toepassing van bewegende gemiddelde handel reëls op 16 Europese aandelemarkte oor die tydperk 1990-2006 [16]. 'N bewegende gemiddelde handel reël gekombineer met 'n strategie wat by koop seine beveel belê in die aandelemark, terwyl verkoop seine beveel belê in die geldmark beter as die koop-en-hou-strategie oor die monster tydperk. In [17] bevind dat 'n mens die uitvoering van opbrengste met behulp van handel strategieë slegs indien hy vol inligting van die aandele prys verandering vir die toekoms kan bereik. Maar, as die toekomstige inligting is nie akkuraat is, kan dit nutteloos in die verhoging van winste wees. Daarbenewens is 'n soektog in 'n strategie ruimte om 'n hoë wins te kry is onmoontlik en dit is gebaseer op 'n gebrek aan toekomstige inligting van 'n maatskappy. Trading strategieë is hoofsaaklik gebaseer op tegniese analise in die kommoditeit termynmark [18]. [19]. [20] en buitelandse valuta mark [21]. [22]. [23]. [24]. Evaluering van die tegniese ontleding se prestasie in die aandelemarkte is oor die algemeen gedoen met behulp van markindekse soos Dow Jones Industrial Average [25]. [26]. S & amp; P 500 [26]. [27]. NYSE en die NASDAQ [26]. [28]. [29] of Russell 2000 [26]. [27]. [29]. Tegniese ontleding ontwikkel buite filter en bewegende gemiddeldes reëls, nou insluitend sielkundige hindernisse soos ons weerstand en ondersteuning vlakke [30]; [31]. genetiese algoritmes In onlangse jare, het individue en maatskappye algoritmes wat probeer om winsgewendheid van handel reëls verbeter ontwikkel. Genetiese algoritmes (GA) verteenwoordig 'n klas van optimalisering tegnieke wat oplossings genereer vir probleme soek en vinnig aan te pas by veranderende omgewings. GA is ontwikkel deur Holland [32] en hulle na te boots die proses van natuurlike evolusie. As die spesie ontwikkel deur genetiese prosesse soos seleksie, crossover en mutasie, GA skep klasse oplossings wat ontwikkel met verloop van 'n paar geslagte deur analoog prosesse ten einde 'n oplossing met die beste geskik is om die spesifieke probleem [33] te genereer. Algoritmes begin deur die skep van 'n paar strategieë met spesifieke parameters. In die volgende stappe, hulle dinamies hul parameters verander ten einde hoër winste te bereik. In 'n natuurlike evolusie proses, spesies verander met verloop van tyd. Nuwe organismes gebore deur rekombinasie tussen lede. Hulle erf eienskappe ouers se en word ook beïnvloed deur die omgewing voorwaardes. Die natuurlike keuringsproses is afkomstig van die feit dat, terwyl die bevolking groei, die organisme moet sukkel vir hulpbronne. Daarom, net die organismes wat goed geskik eienskappe vir hierdie stryd in besit sal meer nageslag bring aan die nuwe generasie. Holland [32] het 'n manier waarop die natuurlike evolusieproses in algoritmes wat oplossings bied vir probleme soek kan ingevoer word. GA is baie geskik vir die bestuur van die finansiële markte, want hierdie verteenwoordig 'n deurlopende veranderende omgewing en handel strategieë nodig om aan te pas by die nuwe omstandighede. Die soektog probleem is verteenwoordig deur die vind van 'n strategie wat positiewe oortollige opbrengste behaal wanneer dit toegepas word om 'n spesifieke voorbeeld. GA genereer baie strategieë en diegene goed toegeruste (volgens 'n spesifieke funksie wat beteken terugkeer, Sharpe verhouding of een wat in ag neem ook omgewing voorwaardes kan wees) is gekies vir die verbygaan in die nuwe generasie en vir recombining om nuwe strategieë te genereer. Mendes et al. [34] 'n stelsel ontwikkel wat gebaseer is op 'n genetiese algoritme wat 'n stel reëls om 'n winsgewende strategie om euro / dollar en Britse pond / dollar verhandel verkry optimaliseer. Die stelsel genereer individue gedefinieer deur tien verpligte en opsionele reëls, waaruit vyf van hulle besluit of die opening van 'n lang / kort posisie of nie teen die huidige prys in die mark en die ander vyf besluit wanneer om 'n oop posisie te sluit. Die reëls bevat 31 parameters wat ontwikkel in baie geslagte deur seleksie, crossover en mutasie en, gebaseer op opbrengs en risiko, die individu wat die hoogste prestasie gekies en getoets in die volgende tydperk. Resultate het getoon dat, met inagneming van transaksiekostes, die beste individue in die opleiding reeks was dikwels nie in staat om positiewe resultate in die buite-monster toetsreeks te bereik. Dempster en Jones [2] het 'n aangepaste handel stelsel wat genetiese programmering gebruik. Hulle gebruik USD / GBP plek buitelandse valuta bosluis data vanaf 1994 tot 1997. Die algoritme is toegepas op buite-steekproefdata na nuwe reëls en 'n terugvoer stelsel help herbalanseer die reël portefeulje voorsien. Die genetiese algoritme is nuttig, selfs in die teenwoordigheid van transaksiekoste. Nog 'n studie oor die prestasie van die genetiese algoritmes vir FX markte is ontwikkel in [35]. Die skrywers wys dat die stelsel dikwels terug wins wanneer die toets tydperk agtereenvolgende om die opleiding tydperk was. Hulle gevolgtrekking was dat die sukses van die stelsel hang af van die ooreenkoms in die tendense van die twee tydperke. Ook, genetiese algoritmes daarin geslaag om die uitvoering van handel reëls vir ses wisselkoerse oor die tydperk 1981-1995 [36]. Een vooroordeel wat mag voorkom wanneer 'n mens toets 'n groot aantal strategieë op dieselfde monster is die data Snooping vooroordeel. Soos verduidelik in [37]. data-snuffel vooroordeel verskyn wanneer 'n stel data meer as een keer gebruik word vir die doel van model seleksie. Strategieë wat positiewe opbrengste op 'n spesifieke voorbeeld te genereer mag optree net as gevolg van geluk en het nie 'n ware voorspellende krag. Daarom, wanneer dit toegepas word om 'n ander monster, die resultate kan negatief wees en beleggers kan belangrike verliese ly. 'N oplossing vir hierdie probleem is die Skoenlus Reality Check ontwikkel deur Wit [38] wat staatmaak op Hersteekproefnemingsteorie die terugkeer reeks ten einde 'n betroubare uitspraak met betrekking tot die werklike prestasie van die strategie te gee. Materiale en metodes Die databasis word in hierdie vraestel is die merk-tot-blok reeks euro / dollar munt paar oor die jaar 2012 (ratedata. gaincapital. com). Tydreekse met frekwensie van 60 minute gebruik vir die toets van die prestasie van die genetiese algoritme. Tydreeks is geskei in twee stelle: die opleidingstydperk moet ontruim en die toets tydperk. Die eerste mens in ag neem die eerste ses maande van 2012 en word gebruik vir die vind van die strategie wat die hoogste prestasie behaal. Die tweede stel toets die prestasie van die strategie wat in die eerste stap. Die algoritme is 100 keer op die opleiding tydreeks toegepas, ten einde die eienskappe van die beste 100 individue vind. Ons het toe evalueer die prestasie van hierdie persone op die buite-monster reeks. Die uurlikse data verkry uit die data bosluis-vir-blok dit ook oorweeg om die minimum en maksimum regmerkie vir beide bod en vra kwotasies. Ons benodig hierdie inligting om te bepaal of die neem-winsgewende of stop-verlies vlak het gedurende daardie tydperk bereik. Die doel van die genetiese algoritme is om 'n stel van handel reëls te optimaliseer om hoër wins te genereer. Trading reëls baseer hulle besluite op 'n paar aanwysers wat hieronder aangebied word, tesame met hul formules. 1. Eksponensiële bewegende gemiddelde. Dit gee 'n groter gewigte aan die jongste pryse wanneer die berekening van die gemiddelde. Wanneer die prys is hoër as hierdie aanwyser, die sein is vir 'n lang (koop) posisie en wanneer die prys is laer as die eksponensiële bewegende gemiddelde dit aandui die verkoop. Waar EMO is die eksponensiële bewegende gemiddelde aanwyser, n die aantal periodes en Close is die sluitingsprys van die tydperk. 2. bewegende gemiddelde Konvergensie divergensie - dit is 'n aanduiding gebaseer op 'n paar ander ontleding aanwysers tegniese. Eerstens, is die MACDline bereken as 'n verskil tussen twee eksponensiële bewegende gemiddeldes. In die tweede plek, bereken ons 'n sein lyn as 'n eksponensiële bewegende gemiddelde van die MACDline. Ten slotte, is die MACD aanwyser bereken as die verskil tussen die MACDline en die sein. Waar P die aantal periodes van die kort eksponensiële bewegende gemiddelde, Q is die aantal periodes van die lang eksponensiële bewegende gemiddelde, Close is die sluitingsprys van die tydperk en m is die aantal periodes van die bewegende gemiddelde van die MACDline. Hierdie aanwyser bied koop of te verkoop seine wanneer sy waarde positief is, onderskeidelik negatiewe is. 3. Relatiewe Sterkte Indeks - is 'n tegniese ontleding aanduiding dat oorgekoop en oorverkoopte seine gee. Die oorgekoop sein beskryf word terwyl die RSI waarde is oor 'n spesifieke maatstaf (gewoonlik 70 of 80) en die oorverkoopte sein beskryf word terwyl dit waarde is onder 'n ander maatstaf (die standaard is 20 of 30). Waar P die sluitingsprys van die tydperk en n die aantal van die wat gebruik word om die RSI bereken tydperke. Verder begin ons die beskrywing van die algoritme met die definisie van 'n individu. Die individuele eienskappe In 'n genetiese algoritme vir die opstel van 'n FX handel stelsel, is elke individu deur 'n stel reëls tegniese ontleding. Elke reël kan oorweeg word as 'n chromosoom, terwyl die parameters wat 'n reël te definieer word beskou as gene. Hier dink ons die individu as gedefinieer deur 6 chromosome (reëls) en 24 gene (parameters). Die reëls is verdeel in 4 reëls wat die voorwaardes vir die opening van 'n posisie en die res 2 reëls is dié wat die voorwaardes vir die verlaat van die posisie definieer stel. Elke reël bevat 'n Boole geen wat kan aktiveer of die res van gene die reël se deaktiveer. Na aanleiding van, beskryf die reëls (chromosome). Reëls vir die posisie Opening Reël 1. Eksponensiële bewegende gemiddelde: EMA (N). gene: 1. Boolean_EMA - takes die waardes 0 of 1. Waarde 0 passiveert die reël, terwyl waarde 1 aktiveer dit. 2. Nr_periods_EMA, opgemerk N. neem waardes tussen 5 en 90. Die reël genereer ambagte soos volg. As daar geen huidige oop posisie, dan 'n lang posisie gegenereer word slegs indien die noue prys is hoër as EMO (N) en 'n kort posisie gegenereer word slegs indien die noue prys is laer as EMO (N). As 'n posisie is tans oop, dan is hierdie reël is geïgnoreer. Reël 2. bewegende gemiddelde Konvergensie divergensie: MACD (P, Q, m). gene: 3. Boolean_MACD - neem die waardes 0 of 1. Waarde 0 passiveert die reël, terwyl waarde 1 aktiveer dit. 4. Periods_short_MA, opgemerk p neem waardes tussen 5 en 90 5. Periods_long_MA, opgemerk Q - neem waardes tussen 10 en 100, met die beperking Q & gt; p 6. Periods_signal_MACD, opgemerk m - neem waardes tussen 5 en 25 en is die bewegende gemiddelde van die verskil tussen die kort en die lang bewegende gemiddelde. 7. Boolean_signal - neem die waardes 0 of 1. Waarde 0 stel die waarde vir die sein om 0. Eintlik is dit verander die MACD in 'n eenvoudige reël van bewegende gemiddeldes crossover. Waarde 1 aktiveer die sein. Vir die 0 waarde is 'n waarskynlikheid van 25% aangeheg, terwyl dit vir waarde 1 is die waarskynlikheid is ingestel op 75% Die bedrywe is soos volg gegenereer deur hierdie reël. Eerstens, as 'n posisie is reeds oop, die reël is geïgnoreer. As daar geen tans oop posisie, dan, indien die Boolean_signal het die nul waarde, die reël in ag neem net die kort en die lang bewegende gemiddeldes. Daarom is 'n lang posisie oop wanneer die kort bewegende gemiddelde is hoër as die lang een en 'n kort posisie is anders geopen. As die Boolean_signal neem die waarde 1, die reël verloop soos volg. navigasie Op.
Binêre opsies makelaars wat perfek geld binêre Trading Brokers aanvaar. binderiet. dk 'N ding om binêre opsie binêre opsies makelaars in sekondes binêre opsie makelaars wat jou kan help wins met handel, die einde van bate, goud binêre opsies aanvaar paypal binêre verslag. Opsies tweede ambagte, binêre opsies bonus nuwe eenvoudige manier om seker te maak. Dit aanvaar. Vir huisvrou. Opsies makelaar, die Verenigde banc de Switserse, perfekte geld. Opsies makelaars, banc de binêre opsies vinnig binêre opsie bot is 'n idee van tyd gratis binêre opsies. Opsies strategieë binêre kredietkaarte uit 'n span moet binêre opsies, kry 'n. Trading makelaars wat makelaars wat PayPal aanvaar; Beste binêre. Counter intuïtief as een van binêre opsies makelaar is 'n terugkeer binêre opsies makelaars wat die grootste voordele van binêre opsies kan Jou. Die sek binêre opsies makelaars wat geld RSI aanvaar. Jy. Eenvoudiger en maklikste aanlyn handelaar webwerf is binêre opsie miljoenêrs K...
Comments
Post a Comment