Saturday, October 15, 2016

Bewegende Gemiddelde Dashboard Mq4

Meta Trader 4 - Voorbeelde MQL4 taal vir Newbies. Custom Indicators (Deel 1) Inleiding Dit is die vierde artikel van die reeks MQL4 Tale vir Newbies. Vandag sal ons leer om persoonlike aanwysers te skryf. Ons sal kennis maak met die klassifikasie van aanwyser funksies te kry, sal jy sien hoe hierdie eienskappe beïnvloed die aanwyser sal leer oor nuwe funksies en optimalisering, en, ten slotte, sal ons ons eie aanwysers skryf. Verder, aan die einde van die artikel wat u sal raad oor die programmeringstyl te vind. As dit die eerste artikel vir beginners wat jy lees, miskien sou dit beter wees vir jou om te lees die voriges. Naas, maak seker dat jy behoorlik die vorige materiaal verstaan, omdat die gegewe artikel nie die basiese beginsels te verduidelik. Tipes Indicators Nou ek sal jou wys, watter soort aanwysers bestaan. Natuurlik, het jy 'n baie van hulle gesien, maar nou wil ek u aandag vestig op funksies en grense van aanwysers, dus sal ons 'n klein klassifikasie van funksies en grense te maak. Dit sal dan help om persoonlike aanwysers te skryf. So, die eerste eenvoudige aanwyser: Dit is bewegende gemiddelde, MA. 'n wyd gebruik tegniese aanwyser. Gee aandag aan die volgende belangrike feite: die aanwyser is geteken in die grafiek venster die aanwyser toon slegs een waarde van die omvang van die aanwyser waardes is onbeperk en is afhanklik van die huidige pryse die lyn is met 'n sekere kleur getrek. breedte en styl (soliede lyn) Laat ons nou nog 'n aanduiding te gee: Dit is Williams Persentasie Range, R. Gee aandag aan die volgende belangrike feite: die aanwyser is in 'n aparte subwindow soos in die vorige geval getrek, die aanwyser toon slegs een waarde van die omvang van die aanwyser waardes is streng beperk die getrekte lyn het 'n ander styl. kleur en breedte So, die volgende aanwyser eiendomme bestaan: die aanwyser is getrek in 'n grafiek venster of in 'n aparte subwindow. Kom ons probeer om te verstaan, waarom bewegende gemiddelde is opgestel op die grafiek, en Williams Persentasie Range, R getrek word in 'n aparte venster. Die verskil is in die reeks van die vertoon waardes. Kennis dat die tweede aanwyser toon waardes in die reeks van 0 tot -100. Stel jou nou voor dat ons wys hierdie waardes in 'n grafiek venster. En wat sou gebeur. Jy sal hierdie lyn nie sien nie, want die prys het 'n baie smaller reeks. In ons geval is dit 0,6805-0,7495. Maar dit is nie al nie. Eintlik, pryse is positiewe getalle, en ons waarde is negatief. Aanwysers getrek in 'n aparte subwindow as hul waardes buite die prysklas van die aktiewe grafiek. En as die reeks is byna dieselfde (byvoorbeeld, verskillende soorte bewegende gemiddeldes), 'n aanduiding is opgestel in 'n grafiek venster. In die toekoms sal voorhou parameter aanwyser volgens hierdie eenvoudige logika. Hier is 'n prentjie: 'n aanduiding dat daar in 'n aparte subwindow word gevestig kan word beperk tot 'n streng reeks. Dit beteken dat die terminale stel 'n vaste skaal vir die vertoon aanwyser waardes en selfs as waardes oorskry die reeks, sal jy dit nie sien nie. As jy hierdie parameter te skakel, die terminale sal outomaties die skaal te verander sodat dit alle waardes van 'n aanduiding bevat. Sien die prentjie: 'n aanduiding kan sy waardes te toon met behulp van verskillende kleure. style en breedte. Jy het dit gesien dikwels by die opstel van die tekening van aanwysers in die terminale. Hier is een beperking: as jy 'n lyn breedte meer as 1, kan jy net een styl gebruik - soliede lyn. Hier is nog 'n aanduiding: Soos jy sien, is die aanduiding Volumes in die vorm van 'n histogram getrek. So, daar is verskeie vorme van wat aanwyser waardes. Hier is 'n voorbeeld van 'n ander soort: Die aanwyser Fractals is in die vorm van spesiale simbole geteken. Kyk nou na die volgende aanwyser: Dit is Alligator. Let die aanwyser trek gelyktydig drie waardes (balans lyne). Hoe werk dit eintlik werk, geen aanduiding (daar is 'n paar uitsonderings, maar ons sal later praat oor hulle) gebruik data buffers wanneer toon waardes. Data buffer is amper 'n eenvoudige reeks. Sy vreemd is in die feit dat hierdie verskeidenheid gedeeltelik word bestuur deur die terminale. Die terminale verander die skikking wel, wat by die ontvangs van elke nuwe bar, 'n verskuiwing plaasvind. Dit word gedoen met die oog op wat elke verskeidenheid element stem ooreen met 'n sekere bar. Die maksimum aantal getoon data buffers in een aanwyser is 8. Dit mag vreemd lyk nou nie, maar binnekort sal jy verstaan ​​dat dit nie anders kan wees. Onthou net dat daar 'n aparte data buffer vir elke lyn in Alligator. Elke data buffer het sy eie parameters, waarvolgens die terminale hulle trek. In ons geval is daar 3 buffers wat in die volgende manier kan beskryf word: Die eerste buffer is opgestel deur 'n soliede groen lyn op 'n breedte 3. Die tweede buffer is opgestel deur 'n stippellyn van rooi kleur en breedte 1. Die derde buffer getrek word deur 'n soliede blou lyn op 'n breedte 2. Dit is nie nodig vir 'n aanduiding om 'n buffer te trek. Dit kan gebruik word vir tussenganger berekeninge. Dit is waarom die aantal buffers groter as wat jy sien is nie. Maar die belangrikste eienskap van data buffer is dat elke buffer element moet ooreenstem met 'n sekere bar op 'n grafiek. Onthou net hierdie. Binnekort sal jy sien hoe dit werk in 'n kode. Laat ons nou 'n gevolgtrekking van ons klein uitstappie te trek. Enige aanwyser het die volgende parameters: een of meer data buffers (hoewel nie noodwendig) vir die vertoon van die waardes of vir tussenganger berekeninge. Elke buffer, op sy beurt het sy eie parameters wat bepaal hoe dit sal opgestel word en of dit sal opgestel word. Byvoorbeeld: Stel die waarde in die vorm van 'n histogram, simbool of lyn watter kleur en styl waar die aanwyser moet opgestel word (in 'n grafiek venster of in 'n subwindow) indien die aanwyser in 'n subwindow getrek word, moet ons beperk die reeks of moet die skaal wees outomatiese. Maak seker dat jy duidelik verstaan ​​al hierdie parameters. Nou sal ons 'n Wizard te gebruik vir die skep van 'n persoonlike wyser. Die skep van 'n Custom aanwyser Begin MetaEditor. Kies Lêer-gtNew: Dan sien ons 'n venster Expert adviseur Wizard. kies Custom aanwyser. Klik Volgende: Vul velde Naam. Skrywer en Link. Alles is soos gewoonlik hier, maar nou kan jy parameters toe te voeg. Wat is hierdie parameters is algemene veranderlikes wat deur 'n gebruiker kan ingestel word. En wat belangrik is, kan hierdie veranderlikes gebruik word in 'n aanwyser kode. Die toepassing van parameters is voor die hand liggend - jy gebruikers in staat stel om 'n paar aspekte van die aanwyser werking. Dit kan enigiets wat jy wil wees. Byvoorbeeld, tydraamwerk te gebruik, maatskappy af, aantal bars vir 'n gemiddelde ens As 'n voorbeeld laat ons probeer om 'n parameter wat die aantal bars verwerk vir die berekening van die aanwyser waardes sal wys voeg. Waar kan dit gebruik word Verbeel jou aanwyser ernstig laai jou verwerker as gevolg van te veel berekeninge. En jy dikwels verander die tydperk van die grafiek en sien net die laaste 100-200 bars. Dan hoef jy nie ander berekeninge wat tyd mors. Hierdie parameter sal jou help om in so 'n situasie. Natuurlik is daar niks moeilik in ons aanduiding dat die rekenaar hulpbronne kan mors nie. Dit is net 'n variant van die gebruik aanwyser parameters. So, vir die toevoeging van 'n parameter kliek Voeg by (1). Na wat jy kan 'n veranderlike naam (2) te verander. In ons geval vervang ons dit vir barsToProcess. Jy kan ook verander die aanvanklike waarde (3), dit wil sê verstek waarde. Verander dit in 100. Behalwe jy kan die veranderlike tipe verander. maar in ons geval het ons nie nodig het om iets te verander, want tipe int pas perfek aan ons doeleindes. Na al die nodige veranderinge gemaak, kliek Volgende: Dit is amper klaar. Nou kan aandui hoe die aanwyser moet opgestel word. in 'n aparte venster of in 'n grafiek venster. Jy kan ook die reeks te beperk. Gaan aanwyser in 'n aparte venster. Hieronder is 'n leë veld Indekse (data buffers). Hier kan u die nodige aantal data buffers (maksimum 8) by te voeg. Naas, kan jy altyd voeg of 'n buffer later verwyder, verander die kode. Klik Voeg vir die toevoeging van 'n buffer. lyn: Nou kan jy die manier waarop die buffer sal getrek word verander. histogram. artikel. pyl. Ons sal niks verander nie, so ons soort is lyn. Stel die kleur en klik op OK. Ten slotte, jou eerste aanwyser is gereed Wel, dit beteken niks te trek, maar dit is 'n kode van die lêer met die bronkode is in die gids met aanwysers: MetaTrader4expertsindicators. Laat ons elke lyn analiseer Nou laat ons sien, wat Meta Redakteur geskep: Soos gewoonlik die hoof bestaande uit een-lyn kommentaar sluit die inligting wat jy vroeër geskryf het. Volgende: Onthou jy nog die voorverwerker richtlijn definieer van die tweede artikel Ons gebruik dit vir die verklaring van konstantes. So, hier is nog 'n richtlijn wat gebruik word vir wat na spesifieke eienskappe van 'n aanwyser. In ons geval is dit gebruik word vir die aanduiding van outeurskap. Neem asseblief kennis dat is begin met die spesiale teken. dan gaan die sleutel woord eiendom (sonder 'n spasie). Dan kom 'n konkrete eiendom wat ons wil stel, in ons geval is dit kopiereg. en dan die waarde van hierdie eiendom. In ons geval is dit 'n lyn met jou naam. Die gebruik van die richtlijn eiendom wat jy kan opstel baie spesifieke aspekte van die aanwyser. Jy sal dit nou sien. Al hierdie eienskappe sal opgestel word by verstek. Laat ons verder gaan: Dit richtlijn toon, hoe om ons te kontak die skrywer. Jy mag vra waar hierdie inligting (die naam skrywers en kontakbesonderhede) is, omdat dit nêrens getoon. Maar dit is ingesluit in die uitvoerbare lêer. En as jy die uitvoerbare lêer as 'n gemeenskaplike teks sien, sal jy hierdie inligting te sien: Hierdie richtlijn toon dat die aanwyser in 'n aparte subwindow getrek moet word. Soos jy sien, daar is geen bykomende parameters, in teenstelling met die vorige richtlijn. Hierdie richtlijn dui, hoeveel data buffers gebruik sal word deur die aanwyser. Jy het dalk opgelet dat riglyne in een of ander manier soortgelyk aan gewone funksies: hulle aanvaar ook 'n paar parameters en iets te doen in reaksie. Maar daar is 'n belangrike verskil: dit uitgevoer word in die eerste plek (voor samestelling). Dui standaard kleur vir die eerste buffer. Let daarop dat buffer getalstelsel begin van die een. nie van nul. Probeer om dit te onthou, sodat jy geen verwarring in die toekoms. Die kleur word aangedui met behulp van een van die vele voorafbepaalde name. MQL4 Verwysing - gt Standard Konstantes - gt Web-Kleure: Jy kan sleutel woorde vir alle beskikbare kleure in die hulp sien. Net so kan jy die kleur vir ander buffers dui, net verander die buffer nommer. Dit is ons parameter van die aanwyser. Ons het dit in die Wizard. Let daarop dat die enigste verskil van 'n gemeenskaplike veranderlike is die sleutel woord eksterne voor die veranderlike tipe. Dit is hoe die parameter sal lyk vir 'n gebruiker op die aanwyser begin: Dit is 'n gewone skikking. Maar die dimensionaliteit is nie aangedui en inisialisering is nie uitgevoer nie. Dit skikking sal later opgestel word as 'n data buffer. Dan verklaar ons en beskryf funksies. In teenstelling met 'n gewone skrif, elke aanwyser het 3 funksies, nie 1: init () - hierdie funksie geroep deur die terminale net een keer, toe ons begin die aanwyser. Die doel daarvan is om die aanwyser vir 'n operasie, die opstel van data buffers voor te berei, is so parameters (wat 'n gebruiker het geskryf) en ander voorbereidende aksies. Hierdie funksie is nie verpligtend. As jy nie 'n kode uit te voer in dit, kan jy dit verwyder. deinit () - hierdie funksie is ook net een keer genoem word, wanneer jy 'n aanduiding van 'n grafiek te verwyder. Jy moet die aanwyser te berei vir die beëindiging van sy operasie. Byvoorbeeld, naby oop lêers, grafiese voorwerpe verwyder uit die lêer (moenie bekommerd wees nie, sal jy leer hoe om dit te doen). Hierdie funksie is ook nie verpligtend. begin () - in teenstelling met skrifte, in aanwysers hierdie funksie geroep by elke blok. Maw wanneer nuwe kwotasies blyk uit die geldeenheid paar, om die term waarvan jy die aanwyser het aangeheg, is hierdie funksie genoem. Naas, is hierdie funksie genoem in die aanwyser begin, dit wil sê na die funksie init (). Kom ons kyk wat gebeur in elke funksie: Hier sien ons die roeping van twee belangrike funksies vir die opstel van 'n data buffer: Hierdie funksie stel hoe om die data buffer te trek. Die eerste parameter dui aan watter buffer die verandering toegepas moet word. Neem asseblief kennis dat hierdie funksie (en soortgelyke funksies) die buffer getalstelsel begin van nul, nie van die een soos in riglyne. Dit is 'n belangrike oomblik, so wees versigtig. Die tweede parameter dui, hoe om die gekose buffer te trek. In ons geval gebruik ons ​​die konstante DRAWLINE. wat toon dat die buffer as 'n lyn getrek word. Natuurlik, is daar ander konstantes, maar ons sal later praat oor hulle. Hierdie funksie bind 'n verskeidenheid om 'n buffer nommer. Maw dit blyk dat die buffer met die aangeduide getal die aangeduide verskeidenheid sal gebruik vir die berging van data. So, die verandering van die elemente van hierdie verskeidenheid jy sal die waarde van die buffer verander. Eintlik 'n skikking is 'n data buffer. Die eerste argument is die naam van die skikking wat moet gebind word. Einde van die funksie, terugkeer nul - die inisialisering suksesvol was. Die funksie van deinitialization is leeg by verstek. Nou kom die belangrikste funksie - die hoof-kode is hier geleë. Skenk aandag: die veranderlike countedbars is vooraf verklaar, dit is geïnisialiseer word deur die funksie IndicatorCounted (). Hierdie veranderlike word gewoonlik gebruik vir die optimalisering en speedup van die aanwyser operasie, sal dit later ontleed. En nou, laat ons iets in die aanwyser venster trek. Afwerking die aanwyser Kom ons besluit wat moet vertoon word. Wat sal die aanwyser wys ons iets eenvoudig. Eerste laat trek ewekansige getalle. Hoekom nie Dit waarborg 50 van wins seine. Kom ons skryf in ons funksie init () n-kode vir die inisialisering van die kragopwekker van ewekansige getalle: Die inisialisering is gereed, kom nou die funksie begin (): Stel - F7. Begin die terminale, vind die paneel Navigator. kies die artikel Custom Indicators en dubbelkliek op die Naam van onse aanwyser: Die aanwyser sal aangeheg word aan die aktiewe grafiek: Jy sien, dit alles werk. Kom ons kyk wat die kode wel: Ons gebruik die siklus vir om te gaan deur al die elemente van die data buffer. As 'n sekere bar ooreenstem met elke element van die buffer. Ons gebruik die siklus, vanaf die nul bar (die laaste beskikbaar) en eindig met die eerste beskikbare, wat is in die reeks een minder as die veranderlike Drinkplekke (want ons bars tel van nul). By elke iterasie n toonbank is verhoog deur een, en ons beweeg van die laaste beskikbare bar om die eerste een terselfdertyd toeken aan elke buffer element (wat ooreenstem met 'n sekere bar) 'n ewekansige getal van 0 tot 1000. As dit moeilik vir jou om te verstaan ​​hoe 'n sekere buffer element stem ooreen met 'n sekere bar, probeer om die siklus in die volgende manier te verander en sien die resultaat in die terminale: Nou sal die aanwyser van die aantal van elke staaf wys. kyk: Jy sien, die bar getal verhoog vanaf die laaste balk om die eerste een (van 0 tot Drinkplekke). Hoop jy nou die korrespondensie van buffer elemente te bars op die grafiek te verstaan. Laat ons nou terug te keer na die kode van die ewekansige aanwyser. As jy dit gebruik ten minste 'n paar minute, sal jy sien dat elke aanwyser regmerkie trek absoluut verskillende grafiek. Maw elke blok maak herberekenings van wat bereken die vorige keer. Dit is ongerieflik vir ons, want ons het nie eens wat gebeur het 'n regmerkie gelede kan sien. Maar dit maak nie saak nie, want niemand so 'n aanduiding sal gebruik nie - ons is net leer om dit te skryf. Daar is nog een ding. Stel jou voor, jy aanwyser maak 'n baie komplekse berekeninge en berekening van een bar vereis groot verwerker hulpbronne. In so 'n geval, as 'n nuwe prys verskyn, jou aanwyser sal die waarde bereken vir elke beskikbare bar, selfs al is dit vroeër gedoen is. Is dit duidelik In plaas van die berekening van net een keer, dit sal weer en weer kan bereken. Uitskakeling van sulke probleme wat verband hou met onredelike vermorsing van hulpbronne is optimization genoem. Hoe kan ons hierdie probleem Gewoonlik word dit gedoen in die volgende manier op te los. Eerste 'n aanduiding is bereken op alle beskikbare kandelaars, en slegs dan wanneer aanhalings ontvang, sal dit die waarde net vir die laaste kandelaar herbereken. Dit is redelike - nie onnodige aksies. Laat ons nou die optimalisering van die funksie begin (). sodat dit werk soos volg: Laat ons elke lyn analiseer: Ons verkondig die veranderlike countedbars dat die aantal bars bereken deur die aanwyser sal slaan. Eintlik is die funksie IndicatorCounted () gee terug Die nommer van onveranderd bars na die vorige oproep van die funksie begin (). So, as dit is die eerste keer begin () roep, IndicatorBars () sal terugkeer 0. want al bars is nuut vir ons. As dit is nie die eerste roeping, verander net die laaste bar, sodat IndicatorBars () sal 'n aantal gelyk aan Drinkplekke-1 terug te keer. Hier is nog 'n veranderlike wat gebruik sal word as 'n limiter. maw sal help om die siklus vroeër voltooi moet word, sonder om reeds bereken kandelaars. Soos dit reeds gesê is, as IndicatorCounted () gee terug 0, die funksie begin () genoem word vir die eerste keer en al bars is nuut vir ons (die aanwyser is nie bereken vir hulle). Maar as dit is nie die eerste roeping van begin (), die waarde gelyk aan Drinkplekke-1 sal teruggestuur word. So, hierdie toestand spore so 'n situasie. Daarna verminder ons die veranderlike countedbars deur 1. Slegs die laaste bar kan verander, so hoekom doen ons dit is 'n feit, daar is 'n paar situasies, wanneer die laaste blok van die vorige bar bly onverwerkte, want wanneer die laaste blok het, die laaste maar een regmerkie verwerk. En die persoonlike aanwyser is nie genoem en is nie bereken. Dit is hoekom ons verminder die veranderlike countedbars met 1, ten einde hierdie situasie uit te skakel. Hier wys ons die veranderlike limiet (die limiter) die aantal laaste bars wat aangespreek moet word herbereken. Terwyl die veranderlike countedbars die aantal reeds bereken kandelaars winkels, ons eenvoudig vind die verskil tussen Drinkplekke (die totale aantal beskikbare bars) en countedbars vir definieer, hoeveel kandelaars moet bereken word. Die siklus homself byna het nie verander nie. Ons verander net die toestand van implementering. Nou is die siklus sal uitgevoer word terwyl die toonbank Ek is minder as limiet. Nou optimalisering is verby. As jy die nuwe weergawe van die aanwyser waarneem, sal jy sien dat wanneer 'n nuwe blok is ontvang, die waarde net verlede bar veranderinge. Probeer om so 'n optimalisering voortdurend gebruik, selfs al is jou aanwyser niks moeilik maak bereken. Dit is Haut ton. Onthou jy 'n aanduiding parameter barsToProcess dat ons bygevoeg in die Wizard. Nou is dit hoog tyd om dit te gebruik. Ons moet net 'n paar lyne te voeg voordat die siklus: Jy sien, alles is eenvoudig. Ons kyk of beperking is meer as barsToProcess. Indien ja, verminder die limiter deur die toeken. As gevolg hiervan, as ons 'barsToProcess100, sal jy 'n prentjie soos te sien: As jy sien, is slegs die nommer van kolomme deur ons gestel bereken. Ons aanwyser is amper klaar. Maar ons het nie duidelike seine vir toetrede tot die mark het. Ons moet dus meer sekerheid te voeg. Vir hierdie doel sal ons vlakke gebruik. Vlakke is horisontale lyne getrek deur die aanwyser met behulp van 'n sekere styl, kleur en breedte. Dit moet hier in ag geneem word dat die maksimum aantal vlakke op 'n bar is 8. Behalwe jy vlakke met behulp van riglyne of funksies kan stel. Dit is meer verkieslik om die eerste variant gebruik, as jy wil vas te stel by verstek. Vir die dinamiese verandering van vlakke in die gebruik funksies aanwysers werking. So laat ons daar twee vlakke: die eerste een op die punt 800, die tweede - 200. Vir hierdie doel laat ons 'n paar riglyne te voeg aan die begin van die aanwyser kode: Kom ons ontleed nuwe riglyne: Hierdie richtlijn programme, wat die vlak 1 moet plekke op die punt 800,0. Gee aandag dat buffer getalstelsel begin met 1. soos in die riglyne vir buffer omgewing. Vir die oprigting van 'n ander vlak, net die vlak nommer verander aan die einde van 'n aanwysing: Daar is 'n belangrike beperking in die opstel van die eksterne vorm van vlakke. Jy kan nie die opstel van elke vlak individueel. Alle instellings is absoluut toegepas word op alle vlakke. As jy nodig het om te installeer op elke vlak individueel, moet jy voorwerpe te gebruik (en nie vlakke te alle gebruik), wat in die volgende artikel sal beskryf word. Hierdie richtlijn stel kleur. wat gebruik sal word vir die opstel alle vlakke. Hierdie richtlijn stel breedte vir lyne van alle vlakke. Jy kan die wydte stel van 1 tot 5. Moenie vergeet nie, dat indien 'n breedte is meer as 1, vlakke sal in 'n soliede streep. As jy 'n ander styl van teken vlakke nodig het, gebruik net die breedte 1. Hierdie richtlijn stelle styl vir lyne. Daar is die volgende voorafbepaalde konstantes: STYLESOLID - soliede lyn STYLEDASH - stippellyn STYLEDOT - stippellyn STYLEDASHDOT - Dash-stippellyn STYLEDASHDOTDOT - Dash-stippellyn met 'n dubbele punte Ons het klaar die ontwikkeling van ons ewekansige aanwyser. Laat ons nou die bron lêer te stoor met 'n meer gepaste naam - randomIndicator. mq4. Heropstel die bron lêer weer. Hierdie aanwyser sal ook gebruik word in die volgende deel. Die finale weergawe moet soos volg lyk: Function iCustom Nou laat ons woon op 'n baie nuttige funksie - iCustom. Dit word gebruik vir die kry van waardes van enige persoonlike aanwyser. Onthou, vir 'n ingeboude aanwysers gebruik ons ​​funksies vir die werk met tegniese aanwysers in die vorige artikel beskryf (byvoorbeeld: iADX (), iMACD ens). Vir alle ander aanwysers (persoonlike aanwysers) gebruik die funksie iCustom. Hierdie funksie is 'n universele een en toegepas kan word om enige persoonlike aanwyser wat aan die volgende vereistes voldoen: die aanwyser word saamgestel en is in die vorm van 'n uitvoerbare lêer (.ex4) die aanwyser is in die gids Meta Trader 4expertsindicators Die funksie prototipe het die volgende vorm: simbool definieer, wat finansiële sekuriteit (geldeenheid paar) moet gebruik word vir die berekening van 'n persoonlike wyser waardes. Gebruik NULL (of 0), as jy die huidige (aktiewe) sekuriteit (grafiek) nodig. tydraamwerk bepaal, waarop tydraamwerk (tydperk) die aanwyser gebruik moet word. Gebruik 0 vir die huidige tydperk of een van konstantes (PERIODM1, PERIODM5, PERIODM15, PERIODM30, PERIODH1, PERIODH4, PERIODD1, PERIODW1, PERIODMN1). NAAM Die naam van die uitvoerbare lêer van die persoonlike aanwyser. Slegs die naam moet aangedui word: moenie die uitbreiding (.ex4) of die pad van die lêer (kundiges / aanwysers /) nie skryf. Byvoorbeeld, as die naam van die uitvoerbare lêer van die persoonlike aanwyser is RandomIndicator. ex4, jy moet RandomIndicator skryf. Die register hier is nie relevant. Dit beteken dat jy kan RANDOMindicator skryf en dit sal werk. . hier moet jy al die waardes van die persoonlike aanwyser parameters aan te dui. Byvoorbeeld, in ons aanwyser RandomIndicator daar is net een parameter - barsToProcess. Maw In ons geval het ons te skryf hier 100 (of enige ander geskikte vir jou waarde). As die aantal parameters is meer as een, is die wat in dieselfde opvolging as hulle in die persoonlike aanwyser verklaar, deur kommas geskei. Nou sal ons probeer om 'n aanduiding op grond van hierdie funksie te skryf en jy sal dit beter te verstaan. af die werking af van die persoonlike aanwyser. Eintlik is dit die nommer van die data buffer, die waarde van wat jy wil te kry. Die nummering begin van nul (nie soos in riglyne). As die persoonlike aanwyser het net een data buffer, moet hierdie parameter gelyk aan 0. verskuiwing definieer wees, om watter bar die persoonlike aanwyser gebruik moet word. Voorbeelde van gebruik: Signal aanwyser Nou sal ons nog 'n eenvoudige aanwyser skryf. So, dink die volgende situasie. Jy het nogal 'n komplekse aanwyser geskryf met baie data buffers. Baie van hulle word vertoon in 'n aparte venster, ander gebruik vir tussenganger berekeninge. Jy weet presies seine te koop en te verkoop. Maar die probleem is, is dit baie moeilik om die seine op te spoor. Jy moet voortdurend kyk na jou monitor, probeer om kruising lyne, wat bo vlakke of onder hulle is te vind. Dit is waarom jy besluit om nog 'n aanduiding dat dit vir jou kan doen skryf en sal net wys jou die inskrywing seine. Byvoorbeeld, hierdie kan wees pyle wys in watter rigting jy poste moet oopmaak. Dit is net 'n fantasie wat waar 'n sein aanwyser toepaslike kon wees. Ons situasie is baie makliker, maar nog steeds is soortgelyk aan die eerste een. Ons sal 'n sein aanwyser gebaseer op die vorige aanwyser RandomIndicator skryf. Eerstens moet ons inskrywing voorwaardes definieer - hier sal ons vlakke nodig. So voorwaardes die volgende sal wees: as 'n reël bokant die boonste vlak (800,0) beweeg, te koop as 'n lyn beweeg onder die onderste vlak (200,0), Nou verkoop dit is hoog tyd om 'n nuwe aanwyser skryf. Gebruik Expert adviseur Wizard om 'n nuwe persoonlike wyser te skep. Voeg 'n ekstra parameter soos in die vorige geval: En die laaste stap (Teken eienskappe van die aanwyser program Custom) moet die volgende wees: voeg Eerste twee data buffers wat gebruik sal word vir die opstel seine te koop en te verkoop in die vorm van 'n pyl . Verander die tipe data buffers in Arrow. Verander kleure en simbole kodes. Hier is 'n alle beskikbare simbool kodes: Ons het nie nodig om die aanwyser te trek in 'n aparte venster, want ons gaan seine in die grafiek venster trek. Ons gebruik twee data buffers, omdat ons nie anders pyle (simbole) kan trek met behulp van slegs een buffer. Elke data buffer wat vertoon word in die vorm van simbole geteken kan word slegs deur een simbool. Laat ons nou baie aandagtig die aanwyser inisialisering kode te ontleed: Gee aandag wat nou 'n ander konstante vir die tipe data buffer tekening gebruik word - DRAWARROW: Ons sien ook twee nuwe funksies wat gebruik word vir die opstel van die simbool teken. SetIndexArrow word gebruik om te stel watter simbool sal 'n buffer verteenwoordig. Die eerste argument is die buffer nommer. die tweede een is die simbool kode wat die aanwyser sal verteenwoordig: SetIndexEmptyValue gebruik vir die aanduiding van 'n leë waarde. Dit beteken dat ons die waarde, waarteen ons moet niks teken. Dit is baie handig in ons geval, omdat seine nie gegenereer word op elke maat. Dit werk soos volg: wanneer ons nie nodig het om 'n skikking op die huidige bar te trek, moet jy 'n leë waarde toeken aan die ooreenstemmende data buffer element, in ons geval is dit 0. Die eerste argument van die funksie is die getal van die data buffer. Die tweede een is die leë waarde: die oorblywende inisialisering kode stel buffers analoog aan die ewekansige aanwyser, dat ons vroeër ontleed. Kom ons klaar is met die kode in die funksie begin (): Die hele kode totdat die siklus van die ewekansige aanwyser herhaal. Eintlik hierdie kode is standaard in enige aanwyser en herhaal met klein veranderinge. Kom ons ontleed die siklus in besonderhede: Eerstens verklaar ons die veranderlike randomValue (ewekansige waarde) en wys dit die waarde van ons ewekansige aanwyser op die huidige bar. Vir hierdie doel gebruik ons ​​die funksie iCustom: As die waarde van die ewekansige aanwyser is meer as die boonste vlak (800), dit is 'n sein te koop: Anders, as daar is geen koopsein: As die waarde van die ewekansige aanwyser is onder die onderste vlak (200), is dit 'n Sell sein: Anders, as daar is geen Sell sein: dit was die siklus. Stel die aanwyser en begin dit in die terminale: Oor die Styl Nee, dit is nie die reëls van die keuse van 'n das om 'n baadjie en hemp pas, maar dit is altyd betyds. Die programing styl is baie belangrik, as jy nie jou kode net vir julle skryf nie. Eintlik is elke ontwikkelaar het sy eie programmeringstyl. Elkeen ontwerpe siklusse op sy eie manier, maak verskillende koppeltekens (of geen koppeltekens enigsins), verklaar veranderlikes ens Jy moet jou eie programmeringstyl wat jy altyd later sal gebruik. Ek wil graag vir jou 'n paar aanbevelings wat sal help om jou kode maklik om te lees en te verstaan ​​gee: skryf nie baie bedrywighede in een lyn kommapunt geskei () skryf name van veranderlikes en funksies in Engels in veranderlike name gebruik hoofletters as skeiding karakters te verhoed dat die oormatige gebruik van afkortings en verlagings in die name van veranderlikes en funksies maak koppeltekens van 'n sekere lengte om selfs kode blokke in elke nuwe liggaam (van 'n siklus of 'n toestand) addisionele koppeltekens maak die groepering van een-tipe het veranderlikes te maak behoorlike kommentaar vir 'n groot en moeilike kode blokke maak behoorlike kommentaar op die funksies wat geskryf is deur jou (hul opdrag, parameters) Gevolgtrekking jy het iets nuuts vandag geleer. Jy het twee eenvoudige aanwysers geskryf. Wel, hulle is nutteloos, maar ek is nie jou te leer om suksesvol te handel Julle het self gesien hoe aanwysers bedryf, wat parameters en eienskappe wat hulle het. Jy het geleer om buffers stel en saam met hulle. Jy het kennis gemaak met 'n paar nuwe funksies. Die funksie iCustom is baie belangrik en sal verder gebruik word, selfs in Expert Adviseurs. As jy enige probleme ontmoet, lees die artikel weer, probeer om te verstaan. As jy nog 'n paar vrae, moet asseblief nie huiwer om forums te gebruik of skryf kommentaar op die article.1000pips Dashboard aanwyser Laai af vir Meta Trader Is jy tans op soek na 'n betroubare 1000pips Dashboard Meta Trader aanwyser wat jy kan gebruik is jy op die regte koers. Dit is waarskynlik omdat die 1000pips Dashboard aanwyser mq4 is gratis so you8217re staat wees om dit af te laai sonder om 'n sent te spandeer. Daarbenewens het die aanwyser is werke. Lees meer Tagas Dashboard Published: 7 Julie 2014 Updated: September 21, 2016 Author: Laaste Forex PipNailer paneelbord V1 5 aanwyser Laai af vir Meta Trader Op soek na 'n goeie PipNailer paneelbord v1 5 aanwyser You8217re op die regte koers. Dit is omdat die PipNailer paneelbord v1 5 aanwyser mq4 kan gratis afgelaai word. Hierdie aanwyser is ook bewys dat geskik is vir feitlik alle Meta Trader uitgawes wees. Om jou te voorsien 'n blik. Lees meer Tagas Dashboard Published: 2 Julie 2014 Updated: 21 September, 2016 Author: Laaste Forex 1000pips Dashboard aanwyser Laai af vir Meta Trader Op soek na 'n metode presies waar jy moontlik kan aflaai gratis 1000pips Dashboard Meta Trader aanwyser, goed, jy dalk aangekom by die reg site. Nou, kan jy 1000pips Dashboard aanwyser mq4 vir Meta Trader 4 of Meta Trader 5 gratis. As dit asook getoon. Lees meer Tagas Dashboard Published: 8 Junie 2014 Updated: 21 September, 2016 Author: Laaste ForexMoving Gemiddeldes (MA) is een van die mees algemeen gebruik word aanwysers in Forex. Hulle is maklik om te stel en maklik om te interpreteer. Praat eenvoudige, bewegende gemiddeldes net meet die gemiddelde beweging van die prys tydens 'n gegewe tydperk. Dit glad uit die prys data, sodat die mark tendense en neigings te sien. Hoe om Bewegende Gemiddeldes gebruik bewegende gemiddelde is 'n tendens aanwyser. Behalwe die ooglopende eenvoudige funksie 'n bewegende gemiddelde het baie meer om te sê: In Forex bewegende gemiddelde is gebruik om te bepaal: 1. Prys rigting - op, af of sywaarts. 2. Prys plek - handel vooroordeel: bo Moving gemiddelde - te koop, onder Moving gemiddelde - verkoop. 3. Prys momentum - die hoek van die bewegende gemiddelde: stygende hoek - momentum hou, val hoek - momentum pouses of stop. 4. Prys ondersteuning / weerstand vlakke. Tipes Bewegende Gemiddeldes SMA - Eenvoudige bewegende gemiddelde - toon die gemiddelde prys vir 'n gegewe tydperk. EMO - Eksponensiële bewegende gemiddeldes - gee voorrang aan mees onlangse data, reageer dus veranderinge vinniger prys as Eenvoudige bewegende gemiddelde. WBG - Geweegde bewegende gemiddelde - plaas klem op mees onlangse data 'n minder - op ouer data. Mees algemene instellings vir Bewegende Gemiddeldes in Forex 200 EMO en 200 SMA 100 SMA 50 SMA 34 SMA 20 EMO en 20 SMA 10 EMO en 10 SMA Probeer en toets en kies dan jou gunsteling stel Moving gemiddeldes. Bewegende gemiddelde Video Voorstelling Ander weergawes van bewegende gemiddeldes Naas die tradisionele EMO, SMA en WBG aanwysers, is daar verskeie ander soorte MA beskikbaar vir Forex-handelaars: Kopiereg kopieer Forex-aanwysers Displaced bewegende gemiddelde (DMA) is jou gereelde bewegende gemiddelde met enigste verskil dat sy is verskuif in die tyd (óf agtertoe of vorentoe). Om DMA maak ons ​​voeg die Shift waarde: 'n negatiewe waarde sal 'n verskuiwing beteken agtertoe - sodat jou bewegende gemiddelde agter die prys N aantal intervalle sal bly. Sulke Displaced bewegende gemiddelde is in staat om die prys in 'n tendens beter bevat. 'N positiewe waarde sal 'n verskuiwing na vore laat - soos Displaced Moving gemiddelde word 'n leidende aanwyser, wat tot 'n mate help om te verwag volgende beweeg. Ek gebruik 5ema, 10ema en 20ema. en wanneer die 5ema kruis bo beide 10and20ema. Ek betree Lang en andersom. asseblief vir my sê is dit ok. cos is nuut in forex. Awoooooooooooo Sy beslis Ok. Dit is 'n bekende tegniek in die handel. kan iemand vir my sê wat is die beste bewys bewegende gemiddelde op grond van jou ervaring hang af wat jy wil hê uit dit. Vinniger tendense - 20 SMA, mid tendense - 50 SMA, langer tendense - 100 of 200 SMA. As jy wil hê dat die Moving gemiddelde gebruik nie net vir die vind van tendense, maar om werklik te gee jou vinnige koop / verkoop seine, dan sal jy 'n kleiner MA nodig - 10 EMO is een dis die mees gebruik. Hi, im jeffryloo jou verduideliking is baie maklik om te understand. I gee jou 5 begin. Soos jy Ek gebruik die 50100, amp 200 MA maar maak die 100 eksponensiële. Die 50 bied 'n groot tendens inligting en al drie uitstekende dinamiese ondersteuning / weerstand. Ek weet dit mag gek klink, maar vir my die beste korttermyn gemiddelde is 'n kanaal gemaak van die 8 stryk MA hoog en die 8 Reëlmatige MA laag. Dit bied 'n uitstekende tendens rigting en help waarskuwing wat jy na beweging sywaarts en help in die bepaling van tempo. Dit bied ook uitstekende dinamiese ondersteuning / weerstand. Dit is duidelik dat dit nie staatmaak op 'n kruis nie, maar meer op prys aksie met betrekking tot die kanaal wat baie kragtige wanneer dit gekombineer met 'n paar aanwysers soos RSI amp ATR. Ek maak hulle elkeen 'n ander kleur net om te maak dit maklik om die hoë en lae van die kanaal te sien. Dankie vir die verskaffing van aanwysers en verduidelikings moeilik om te nêrens anders vind. U het my gehelp meer as wat jy kan dink. Kan die bestuur vertel m of enigiemand met vaardig forex ervaring. wat is die beste óf EMO of SMA en nommers vir die handel die 15 minuut kaarte met 'n lang termyn 08/06 uur tot 12 uur vooruitsigte mark rigting. Plus as jy ook beter kan verduidelik asseblief presies wat bedoel word met die bogenoemde hierin blog post met betrekking tot die screen shot van die verplasing bewegende gemiddelde (DMS) instellings bedoel. naamlik: Is dit nommer die tydraamwerk grafiek relevante een ambagte op en diegene onderskeie aantal kers stokke 3 vorentoe in die mark (voor die huidige markprys) en of onderskeie negatiewe -3 aantal kers stokke agter die huidige markprys. Baie dankie John as jy 'n gladder MA wil - SMA sou beter wees. As jy nodig het is vinniger MA - neem EMO. Glad uit help om 'n paar skynare vermy, maar dit vertraag ook toegang en uitgang-seine. Terwyl met EMO jy sal baie vinniger reaksie op prysveranderings, maar dit sal op 'n verhoogde tempo van valse seine kom. Dis die verskil. Hang alles af van kinders handel stelsel, waar beide EMO en SMA effektief vir die handel op 15 min TF gebruik kan word. -10 Shift vir die bewegende gemiddelde eenvoudig verskuif die aanwyser X aantal bars op die grafiek vir die huidige tyd: minus tien sou beteken dat die verskuiwing is 10 bars agter, plus 10 sou dit vorentoe skuif 10 bars. Dankie vir jou groot taak Hi. Ek het net 'n vinnige vraag. Is dit moontlik om 'n gegewe bewegende gemiddelde negatief verplaas en het nog steeds die lyn (MA) wys op die huidige kers eerder as agter die aantal verplaas kerse / waarde. Ek dont dink dit is moontlik op MT4, indien wel is daar 'n aparte aanduiding dat net hierdie Dankie kan doen en ek hoop dat my vraag is duidelik enoughForex Dashboard Trading System Aflaai Dit kan 'n uitstekende paneelbord wees. A persepsie om voorsiening te maak kan wees om gefrustreerd verband met mekaar stelle, byvoorbeeld GU is gewoonlik in plek is, kan jy dit vind, aangesien g is gewoonlik in plek en Amerikaanse Dollar is gewoonlik af, tot die volgende, toets EURUSD byvoorbeeld bepaal, moet dit wees Verder in die plek in daardie geval Oughout is gewoonlik af bevat 'n beter liggaam vet, in daardie geval toets USDCHF vir 'n minuut hek moet dit in dié geval sal besef dat sal Amerikaanse Dollar word gewoonlik in plek (meer bevestigings kan bygevoeg ) eerder as die toepassing van daardie stelle binne beheer sleutels, waarom don8217t jy 'n bykomende lyn soos die primêre voor daardie beheer sleutels Klik hier om 'n nuwe handelsmerk Tool en Strategie gratis aflaai dat paneelbord het blaaskans met betrekking tot 'n bykomende lyn saam met mcginleydynamic2.mq4 As 'n toevoeging, aangesien die oorspronklike formule gebruik ema vir die berekening van dinamiese waardes, hierdie weergawe kan jy gebruik maak van die 4 gebou in gemiddeldes as metode in plaas van in staat is om net ema gebruik. Die vinnigste is wanneer dit gebruik LWMA (wat natuurlik), maar die ander het hul goeie punte ook. Hier is al 4 tipes (soos jy kan sien verskil kan beduidende (AllAverages 2.5 met Statistiek AllAverages 2.5 aangepas word om 'n paar statistiese data toon wees -. Gemiddelde afstand van AllAveragePeriods tussen AllAverage lyn en prys, maksimum afstand en huidige Dit kennisgewings wanneer huidige GT gemiddelde of Max. Dit moet uniek Magic nommer vir elke grafiek. Moontlike gebruike Dit kan sterk beweeg, tendens uitputting, inskrywings in teen-tendens strategieë te wys. Dit is 'n uitstekende aanduiding dat slegs nie gebruik word om 'n sterk beweeg, tendens uitputting toon, en plan teen-tendens strategieë, maar ook gemiddeld af of pyramiding posisies. Is daar enige MTF multi-geldeenheid paneelbord met dieselfde logika waardeer as iemand skakel kan verskaf. Sluit by ons aan te laai Meta Trader 5 Kopiereg 2000-2016, MQL5 Ltd


No comments:

Post a Comment