Monday 2 October 2017

Flytte Gjennomsnittet Eget Vindu Mt4


MetaTrader 4 - Indicators. Multi Moving Average - indikator for MetaTrader 4.Multi Moving Average - er en indikator som viser informasjonen om 4 Moving Averages i et eget vindu. Du kan endre inngangsparametrene i vinduet Indikatoregenskaper for noen av de bevegelige gjennomsnitt. Averaging Period period. Averaging Method mamethod. Pris typen brukes til beregning appliedprice. and mange alternativer for tekstetiketter. Det er opprettet for å laste pris diagrammet spesielt av Moving Averages, men lagre den nyttige informasjonen.1 Det viser nåværende tilstand av de bevegelige gjennomsnittene - stige eller falle ved hjelp av de forskjellige farger for bokser arrow.2 Det viser strømningsstatusen til de bevegelige gjennomsnittene i forhold til prisen eller Flytende gjennomsnitt med periode 1 - er det over eller under ved hjelp av de forskjellige farger for tekst etiketter. Så, å konfigurere Moving Averages perioder, er det mulig å forstå markedsutviklingen uten å bruke glidende gjennomsnitt på prisdiagrammet. Hvis du har spørsmål for å forbedre i Hvis du har noen spørsmål til forfatteren, forslagene eller kommentarene, er det bedre å legge dem inn. Hvis du har funnet denne koden nyttig for handels - eller utdanningsformål, ikke glem å takke forfatteren. Pls forklarer hvordan man leser denne indikatoren ex. Den blå versjonen betyr og den røde måten. Den nye versjonen av indikatoren er nå tilgjengelig Alex5757000 - Multi Moving Gjennomsnitt v2.Forum på handel, automatiserte handelssystemer og test trading strategier Presse gjennomgang newdigital, 2014 06 05 09 41 USDCHF Breakout hindret av 200-dagers Moving Gjennomsnitt tilpasset dailyfx-artikkelen USDCHF-pause har gått inn i 200 Day Moving-kjøpere kan gå inn på en bekreftet pause over 200-dagers 200-dagers enkeltflytende gjennomsnitt. 200-dagers enkeltflytende gjennomsnitt er en av de mest populære indikatorene i verden Når prisen går gjennom en 200 MA på et daglig diagram, kan det ofte ses som et emne av samtale på finansielle nyhetsstasjoner, nettsteder og aviser. Det er først og fremst oss ed for å gi handelsmenn og investorer en generell følelse av hvor sterk eller svak et valutapar er. Når en valutapar s pris faller under 200-dagers MA, er det et tegn på svakhet med potensial for ytterligere prisfall og når en valuta par s prisbrudd over 200 dag MA, er det et tegn på styrke med potensial for ytterligere prisøkninger Tabellen over viser den siste prishandlingen rundt 200 dagers MA Vi ser en stor oppgang i pris som går gjennom flere motstandsnivåer til det møtte denne kraftige MA-linjen Vi har hatt 6 sammenhengende dager hvor prisen midlertidig har brutt seg gjennom 200 dagers MA eller prisen har kommet innen 10 pips av linjen før vi trekker ned. Så dette nivået virker som sterk motstand Hvis prisen skulle forbli under MA, det kunne drive det lavere tilbake i parets priskanal. En breakout til oppsiden kunne imidlertid legge til enda en grunn til å kjøpe USDCHF. Inntil vi opplever en større prisbevegelse, er vi i en tilstand av limbo. how å få t han speil oversettelse for disse russiske språkindikatorene en vennligst hjelp. Sorg, men det er mulig Hvor meningsfylt er virkelig opp til personen som eksperimenterer Det glidende gjennomsnittet tilpasser seg indikatoren det er gjennomsnittlig Så det bryr seg ikke hva skalaen er på, det er bare gjennomsnitt Veldig enkelt. Jeg glemte å nevne at etter at du har trukket det bevegelige gjennomsnittet på RSI, er den eneste måten kombinasjonen vil fungere på, du må endre delen som gjelder gjelder i stedet for å lukke, endre den til tidligere indikatordata eller første indikatordata. Spørsmålet handler om hvorvidt det kan gå inn i det samme indikatorvinduet som RSI. Jeg har bare prøvd å dra den bevegelige gjennomsnittsindikatoren, det går inn i hovedkortvinduet selv når du drar det over indikatorvinduet. Må du trykke på en annen tast knappen før du drar. Da du faktisk leser det jeg sa, lest det andre avsnittet igjen Også i mt4 vil dette KUN bare fungere med de innebygde indikatorene, ikke tilpassede indikatorer. circlesquares Har du faktisk lest w hatten sa jeg lest annet avsnitt igjen. Da du faktisk leser spørsmålet Du sa etter, spurte jeg før du dro. Oppretting av tilpassede indikatorer. Når du oppretter en handelsstrategi, møter en utvikler ofte behovet for å tegne grafisk i et sikkerhetsvindu en viss avhengighet beregnet av en bruker programmerer For dette formålet gir MQL4 muligheten til å skape tilpassede indikatorer. Custom Indicator er et program program kodet i MQL4 det er i utgangspunktet ment for grafisk visning av foreløpig beregnede dependences. Custom Indicator Structure. Necessity of Buffers. Hovedprinsippet Underliggende tilpassede indikatorer overfører verdier av indikatorarrayer til en klientterminal for å tegne indikatorlinjer via utvekslingsbuffere. Buffer er et minnesområde som inneholder numeriske verdier for en indikator array. MQL4 standard innebærer muligheten for å tegne opptil åtte indikatorlinjer ved hjelp av en tilpasset indikator En indikatorgruppe og en buffer bringes i korrespondanse med hver indikator linje Hver buffer har sin egen indeks Indeksen til den første bufferen er 0, den andre 1 - og så videre, den siste har indeksen 7 Fig 115 viser hvordan informasjonen fra en tilpasset indikator sendes via buffere til en klientterminal for tegning av indikatorlinjer. Fig 115 Passerende verdier av indikatoren arrayser via en buffer til en klientterminal. Den generelle rekkefølgen for byggindikatorlinjene er følgende.1 Beregninger utføres i en tilpasset indikator som følge av at numeriske verdier er tilordnet indikatoren array elementer.2 Verdier av indikator array elementer sendes til en klient terminal via buffere.3 På basis av verdi arrays mottatt fra buffere viser en klient terminal indikator linjer av en Custom Indicator. Let s analysere en enkel tilpasset indikator som viser to linjer - En linje er bygget basert på maksimale barpriser, den andre bruker minimalpriser. Eksempel på en enkel tilpasset indikator. Vi analyserer i detaljer indikatordelene I et programprogram skrevet i MQL4 deg kan angi oppsettparametere som gir riktig programservicering av en klientterminal I dette eksemplet viser hovedprogrammets del Programstruktur inneholder flere linjer med direktiver eiendom. Det første direktivet indikerer i hvilket vindu klientterminalen skal tegne indikatorlinjene. I MQL4 er det er to varianter av tegneindikatorlinjer i hovedvinduet og i et eget vindu Hovedvinduet er vinduet som inneholder et sikkerhetsdiagram I dette eksempelet indikerer parameterindikatorlistevindu i egenskapskatalogen at en klientterminal skal tegne indikatorlinjer i hovedvinduet. Neste linjen viser antall buffere som brukes i indikatoren. I det analyserte eksemplet trekkes to indikatorlinjer. En buffer er tilordnet hver buffer, så totalt antall buffere er to. De neste linjene beskriver farger på indikatorlinjene. Parametere indicatorcolor1 og indicatorcolor2 definerer fargeinnstilling for tilsvarende buffere - i dette tilfellet for buffere med indekser 0 B lue og 1 Rød Merk at tallene i parameternavn indicatorcolor1 og indicatorcolor2 ikke er bufferindekser. Disse tallene er deler av konstante navn som er angitt i samsvar med buffere. For hver konstant farge kan settes etter en brukers skjønn. I neste linjeindikator arrays er deklarert. Indikatoren er ment for å tegne to indikatorlinjer, så vi må deklarere to globale endimensjonalarrayer, en for hver linje. Navnene på indikatorarrayer er opp til brukeren I dette tilfellet benyttes arkeavnene Buf0 og Buf1 i Andre tilfeller Andre navn kan brukes, for eksempel Line1, Alfa, Integral osv. Det er nødvendig å deklarere arrayer på globalt nivå, fordi arrayelementverdier må opprettholdes mellom anrop av spesiell funksjonstart. Den beskrevne egendefinerte indikatoren er bygget på grunnlaget for to spesielle funksjoner - init og start Funksjonen init inneholder delen av koden som brukes på programmet bare når du ser Spesialfunksjoner. En svært viktig handling utføres i linjen. Bruk fu nction SetIndexBuffer en nødvendig buffer i dette tilfellet med indeksen 0 settes i korrespondanse med en matrise i dette tilfellet Buf0 Det betyr å konstruere den første indikatorlinjen en klientterminal vil akseptere data inneholdt i array Buf0 ved hjelp av nullbufferen for det. Ytterligere Linjestilen er definert. For nullbufferen 0 skal en klientterminal bruke følgende tegningstype enkel linje DRAWLINE, solid line STYLESOLID, linjebredde 2. De neste to linjene inneholder innstillinger for den andre linjen. I henhold til koden for Den spesielle funksjonen init begge indikator linjer vil bli trukket i hoved sikkerhetsvinduet Den første vil være en solid blå linje med bredden 2, den andre er en rød prikket linje STYLEDOT av en vanlig bredde Indikator linjer kan tegnes av andre stiler så vel se stiler av indikator linjer. beregning verdier av indikator arrays elementer være oppmerksomme. verdier av indikator arrays elementer er beregnet i den spesielle funksjonen start for å forstå riktig fortsettelse ents of start code oppmerksom på rekkefølgen på indekseringsfeltene Arrays avsnitt beskriver i detalj metoden for indeksering av arrays-timeseries Ifølge denne metoden begynner barindeksering fra null nulllinjen er en nåværende, uformet bar. Den nærmeste bar s-indeksen er 1 Den neste s er 2 og så videre. Hvis nye stenger vises i et sikkerhetsvindu, endres indekser av allerede dannede historikkstenger. Den nye nåværende, nettopp dannede, høyre kant får nullindeksen, den til venstre for ham som har bare fullt formet blir indeksen 1 og verdier av indekser av alle historikkstenger økes også med en. Den beskrevne metoden for indekseringsfelt er den eneste som er mulig for hele on-line trading system MetaTrader, og det tas hensyn til når tegning linjer ved hjelp av både tekniske og tilpassede indikatorer. Det ble tidligere sagt at indikatorlinjer er konstruert på grunnlag av numerisk informasjon som finnes i indikatorarrayer. En indikatorgruppe inneholder informasjon om punkter koordinater hvor en indikatorlinjen er tegnet Og y-koordinaten for hver prikk er verdien av et indikator-arrayelement og X-koordinat er verdien av en indikator-arrayelementindeks. I det analyserte eksemplet tegnes den første indikatorlinjen ved bruk av maksimale verdier av stenger Fig. 116 viser Denne indikatorlinjen med blå farge i et sikkerhetsvindu er bygget på grunnlag av indikatoroppstillingen Buf0.Fig 116 Korrespondanse av koordinater for en indikatorlinje til verdier av en indikator array. Index-verdi for en indikator array er ute av en klient terminal i korrespondanse med en barindeks - disse indeksverdiene er like Det må også tas i betraktning at prosessen med å konstruere indikatorlinjer fortsetter i sanntidsmodus under forhold når i et sikkerhetsvindu nye stenger vises fra tid til annen Og all historie Barene skiftes til venstre For å få indikatorlinjen trukket riktig hver linjepunkt over baren, må den også forskyves sammen med stolper. Det er derfor behov for teknisk behov for å omregistrere en indikator array. The grunnleggende forskjellen i en indikator array fra et vanlig array er følgende. I øyeblikket når en ny linje er opprettet, endres indeksverdier for indikator array elementer automatisk av klientterminalen, nemlig - verdien av hver indikator array indeks er økt med en og indikator array størrelsen økes med ett element med en null-indeks. For eksempel har nullstangen i Fig 116 tidsramme H1 åpningstiden 6 00 Ved 7 00 vil en ny linje vises i sikkerhetsvinduet. Baren åpnet klokka 6 00 vil automatisk få indeksen 1 For å få indikatorlinjen trukket riktig på denne linjen, endrer klientterminalen indeksen for indikatorarrayelementet som svarer til linjen åpnet klokken 6 00. I tabellen i Fig. 116 er dette elementet skrevet i den første linjen Sammen med de indeksene av alle arrayelementene vil bli økt av klientterminalen med en. En indeksen av arrayelementet som svarer til linjen åpnet klokka 6 00, vil få verdien 1 før den var ek al til 0 Indikatorlisten vil bli større med ett element Indeksen til et nytt lagt element vil være lik 0, verdien av dette elementet vil være en ny verdi som reflekterer koordinaten til indikatorlinjen på nullstang Denne verdien beregnes i Spesialfunksjonen starter på hvert kryss. Beregninger i den spesielle funksjonstart skal gjennomføres slik at det ikke utføres ekstra handlinger før indikatoren er festet til et diagram, gjenspeiler det ikke indikatorlinjer fordi verdier av indikatorarrayer ikke er definert ennå s hvorfor ved første start av spesialfunksjonen må startindikator arrayverdier beregnes for alle stolper som indikatorlinjen skal trekkes i det analyserte eksempelet er disse alle stolene som er til stede på et diagram, de første beregningene kan utføres ikke for alle tilgjengelige stenger, men for noen siste del av historien er det beskrevet i flere eksempler. Ar alle videre start av spesialfunksjonen start er det ikke nødvendig å beregne verdier av indikator array for alle stolper igjen Disse verdiene er allerede beregnet og er inneholdt i indikatorarrayen. Det er nødvendig å beregne nåverdien av indikatorlinjen bare på hvert nytt kryss i nullstangen. For implementeringen av den beskrevne teknologien er det en meget nyttig standard funksjon i MQL4 - IndicatorCounted. Function IndicatorCounted. Denne funksjonen returnerer antall barer som ikke har endret seg siden siste indikator-call. If indikatoren aldri har blitt koblet til et diagram, vil ved første startkjøring verdien av Countedbars være lik til null. Det betyr at indikatorarrayen ikke inneholder noe element med tidligere forhåndsdefinert verdi. Derfor må hele indikatorarrayen beregnes fra begynnelse til slutt. Indikatorarray er beregnet fra den eldste linjen til null-en Indeks av den eldste linjen , hvorfra beregninger må startes, beregnes på følgende måte. Opptatt når indikatoren er festet, er det 300 bar i et diagramvindu Dette er verdien av den forhåndsdefinerte variabelen Barer Som definert tidligere, er Countedbars lik 0. Derfor oppnår vi at jeg indekserer den første uberørte baren den siste, hvorfra beregninger skal utføres, er lik 299. verdier av indikator array elementer beregnes i loop while. While jeg er innenfor rekkevidden fra den første ikke-nummererte bar 299 til den nåværende 0 inkludert, beregnes verdier av indikator array elementer for begge indikatorlinjer Merk, manglende verdier av indikator array elementer beregnes i løpet av en første start av den spesielle funksjonstart Under beregninger husker klientterminalen elementer, for hvilke verdier ble beregnet. Den siste iterasjonen i løpet av tiden utføres når jeg er lik 0, dvs. verdier av indikatorarrayer beregnes for nullstangen Når sløyfen er over, starter den spesielle funksjonen ferdig, og kontrollen overføres til klientterminalen. Klientterminalen vil i sin tur trekke alt i ti s faller to indikatorlinjer i samsvar med de beregnede verdiene for arrayelementene. Ved neste kryss start blir startet av klientterminalen igjen. Ytterligere handlinger vil avhenge av situasjonen vi vil fortsette å analysere eksemplet for 300 bar. Variant 1 Et nytt kryss kommer under dannelsen av den nåværende nullstangen den vanligste situasjonen. Fig 117 Den bearbeidede kryssen tilhører den nåværende baren. Fig 117 viser to flått mottatt av terminalen i øyeblikk av tid t 1 og t 2 Den analyserte situasjonen vil være den samme for begge kryssene La oss spore utførelsen av start som ble lansert for øyeblikket t 2 Under utførelsen av funksjonen startes følgende linje vil bli utført. IndikatorCounted returnerer verdien 299, det vil si siden siste startsamtalen 299 tidligere stenger ikke var endret Som et resultat vil indeksverdien være lik 0 300-299-1. Det betyr at i neste runde vil verdien av arrayelementer med nullindeksen bli beregnet. Med andre ord, den nye posisjonen til en indikator linjen på null-linjen vil bli beregnet Når syklusen er ferdig, vil start stoppe å utføre og vil overføre kontroll til klientterminalen. Variant 2 Et nytt kryss er det første krysset av en nullstang skjer fra tid til annen. tick er det første krysset av en ny null-bar. I dette tilfellet er det faktum at utseendet på en ny bar er viktig. Før kontrollen går over til spesiell funksjonstart, vil klientterminalen trekke igjen alle stolper som er tilstede i sikkerhetsvinduet og re-indeksere alle deklarerte indikatorarrayer angitt i samsvar med buffere Dessuten vil klientterminalen huske at det allerede er 301 barer, ikke 300 i et diagramvindu. Fig 118 inneholder situasjon når den siste kryssen i forrige felt for øyeblikket t 2 starter funksjonen ble vellykket startet og utført Det er derfor, selv om nå den første linjen med indeks 1 ferdig for øyeblikket t 2 ble beregnet av indikatoren, vil funksjon IndicatorCounted returnere verdien som var på forrige linje, dvs. 299. I neste linje indeksen jeg vil beregne, i dette tilfellet for det første krysset av en ny linje vil det være lik 1 301-299-1. Det betyr beregning av indikator array verdier i mens sløyfen på utseendet til en ny linje vil bli utført begge for den siste linjen og for den nye nulllinjen Litt tidligere under re-indeksering av indikator arrayer klient terminalen økte størrelser av disse arrays Verdiene av array elementer med nullindekser ble ikke definert før beregningene i løkken Under beregninger i løkken disse elementene får noen verdier Når beregningene i start er over, blir kontrollen returnert til klientterminalen. Etter dette vil klientterminalen trekke indikatorlinjer på nulllinjen basert på bare beregnede verdier av arrayelementer med nullindekser. Variant 3 Et nytt kryss er Første kryss av en ny nullfelt, men det siste, men ett kryss er ikke behandlet sjeldent tilfelle. Fig 119 Ikke alle flåttene fra den forrige linjen ble behandlet. Fig 119 viser situasjonen når start ble lansert på første kryss av en ny bar for øyeblikket t 5 Forrige gang denne funksjonen ble startet for øyeblikket t 2 Tick som kom til terminalen for øyeblikket t 3 rød pil ble ikke behandlet av indikatoren Dette skjedde fordi startkjøringen t 2 - t 4 er større enn intervallet mellom flått t 2 - t 3 Dette faktum vil bli detektert av klientterminalen under utførelsen av start lansert for øyeblikket t 5 Under beregninger i linjen. IndikatorCounted returnerer verdien 299 Denne verdien er sant - fra øyeblikket av Det siste indikatorsamtalen 299 barer ble ikke endret etter nå allerede 301 Derfor er den beregnede indeksen for den første venstre øverste linjen, hvorfra beregninger av arrayelementverdier skal startes, vil være lik 1 301-299-1.it betyr under mens utførelsen to iterasjoner vil bli utført Under den første blir verdiene for arrayelementer med indeksen i 1 beregnet, dvs. Buf0 1 og Buf1 1 Ikke, i øyeblikket beregnes start, er barer og indikatorarrayer allerede re-indeksert av klienten terminal fordi en ny bar startet mellom start av den spesielle funksjonstarten Derfor beregnes beregninger for elementene i arrayene med indeks 1 på grunnlag av array-timeseries maksimale og minimale verdier av en strekurs også med indeksen 1.During den andre iterasjonen av mensverdier for elementer med nullindekser, det vil si for nulllinjen, beregnes på grunnlag av sist kjente verdier av array-timeseries. Bruken av den beskrevne teknologien for beregning av tilpassede indikatorer tillater for det første å garantere beregning av verdier av alle indikator array elementer uavhengig av spesifikke karakter av tick historie, og for det andre å utføre beregninger bare for uncounted barer, dvs. bruk økonomisk beregne ressurser. Ikke en bar anses å være uncounted hvis beregning av element verdier av en indikator arrays på minst for et siste kryss av linjen blir ikke utført. Ved å starte den egendefinerte indikatoren i et diagramvindu vil du se to linjer - en tykk blå linje som er bygget på maksimaltall og en prikket rød linje bygget på sine minimum. Fig. 120.Fig 120 To indikatorlinjer i et sikkerhetsvindu, bygget av indikatoren. Det skal bemerkes at man kan bygge en tilpasset indikator, hvis indikatorlinjer vil falle sammen med linjene en analog teknisk indikator Det kan lett gjøres hvis det brukes som formler i den tilpassede indikatoren, brukes de samme formlene som i den tekniske indikatoren. For å illustrere dette lar vi forbedre programkoden analysert i det forrige eksempelet. La indikatoren trekke linjer på gjennomsnittlige verdier av maksimum og minimum av flere siste stenger Det er enkelt å gjennomføre nødvendige beregninger vi trenger bare å finne gjennomsnittsverdier av array-timeseries-elementer. For eksempel verdien av en indikatorgruppe med indeksen 3 dvs. indikatorlinjekoordinat for den tredje linjen på basis av de fem siste maksimumene beregnes på følgende måte. Buf0 3 Høy 3 Høy 4 Høy 5 Høy 6 Høy 7 5.Analoge beregninger kan utføres for en indikator linjer bygget på minimum ums. Eksempel på en enkel tilpasset indikator Indikatorlinjer er bygd på gjennomsnittlige minimale og maksimale verdier av N-barer. I dette eksemplet finnes det en ekstern variabel AverBars Ved hjelp av denne variabelen kan en bruker angi antall barer som en gjennomsnittlig verdi beregnes for I begynnelsen er denne verdien brukt til beregning av en gjennomsnittlig verdi I løkken for summen av maksimale og minimale verdier beregnes for antall barer som svarer til verdien av variabelen AverBars I de neste to programlinjens verdier av indikator array elementer beregnes for indikatorlinjer som svarer til minimale og maksimale verdier. Den gjennomsnittlige metoden som brukes her, brukes også for beregninger i den tekniske indikatoren Moving Average Hvis vi legger til den analyserte tilpassede indikatoren og den tekniske indikatoren Moving Average, vil vi se tre indikatorlinjer. Hvis Samme periode for gjennomsnitt er satt opp for begge indikatorene. Flytte gjennomsnittlig linje vil falle sammen med en av de tilpassede indikatorlinjene for dette Formålsparametrene beskrevet i Fig. 121 må spesifiseres i de tekniske indikatorinnstillingene. Fig. 121 Sammenfallende linjer med en teknisk indikator og en tilpasset indikator rød linje. Med en teknisk indikator kan en bruker konstruere refleksjonen av eventuelle regelmessigheter som er nødvendige i praktisk arbeid. Indikator Options. Drawing Indicator Lines i Separate Windows. MQL4 tilbyr en stor tjeneste for å bygge tilpassede indikatorer som gjør bruk av dem veldig praktisk Spesielt kan indikatorlinjer trekkes i et eget vindu Dette er praktisk når absoluttverdier for indikatorlinjens amplitude er vesentlig mindre eller større enn sikkerhetspriser. For eksempel, hvis vi er interessert i forskjellen mellom gjennomsnittsverdiene for bar maksimum og minimum i et bestemt historisk intervall, vil denne verdien være omtrentlig fra 0 til 50 poeng, for eksempel for M15 Det er ikke vanskelig å bygge en indikatorlinje, men i et sikkerhetsvindu vil denne linjen bli tegnet i t e-området 0 - 50 poeng av en sikkerhetspris, det vil si vesentlig lavere enn kartområdet som er reflektert på skjermen. Det er svært ubeleilig. Å tegne indikatorlinjer i et eget vindu som ligger nederst i et sikkerhetsvindu, i direktivegenskapen ved programbegynnelsen må parameterindikatorparti-vinduet angis. I det øyeblikket en slik indikator er festet til et sikkerhetsvindu, oppretter klientterminalen et eget vindu under et diagram, der indikatorlinjer som beregnes i indikatoren vil bli tegnet, avhengig av fargeinnstillinger og typer indikator linjer de vil bli trukket i denne eller den stilen. Avgrensningsberegningshistorie. I de fleste tilfeller inneholder indikatorlinjer bare nyttig informasjon bare i den nyeste historien. Den delen av indikatorlinjer som er bygd på gamle stenger, for eksempel kan 1 måned gammelt minutt tidsramme Nesten betraktes som nyttig for å gjøre handelsbeslutninger Dessuten, hvis det er mange barer i et diagramvindu, investeres tiden i beregning og tegning av i dicator linjer er urimelig store Dette kan være kritisk i program feilsøking, når et program er ofte kompilert og deretter startet Derfor er det nødvendig å utføre beregninger ikke for hele historien, men for den begrensede delen av den nyeste barhistorien. For dette formålet er en ekstern variabelhistorikk brukt i følgende program. Verdien av denne variabelen er tatt i betraktning ved beregning av indeksen for den første venstre øverste linjen, ut fra hvilken elementer av indikatorarrayer skal beregnes. Ytterligere beregninger i mensløkk vil bli utført for antall nyere historikkfelt ikke større enn Historikkverdien Merk, den analyserte metoden for å begrense en beregningshistorikk gjelder bare den delen av beregninger som utføres i den første starten av den spesielle funksjonstarten. Når nye linjer vises, vil nye deler av indikatorlinjene vil bli lagt til høyre, mens bildet i venstre del vil bli bevart. Således blir indikatorlinjelengden økt i løpet av wh ole indikator driftstid Felles verdi av History parameter anses som ca 5000 bar. Eksempel på en enkel tilpasset indikator Indikator linjer trekkes i et eget vindu. En tilsvarende beregning av en indikatorlinje utføres i den tekniske indikatoren AverageTrue Range Fig 122 viser en indikatorlinje konstruert av den tilpassede indikatoren i et eget vindu og en indikatorlinje konstruert av ATR i et annet vindu. I dette tilfellet er linjene helt identiske fordi gjennomsnittsperioden er den samme for begge indikatorene - 5 Hvis denne parameteren endres i noen av indikatorene, tilsvarende indikatorlinje vil også endres. Fig 122 tegner en tilpasset indikatorlinje i et eget vindu Identiske linjer for en teknisk indikator ATR og en tilpasset indikator. Det er også tydelig at tilpasset indikatorlinje er konstruert ikke for hele skjermbredden, men for 50 siste stenger som angitt i den eksterne variabelen Historikk Hvis en aktør trenger å bruke større historikkintervall, er verdien av den eksterne al variabel kan enkelt endres via det tilpassede indikatorinnstillingsvinduet. Fig 123 viser et sikkerhetsvindu hvor indikasjonslinjen er tegnet i en annen stil - som et histogram For å få et slikt resultat, ble en linje endret i programkoden - annen linje stilarter er indikert. Alle andre kodedeler er uendrede. Fig 123 Tegning tilpasset indikatorlinje i et eget vinduhistogram Lignende tegninger av en teknisk indikator ATR og en tilpasset indikator. Skiftende indikatorlinjer vertikalt og horisontalt. I noen tilfeller er det nødvendig å skifte en indikatorlinje Det kan lett gjøres ved MQL4 betyr at La oss analysere et eksempel, i hvilken posisjon indikatorlinjer i et sikkerhetsvindu beregnes i samsvar med verdier oppgitt av en bruker. Eksempel på en tilpasset indikator Skiftende indikatorlinjer horisontalt og vertikalt. For å justere linjer skift i et diagram, er det to eksterne variabler - LeftRight for horisontal skift av alle linjer og UpDown for å skifte to punkterte linjer verticall y. Algoritmen som brukes til å beregne verdier av tilsvarende arrayelementer, er basert på veldig enkle regler. For å skifte en linje horisontalt, tilordne den beregnede verdien til et arrayelement, hvis indeks er større av LeftRight for å skifte til høyre og mindre for skifter til høyre enn indeksen for en bar, for hvilken beregninger utføres. For å skifte en linje vertikalt, må UpDown Point legges for å skifte oppover eller forringes for å skifte nedover til hver verdi av en indikator-array som karakteriserer startlinjeposisjonen. Analyserte eksempelindekser beregnes i linjen. Her er jeg indeksen til en linje, for hvilken beregninger utføres, k er en indeks for et indikator-arrayelement. Rød indikatorlinje som vises av klientterminalen basert på indikatoroppstillingen Line0 blir flyttet til venstre med 5 barer i henhold til tilpassede innstillinger, se figur 124 fra startlinjen. I dette tilfellet er startlinjen et flytende gjennomsnitt med gjennomsnittlig gjennomsnittlig lik 5 formelen av MA beregning er High i Low i 2. I dette eksemplet er posisjonen til den røde linjen grunnlaget for beregning av indikator array verdier for to andre linjer, dvs. deres posisjon på diagrammet Stiplede linjer beregnes på denne måten. Bruk av indeks k for elementer av alle indikatorarrayer gjør det mulig å utføre beregninger for elementene i arrays Line1, Line2 på samme linje som brukes til å beregne verdier for den tilsvarende grunnleggende array Line0 Som følge derav blir stiplede linjer forskjøvet i forhold til den røde linjen med verdien spesifisert i Indikatorinnstillingsvinduet, i dette tilfellet med 30 punkter Fig 124.Fig 124 Rød indikatorlinje forskyves til venstre med 5 barer. Dotted indikatorlinjer forskyves i forhold til den røde linjen med 30 punkter. Avgrensninger av tilpassede indikatorer. Det er noen begrensninger i MQL4 som bør tas i betraktning ved programmering av tilpassede indikatorer. Det finnes en gruppe funksjoner som kun kan brukes i tilpassede indikatorer og kan ikke brukes i Expert Advisors og skript IndicatorBuff ers, IndicatorCounted, IndicatorDigits, IndicatorShortName, SetIndexArrow, SetIndexBuffer, SetIndexDrawBegin, SetIndexEmptyValue, SetIndexLabel, SetIndexShift, SetIndexStyle, SetLevelStyle, SetLevelValue. På den annen side kan handelsfunksjoner ikke brukes i indikatorer OrderSend, OrderClose, OrderCloseBy, OrderDelete og OrderModify Dette er fordi indikatorer opererer i grensesnittstrømmen som skiller seg fra ekspertrådgivere og skript som opererer i egen strøm. Dette er også grunnen til at algoritmer basert på looping ikke kan brukes i tilpassede indikatorer. Start av en tilpasset indikator som inneholder en endeløs sløyfe i forhold til faktisk utførelsestid kan resulterer i klientterminal som henger sammen med ytterligere nødvendighet for å starte en datamaskin på nytt. De generelle komparative egenskapene til ekspertrådgivere, skript og indikatorer finnes i tabell 2.

No comments:

Post a Comment