Saturday, October 15, 2016

Adaptive Trading Indicators

Meta Trader 5 - Voorbeelde Gevorderde Adaptive Indicators teorie en implementering in MQL5 Inleiding Hierdie artikel is gebaseer op twee uitstekende boeke deur John F. Ehlers: Rocket Science vir handelaars en ybernetic Ontleding vir Stock en toekoms. Die ongewone benadering tot analise van die mark met behulp van digitale seinverwerking metodes en die aanneming van komplekse getalle te marksiklus erkenning vir my gemaak het dieper in hierdie onderwerp en daarna te implementeer in MQL5 drie aanpasbaar aanwysers aangebied deur J. F.Ehlers. In hierdie artikel sal die basiese teorie agter die aangepaste aanwysers en hul MQL5 implementering beskryf. Die aangepaste aanwysers sal vergelyk word met hul nie-aangepaste eweknieë. Komplekse getalle en fasors vir die meet van marksiklusse Die idee van komplekse getalle teorie kan nogal verwarrende vir lesers wat nie-tegniese agtergrond wees, dus ek raai in teorie te delf op wiki en kyk weekliks 'n handleiding oor bedrywighede op komplekse getalle voor die lees van hierdie artikel. Fasor of Fase Vector is 'n vektor wat amplitude en fase van 'n siklus toon. Volgens Eulers formule 'n sinusgolf kan voorgestel word as 'n som van twee komplekse getal komponente. Kom asseblief roterende fasor uitbeeld onder 'n sinusgolf siklus. Aangesien hierdie animasie vir die eerste keer dat jy kan verbaas hoe om korrek te lees fasor betrekking tot 'n siklus wees. Ten einde te verstaan ​​wat jy het om jou gedagtes oor te skakel na 'n siklus nie erken as 'n gewone golfvorm sigbaar op die linkerkant van die animasie, maar as die roterende fasor aan die regterkant. Aanvanklik mag dit moeilik wees om te dink, maar ek het 'n manier om daaroor te dink op hierdie manier: volle rotasie van 'n fasor is 360 grade of radiale, dit is vir 'n volle siklus. Die huidige hoek van 'n fasor dui in watter deel van die siklus (fase) is ons in. Y-as verteenwoordig amplitude van 'n siklus in 'n gegewe fase. Die fasor gebreek kan word in twee komponente: inphase komponent (kosinus) en Kwadratuur komponent (sine). Gedetailleerde verduideliking van afleiding daardie komponente is beskikbaar in Hoofstuk 6 Hilbert Transforms van Rocket Science vir Handelaars boek. As iemand belangstel, moet asseblief noukeurig volg hierdie hoofstuk. Vir nou hoef jy net te konsentreer op die feit dat vir aangepaste aanwysers berekening wat ons nodig het om analitiese sein (golfvorm) skakel na 'n komplekse sein bestaan ​​uit twee komponente. Hoe kan ons bereik wat het ek al gesê Hilbert-transform Ja, inderdaad. Hilbert-transform in staat is om presies dit. Die meting siklus tydperk Ten einde te maak Hilbert-transform prakties om handelaars John Ehlers in sy boek kapt Hilbert-transform reeks te vier elemente. Die vergelyking vir Kwadratuur komponent is: en die vergelyking vir inphase komponent prys vertraag deur drie bars: Nadat bereken inphase en Kwadratuur komponente is dit moontlik om differensiële fase berekening trek uit die fasehoek gemeet vir die huidige bar en die fasehoek gemeet een bar gelede. Fase vir die huidige bar is en fase van die vorige bar is. Die gebruik van trigonometriese identiteit: ons vergelyking vir differensiële fase reffered as DeltaPhase verkry. Mnr Ehlers het bykomende beperkings op die DeltaPhase veranderlike: die resultaat kan nie negatief wees en DeltaPhase is beperk tot lt0.1, 1.1gt radiale (wat beteken 'n siklus tussen 6 en 63 bars). Dit het geblyk dat DeltaPhase gemeet op werklike data is baie raserig, daarom is dit behoeftes glad. Die beste glad metode op puntig data is mediaan filter, dus 'n mediaan van vyf monsters van DeltaPhase vorm MedianDelta veranderlike. MedianDelta gedeel deur gebruik vir die berekening van die dominante Cycle, die marksiklus ons is op soek na. Tydens die ontwikkeling toetse het dit geblyk dat daar 'n vooroordeel van ongeveer 0,5 in meting wat verwyder moet word en termyn vergoeding te verwyder wat vooroordeel is bygevoeg. Ten slotte, is die dominante Cycle twee keer stryk deur EMO met alfa waardes gelyk aan 0,33 en 0,15 onderskeidelik. Ek het regtig aanbeveel om die boek te lees om robuustheid van die toepassing van 'n sinusgolf wie siklus tydperk geleidelik toegeneem van 6 tot 40. Aangesien jy is toegerus met teoretiese kennis wat ons is gereed om die CyclePeriod aanwyser in MQL5 implementeer algoritme sien. Cycle Tydperk aanwyser Die aanwyser is saamgestel uit twee lyne: siklus lyn toon siklus tydperk en 'n sneller lyn, wat basies is 'n siklus lyn vertraag deur 'n bar. As jy volg die beskrywing in meting van siklus tydperk artikel en die bronkode in OnCalculate () funksie gee jy maklik kan korreleer wat lyne is verantwoordelik vir siklus tydperk meting sal wees. Ons kan dit toets deur te heg aan enige grafiek - dit sal werk vir enige sekuriteit en vir enige tyd. Sien asseblief die onderstaande kiekie. Met hierdie aanwyser in ons werkplek ons ​​in staat is om 'n nuwe ras van aangepaste aanwysers implementeer - aanwysers wat pas by 'n huidige siklus tydperk van die mark. Cyber ​​Cycle aanwyser Die Cyber ​​Cycle aanwyser is 'n hoë-pass filter uit ybernetic analise vir voorrade en toekoms. Dit filter blare alleen die siklus af komponent van tijdreeksen. Daarbenewens het twee-bar en drie-bar siklus komponente uit die gevolg van glad met 'n beperkte impulsrespons laaglaatfilter. Die aanwyser MQL5 kode vir dié en ander aanwysers in die artikel aangepas uit EVT (TradeStation) taal in die boek beskryf. 'N kiekie van die aanwyser word hieronder geplak. Soos u kan sien al aanwysers in hierdie artikel sal soortgelyk kyk, maar hulle voer baie verskillende algoritmes. Die oorspronklike handel metode vir hierdie aanwyser is eenvoudig: koop wanneer die siklus lyn kruise bo die sneller lyn. Verkoop wanneer die siklus lyn kruise onder die sneller lyn. Wil jy dalk en jy word aangemoedig om jou eie strategie en 'n module van handel seine met behulp van hierdie aanwyser te implementeer. Adaptive Cyber ​​Cycle aanwyser Die essensie van hierdie artikel is om aan te bied hoe kan ons die aanwysers aan aanpasbaar wees, dit wil sê hoe om dit te bereken met 'n dinamiese siklus tydperk insette in plaas van 'n statiese instelling. Ten einde dit te bereik, het ons aan te sluit op die CyclePeriod aanwyser om die huidige tydperk gelees en later gebruik hierdie lesing in OnCalculate () funksie. Eers moet ons die aanwysers handvatsel te kry, en dan lees dit binne OnCalculate () funksie: Expotential beweeg Alpha is wat verband hou met die lengte van 'n eenvoudige bewegende gemiddelde deur die vergelyking, in die Adaptive Cyber ​​Cycle aanwyser mnr Ehlers gebruik die dominante Cycle tydperk as die lengte in berekening van alfa1 koëffisiënt. Volledige bronkode is beskikbaar onder: Sien asseblief die aanwyser op die aangehegte kiekie. Ons eerste adaptive aanwyser is gereed. Volgens die boek moet dit meer ontvanklik as die nie-aangepaste weergawe wees. Koop en verkoop seine moet dikwels voorkom een ​​bar vroeër as vir die nie-aangepaste weergawe. Ons kan voortgaan met nog twee aanwyser voorbeelde, moet dit genoeg wees vir jou om uit te vind die skema vir die skep van aanpasbare aanwysers. Swaartepunt aanwyser Wanneer praat van die swaartepunt vir enige fisiese voorwerp bedoel ons die balans punt. Die idee om hierdie konsep in die handel te voer vandaan kom waarneem hoe lags van verskeie filters is wat verband hou met filters koëffisiënte. Vir SMA - Eenvoudige bewegende gemiddelde, al coeficients gelyk, swaartepunt is in die middel. Vir WBG - Geweegde bewegende gemiddelde nuutste pryse is meer belangrik as die ouer kinders. Om spesifiek te wees, koëffisiënte van WBG beskryf uiteensetting van die driehoek. Driehoeke swaartepunt is in 'n derde van die lengte van die basis van die driehoek. Hoe meer generiese vergelyking afgelei vir die berekening van swaartepunt op 'n gegewe waarneming venster is soos volg: Die posisie van die balans punt is die opsomming van die produk van posisie binne die venster keer die prys op hierdie posisie (1 in die vergelyking is ingestel omdat reken ons van 0 tot N en nie van 1 tot N), gedeel deur die opsomming van pryse binne die venster. Die belangrikste kenmerk van die CG is wat dalings en stygings saam met prys swaai en in wese is dit 'n nul-lag ossillator. Vind asseblief die bron kode hieronder: 'n kiekie hieronder. Let die klein lag. Adaptive swaartepunt aanwyser CG ossillator bevind swaartepunt op 'n vaste lengte tyd venster. Die Adaptive CG ossillator gebruik die helfte van die gemeet Dominante Cycle tydperk wat die dinamiese venster lengte. Met die oog op die helfte van die gemeet Dominante Cycle tydperk onttrek is die volgende kode gebruik. Vind asseblief volle aanwyser bronkode hieronder en vergelyk dit met sy nie-aangepaste weergawe asook om Adaptive Cyber ​​Cycle aanwyser vir ooreenkomste. Kom asseblief die AdaptiveCG aanwyser kiekie hieronder geplak. RVI aanwyser RVI staan ​​vir Relatiewe Vigor-indeks. Die basiese teorie agter hierdie aanwyser is dat pryse neig om naby prys hoër as oop prys in bulmarkte en naby prys laer as oop prys in beermarkte het. Die krag van die beweging word gemeet aan die verskil van beslote prys te prys met betrekking tot daaglikse handel reeks open. Dit is 'n baie bekende aanwyser vir baie Meta Trader gebruikers soos dit nou is ingesluit in Meta Trader 5 installasie. Ek is nog steeds plak die bron-kode vir verwysing: 'n kiekie van die standaard RVI aanwyser met periode stel die standaard 10 word hieronder geplak. Adaptive RVI aanwyser Soos met die vorige twee aangepaste aanwysers wat ons nodig het om Dominante Cycle meting van CyclePeriod aanwyser onttrek en pas dit toe op RVI tydperk. Die lengte veranderlike bereken as 'n vier bar geweegde bewegende gemiddelde van die tydperk: Vind asseblief die volledige bronkode van die Adaptive RVI aanwyser hieronder. 'N kiekie van Adaptive RVI aanwyser met 'n dinamiese venster lengte: Slot In hierdie artikel aangebied drie aanpasbaar tegniese aanwysers gedrag en implementering MQL5. Die meganisme vir die implementering van die aangepaste aanwysers moet na die lees van die artikel duidelik verstaanbaar wees. Alle beskryf aanwysers is beskikbaar in aanhegsels. Die skrywer moedig om te eksperimenteer en te bou ander aangepaste aanwysers uit die kinders reeds available. Trading Seine handel seine vir SP Futures Die ATS handel seine is ontwerp om die tendense van die SP / ES termynmark 1 verhandelingsdag kort termyn voorspel vooruit. Die handel seine afgelaai in die aand van toepassing aan die einde van die dag sessie op die volgende verhandelingsdag. Trading seine gegenereer word deur individuele modelle sowel as ensembles van modelle is ingesluit. Die gemiddelde handel tydperk vir individuele modelle wissel 3-350 handelsdae. Handel stelsels gebou met behulp van ensembles van individuele modelle verskaf voorspellings van die kort termyn, mid-term en langtermyn tendense. Tegniese aanwysers Die ATS tegniese aanwysers is ontwerp om leidende aanwysers van die daaglikse sekuriteit prystendense wees. Die SOP aanwysers (beursindex Voorspellers) is ontwerp voorspellende van die SP / ES termynkontrakte te wees. Die SOP aanwyser stel sluit die volgende sewe aanwysers: Koop Druk Sell Druk Net druk Hoë Koop Druk High Sell Druk bevordering Druk Dalende Druk die ATS aanwysers kan gebring saam met die ooreenstemmende sekuriteit met behulp van 'n aansoek soos AmiBroker. Die voorspellende krag van die aanwysers kan maklik geëvalueer. 'N Ander benadering is om die aanwysers te gebruik as insette by die bou van neurale netwerkmodelle. Daar is baie moontlikhede. Hoe om Kry die handel seine ATS Mercury is die aansoek wat gebruik word om die ATS handel seine en Aanwysers aflaai. Hierdie program is gratis verskaf. ATS Mercury geïnstalleer met die verstek rekening van gas. Die gas rekening in staat is om 'n geskiedenis van die ATS Indicators aflaai, maar dit sal vertraag word deur 1 handel dag. Byvoorbeeld, wanneer die gebruik van die gas rekening om die sein waardes aflaai op 'n Woensdagaand net seine tot Dinsdag (die vorige verhandelingsdag) sal beskikbaar wees. Let wel: Die sein lêers sal gered word om C gids: DataATS Indicators by verstek. Trading Strategie Voorbeeld Die SIP2 Net druk (SIP2NP) aanwyser is die eerste keer gepubliseer op 30 Mei 2012 saam met die ander SIP2 aanwysers. Die handel strategie is lank te wees die SP termynmark wanneer die SIP2NP aanwyser is groter as of gelyk aan 0,6 en kort die mark wanneer dit minder as of gelyk aan -0,6 is. Alle transaksies is hipoteties gevul MOC op die verhandeling dag wat volg op die dag waarop die stelsels is opgedateer. Die aandele kurwe wat gegenereer word deur hierdie eenvoudige reël volg. Die totaliteit van winste in punte en sluit nie kommissies of glip. SIP2NP toegepas op die SP futures Die bostaande grafiek is opgedateer om 2015/06/05. Die persent van volmaakte handel is 18,65 en die handel stelsel is in die mark sowat 28 van die tyd. Jy kan die aanwysers te laai en verken hierdie handel strategie verder met behulp van ATS Mercury. Intekenaars op die SP Trading Signal en SIP aanwyser diens in staat is om die huidige sein waardes af te laai. As jy wil dan skryf jy kan dit doen op die bladsy Produk aankope. NOTA. Hipotetiese of gesimuleerde prestasie resultate het inherente beperkings. In teenstelling met 'n werklike prestasie rekord, moenie gesimuleerde resultate nie verteenwoordig werklike handel. Ook, omdat die ambagte het nie eintlik uitgevoer, die resultate kan hê onder - of oor-vergoed vir die impak, indien enige, van sekere mark faktore, soos 'n gebrek aan likiditeit. Gesimuleerde handel programme in die algemeen is ook onderhewig aan die feit dat hulle is ontwerp met die voordeel van agterna. Geen voorstelling gemaak word dat enige rekening sal of waarskynlik winste of verliese soortgelyk aan dié wat te bereik. Vorige prestasie van ons handel stelsels, handel seine en modellering sagteware, hetsy werklik of aangedui deur gesimuleerde historiese toetse van handel strategieë, is nie 'n aanduiding van toekomstige resultate. 0169 Kopiereg 2008-2016 AdaptiveTradingSystemsMetaTrader 5 - Trading Systems Adaptive Trading Systems en die gebruik daarvan in die Meta Trader 5 kliënt Terminal Inleiding Honderde duisende van die handelaars regoor die wêreld gebruik die handel platforms wat ontwikkel is deur MetaQuotes Software Corp. Die sleutelfaktor wat lei tot sukses is die tegnologiese oorheersing gebaseer op die ervaring van baie jare en die beste sagteware oplossings. Baie mense het reeds nuwe geleenthede wat met die nuwe MQL5 taal beskikbaar geword het geskat. Die belangrikste kenmerke is 'n hoë werkverrigting en die moontlikheid van die gebruik objekgeoriënteerde programmering. Benewens dit, met die verskyning van die multi-geldeenheid strategie tester in die Meta Trader 5 kliënt terminale, baie handelaars het unieke gereedskap verkry vir die ontwikkeling, leer en die gebruik van komplekse handel stelsels. Outomatiese handel Championship 2010 begin die herfs duisende handel robots geskryf in MQL5 gaan om deel te neem in dit. 'N Expert adviseur wat die maksimum wins verdien tydens die kompetisie sal wen. Maar watter strategie sal die strategie tester van die Meta Trader 5 terminale verskyn die mees doeltreffende een laat vind van die beste versameling van parameters, met behulp van die stelsel verdien die maksimum bedrag van die wins in 'n bepaalde tydperk. Maar dit kan gedoen word in die werklike tyd Die idee van die virtuele handel met behulp van verskeie strategieë in 'n kundige adviseur was beskou as in die wedstryd van deskundige adviseurs binne 'n kundige adviseur artikel, wat die implementering daarvan in MQL4 bevat. In hierdie artikel gaan ons om te wys dat die skepping en ontleding van aangepaste strategieë aansienlik makliker in MQL5 geword as gevolg van die gebruik van objekgeoriënteerde programmering. klasse vir die werk met data en handel klasse van die Biblioteek Standard. 1. Adaptive handel strategieë Markte verander voortdurend. Handel strategieë nodig hul aanpassing by die huidige marktoestande. Die waardes van die parameters wat die maksimum winsgewendheid van die strategie te gee kan gevind word sonder die gebruik van die optimalisering deur opeenvolgende verandering van parameters en ontleding van die toets resultate. Figuur 1 toon die aandele kurwes vir tien Expert Adviseurs (MA3. MA93) elkeen van hulle verhandel deur die strategie van bewegende gemiddeldes, maar met verskillende tydperke (3,13. 93). Die toets is uitgevoer op EURUSD H1, die toetstydperk is 4.01.2010-20.08.2010. Figuur 1. Diagramme van gelykheid kurwes van tien Expert Adviseurs by die rekening Soos jy kan sien op die figuur 1, die deskundige adviseurs het byna dieselfde resultate gedurende die eerste twee weke van die werk, maar verdere hul winste begin aansienlik uiteenlopende. Aan die einde van die toets tydperk is die beste handelsresultate getoon deur die Expert Adviseurs met periodes 63, 53 en 43. Die mark het die bestes gekies. Hoekom behoort nie ons volg sy keuse Wat gebeur as ons al tien strategieë te kombineer in 'n enkele Expert adviseur, bied die moontlikheid van virtuele handel vir elke strategie en van tyd tot tyd (byvoorbeeld, aan die begin van elke nuwe bar) bepaal die beste strategie vir die werklike handel en handel in ooreenstemming met sy seine die resultate van verkry adaptive strategie word in die figuur 2. die aandele kurwe van die rekening met aangepaste handel getoon met die rooi kleur. Kennis dat tydens meer as 'n half van tydperk die vorm van aandele kurwe vir die adaptive strategie is dieselfde as die een van die MA63 strategie, wat verskyn het om die wenner uiteindelik. Figuur 2. Equity kurwes op die rekening van die aangepaste strategie wat seine van 10 handel stelsels gebruik Die balans kurwes het die soortgelyke dinamika (Fig 3.): Figuur 3. Balans kurwes van die aangepaste strategie wat seine van 10 handel stelsels As gebruik nie van die strategieë is winsgewend op die oomblik, behoort nie die aangepaste stelsels handel operasies uit te voer. Die voorbeeld van so 'n geval word in die fig. 4 (tydperk van 4-de tot 22-ste Januarie 2010). Figuur 4. Die tydperk wanneer die aangepaste strategie gestop opening van nuwe poste as gevolg van die afwesigheid van winsgewende strategieë Vanaf Januarie 2010 het die beste doeltreffendheid blyk uit die MA3 strategie. Sedert die MA3 (blou) die maksimum bedrag van geld verdien op daardie oomblik het die aangepaste strategie (rooi) gevolg sy seine. In die tydperk vanaf 8-ste tot 20 Januarie al die oorweeg strategieë het 'n negatiewe gevolg, dis hoekom die aangepaste strategie didnt nuwe handelsmerk posisies oop te maak. As al die strategieë het 'n negatiewe gevolg, sy beter om weg te handel bly. Dit is die belangrikste ding wat dit moontlik maak stop nuttelose handel en die behoud van jou geld te spaar. 2. Die implementering van die Adaptive Trading Strategie In hierdie afdeling gaan ons die struktuur van die aangepaste strategie wat die virtuele handel voer met behulp van 'n paar handel strategieë gelyktydig, en kies die mees winsgewende een vir die regte handel volgens sy seine oorweeg. Let daarop dat die gebruik van die objek-georiënteerde benadering maak die oplossing van die probleem aansienlik makliker. In die eerste plek gaan ons die kode van die aangepaste Expert adviseur te ondersoek, dan gaan 'n gedetailleerde kyk na die CAdaptiveStrategy waar die funksie van die aangepaste stelsel is geïmplementeer te neem, en dan sal ons die struktuur van die CSampleStrategy klas te wys - die basis klas van die handel strategieë waar die funksie van virtuele handel geïmplementeer word. Verder gaan die kode van twee van sy kinders te oorweeg - die CStrategyMA en CStrategyStoch klasse wat die strategieë van die saak verteenwoordig deur bewegende gemiddeldes en die stogastiese ossillator. Na 'n analise van die struktuur sal jy in staat wees om maklik te skryf en voeg jou eie klasse wat jou strategieë te verwesenlik. 2.1. Kode van die deskundige adviseur Die kode van die deskundige adviseur lyk baie eenvoudig: Die eerste drie reëls definieer die eienskappe van die program. dan kom die sluit richtlijn dat die voorverwerker vertel om die CAdaptiveStrategy. mqh lêer in te sluit. Punthakies spesifiseer dat die lêer moet geneem word van die standaard gids (gewoonlik is dit terminalfolderMQL5Include). Die volgende reël bevat die verklaring van die AdaptiveExpert voorwerp (byvoorbeeld van die CAdaptiveStrategy klas) en die kode van die OnInit. OnDeinit en OnTick funksies van die deskundige adviseur bestaan ​​uit die oproepe van ooreenstemmende funksies ExpertOnInit, ExpertOnDeInit en ExpertOnTick en die AdaptiveExpert voorwerp. 2.2. Die CAdaptiveStrategy klas die klas van thr adaptive Expert Adviseur (CAdaptiveStrategy klas) is geleë in die CAdaptiveStrategy. mqh lêer. Kom ons begin met die sluit van lêers: Die rede waarom ons die ArrayObj. mqh lêer sluit is die gerief van die werk met klasse van verskillende strategieë gebruik te maak van die voorwerp van die CArrayObj klas, wat 'n dinamiese verskeidenheid van verwysings na die klas gevalle tot gevolg gehad het deur die basis verteenwoordig klas CObject en sy kinders. Hierdie voorwerp sal die mallstrategies skikking, dit sal 'n houer van handel strategieë gebruik. Elke strategie word voorgestel as 'n klas. In hierdie geval, het ons die lêers wat die CStrategyMA en CStrategyStoch klasse, wat die strategieë van die saak verteenwoordig deur bewegende gemiddeldes en handel deur die stogastiese ossillator bevat ingesluit. Vir die versoek om eienskappe van huidige posisies en vir die uitvoering van handel bedrywighede, sal ons die CPositionInfo en CTrade klasse van die Standard biblioteek gebruik, dis hoekom ons sluit die PositionInfo. mqh en Trade. mqh lêers. Kom ons neem 'n blik in die struktuur van die CAdaptiveStrategy klas. Om 'n verenigde benadering tot die oogmerke van verskillende klasse te implementeer, is die handel strategieë (of eerder die gevalle van hul klasse) gestoor word in die dinamiese verskeidenheid mallstrategies (van die soort CArrayObj), wat gebruik word as 'n houer van klasse van die strategieë. Dit is die rede waarom die klas van handel strategieë SampleStrategy is kuit uit die CObject klas. Die ProceedSignalReal funksie implemente die sinchronisasie van die rigting en omvang van 'n ware posisie met die gegewe rigting en volume: Let daarop dat sy makliker om te werk met die handel posisie met behulp van die handel klasse. Ons gebruik die oogmerke van die CPositionInfo en CTrade klasse vir die versoek om die eienskappe van posisie in die mark en vir die uitvoering van handel bedrywighede onderskeidelik. Die RealPositionDirection funksie versoek die parameters van die werklike oop posisie en terug sy rigting: Nou gaan kyk na die belangrikste funksies van die AdaptiveStrategy klas neem. Kom ons begin met die ExpertOnInit: funksioneer Die stel van handel strategieë is bereid om in die ExpertOnInit funksie. In die eerste plek, is die doel van die mallstrategies dinamiese verskeidenheid geskep. In hierdie geval, ons geskep tien gevalle van die CStrategyMA klas. Elkeen van hulle is geïnisialiseer (in hierdie geval, het ons verskillende tydperke en toegelaat virtuele handel) met behulp van die inisialisering funksie. Dan, met behulp van die SetStrategyInfo funksie wat ons stel die finansiële instrument, strategie naam en kommentaar. As dit nodig is, met behulp van die SetStops (TP, SL) funksie kan ons nie 'n waarde (in punte) van Neem Wins en Stop Loss, wat tydens die virtuele handel sal uitgevoer word spesifiseer. Ons het hierdie lyn gedraai. Sodra die strategie klas geskep word en aangepas, ons voeg dit by die mallstrategies houer. Alle klasse handel strategieë moet die CheckTradeConditions het () funksie wat die kontrole van handelstoestande voer. In die klas van die aangepaste strategie hierdie funksie genoem aan die begin van elke nuwe bar, dus gee ons die strategieë 'n moontlikheid om die waardes van aanwysers kyk en om die virtuele handel bedrywighede maak. In plaas van tien gespesifiseerde bewegende gemiddeldes (3, 13, 23. 93) kan ons honderde bewegende gemiddeldes te voeg (gevalle as die CStrategyMA klas): Of ons kan die klasse strategie wat werk deur die seine van die stogastiese ossillator voeg (gevalle van die CStrategyStoch klas): In hierdie geval is die houer sluit 10 strategieë van bewegende gemiddeldes en 5 strategieë van die stogastiese ossillator. Die gevalle van klasse handel strategieë moet die kinders van die CObject klas en moet die CheckTradeConditions () funksie bevat. Dit is beter om dit in besit van die CSampleStrategy klas. Klasse wat handel strategieë te implementeer kan anders wees en hulle getal is nie beperk nie. Die ExpertOnInit funksie eindig met die lys van strategieë wat in die mallstrategies houer is. Let daarop dat al die strategieë in die houer word beskou as die kinders van die CSampleStrategy klas. Die klasse handel strategieë CStrategyMA en CStrategyStoch is ook sy kinders. Dieselfde truuk gebruik word in die ExpertOnDeInit funksie. In die houer, noem ons die SaveVirtualDeals funksie vir elke strategie is dit die geskiedenis van uitgevoer virtuele handel stoor. Ons gebruik die naam van strategie vir die lêernaam wat as 'n parameter is verby. Dan deinitialize ons die strategieë wat deur die roeping van die funksie Deinitialization () en die mallstrategies houer te verwyder: As jy dont weet oor die virtuele handel uitgevoer word deur die strategieë, verwyder die lyn waar tStrategy. SaveVirtualDeals genoem. Let daarop dat wanneer die gebruik van die strategie tester die lêers red die / testerdirectory / lêers / gids. Kom ons kyk na die ExpertOnTick funksie van die CAdaptiveStrategy klas wat elke keer 'n nuwe blok kom staan ​​bekend as: Die kode is baie eenvoudig. Elke strategie, geleë in die houer moet in staat wees om die huidige finansiële resultaat van sy virtuele posisies met behulp van die huidige pryse te herbereken. Dit word gedoen deur die roeping van die funksie UpdatePositionData (). Hier, weer roep ons die strategieë soos die erfgename van die CSampleStrategy klas. Alle handel operasies aan die begin van 'n nuwe bar (die funksie IsNewBar () laat die bepaling van hierdie oomblik sowel as die ander metodes van kontrole nuwe bar). In hierdie geval, die einde van die vorming van 'n bar beteken dat al die data van die vorige bar (pryse en aanwyser waardes) meer gewoond te verander, sodat dit ontleed kan word op die korrespondensie aan die handelstoestande. Aan al die strategieë gee ons die geleentheid om hierdie tjek uit te voer en om hul virtuele handel bedrywighede uit te voer deur die roeping van hul CheckTradeConditions funksie. Nou moet ons die mees suksesvolle strategie onder al strategieë in die mallstrategies verskeidenheid vind. Om dit te doen, ons gebruik die Performance skikking, is waardes wat teruggestuur word deur die funksie StrategyPerformance () van elke strategie geplaas daarin. Die basis klas CSampleStrategy bevat hierdie funksie as die verskil tussen die huidige waardes van virtuele Equity en balans. Die soek na indeks van die mees suksesvolle strategie uitgevoer word met behulp van die ArrayMaximum funksie. As die beste strategie het 'n negatiewe wins op die oomblik en dit nie die geval nie werklik oop posisies, dan is sy beter om nie te handel, dis die rede waarom ons uittrede uit die funksie (sien afdeling 1). Verder vra ons die rigting van die virtuele posisie van hierdie strategie (bestdirection). As dit verskil van die huidige rigting van die werklike posisie, dan is die huidige rigting van die werklike posisie sal reggestel word (met behulp van die ProceedSignalReal funksie) volgens die bestdirection rigting. 2.3. Klas CSampleStrategy Strategieë geplaas in die mallstrategies houer beskou as die erfgename van die CSampleStrategy klas. Hierdie klas is die basis een vir die handel strategieë is dit die implementering van virtuele handel bevat. In hierdie artikel sal ons kyk na 'n vereenvoudigde geval van virtuele handel implementering, Arent die swaps Aken in ag. Die klasse handel strategieë moet geërf het uit die CSampleStrategy klas. Kom ons wys die struktuur van hierdie klas. Ons sal nie ontleed sy gedetailleerde beskrywing, kan addisionele inligting gevind word in die CSampleStrategy. mqh lêer. Daar kan jy ook vind die funksie van die beheer van nuwe bar - IsNewBar. 3. Klasse handelstrategieë Hierdie afdeling word gewy aan die struktuur van klasse handel strategieë wat gebruik word in die aangepaste Expert adviseur. 3.1. Klas CStrategyMA - Strategie van Handel deur die beweging van Gemiddeldes Die CStrategyMA klas is 'n kind van die CSampleStrategy klas waar die hele funksie van virtuele handel geïmplementeer word. Die beskermde artikel bevat interne veranderlikes wat gebruik sal word in die klas van die strategie. Dit is: mhandle - handvatsel van die IMA aanwyser, mperiod - tydperk van die bewegende gemiddelde, mvalues ​​- reeks wat in die CheckTradeConditions funksie gebruik sal word vir die kry van die huidige waardes van die aanwyser. Die openbare gedeelte bevat drie funksies wat die implementering van die handel strategie te voorsien. Funksie inisialisering. Die strategie is hier geïnisialiseer. As jy nodig het om aanwysers te skep, skep hulle hier. Funksioneer Deinitialization. Die strategie is hier deinitialized. Die handvatsels van aanwysers is hier vrygestel. Funksie heckTradeConditions. Hier is die strategie gaan die handelstoestande en genereer handel seine wat gebruik word vir die virtuele handel. Om virtuele handel bedrywighede uit te voer, is die SetSignalState funksie van die CStrategy ouer klas roep een van vier van die volgende handel seine word oorgedra om dit: Die sein vir die opening van 'n lang posisie (SIGNALOPENLONG) Die sein vir die opening van 'n kort posisie (SIGNALOPENSHORT) die sein vir die sluiting van 'n lang posisie (SIGNALCLOSELONG) die sein vir die sluiting van 'n kort posisie (SIGNALCLOSESHORT) die konsep is eenvoudig - op grond van aanwyser state en pryse, die tipe sein (newstate) bepaal word, dan is die huidige stand van die virtuele handel versoek (met behulp van die GetSignalState funksie) en as hulle is nie dieselfde nie, is die SetSignalState funksie genoem vir die regstelling van die virtuele posisie. 3.2. Klas CStrategyStoch - die strategie van Handel deur Stogastiese Die kode van die klas wat voer die handel op grond van kruising van die belangrikste en sein lyne van die iStochastic ossillator word hieronder gegee: Soos jy sien, die enigste verskil tussen die struktuur van die CStrategyStoch klas en die een van CStrategyMA is die inisialisering funksie (verskillende parameters), die tipe aanwyser gebruik en die handel seine. So, om jou strategieë in die aangepaste Expert adviseur te gebruik, moet jy dit te herskryf in die vorm van klasse so 'n tipe en hulle laai die mallstrategies houer. 4. Resultate van die ontleding van die Adaptive Handel strategieë in hierdie artikel, gaan 'n hele paar aspekte van praktiese gebruik van die aangepaste strategieë en die metodes van hulle verbetering bespreek. 4.1. Die verbetering van die stelsel met strategieë wat Inversed Seine Moving gemiddeldes nie goed as daar geen tendense Gebruik. Weve reeds vergader hierdie soort situasie - in die figuur 3, kan jy sien dat daar geen tendens binne die periode van 8-ste tot 20-ste Januarie sodat al 10 strategieë wat bewegende gemiddeldes gebruik in die handel het 'n virtuele verlies. Die aangepaste stelsel gestop handel as gevolg van afwesigheid van 'n strategie met 'n positiewe bedrag geld verdien. Is daar enige manier om so 'n negatiewe uitwerking Kom voeg by ons 10 strategieë (MA3, MA13. MA93) 'n ander 10 klasse CStrategyMAinv vermy. wie se handel seine omgekeer (die voorwaardes is dieselfde, maar SIGNALOPENLONG / SIGNALOPENSHORT en SIGNALCLOSELONG / SIGNALCLOSESHORT verruil hul plekke). So, bykomend tot tien tendens strategieë (gevalle van die CStrategyMA klas), het ons nog tien teen-tendens strategieë (gevalle van die CStrategyMAinv klas). Die gevolg van die gebruik van die aangepaste stelsel wat bestaan ​​uit twintig strategieë is getoon in die figuur 5. Figuur 5. Diagramme van aandele op die rekening van die aangepaste strategie wat gebruik 20 handel seine: 10 bewegende gemiddeldes CAdaptiveMA en 10 weerspieël dié CAdaptiveMAinv as wat jy kan sien by die figuur 5, gedurende die tydperk toe die hele CAdaptiveMA strategieë het 'n negatiewe gevolg, na aanleiding van die CAdaptiveMAinv strategieë toegelaat dat die deskundige adviseur van ongewenste onttrekkings aan die begin van die saak te vermy. 5.4. P. s. Standard aanwysers soos RSI gebruik 'n vaste aantal periodes in die berekening wat goed in sommige markte en swak in ander kan werk nie, want markte soms tendens en ander kere hulle sywaarts handel. Die standaard aanwyser sal gewoonlik ingeskakel vir sekere marktoestande soos bullish tendense, maar dit is gebrekkig weens 'n aantal faktore. Eerstens, markte verander en jy kan dieselfde aantal periodes nie gebruik in lomp markte soos jy doen in sy handel markte. In die tweede plek kan die aantal periodes in 'n standaard aanwyser nie te klein of te groot anders sal jy whipsawed uit die mark of nie vang groot genoeg prysbewegings. Adaptive aanwysers kan help om hierdie probleme op te los. Byvoorbeeld, die volgende beeld van die aangepaste aanwyser toon 'n 15-dag eksponensiële bewegende gemiddelde in groen, 40-dag eksponensiële bewegende gemiddelde in geel en 'n 10-100 dag adaptive bewegende gemiddelde in pienk. Let op hoe die aangepaste aanwyser uitgange vroeër as die 40-dag eksponensiële bewegende gemiddelde en vermy word whipsawed uit groot tendense soos die 40-dag eksponensiële bewegende gemiddelde. As jy wil graag 'n video van die bogenoemde adaptive eksponensiële bewegende gemiddelde kliek hier sien. Die onderstaande foto toon die parameter venster vir die adaptive RSI. Die meeste aanpasbaar aanwysers met die uitsondering van die aangepaste MACD en EMO dieselfde parameter venster maar sonder die keuse van glad as hulle beweeg gemiddelde tipe aanwysers. Elke adaptive aanwyser het 'n keuse van 8 verskillende adapters om uit te kies. Dit sluit tendens filters en siklus gebaseer adapters vir verskillende tipes markte en toestande aan te pas. Aanwysers soos die RSI het ook die opsie van 5 verskillende smoothers om geraas en lag wat eintlik werk baie goed om valse seine te verminder en te verbeter die reaksie van die aanwyser te verminder. Weergawe. 1.0 platform. Alle metodes kan apart opgestel. Programme te koop en te verkoop sein pyle Die sein pyle kan op die staafgrafiek vertoon. It039s instel. Don039t mis 'n bedryf geleentheid. Ondersteuning Selfoon druk kennisgewing. Die aanwyser doesn039t oneerlik, dit werk eerlik vir jou. 4 en 5 syfers makelaars Die aanwyser outomaties bespeur en hanteer 4 en 5 syfers makelaars. Die aanwyser is geskryf in C, hoogs geoptimeerde en goed getoets. In wissel, sywaarts, swaai, woelig, en ossillerende mark, die blik terug tydperk is geneig om korter wees. In trending mark, die tydperk is geneig om langer te wees. Die sterker tendens, hoe langer tydperk. Die swakker tendens, die korter tydperk. Dit moet gebruik word saam met ander aanwysers of prys aksie. Meer strategieë wag vir jou om na te vors. Wat is die ses aangepaste metodes Die ses aangepaste metodes is Volatiliteit, Fractal, Swing, Simmetrie ZigZag, Up Down Balans en veranderlike. Alle metodes werk die soortgelyke manier, maar die onderliggende algoritme is heel anders. Alle metodes kan apart opgestel. Algemene vrae V. Lees hierdie blog om te leer hoe om DLL in staat te stel in MT4. Die DLL toegang slegs data in MT4 sandbox. Q. Daar is 6 aangepaste metodes in die aanwyser.


No comments:

Post a Comment