Friday 8 September 2017

Amibroker Testaus A Liikkuva Keskiarvo Crossover Järjestelmä


Miten optimoida kauppajärjestelmä HUOMAUTUS: Tämä on melko edistyksellinen aihe. Lue ensin aiemmat AFL-tutoriaalit. Optimoinnin idea on yksinkertainen. Ensin sinun täytyy olla kaupankäyntijärjestelmä, tämä voi olla yksinkertainen liikkuva keskimääräinen crossover esimerkiksi. Lähes jokaisessa järjestelmässä on joitain parametreja (keskiarvoisena ajanjaksona), jotka päättävät, miten järjestelmä toimii (toisin sanoen soveltuu hyvin pitkällä tai lyhyellä aikavälillä, miten reagoi erittäin epävakaisiin varastoihin jne.). Optimointi on prosessi optimaalisten arvojen löytämiselle kyseisille parametreille (mikä antaa suurimman voiton järjestelmästä) tietyllä symbolilla (tai symbolisarjalla). AmiBroker on yksi harvoista ohjelmista, joiden avulla voit optimoida järjestelmäsi useita symboleja kerralla. Jotta voit optimoida järjestelmän, sinun on määriteltävä yhdestä jopa kymmenestä parametrista, jotka on optimoitava. Sinä päätät, mikä on parametrin vähimmäis - ja sallitun arvon ja missä lisäyksissä tämä arvo on päivitettävä. AmiBroker suorittaa sitten useita takaisinkokeita järjestelmästä käyttäen kaikkia mahdollisia parametrien arvoja. Kun tämä prosessi on valmis AmiBroker näyttää tuloslista lajitellulla nettotuloksella. Voit nähdä optimointiparametrien arvot, jotka antavat parhaan tuloksen. AFL-kaavan kirjoittaminen Optimointi takatestissä tuetaan uuden toiminnon avulla, jota kutsutaan optimoimiseksi. Tämän toiminnon syntaksi on seuraava: muuttujan optimointi (quotation Description, oletusarvo, minimitapahtuma) muuttuja - on normaali AFL-muuttuja, jolle annetaan arvo, joka palautetaan optimoimalla funktio. Normaalin takaisinkytkennän, skannauksen, etsintä - ja kommenttimoodien avulla optimointitoiminto palauttaa oletusarvon, joten yllä mainittu toiminto vastaa ekvivalenttia: muuttujan oletus Optimointitilassa optimointitoiminto palauttaa peräkkäiset arvot min: sta max: iin (inkluusioon) askeleelta. DescriptionQquot on merkkijono, jota käytetään optimointimuuttujan tunnistamiseen, ja se näytetään sarakkeen nimenä optimointituloslistassa. oletusarvo on oletusarvo, joka optimoi paluuehtojen optimoinnin etsinnässä, indikaattorissa, kommentoinnissa, skannauksessa ja normaalissa takaisintutkimustilassa min on optimoitavan muuttujan minimiarvo max on optimoidun muuttujan maksimiarvo. arvo min-max AmiBroker tukee jopa 64 puhelua toimintojen optimoimiseksi (siis jopa 64 optimointi muuttujat), huomaa, että jos käytät tyhjentävää optimointia, on todella hyvä ajatus rajoittaa optimointi muuttujien määrä vain muutamia. Jokainen puhelu optimoitava (max - min) askeloptimointi silmukoita ja useita puheluja optimoimiseksi kerrotaan tarvittavien juoksumäärien lukumäärä. Esimerkiksi kahden parametrin optimointi käyttäen 10 vaihetta edellyttää 1010 100 optimointisilmukkaa. Call optimoi toiminto vain ONCE per muuttuja kaavan alussa, koska jokainen puhelu luo uuden optimointisilmukan AmiBroker tukee täydellisesti useita symbolien optimointeja. Maksimikentätila on 2 64 (10 19 10,000,000,000,000,000,000) yhdistelmää. 1. Yhden muuttujan optimointi: sigavg Optimize (Signaalin keskiarvo 9. 2. 20. 1) Osta risti (MACD (12. 26), Signaali (12. 26. sigavg)) Myy risti (signaali (12. 26. sigavg), MACD (12. 26) 2. Kaksi muuttujaa optimointi (sopii 3D-kartoitukseen) Optimoimalla (per 2. 5. 50. 1) Taso Optimoi (taso 2. 2. 150. 4) Osta risti (CCI (per), - Level) Myy Rasteri (taso, CCI (per)) 3. Usean (3) muuttuvan optimoinnin: mfast Optimoi (MACD Fast 12. 8. 16. 1) mslow Optimoi (MACD Slow 26. 17. 30. 1) sigavg Optimoi (signaali keskiarvo 9. 2. 20. 1) Osta Risti (MACD (mfast, mslow)) Signal (mfast, mslow, sigavg)) Myy risti (signaali (mfast, mslow, sigavg) f Napsauta vain Optimoi-painiketta Nautilussianalyysi - ikkunassa. AmiBroker alkaa testata kaikkia optimointimuuttujien mahdollisia yhdistelmiä ja raportoi tulokset luettelossa. Kun optimointi on suoritettu, tuloslista esitetään lajitellulla nettotuloksella. Koska voit lajitella tulokset tulosluettelon minkä tahansa sarakkeen avulla, on helppo saada parametrien optimaaliset arvot alhaisemmalle vedonnousulle, alin kaupankäynnin lukumäärälle, suurimmalle voitto-tekijälle, alhaisemmalle markkina-altistukselle ja korkeimmalle riskille säädetystä vuotuisesta tuotosta. Tulosluettelon viimeiset sarakkeet esittävät tietyn testin optimointimuuttujien arvot. Kun päätät, mikä parametrien yhdistelmä sopii tarpeisiisi, parasta mitä sinun tarvitsee tehdä, on korvata oletusarvot optimoimalla toiminnot puhelut optimaalisilla arvoilla. Nykyisessä vaiheessa sinun on kirjoitettava ne käsin kaavan muokkausikkunaan (toinen parametri, jonka avulla voit optimoida toiminnon puhelun). 3D-animoitujen optimointitaulujen näyttäminen 3D-optimointitaulukon näyttämiseksi sinun on ensin suoritettava kaksivaihteleva optimointi. Kaksi muuttuvaa optimointia tarvitsee kaavan, jossa on 2 Optimize () - toiminto-puhelua. Esimerkki kahden muuttujan optimointikaavasta näyttää tästä: per Optimize (per 2. 5. 50. 1) Taso Optimize (taso 2. 2. 150. 4) Osta risti (CCI (per), - Level) Myy risti (Taso, CCI (per)) Kun olet syöttänyt kaavan, sinun on napsautettava tupakansytytyspainiketta. Kun optimointi on valmis, klikkaa pudotusnuolta Optimoi - painiketta ja valitse Näytä 3D-optimointikaavio. Muutamassa sekunnissa värikäs kolmiulotteinen pintaviiva näkyy 3D-karttanäkymäikkunassa. Seuraavassa esitetään esimerkki 3D-kaaviosta, joka on luotu yllä olevan kaavan avulla. Oletusarvon mukaan 3D-kaaviot näyttävät nettotuloksen arvoja optimointimuuttujia vastaan. Voit kuitenkin piirtää 3D-pinnan kaavion mille tahansa sarakkeelle optimointitulostaulukossa. Napsauta sarakkeen otsikkoa lajitaksesi sen (sininen nuoli ilmestyy, mikä osoittaa, että optimointitulokset lajitellaan valitulla sarakkeella) ja valitse sitten Näytä 3D-optimointikaavio uudelleen. Visualisoimalla, miten järjestelmäparametrit vaikuttavat kaupankäynnin suorituskykyyn, voit helposti päättää, mitkä parametriarvot tuottavat quotfragilequot ja tuottavat quotrobustquot-järjestelmän suorituskykyä. Vankat asetukset ovat 3D-kaavion alueita, jotka näyttävät asteittaisia ​​pikemminkin kuin äkillisiä muutoksia pinnanäytöllä. 3D-optimointikartat ovat erinomainen työkalu estääksesi kaarteen sovittamisen. Käyrän sovitus (tai ylioptimointi) tapahtuu, kun järjestelmä on monimutkaisempi kuin sen pitäisi olla, ja kaikki tämä monimutkaisuus keskittyi markkinaolosuhteisiin, joita ei ehkä enää tapahdu uudelleen. Radikaalimuutokset (tai piikit) 3D-optimointitaulukoissa osoittavat selkeästi ylioptimointialueita. Sinun pitäisi valita parametrinen alue, joka tuottaa laajan ja laajan tasangon 3D-kaavion oikean elämän kaupankäynnin. Parametriryhmät, jotka tuottavat voitonpiikkejä, eivät toimi luotettavasti reaalikaupassa. 3D-kaavion katseluohjaimet AmiBrokers 3D-kaavakuvaaja tarjoaa täydellisiä katseluominaisuuksia, joilla on täysi kuvaaja ja animaatio. Nyt voit tarkastella järjestelmäsi tuloksia kaikista mahdollisista näkökulmista. Voit hallita kartan sijaintia ja muita parametreja hiirellä, työkalurivillä ja pikanäppäimillä, mitä tahansa helpommin. Alla löydät luettelon. - Kierrä - pidä hiiren vasenta painiketta alaspainettuna ja siirry XY-suuntiin - Zoom-sisään, zoom-out - pidä hiiren oikeaa näppäintä painettuna ja siirry XY-suuntiin - Siirrä (kääntää) - pidä hiiren vasenta painiketta ja CTRL-näppäintä siirry XY-suunnissa - animoida - pidä alhaalla hiiren vasenta painiketta, vedä nopeasti ja vapauta painike samalla, kun vetää SPACEa - animoida (pyöritä automaattisesti) VASEN nuolipainike - kiertää vert. vasen oikea NUOLI - kierrä vert. oikea NUOLI-NÄPPÄIN - kierrä horiz. ylös DOWN-NÄPPÄIN - kierrä horiz. alhaalla NUMPAD (PLUS) - Lähes (zoom) NUMERORYHMÄN - (MINUS) - Kauko (pienennä) NUMERORYHMÄ 4 - siirrä vasemmalle NUMERORYHMÄN 6 - siirrä oikealle NUMERORYHMÄ 8 - - veden taso alas Smart (ei-tyhjentävä) optimointi AmiBroker tarjoaa nyt älykästä (ei-tyhjentävää) optimointia tavallisen ja tyhjentävän etsinnän lisäksi. Ei-kattava haku on hyödyllistä, jos tietyn kaupankäyntijärjestelmän kaikkien parametriyhdistelmien lukumäärä on yksinkertaisesti liian suuri, jotta se olisi mahdollista kattavaa etsintää varten. Täydellinen haku on täydellinen niin kauan kuin on järkevää käyttää sitä. Sanotaan, että sinulla on 2 parametriä, jotka vaihtelevat välillä 1 - 100 (vaihe 1). Thats 10000 yhdistelmää - täydellinen OK kattava haku. Nyt 3 parametrilla saat 1 miljoonan yhdistelmän - se on edelleen OK kattavaan hakuun (mutta voi olla lenghty). 4 parametrilla on 100 miljoonaa yhdistelmää ja 5 parametrilla (1..100) sinulla on 10 miljardia yhdistelmää. Tällöin olisi liian aikaista tarkistaa ne kaikki, ja tämä on alue, jossa ei-kattavat älykäs hakumenetelmät voivat ratkaista ongelman, jota ei voida ratkaista kohtuullisessa ajassa kattavan haun avulla. Tässä on ehdottomasti yksinkertaisin ohje, kuinka käyttää uutta, ei-tyhjentävää optimoijaa (tässä tapauksessa CMA-ES). 1. Avaa kaava kaavaeditorissa 2. Lisää tämä rivi rivisi yläosaan: OptimizerSetEngine (quotcmaequot) voit myös käyttää quotspsoquot tai quottribquot täältä 3. (Valinnainen) Valitse optimointitavoitteesi Automaattinen analyysi, Asetukset, - Forwardquot-välilehti, Optimointikenttä. Jos ohitat tämän vaiheen, se optimoi CARMDD: lle (yhdistetyn vuosituoton jaettuna suurimmalla vedolla). Nyt, jos suoritat optimoinnin käyttämällä tätä kaavaa, se käyttää uutta kehittynyttä (ei-tyhjentävää) CMA-ES-optimointia. Miten se toimii Optimointi on prosessi, jolla etsitään tietyn funktion minimi (tai maksimi). Kauppajärjestelmää voidaan pitää tietyn määrän argumenttien funktiona. Tulot ovat parametreja ja noteeraustietoja. tuotos on optimointitavoite (esim. CARMDD). Ja etsit maksimaalista tehtävää. Jotkut älykkäät optimointialgoritmit perustuvat luontoon (eläinkäyttäytymiseen) - PSO-algoritmiin tai biologiseen prosessiin - Geneettiset algoritmit, ja jotkut perustuvat ihmisen johtamiin matemaattisiin käsitteisiin - CMA-ES. Näitä algoritmeja käytetään monilla eri aloilla, myös rahoituksella. Syötä quotSO financequot tai quotCMA-ES financequot Googlessa ja löydät paljon tietoa. Ei-kattavat (tai quotsmartquot) menetelmät löytävät maailmanlaajuisen tai paikallisen optimaalisen. Tavoitteena on luonnollisesti löytää globaali, mutta jos zillionparametriyhdistelmistä on yksi terävä huippu, ei-tyhjentävät menetelmät eivät välttämättä löydä tätä yksittäistä huippua vaan muodostavat sen kauppiaiden näkökulmasta. Yksittäisen teräväpiikin löytäminen on hyödytöntä koska tämä tulos olisi epävakaa (liian herkkä) eikä replikoida reaalikaupassa. Optimointiprosessissa me etsimme tasapintaisia ​​alueita, joilla on pysyviä parametreja, ja tämä on alue, jossa älykkäät menetelmät loistavat. Mitä ei-tyhjentävän etsinnän käyttämissä algoritmeissa se näyttää: a) optimoija tuottaa jonkin verran (tavallisesti satunnaista) alkupopulaatiota parametrisarjoista b) AmiBroker suorittaa vastakokeita kustakin väestöstä tuotetusta parametrista c) selkäkokeiden tulokset arvioidaan algoritmin logiikan mukaisesti ja syntyy uutta väestöä tulosten kehityksen perusteella d) jos löydetään uusi paras - tallenna se ja siirry vaiheeseen b) kunnes pysäytyskriteerit täyttyvät Esimerkki pysäytyskriteereistä voi olla: a) suurimmat iteraatiot b) pysähtyä, jos viimeisten X-sukupolvien parhaiden objektiivisten arvojen alue on nolla c) pysähtyy lisäämällä 0.1 keskihajontavektoria missä tahansa pääakselin suunnassa ei muuta objektiivisen arvon arvoa d) muut Käyttää älykkäitä (ei - tyhjentävä) optimoija AmiBrokerissa sinun täytyy määrittää optimointikone, jota haluat käyttää AFL-kaavassa käyttämällä OptimizerSetEngine-toimintoa. Toiminto valitsee ulkoisen optimointimoottorin, jonka nimi on määritetty. AmiBroker toimittaa tällä hetkellä 3 moottoria: Standard Particle Swarm Optimizer (quotspsoquot), heimot (quottribquot) ja CMA-ES (quotcmaequot) - nimet salasanoissa on käytettävä OptimizerSetEngine-puheluissa. Optimointimoottorin valitsemisen lisäksi voit halutessasi asettaa joitain sisäisiä parametrejä. Voit tehdä tämän käyttämällä OptimizerSetOption-toimintoa. OptimizerSetOption (quotationquot, value) - toiminto Toiminto asettaa lisäparametrit ulkoiselle optimointimoottorille. Parametrit ovat moottorista riippuvaisia. Kaikki kolme AmiBrokerin (SPSO, Trib, CMAE) toimittamaa optimointia tukevat kaksi parametria: quotRunsquot (suoritusten määrä) ja quotMaxEvalquot (maksimaaliset evaluoinnit (testit) yksirullina). Kunkin parametrin käyttäytyminen riippuu moottorista, joten samat arvot voivat ja yleensä tuottaa erilaisia ​​tuloksia eri moottoreiden kanssa. Suoritusten ja MaxEvalin välinen ero on seuraava. Arviointi (tai testi) on yksittäinen backtest (tai objektiivisen funktion arvon arviointi). RUN on algoritmin yksi täysi suoritusaika (optimaalisen arvon löytäminen), johon yleensä liittyy monia testejä (arviointeja). Jokainen toiminto yksinkertaisesti palauttaa koko optimointiprosessin uudesta alusta (uusi alkukohtainen satunnaisväestö). Siksi jokainen suoritusaika voi johtaa erilaisten paikallisten maxmin löytämiseen (jos se ei löydä maailmanlaajuista). So Runs-parametri määrittää seuraavien algoritmien määrän. MaxEval on arvioiden (bakteerien) enimmäismäärä millä tahansa yksittäisellä aikavälillä. Jos ongelma on suhteellisen yksinkertainen ja 1000 testit riittävät maailmanlaajuisen maksimiarvon löytämiseen, 5x1000 on todennäköisimmin maailmanlaajuinen maksimi, koska paikallisten maksimiin jää vähemmän mahdollisuuksia, koska myöhemmät suoritukset alkavat eri alkuperäisestä satunnaisesta väestöstä. olla hankala. Se riippuu testattavan ongelman, sen monimutkaisuuden jne. Jne. Jokainen stokastinen ei-tyhjentävä menetelmä ei anna sinulle takeet löytää maailman maxmin, riippumatta testien määrä, jos se on pienempi kuin tyhjentävä. Helpoin vastaus on. määrittele suuret määrät testejä, sillä se on kohtuullista sinä ajan kuluessa. Toinen yksinkertainen neuvonta on kertomaan testien määrä lisäämällä uutta ulottuvuutta. Tämä voi johtaa liian suureen testien määrän yliarviointiin, mutta se on varsin turvallinen. Toimitetut moottorit on suunniteltu helppokäyttöisiksi, joten alhaisempia arvoja käytetään ilman arvoja, joten optimointia voidaan yleensä käyttää ilman, että määritetään mitään (oletusasetusten hyväksyminen). On tärkeää ymmärtää, että kaikki älykkäät optimointimenetelmät toimivat parhaiten jatkuvissa parametritiloissa ja suhteellisen tasalaatuisina objektiivisina funktioina. Jos parametrissa on erillisiä evoluutioalgoritmeja, voi olla vaikeuksia löytää optimaalinen arvo. Tämä pätee erityisesti binäärisiin (onoff) parametreihin - ne eivät sovi mihinkään etsintämenetelmään, joka käyttää objektiivisen funktion muutoksen gradienttia (kuten useimmat älykkäät menetelmät tekevät). Jos kaupankäyntijärjestelmä sisältää monia binaariparametreja, älä käytä älykkäävää optimointia suoraan niissä. Sen sijaan yrität optimoida vain jatkuvia parametreja älykäsoptimointityökalulla ja vaihtaa binaariparametreja manuaalisesti tai ulkoisella komentosarjalla. SPSO - Standard Particle Swarm Optimizer Standard Particle Swarm Optimizer perustuu SPSO2007-koodiin, jonka on tarkoitus tuottaa hyviä tuloksia edellyttäen, että oikeat parametrit (eli Runs, MaxEval) annetaan tietyille ongelmille. PSO-optimoijan oikeat vaihtoehdot voivat olla hankalia, joten tulokset voivat merkittävästi vaihdella tapauskohtaisesti. SPSO. dll sisältää täydelliset lähdekoodit quotADKquot-alikansion sisällä. Esimerkkikoodi Standard Particle Swarm Optimizer - laitteelle: (optimaalisen arvon löytäminen 1000 testissä 10000 yhdistelmän hakutilassa) OptimizerSetEngine (quotspsoquot) OptimizerSetOption (quotRunsquot, 1) OptimizerSetOption (quotMaxEvalquot, 1000) sl Optimoi (quotsquot, 26, 1, 100, 1 ) fa Optimoi (quotfquot, 12, 1, 100, 1) Osta Cross (MACD (fa, sl), 0) Myydä risti (0, MACD (fa, sl)) TRIBES - Adaptive Parameterless Particle Swarm Optimizer Tribes on mukautuva , parametrin vähäisempi PSO-version (partikkelivarsioptimointi) ei-tyhjentävä optimoija. Tieteellisestä taustasta katso: particleswarm. infoTribes2006Cooren. pdf Teoriassa sen pitäisi toimia paremmin kuin säännöllinen PSO, koska se voi automaattisesti säätää swarmin kokoja ja algoritmistrategiaa ongelman ratkaisemiseksi. Käytäntö osoittaa, että sen suorituskyky on melko samanlainen kuin PSO. Tribes. DLL-plugin toteuttaa quotTribes-Dquot (eli dimensioton) - version. Perustuu clerc. maurice. free. frpsoTribesTRIBES-D. zip, Maurice Clerc. Alkuperäiset lähdekoodit, joita käytetään julkaisijan Tribes. DLL luvalla, sisältävät täydellisen lähdekoodin (sisällä quotADKquot-kansio) Tuetut parametrit: quotMaxEvalquot - suoritusten enimmäismäärä (suoritustestit) suoritusta kohden (oletus 1000). Sinun tulisi lisätä arvioiden määrää yhä useammilla mittasuhteilla (optimointiparametrien määrä). Oletusarvo 1000 on hyvä 2 tai enintään 3 ulottuvuuteen. quotRunsquot - suoritusten määrä (uudelleenkäynnistys). (oletusarvo 5) Voit jättää suoritusten määrän oletusarvoina 5. Oletusarvoisesti suoritusten määrä (tai uudelleenkäynnistys) on asetettu arvoon 5. Jos haluat käyttää Tribes-optimoijan, sinun on lisättävä yksi rivi koodiin: OptimizerSetOption (quotMaxEvalquot , 5000) 5000 arvioinnit max CMA-ES - Kovarianssin matriisien sovitus Evolutionary Strategy - optimointityökalu CMA-ES (Covariance Matrix Adaptation Evolutionary Strategy) on edistyksellinen, ei-kattava optimoija. Tieteellistä taustaa vasten katso: bionik. tu-berlin. deusernikocmaesintro. html Tieteellisten vertailuarvojen mukaan ylittää yhdeksän muuta suosituinta evolutionaarista strategiaa (kuten PSO, Geneettinen ja Differentiaalinen kehitys). bionik. tu-berlin. deusernikocec2005.html CMAE. DLL-plugin toteuttaa quotGlobalquot-versiota haussa, jossa on useita uudelleenkäynnistelmiä väestökokoa lisäämällä CMAE. DLL sisältää täydellisen lähdekoodin (quotADKquot-kansion sisällä) Oletuksena on käynnissä (tai uudelleenkäynnistys) lukumäärä 5. Järjestelmän on suositeltavaa jättää uudelleenkäynnistysten oletusarvo. Voit vaihdella sen käyttämällä OptimizerSetOption (quotRunsquot, N) - puhelua, jossa N on alueella 1..10. Yli 10 käsittelyn määrittämistä ei suositella, jos mahdollista. Huomaa, että jokainen käyttö käyttää kahdesti edellisen käynnin väestöä, joten se kasvaa eksponentiaalisesti. Tästä syystä 10 juoksua päätyy väestöön 210 suuremmaksi (1024 kertaa) kuin ensimmäinen ajo. Toinen parametri on MaxEvalquot. Oletusarvo on nolla, mikä tarkoittaa, että plugin laskee automaattisesti vaaditun MaxEvalin. On suositeltavaa EI määritä MaxEval itse oletuksena toimii hyvin. Algoritmi on riittävän älykäs minimoi tarvittavien arvioiden määrä ja se konvergoi hyvin nopeasti ratkaisupisteeseen, joten se löytää ratkaisut nopeammin kuin muut strategiat. On normaalia, että laajennus ohittaa joitakin arviointivaiheita, jos se havaitsee, että ratkaisu löydettiin, joten sinun ei pitäisi olla yllättynyt siitä, että optimoinnin etenemispalkki saattaa liikkua hyvin nopeasti joillakin kohdin. Pluginilla on myös kyky lisätä vaiheiden lukumäärää alun perin arvioituun arvoon, jos se on tarpeen ratkaisun löytämiseksi. Adaptiivisen luonteensa takia edistymisikkunan näyttämä viivästetty ajanjakso ja tai viitenumeroiden lukumäärä on vain ajankohtaisin arvosanoin ja voi vaihdella optimointikurssin aikana. CMA-ES-optimoijan käyttämiseksi sinun tarvitsee vain lisätä yksi rivi koodiin: Tämä suorittaa optimoinnin oletusasetuksilla, jotka ovat parhaita useimmissa tapauksissa. On huomattava, kuten monien jatkuvatoimisten avaruusalgoritmien tapauksessa, että optimointi () funktion-kutsut vähentää quotstepquot - parametria ei vaikuta merkittävästi optimointiin. Ainoa asia, joka on ongelmana on ongelma, joka on numeroiden määrä, eli eri parametrien määrä (optimoi funktiokutsut). Parametrin parametrien määrä voidaan asettaa ilman, että se vaikuttaa optimointiin, joten käytä hienointa resoluutiota. Teoriassa algoritmin pitäisi pystyä löytämään ratkaisu enimmillään 900 (N3) (N3) backtestissä, joissa kvantti on dimension. Käytännössä se konvertoo LOT nopeammin. Esimerkiksi ratkaisu 3 (N3) - mittapariametrissa (esim. 100100100 1 miljoona tyhjää vaihetta) löytyy niin vähän kuin 500-900 CMA-ES-portaita. Monisäikeinen yksilöllinen optimointi Lähtö AmiBroker 5.70: sta monisymbolin monisäikeisyyden lisäksi. voit suorittaa monisäikeisen yhden symbolien optimoinnin. Voit avata tämän toiminnon napsauttamalla pudotusvalikosta Nuoli analyysi - ikkunanOptimizequot-painikkeen vieressä olevaa nuolta ja valitse rivin Yksittäinen optimointi - viesti. Yksilöllinen Optimizequot käyttää kaikkia käytettävissä olevia prosessoriytimiä suorittamaan yhden symbolien optimoinnin, mikä tekee siitä paljon nopeamman kuin tavallinen optimointi. Nykyisessä symbolissaquot-tilassa se suorittaa optimoinnin yhdellä symbolilla. Kaikissa symboleissaquot ja quotFilterquot-moodeissa se käsittelee kaikki symbolit peräkkäin eli ensimmäinen täydellinen optimointi ensimmäiselle symbolle, sitten optimointi toiselle symbolle jne. Rajoitukset: 1. Custom backtester ei ole tuettu (vielä) 2. Älykkäät optimointimoottorit eivät ole tuettuja - vain PURISTUS-optimointi toimii. Lopulta voimme päästä eroon rajoituksesta (1) - kun AmiBrokeria muutetaan niin custom backtester ei käytä OLE enää. Mutta (2) on luultavasti täällä pysyäkseen pitkään. Järjestelmä: Kuinka koodata Moving Average Crossover, joka palasi 28 vuodessa Ah, nöyrä liukuva keskimääräinen crossover kaupankäyntijärjestelmä Yksi ensimmäisistä (ellei ensin itsestään) kaupankäyntijärjestelmistä jonka ovat luoneet ja käyttäneet Richard Donchian ja Ed Seykota jo 1960-luvun lopulla, olet luultavasti kuullut liikkuvaa keskimääräistä risteytystä jonkin muotoisena tai muodolta aikasi markkinoilla. Yksi yleisimmistä on 8220Golden Cross8221 ja 8220Dead Cross8221, jossa 50 päivän liukuva keskiarvo ylittää 200 päivän liukuva keskiarvon (tai alle). Yksi tässä videossa on 61 päivän ja 93 vuorokauden liikkuvan keskiarvon ylitys, johon lisätään myös 10 pysähtymishäiriötä käyttämällä ApplyStop-toimintoa Amibrokerissa. Tämä auttaa pienentämään maksimirajoitusta hieman, jotta järjestelmä olisi hieman mukavampi. Voisit jos halusi, jopa 60 päivän ja 90 päivän liukuvan keskiarvon avulla 8211 tulokset ovat samanlaisia. Kaiken kaikkiaan järjestelmä palautti keskimäärin 28 kertaa vuodessa viimeisten 13 vuoden aikana. Tietenkin, kuten tiedät, tämä ei takaa tulevaa suorituskykyä, mutta voi antaa sinulle ideoita oman kaupankäyntijärjestelmän luomisesta. Tutustu alla olevaan videoon Moving Average Crossover - kauppajärjestelmän tulokset: ASX 200 - luettelossa yli 13 vuotta: Voittoprosentti: 49 Keskimääräinen vuotuinen tuotto: 36 p. a. Suurin järjestelmän poistaminen: 45 10 sekuntilaskun lisäämisen jälkeen: Win Percent: 41 Keskimääräinen vuosituotto: 28 p. a. Suurin järjestelmän poistaminen: 37 On selvää, että tämä kaupankäyntijärjestelmä testataan itse, lisätään osia tai muokataan omiin tarpeisiisi, tiedetään suurimman vetokyvyn kynnysrajan ja ymmärretään tarve testata ulos näyteaineistosta. Mutta se on hyvä tarkastella toista kauppajärjestelmää ja miten koodata sitä Amibrokerissa. Me voimme myös nähdä takatulokset muutamassa sekunnissa sen sijaan, että testaisimme itseämme ja ottaisimme viikkoja tai kuukausia. Nämä automaattiset testaukset ovat nopeita, ilmaisia ​​ja helppoja. Toivottavasti tämä auttaa, ilahduttaa ja nauti 8211 Dave McLachlan Videot ILMAISESSA Amibroker Kurssilla: FREE Trading System Video Oppitunnit: ILMAINEN Amibroker Q amp A Videot: 6 Responses Jätä vastausStock Markkinoiden ajoitus strategia: Moving Average Crossover Liikkuva keskiarvo on erittäin hyödyllinen indikaattori, jota käytetään monilla eri toimialoilla, ei pelkästään rahoituksella. Ja it8217: n valta osakemarkkinoiden ajoitusstrategiana on tärkeää tietää. Markkinoilla kauppiaat peittävät liikkuvia keskiarvoja hintaluokissaan osoittaakseen, milloin markkinat ovat kehittymässä ja tarjoavat objektiivisia osto - ja myyntisignaaleja. Hintakaavio, jossa liukuvat keskiarvot ovat päällystetyt. Src: IG-indeksi. Jos liukuva keskiarvo liikkuu ylöspäin, se osoittaa, että markkinat ovat yleensä korkeammat, kun taas liukuva keskiarvo liikkuu alaspäin, se osoittaa, että markkinat ovat alhaisemmat. Keskimääräisten vaihteluvälien määrää käytetään myös trendien muutosten tunnistamiseen. Joten jos nopea liukuva keskiarvo, kuten 50 päivän liukuva keskiarvo, ylittää hitaamman liukuvan keskiarvon, kuten 200 päivän liukuva keskiarvo, markkinoiden voidaan sanoa muuttuneen alenevasta trendistä uuteen nousuun. Ja tämä on tiedossa kauppiaille kultaisena ristänä. Päinvastoin tämä tapahtuu, kun 50 päivän liukuva keskiarvo ylittää 200 päivän liukuva keskiarvon, ja tätä kutsutaan kuolinkirkoksi. Liikkuva keskiarvo suodattimena Jotkut toimijat uskovat, että kultainen risti on vahva signaali osakemarkkinoiden hankkimiseksi ja kuolinkirkko on vahva signaali myydä sillä perusteella, että rahoitusmarkkinat liikkuvat keskipitkällä ja pitkällä aikavälillä. Jos käytät näitä kahta signaalia, voit voittaa voitot, kun markkinat liikkuvat paremmin ja siirtyvät rahaksi, kun markkinat laskevat. Joten ladataan joitain tietoja nyt ja näet, miten tämä osakemarkkinoiden ajoitus strategia on todella pelattu viimeisten 100 vuoden aikana. Joten, ensinnäkin Im ladata joitakin historiallisia päivittäisiä tietoja Dow Jones Industrial Average Amibroker ja Im laskemaan ostaa ja pidä palaa 1900 ja 2014. Kuten näette alla olevista tuloksista, vuotuinen nimellinen palaa ostamaan ja pidättämään Dow Jonesin kanssa on 5.22. ja suurin nostotaso on 89. joka tapahtui suuressa masennuksessa. (Vedonlyönti on tapa mitata investoinnin huippu-pohjainen lasku, joten tässä tapauksessa buy-and-hold-investointi olisi kadonnut 89 vuoden 1929 huipusta kouruun vuonna 1932). It8217s kannattaa mainita, että nämä ovat nimellisiä tuottoja. Saadaksesi todelliset reaaliaikaiset tuotot, on tarpeen säätää tietoja uudelleen sijoitetuista osingoista sekä inflaatiosta. On mahdollista tehdä tämä säätö, mutta päivittäisiä tietoja tarvitaan täällä ei ole niin helppoa. Siksi käytetään nimellisiä tuottoja. Muista vain, että tuotot voivat olla hieman suuremmat reaaliajassa osinkojen vuoksi. Yleensä osakemarkkinoiden on osoittautunut palaavan noin 6-7 pitkän aikavälin aikana. 89 vetäytyminen suuressa masennuksessa. Risteytysstrategian käyttäminen Nyt vain buy-and-hold-lähestymistavan sijaan ostamme Down vain, kun 50 päivän liukuva keskiarvo ylittää 200 päivän liukuva keskiarvon (Golden Cross). Ja myymme markkinat aina, kun 50 päivän MA ylittää 200 päivän MA (kuolinkirkko). Alla olevista tuloksista nähdään, että liikkuva keskimääräinen suodatin on toiminut: Joten sen sijaan, että vain ostamme ja pidämme indeksin, weve todella teki 81 kauppaa ajanjaksolla. Ja seuraava kaavio näkyy uusimmista kaupoista. Vihreät nuolet ovat signaaleja ja punaiset nuolet myyvät signaaleja. Näet, että liikkuva keskiarvo sai meidät pois markkinoilta juuri ennen luottokriisiä. Ja se sai meidät takaisin markkinoille 1. heinäkuuta 2009. Nyt voimme tehdä saman, mutta erilaisen tietojoukon. Joten tässä tapauksessa Ill käytä SampP 500 - indeksiä osto - ja myyntitilastrategiaa vuosien 1955 ja 2014 välisenä aikana. Ja näistä tuloksista nähdään, että vuotuinen tuotto osto-odotuksesta on 6.65 ja se laskee -57 ajanjaksolla. Ja täällä buy and hold antaa meille 1,65 vuotuisen tuoton ja vetää pois luottokriisi -57. Tämä johtaa erittäin epävakaaseen omi - naiskäyrään, kuten alla on nähtävä: Sillä välin liikkuvan keskimääräisen crossover-strategian ansiosta tulos on 6.06 vuotuinen tuotto, joka on vain 20. Ja kuten näette, pääoma-käyrä liukuva keskiarvo crossover on paljon vähemmän pelottavaa. Jälleen liikkuvan keskiarvon strategia on pysäyttänyt meidät markkinoilta suurimman osan markkinoiden kaatumisesta vuonna 2008. MA crossover strategia: Yhteenveto Kaiken kaikkiaan, Id sanoa, että tämä on voitto liikkuvan keskiarvon crossover kuin osakemarkkinoiden ajoitus strategia. Olemme suorittaneet kolme testejä ja suosittu Golden Cross - strategia on auttanut meitä ajamaan markkinoita paremmin kuin ostaa ja pitää joka kerta. Minulle tärkeintä on se, että se on jyrkästi vähentänyt altistumista tappioille karhujen markkinoilla. Tietenkin voisimme mennä pidemmälle tällä tiellä ja tarkastella erilaisia ​​liikkuvaa keskinopeutta ja eri aikajaksoja, mutta en halua tehdä liikaa optimointia, joten jätän itsellesi selville itsesi. Käyttämällä laajempia markkinoita ajankohtaiseen portfolioon Joten nyt olemme nähneet, kuinka yksinkertainen liikkuva keskiarvo voi auttaa osakemarkkinoiden ajoituksessa. Mutta mitä jos me emme ole kiinnostuneita ostamaan itse osakemarkkinoita vaan pikemminkin eri varastojen valikoimaan. Ehkä laajemmat osakemarkkinat voivat auttaa yksittäisten osakkeiden kaupankäynnissä. Testatakseni olen laatinut hyvin yksinkertaisen vauhtiin ja 52 viikon korkeisiin perustuvaan stock portfolio strategiaan. Hyvin yksinkertaisesti, kun varastosi suljetaan uudella 52 viikon korkeudella, varastossa lisätään seuraavaan avoimeen salkkuun. Aina, kun se sulkeutuu uudella 26 viikon alhaalla, varasto myydään seuraavassa auki ja se laskee salkun. Salkussa voi olla enintään 10 varastoa kerrallaan ja jokainen niistä painotetaan yhtä lailla ilman marginaalia. Strategia valitsee SampP 500 - kaikkeuden varastot ja palkkiot vahvistetaan 10: lla kaupasta, joiden alkupääoma on 10 000. Tämän perussiirtostrategian toteuttaminen johti vuotuiseen tuottoon 9,69 vuosien 2000 ja 2014 välillä, mikä on melko hyvä. SampP 500: n käyttäminen suodattimena Useat lääkärit uskovat, että se on paras ostaa vain varastoja, kun laajempi markkinat ovat nousussa ja myydä kyseiset varastot, kun markkinat etenevät etelään tai karhunkestoon. Markkinasuodatin voisi siksi pystyä parantamaan tällaista yksinkertaista vauhtia koskevaa strategiaa ottamalla salkun käteiseksi, kun laajempi osakemarkkina on alhaisempi. Joten jos esitämme markkinasuodattimen, kuten aiemmin, niin ostaessamme varastoja vain, kun SampP 500 on nousussa. Seuraavalle testille varastot ostetaan ja lisätään salkkuun vain, jos SampP 500: n 50 päivän liukuva keskiarvo on sen yläpuolella8217s 200 päivän liukuva keskiarvo. Jos SampP 500: n 50 päivän liukuva keskiarvo ylittää sen8217: n 200 päivän liukuva keskiarvon, kaikki varastot myydään ja portfolio siirtyy käteiseksi. Heti, kun uusi kultainen risti esiintyy SampP 500: ssa, järjestelmä saa alkaa ostaa varastoja uudelleen. Tämän strategian käyttäminen SampP 500 - markkinasuodattimen kanssa palauttaa tuloksen 7,47 ja nousee -12. Joten vaikka vuosittainen tuotto on laskenut, nostotase on huomattavasti parantunut ja tasearvo on paljon pehmeämpi: tällä kertaa järjestelmä ostaa osakkeita aina 52 viikkoa korkeammaksi, aivan kuten ensimmäinen testi. Sitten se myydään kaikki salkun varastot aina, kun SampP 500: ssä tapahtuu kuolemaa ristiriita. Tällä tavoin kantoja leikataan, kun laajempi markkinat laskevat. Ei kuitenkaan ole suodatinta pitkille kauppoille kuten testi kaksi. Toisin sanoen markkinoiden ei tarvitse olla täysin muodostunut uptrendin käynnistämiseksi uusia kauppoja ja tämä antaa strategialle hieman enemmän joustavuutta ja altistumista. Tämän testin suorittaminen tuotti vuosittain 5,49: n tuoton ja -38: n. Alkuperäiseen strategiaan verrattuna nostot ovat laskeneet, mutta vuotuinen tuotto on myös kärsinyt. Minusta näyttää siltä, ​​että kolmas testien ongelma on se, että järjestelmä luopuu voittoasemista liian aikaisin. Vain siksi, että laajemmat markkinat ovat menossa alas, ei tarkoita sitä, että yksittäiset varastot eivät ylitä vertailuindeksiä. Siksi seuraavassa testissä teen päinvastoin. Stocks are only bought if the SampP 500 is in an uptrend (the 50 MA is above the 200 MA) but they are not sold if the SampP 500 moves into a downtrend. This gives a better annual return of 8.78 and a maximum drawdown of -29. Next I will quickly take each of these tests back to the beginning of the data set to see what happens on a longer time frame. (By the way, I am using stocks from the SampP 500 universe that includes historical constituents, this is provided by Norgate Premium Data .) Test 1, between 1985 and 2014, produced an annual return of 10.01 with a maximum drawdown of -33 . This is the original system with no market timing filter. Test 2, between 1985 and 2014, produced an annual return of 6.93 with a -34 drawdown so this was much much worse than our previous result. From looking at the results and equity curve, the buy criteria may be too strict. Test 3, between 1985 and 2014, produced an annual return of 3.73 with a maximum drawdown of -31 . Again, this is a bad result for the market timing filter. Test 4, between 1985 and 2014, produced an annual return of 8.71 and a maximum drawdown of -31 . Portfolio filter: Summary Overall, the moving average filter appears to have some merit when used to trade the broader stock market. However, the case is not so clear-cut when used as part of a portfolio strategy. When timing the overall market, the crossover strategy improves both drawdown and return in most cases. But when using the crossover as a filter for a momentum portfolio strategy, there is no clear improvement in either. One reason for this could be that the momentum portfolio already has it8217s own exit criteria built into the system. Using an extra market filter adds extra complexity and might therefore be overkill. One thing the momentum portfolio needs to succeed is to be able to capture long tail profits in stocks so the cutting short of trades is not always helpful. It is also possible that the market filter criteria is simply too strict and by changing the parameters slightly, we might be able to improve results. That may be so, but these results do suggest one thing at least that the market filter strategy is not necessarily a magic bullet for portfolio systems, and this also confirms my own previous findings. Charts provided by Amibroker. Dow Jones data from Measuring Worth. All other stock market data from Norgate Premium Data . JB MarwoodSimple Triple Moving Average Crossover 8211 Amibroker AFL Code Here is the very simple and classical example to build a triple EMA (Exponential Moving Average Crossover system). System is quite popular if anyone (traderinvestor) is a newbie to classical technical analysis. In this AFL the triple moving average buy, sell signals are coded and comes with Scanning and Exploration functionality. It is a simple trend following system where the system shows buy signal if 3 EMA 13 EMA 34 EMA and shows a sell signal if 3 EMA Averages and applydrag-and-drop the Triple Moving Average Crossover code over blank chart. 7)Bingo you are done. Now you will be able to see the triple moving average crossover with buy and sell indicators. Aiheeseen liittyvät lukemat ja havainnot Rajandran Rajandran on kokopäiväinen elinkeinonharjoittaja ja Marketcallsin perustaja, joka on erittäin kiinnostunut ajoitusmalleista, algosta. harkinnanvaraiset kaupankäynnin käsitteet ja Trading Sentimental - analyysi. Hän opettaa nyt käyttäjää ympäri maailmaa, kokeneista kauppiaista, ammattimaisista kauppiaista yksittäisiin kauppiaisiin. Rajandran osallistui Chennain yliopistoon, jossa hän sai Electronicsin ja viestinnän BE: n. Rajandranilla on laaja käsitys kaupankäynnin ohjelmistoista, kuten Amibroker, Ninjatrader, Esignal, Metastock, Motivewave, Market Analyst (Optuma), Metatrader, Tradingivew ja Python sekä ymmärtävät eri toimijoiden ja sijoittajien yksilölliset tarpeet. Thanks very much. Vaadittu Yhdysvaltain hallituksen vastauslauseke CTFC: n sääntö 4,41 Tulevaisuuden kauppa sisältää merkittävää riskiä eikä se sovi kullekin sijoittajalle. Sijoittaja voi mahdollisesti menettää kaikki tai enemmän kuin alkuperäinen sijoitus. Riskipääoma on rahaa, joka voidaan menettää vaarantamatta talouden turvallisuutta tai elämäntapaa. Tarkastellaan vain riskipääomaa, jota olisi käytettävä kaupankäynnin kohteeksi, ja vain sellaiset, joilla on riittävä riskipääoma, harkitsevat kaupankäyntiä. Aiempi tulos ei välttämättä ole merkki tulevista tuloksista. CTFC-SÄÄNTÖ 4.41 HYPOTEETTISET TAI SIMULATIIVISET TULOKSET JOTKA TIETYT RAJOITUKSET. VÄLTTÄMÄTTÖMÄT TODELLISET TULOKSET, SIMULOITU TULOKSET EIVÄT EDISTYY TODELLISEEN KAUPPAAN. Lisäksi, koska kauppaa ei ole toteutettu, tuloksilla saattaa olla pienempi tai pienempi kompensointi tiettyjen markkinoiden tekijöiden vaikutuksesta liikkumiseen. SIMULOIDUT KAUPALLISET OHJELMAT YLEISESTI OLESKETTAVAN TAUSTA, JOTKA ON SUUNNITELTUVA HINDSIGHTIN HYÖDYNTÄ. EI KÄYTTÄMÄTTÖMÄÄ KOSKEEN, JOKA KAIKKI TILANETA OVAT TAI OLETTAVAT YKSINOMAISESTI TOIMITETTAVAT TULOKSET TAI TAPAHTUMAT. Kaikki tässä sivustossa tai mainoksessa käsitellyt kaupat, mallit, kaaviot, järjestelmät jne. Ovat vain havainnollistamistarkoituksessa eikä niitä pidetä erityisinä neuvoa-antavina suosituksina. Kaikki tässä esitetyt ideat ja materiaalit ovat vain informaatiota ja opetustarkoituksia varten. Järjestelmää tai kaupankäyntimenetelmää ei ole koskaan kehitetty, joka voi taata voitot tai estää tappioita. Tässä käytetyt suosittelut ja esimerkit ovat poikkeuksellisia tuloksia, joita ei sovelleta keskivertoihin ihmisiin eikä niillä ole tarkoitus edustaa tai taata, että kuka tahansa saavuttaa samat tai samankaltaiset tulokset. Trend Methods - järjestelmien luotettavuutta koskevat kaupat otetaan omalla vastuullasi omalle tilillesi. Tämä ei ole tarjous ostaa tai myydä futuurien etuja. Copyright 2015 Marketcalls Financial Services Pvt Ltd middot Kaikki oikeudet pidätetään middot Sivukartta middot Kaikki Logos amp - merkki kuuluu niiden vastaaville omistajille Tietoja ja tietoja on annettu vain tiedoksi, eikä niitä ole tarkoitettu kaupankäyntitarkoituksiin. Sekä marketcalls. in verkkosivuilla että sen ylläpitäjillä ei ole vastuuta sisällön virheistä tai viivästyksistä tai kaikista niihin liittyvistä toimista.

No comments:

Post a Comment