Tuesday 14 November 2017

Icustom Liikkuvan Keskiarvon


Olen uusi koodaaminen ja olen oppinut paljon, mutta olen löytänyt jotain, jota en voi päästä päinvastoin, kun yritän kutsua testin tulosta jollakin indikaattoristani, jotta voin lisää se omiin testeihinsä ennen kaupankäynnin aloittamista ea on yksinkertainen liukuva keskiarvoinen ristikko. Indikaattori on trendikäs tai vaihteleva indikaattori, jonka on liittänyt indikaattorikoodi. Haluaisin auttaa ja selittää mahdollisuuksien mukaan yksinkertaisesti, jotta voin saada pääni miten se olisi asetettava indikaattorin sisällä, jotta ea tunnistaa sen Kun tunnistin on lajiteltu, siirryin ea: een. Indikaattorissa on kaksi testia, joissa haluan lisätä iCustom-toiminnon Tässä vaiheessa I haluan vain lisätä sen yhteen testiin, se ei ole väliä, kuten yritän ymmärtää sitä Jokainen, joka haluaa auttaa ja selittää sitä, olisi yksinkertaisesti erittäin hyödyllinen - en näytä löytävän mitään verkosta, joka selittää sen niin ymmärtää se Testin tulos voi yksinkertaisesti olla totta. Kiitos etukäteen aika Mike. iCustom avulla voit käyttää indikaattoreita puskuroi se on niin yksinkertaista. Esimerkiksi kirjoitat EA, joka on strategia perustuu 2 Indicators, voit rakentaa indikaattorin koodi EA, joka on mahdollista, mutta iss hieman mukana, koska indikaattoripuskureita ei toimi EA: sssa, sinun on käytettävä matriiseja ja käsitellä niitä sarjamoodina. Vaihtoehtona on saada indikaattorit käynnissä ja päästä puskureihin EA: sta. Tämä on se, mitä iCustom helpottaa. indikaattoreihin EA yksinkertaisesti pääsee tarvitsemaansa puskurivyöhykkeeseen tarvitsemiin siirtymäarvoihin. iCustom-puhelussa se voi myös välittää kaikki ulkoiset muuttujat, jotka tarvitaan indikaattorin asettamiseen soveltuvin osin. iCustom avulla voit käyttää indikaattoreita puskuroimalla sen niin yksinkertaisella . Esimerkiksi kirjoitat EA: n, joka perustuu 2 indikaattoriin perustuvaan strategiaan, voit rakentaa indikaattorikoodin EA: han, mikä on mahdollista, mutta se on vähän mukana, koska indikaattoripuskureita ei toimi EA: n e käyttää matriiseja ja käsitellä niitä sarjamuotoisena vaihtoehtona on, että indikaattorit toimivat ja pääsee puskureistaan ​​EA: sta. Tämä on se, mitä iCustom helpottaa. Indikaattoreille ei tarvita muutoksia, vaan EA: n tarvitsee vain käyttää puskuria, arvoja se tarvitsee iCustom puhelun se voi myös välittää kaikki ulkoiset muuttujat, joita tarvitaan käyttöönotto Indikaattori soveltuvin osin. Thanks että RaptorUK, mutta se on todellinen koodaus, että minulla on vaikeuksia olen hyvin uusi MQL4 ja ovat vain muutamia kuukausia, ja olen yhä oppimassa - joten tarvitsen yksinkertaisen selityksen koodauksesta ja siitä, miten se voidaan asettaa indikaattorissa. Muokattujen indikaattorien luominen. Kaupankäyntistrategian luomisen aikana kehittäjä joutuu usein välttämättömyyteen piirtää graafisesti tietoturva-ikkunassa tietty riippuvuus, jonka käyttäjäohjelmoija laski. Tätä tarkoitusta varten MQL4 tarjoaa mahdollisuuden luoda mukautettuja indikaattoreita. Custom Indicator on sovellusohjelma koodattu M QL4 on periaatteessa tarkoitettu alustavan laskettujen riippuvuuksien graafiseen esitykseen. Sisäinen indikaattorirakenne. Buffereiden välttämättömyys. Omien indikaattoreiden taustalla oleva pääperiaate on indikaattoriryhmien ohitusarvot asiakaspäätteelle piirtämisen indikaattoriverkkojen kautta vaihtopuskurien kautta. Buffer on muistialue joka sisältää indikaattoriryhmän numeeriset arvot. MQL4-standardi mahdollistaa jopa kahdeksan indikaattoriviivan muodostamisen käyttäen yhtä räätälöityä indikaattoria. Yksi indikaattoriryhmä ja yksi puskuria tuodaan vastaamaan kunkin indikaattorilinjan kanssa. Jokaisella puskuriin on oma indeksi. Ensimmäisen puskuri on 0, toisesta - 1 ja niin edelleen, viimeisellä on indeksi 7 Kuvio 115 esittää, miten tietomallin osoittimen tiedot ohjataan puskureiden kautta asiakaspäätteelle piirtoilmaisimien linjoille. Kuva 115 Indikaattorin arvot taulukot puskuriin asiakkaan päätelaitteelle. Rakennuksen yleisindikaattorin linjat ovat seuraavat.1 Laskutoimitukset suoritetaan cu: ssa stom-indikaattori, jonka seurauksena numeeriset arvot osoitetaan indikaattoriryhmäelementeille.2 Indikaattori array - elementtien arvot lähetetään asiakaspäätteelle puskureiden kautta.3 Puskureista vastaanotettujen arvomallien pohjalta asiakaspääte näyttää mukautetun indikaattorin indikaattoriverkon komponentit. Anna s analysoida yksinkertainen muokatun indikaattorin, joka näyttää kaksi riviä - yksi rivi on rakennettu maksimibar hintojen perusteella, toinen käyttää minimaalisia hintoja. Esimerkki yksinkertaisesta yksilöllisestä indikaattorista. Lasketaan yksityiskohtaisesti indikaattoriosat. MQL4: ssä voit ilmoittaa asetukset, jotka tarjoavat oikean ohjelman huollon asiakaspäätteessä. Tässä esimerkissä pääohjelmalohko, ks. Ohjelmarakenne sisältää useita rivejä, joilla on ohjeet omaisuutta. Ensimmäinen direktiivi ilmaisee, mihin ikkunaan asiakaspääte pitäisi piirtää indikaattorilinjoja. MQL4: ssä on kaksi piirustuksen indikaattorilinjan vaihtoehtoja pääturvallisuusikkunassa ja erillisessä ikkunassa Pääikkuna on ikkuna-ikkuna turva-kaavion säilyttäminen Tässä esimerkissä kiinteistöhakemistossa oleva parametrin indikaattorikartanwindow osoittaa, että asiakaspäätteen pitäisi piirtää indikaattorilinjoja pääikkunassa. Seuraava rivi näyttää indikaattorissa käytettävien puskureiden lukumäärän. Analysoidussa esimerkissä vedetään kaksi indikaattorilinjaa. Yksi puskuri on määritetty jokaiselle puskurille, joten puskurien kokonaismäärä on kaksi. Seuraavissa viivoissa kuvataan indikaattoriviivojen värit. Parametrit indikaattoriväri1 ja merkkivalo 2 määrittävät väriasetukset vastaaville puskurille - tässä tapauksessa puskureille, joilla on indeksit 0 sininen ja 1 punainen Huomaa, että parametrien nimien merkkivalolla 1 ja merkkivalolla 2 olevat luvut eivät ole puskurin indeksejä. Nämä luvut ovat osia vakiomalleista, jotka on asetettu puskureiden mukaisesti. Jokaiselle vakiovärille voidaan asettaa käyttäjän harkinta. Seuraavassa rivin merkkivalot ilmoitetaan. on tarkoitettu kahden indikaattorilinjan piirtämiseen, joten meidän on julistettava kaksi maailmanlaajuista yksiulotteista ryhmää, yksi jokaiselle riville Nimet Tässä tapauksessa käytetään taulukon nimiä Buf0 ja Buf1, muissa tapauksissa voidaan käyttää myös muita nimiä, esimerkiksi Line1, Alfa, Integral jne. Tilat on ilmoitettava maailmanlaajuisesti, koska array-elementit arvot on säilytettävä erikoistoiminnon aloittamien puheluiden välillä. Kuvattu mukautettu indikaattori perustuu kahteen erityistoimintoon: - init ja start-toiminto. Init-toiminto sisältää ohjelmassa käytettävän koodin osan vain kerran. Katso erikoistoiminnot. toiminto suoritetaan rivillä. Käyttämällä funktiota SetIndexBuffer tarvittava puskurin tässä tapauksessa indeksin 0 kanssa asetetaan vastaamaan matriisin tässä tapauksessa Buf0 Se tarkoittaa ensimmäisen indikaattorilinjan rakentamista varten, että asiakaspäätelaite hyväksyy taulukossa olevat tiedot Buf0 käyttää nollapuskuria sitä varten. Lisäksi linjatyyli on määritelty. Nollapuskurille 0 asiakkaan päätelaitteen pitäisi käyttää seuraavia piirustustyyliä yksinkertainen linja DRAWLINE, kiinteä viiva STYLESOLID, rivi w 2. Seuraavat kaksi riviä sisältävät toisen rivin asetukset. Tämän vuoksi erikoisfunktion koodin mukaan molemmat indikaattorivit piirretään pääturvaikkunaan. Ensimmäinen on kiinteä sininen viiva, jonka leveys on 2, toinen on punainen katkoviiva STYLEDOT tavallisella leveydellä Indikaattorilinjoja voidaan piirtää muilla tyylisuunnilla samoin kuin ks. Styling of Indicator Lines. Calculating Values ​​of Indicator Arrays - elementit Ole varovainen. Indikaattorilohkojen arvot lasketaan erikoistoiminnon alussa Jotta ymmärtäisit oikein aloituskoodin sisällön, kiinnitä huomiota indeksointipalkkien järjestykseen. Jaksot Järjestöt kuvaavat yksityiskohtaisesti taulukkojen ja aikakertojen indeksointitapaa. Tämän menetelmän mukaan palkin indeksointi alkaa nollasta. Nollapalkki on nykyinen vielä muotoilematon palkki. Lähin palkki s indeksi on 1 Seuraavaksi s on 2 ja niin edelleen. Kun uudet palkit näkyvät suojausikkunassa, jo muodostuneiden historiapalkkien indeksejä muutetaan. Uusi nykyinen, juuri muodostettu, oikeanpuoleisin palkki saa s nollaindeksi, sen joka on vasemmalla puolella, joka on juuri muodostunut, saa indeksin 1 ja kaikkien historiapalkkien indeksejä arvot kasvatetaan myös yhdellä. Kuvattu tapojen indeksointitapa on ainoa mahdollinen kokonaisuudelle - verkkokauppajärjestelmä MetaTrader, ja se otetaan huomioon piirustuksessa käyttäen sekä teknisiä että räätälöityjä indikaattoreita. Aiemmin sanottiin, että indikaattorilinjat on rakennettu indikaattorijärjestelmiin sisältyvien numeeristen tietojen perusteella. Indikaattoriryhmässä on tietoja pisteiden koordinaateista joka indikaattorin viiva piirretään ja kunkin pisteen Y-koordinaatti on indikaattoriryhmäelementin arvo ja X-koordinaatti on indikaattorilohkon elementtiindeksin arvo. Analysoidussa esimerkissä ensimmäinen indikaattoriviirretään käyttäen palkkien maksimiarvoja. Fig, 116 näyttää tämän turvatyynyikkunan sinisen värin tämän indikaattorilinjan, se on rakennettu indikaattoriryhmän Buf0.Fig 116 mukaisesti Indikaattorilinjan koordinaattien vastaavuus v indikaattoriryhmän indikaattoreiden arvo. Indikaattoriryhmän indeksin arvo on asiakkaan päätelaitteen vastaavan bar-indeksin kanssa - nämä indeksiarvot ovat yhtä suuria. On otettava myös huomioon, että indikaattoriviivojen rakentamisen prosessi jatkuu reaaliajassa kun turvaikkunassa uusia palkkeja ilmestyy ajoittain ja kaikki historiapalkit siirretään vasemmalle Jos indikaattorin viiva on oikein piirretty viivanpalkin yläpuolelle, sitä on myös siirrettävä yhdessä palkkien kanssa. Joten tarvitaan teknisiä tarpeita indikaattoriryhmän uudelleenindeksi. Merkittävän eron indikaattoriryhmän erotus tavallisesta ryhmästä on seuraava. Tällä hetkellä, kun uusi palkki luodaan, indikaattori-array-elementtien indeksiluvut muuttuvat automaattisesti asiakkaan päätelaitteella eli nimellisarvolla kunkin indikaattoriryhmän indeksiä kasvatetaan yhdellä ja indikaattoriryhmäkokoa kasvatetaan yhdellä elementillä, jolla on nollaindeksi. Esimerkiksi kuvion 116 aikakuvassa H1 olevan nollaspalkin avautumisaika on 6 00 7 00: ssä uusi palkki ilmestyy turvaikkunaan. Bar, joka avataan 6 00: ssä, saa indeksin automaattisesti. 1 Jos osoitinviiva on piirretty oikein tällä palkilla, asiakaspäätelaite muuttaa indikaattorilohkoryhmän indeksin palkki avattu 6 00: ssä Kuvion 116 taulukossa tämä elementti kirjoitetaan ensimmäisessä rivissä Yhdessä kaikkien taulukkoelementtien indekseistä kasvattaa asiakaspääte yhdellä A-sarakkeella, joka vastaa 6 00 saa arvon 1 ennen kuin se on yhtä kuin 0 Indikaattoriryhmä kasvaa yhdellä elementillä Uusi lisätty elementti indeksi on 0, tämän elementin arvo on uusi indikaattorin koordinaatista vastaava arvo line on nollapalkki Tämä arvo lasketaan erikoistoiminnon alussa jokaisen rastiin. Erikoistoiminnon laskutoimitukset on suoritettava niin, että ylimääräisiä toimia ei suoritettu Ennen kuin osoitin liitetään kaavioon, se Siksi indikaattoriryhmien arvot eivät ole vielä määriteltyjä. Siksi erityistoiminnon ensimmäisen aloitusvaiheen aloitusindikaattoriryhmän arvot on laskettava kaikille palkkeille, joihin indikaattorilinjan pitäisi olla. Analysoidussa esimerkissä nämä ovat kaikki kaaviossa olevia palkkeja, mutta alustavat laskelmat eivät ole kaikkien käytettävissä olevien palkkien kohdalla, mutta joidenkin viimeisten historiallisten osien kohdalla kuvataan lisäesimerkkeinä Ar kaikki erikoistoiminnon alkuerät, ei tarvitse laskea indikaattorin arvoja array kaikkiin palkkeihin uudelleen Nämä arvot on jo laskettu ja ne sisältyvät indikaattoriryhmään. Indikaattorilinjan nykyarvoa on laskettava vain jokaisen uuden nollakaaren rullan kohdalla. Kuvatun tekniikan toteutuksessa on hyvin hyödyllinen vakiotoiminto MQL4: ssä - IndicatorCounted. Function IndicatorCounted. Tämä toiminto palauttaa viivojen määrän, jotka eivät ole muuttuneet viimeisen osoittimen. Jos indikaattoria ei ole koskaan liitetty kaavioon, ensimmäisen laskutoimituksen arvo Countedbars on nolla. Tämä tarkoittaa sitä, että indikaattoriryhmä ei sisällä elementtiä, jolla on aiemmin määritetty arvo, joten koko indikaattoriryhmä on lasketaan alusta loppuun Indikaattoriryhmä lasketaan vanhimmasta palkista nollapisteeksi Vanhin palkki, josta alkaen laskelmat on aloitettava, lasketaan seuraavalla tavalla. Laskeeko indikaattorin kiinnittämisen hetkellä 300 kaavion ikkunan palkit Tämä on ennalta määritetyn muuttujan arvo Bars Kuten aikaisemmin määriteltiin, Countedbars on yhtä kuin 0 Joten tuloksena saadaan ensimmäinen indeksoitu palkin i-indeksi, jonka viimeisin laskenta alkaa siitä, joka on yhtä kuin 299. Kaikki indikaattoriryhmäelementtien arvot lasketaan silmukassa. Vaikka i on alueella, joka on ensimmäisestä numeroimattomasta palkista 299 nykyiseen arvoon 0, indikaattoriryhmän arvot elementit lasketaan molemmille indikaattoriviivoille Huomaa, että indikaattoriryhmäelementtien puuttuvat arvot lasketaan ensimmäisen erityistoiminnon alun ensimmäisen käynnistyksen aikana Laskennassa asiakaspääte muistaa elementit, joiden arvot laskettiin Viimeinen iteraatio kun taas suoritetaan, kun i on 0, ts. indikaattoriryhmien arvot lasketaan nollaparille Kun silmukka on ohitettu, erikoistoiminto aloittaa sen suorittamisen ja ohjaus siirtyy asiakaspäätteelle. Asiakaspäätelaite vuorostaan ​​ottaa tällöin kaikki tässä tapauksessa kaksi indikaattoria rivejä taulukon elementtien laskettujen arvojen mukaisesti. Seuraavasta rasti alkaa käynnistää asiakaspääte uudelleen. Muut toimet riippuvat tilanteesta, jota jatkamme analysoimalla 300 barin esimerkkiä. Vaihtoehto 1 Uusi rasti tulee muodostumisen aikana nykyisestä nollakohdasta yleisin tilanne. Kuva 117 Käsitelty rasti kuuluu nykyiseen palkkiin. Kuva 117 esittää kaksi t hän päästää ajanhetkillä t 1 ja t 2 Analysoitu tilanne on sama kummankin tikatyypin osalta Selvittäkää hetkellä alkanut käynnistys t 2 Toiminnan suorittamisen aikana suoritetaan seuraava rivi. IndicatorCounted palauttaa arvon 299 eli viimeiseltä aloituskäynniltä 299 aikaisempia palkkeja ei ole muutettu. Tuloksena i indeksin arvo on 0 300-299-1. Se tarkoittaa seuraavalla silmukalla silmukan array-elementtien arvojen kanssa nollaindeksi lasketaan Toisin sanoen nollapalkin indikaattorilinjan uusi sijainti lasketaan Kun sykli on päättynyt, käynnistys lopettaa suorituksen ja siirtää ohjauksen asiakkaan päätteelle. Vaihtoehto 2 Uusi rasti on ensimmäinen ruutu nollapalkki sattuu aika ajoin. Fig 118 Prosessoidut rasti on ensimmäinen rasti uuden nollan palkissa. Tässä tapauksessa uuden pylvään ilmeneminen on tärkeää Ennen kuin ohjaus siirtyy erityistoiminnon alkuun, asiakas terminaali vetää jälleen kaikki palkit s, ja uudelleenindeksoi kaikki ilmoitetut indikaattorimatriisit, jotka on asetettu puskurin kanssa. Lisäksi asiakaspääte muistaa, että kaavion ikkunassa on jo 301 baaria, ei 300. Kuva 118 sisältää tilannetta, kun viimeisen edellinen palkki tällä hetkellä t 2 toiminnon aloitus käynnistyi ja toteutettiin. Siksi, vaikka nyt ensimmäinen indikaattorilla laskettu ensimmäinen tangon, jonka indeksi 1 oli päättynyt tällä hetkellä t2, toiminto IndicatorCounted palauttaa edellisen palkin arvon eli 299. Seuraavassa rivinindeksissä i lasketaan, tässä tapauksessa uuden palkin ensimmäiselle rullalle, joka on 1 301-299-1. Se tarkoittaa indikaattoriryhmien arvojen laskemista samalla silmukan uusi palkki suoritetaan sekä viimeiselle palkille että uudelle nollaparille Aikaisemmin indikaattoriryhmien uudelleenindeksoinnin aikana asiakaspääte kasvatti näiden taulukkojen kokoja Nolla-indeksien array-elementtien arvot ei määritetty ennen silmukan laskutoimitukset Silmukan laskutoimituksissa nämä elementit saavat joitain arvoja Kun laskutoimitukset alkavat, ohjaus palautetaan asiakaspäätteelle. Sen jälkeen asiakaspääte vetää indikaattorilinjat nollapalkkiin juuri laskettujen array-elementtien arvojen perusteella jossa on nolla indeksejä. Variantti 3 Uusi rasti on uuden nollapalkin ensimmäinen rasti, mutta viimeistä mutta rastiä ei käsitellä harvoin. Kuva 119 Kaikki edellisen palkin pätkät ei käsitelty. Kuva 119 esittää tilanteen, kun aloitetaan lanseerattiin uuden palkin ensimmäisellä rulla hetkellä t 5 Aiempi aika, jolloin tämä toiminto alkoi tällä hetkellä t 2 Tick, joka tuli terminaaliin tällä hetkellä t 3 punaista nuolta ei käsitelty indikaattorilla Tämä tapahtui siksi, aika t 2 - t 4 on suurempi kuin punkkien välinen aikaväli t 2 - t 3 Tapahtuma havaitaan asiakaspäätelaitteella käynnissä olevan käynnistysvaiheen aikana t 5 Laskennassa linjassa. IndicatorCounted palautetaan arvo 299 Tämä arvo on tosi - viimeisen osoittopuhelun hetkellä 299 baaria ei ole muutettu sen jälkeen, kun nyt on 301 Siksi ensimmäisen vasemman palkin laskennallinen indeksi, josta array-elementin arvojen laskenta on aloitettava, on yhtä suuri kuin 1 301-299-1.it tarkoittaa suorituksen aikana kaksi iteraatiota. Ensimmäisessä vaiheessa lasketaan taulukkoelementtien arvot, joiden indeksi i 1, eli Buf0 1 ja Buf1 1 Ei, hetkellislaskelmien alkaessa , palkit ja indikaattoriryhmät on jo uudelleenindeksoinut asiakaspäätteen, koska uusi palkki alkoi erityisen toiminnon alun alkamisen välillä. Tästä syystä indeksi 1: n elementtien laskutoimitukset lasketaan taulukko-aikarajojen perusteella maksimaalisen ja bar-arvon pienimmät arvot myös indeksillä 1. Kun on kyse toisen nollakohdan iteraation aikana, kun taas nolla-indeksien, eli nollaparin, elementtien arvot lasketaan viimeisten tunnettujen arvojen perusteella. merkitty tekniikka mukautettujen indikaattoreiden laskemiseksi mahdollistaa ensinnäkin kaikkien indikaattoriryhmäelementtien arvojen laskemisen riippumatta ristihistorian erityisluonteesta ja toiseksi tehdä laskelmia vain lukemattomille palkkeille eli käyttää resursseja taloudellisesti. Ei, palkki katsotaan lukemattomaksi, jos indikaattorijärjestel - mien elementtiarvojen laskemista ainakin yhdelle viimeiselle palkin ristille ei suoriteta. Ominaisuusilmaisimen vieminen kaavion ikkunaan näkee kaksi riviä - paksu sininen viiva, joka on rakennettu palkin maksimiin ja kuvio 120. Kuva 120 Kaksi indikaattorista rakennettu turvaikkunan kahta indikaattorilinjaa. Voit huomata, että voidaan rakentaa mukautettu indikaattori, jonka indikaattoriverkot olisivat yhdenmukainen analoginen tekninen indikaattori Se voidaan helposti tehdä, jos käytetään mukautetun indikaattorin laskentakaavoja käyttäen samoja kaavoja kuin teknisessä indikaattorissa. e edellisessä esimerkissä analysoitu ohjelmakoodi Antakaa indikaattorin piirtää viivoja useiden viimeisten palkkien maksimiarvojen ja vähimmäisarvojen keskiarvoista On helppoa tehdä tarpeellisia laskutoimituksia, vaan yksinkertaisesti täytyy löytää matriisi-aikasarja-elementtien keskiarvot Esimerkiksi, indikaattoriryhmä, jossa indeksi 3 eli indikaattorin koordinaatti kolmannelle palkille viiden viimeisen enimmäismäärän perusteella lasketaan seuraavalla tavalla. Buf0 3 Korkea 3 Korkea 4 Korkea 5 Korkea 6 Korkea 7 5. Indikaattorilaskennan rivit, jotka on rakennettu minimiin. Esimerkki yksinkertaisesta mukautetusta indikaattorista Indikaattorin linjat rakentuvat N-palkkien keskimääräisille minimaalisille ja maksimaalisille arvoille. Tässä esimerkissä on ulkoinen muuttuja AverBars Käyttäen tätä muuttujaa käyttäjä voi ilmoittaa palkkien lukumäärän, arvo lasketaan Aloitettaessa tätä arvoa käytetään keskiarvon laskemiseen. Silmukassa lasketaan maksimaaliset ja minimaaliset arvot palkkien lukumäärälle correspo muuttujan muuttujan AverBars-arvoon Seuraavien kahden ohjelmarivin arvot lasketaan indikaattoriviivojen arvojen mukaan, jotka vastaavat minimaalisia ja maksimaalisia arvoja. Tässä käytetään myös laskentamenetelmää teknisessä indikaattorissa Moving Average Jos liitetään analysoitu mukautettu indikaattori ja tekninen indikaattori Moving Average, näemme kolme indikaattoriviivaa. Jos molempia indikaattoreita varten määritetään sama keskiarvo, Moving Average - linja vastaa yhtä näistä käyttötarkoituksen parametreista, jotka on kuvattu kuviossa 121 on määritettävä teknisissä indikaattoriasetuksissa. 121. Sama tekninen indikaattori ja mukautettu merkkivalo punainen viiva. Teknisen indikaattorin avulla käyttäjä voi rakentaa heijastuksen käytännön työhön tarvittavista sääntöjenmukaisuuksista. Vakiomerkkiasetukset. erillisessä Windows. MQL4 - ohjelmistossa on suuri palvelu mukautettujen indikaattoreiden rakentamiseen, mikä tekee usin ne ovat erittäin käteviä. Erityisesti indikaattorilinjat voidaan piirtää erilliseen ikkunaan. Tämä on kätevää silloin, kun indikaattorin viivan amplitudin absoluuttiset arvot ovat huomattavasti pienempiä tai suurempia kuin turvahinnat. Esimerkiksi jos olemme kiinnostuneita palkin keskimääräisten arvojen erosta enimmäismäärät ja vähimmäismäärät tiettyyn historialliseen aikaväliin riippuen ajasta riippuen tämä arvo on suunnilleen 0 - 50 pistettä esimerkiksi M15: lle Ei ole vaikeaa rakentaa indikaattoriviä, mutta turvaikkunassa tämä rivi otetaan käyttöön alue on 0 - 50 pistettä turvahinnasta eli huomattavasti pienempi kuin kuvioalue heijastuu näytöllä On erittäin hankalaa. Piirtämään indikaattorilinjoja erillisessä ikkunassa, joka on suojaikkunan alaosassa, ohjelmassa, joka käynnistää parametrin indikaattorilukemanwindow on määritettävä. Kun tällainen indikaattori liitetään suojausikkunaan, asiakaspääte luo erillisen w indow kaavion alapuolella, jossa indikaattorissa lasketut indikaattorilinjat tehdään Värin asetuksista ja indikaattoriviivojen tyypistä riippuen ne piirretään tähän tai kyseiseen tyyliin. Limiting Calculation History. In useimmiten indikaattoriviitit sisältävät hyödyllistä tietoa vain Viimeisimmän historian osa Vanhojen palkkien, esim. 1 kuukauden ikäisten minuuttien aikakauteen rakennettavien indikaattoriviivojen osaa ei tuskin voida pitää kaupankäynnin päätösten tekemisen kannalta hyödyllisenä. Jos kaavion ikkunassa on paljon palkkeja, lasketaan ja piirretään aikaa indikaattorilinjat ovat kohtuuttoman suuret Tämä voi olla kriittinen ohjelmien virheenkorjauksessa, kun ohjelma on usein koottu ja käynnistetty. Siksi on tarpeen suorittaa laskelmia, joita ei ole koko historian kannalta, vaan viimeisimmän viivan historian rajoitetulle osalle. Tätä tarkoitusta varten käytetään seuraavia ohjelmaan muuttuvaa muuttujan historiaa. Tämän muuttujan arvo otetaan huomioon laskettaessa ensimmäisen vasemman palkin indeksiä jonka laskemiseksi indikaattorijärjestel - mien elementit on laskettava. Laskentilaskelmat suoritetaan silmukan aikana, kun viimeisimpien historiapalkkien lukumäärät ovat suurempia kuin Historia-arvo Huom. Laskentahistorian rajoitettu analyysi koskee vain laskennan osaa, joka suoritetaan ensimmäisen erikoiskäynnistyskäynnin alussa Lisäksi, kun uusia palkkeja ilmestyy, oikeanpuoleiseen osaan lisätään uudet indikaattorilinjan osat, kun taas vasemmanpuoleisen osan kuva säilyy. Tällöin indikaattorilinjan pituus kasvaa koko ajan indikaattorin käyttöaika Historiaparametrin yhteistä arvoa pidetään noin 5000 baaria. Esimerkki yksinkertaisesta mukautetusta indikaattorista Indikaattorilinjat piirretään erillisessä ikkunassa. Indikaattorilinjan samankaltainen laskenta suoritetaan teknisessä indikaattorissa AverageTrue Range Kuva 122 esittää indikaattorilinjaa, joka on rakennettu mukautetun osoittimen avulla erillisessä ikkunassa ja ATR: n toisessa ikkunassa rakentaman indikaattorilinjan ristiviivat ovat täysin identtisiä, koska keskiarvo on sama molemmissa indikaattoreissa - 5 Jos tätä parametria muutetaan millä tahansa osoittimesta, myös vastaava indikaattorivi muuttuu. Kuva 122 piirtää mukautetun indikaattorilinjan erilliseen ikkunaan. tekninen indikaattori ATR ja mukautettu indikaattori. On myös ilmeistä, että mukautettu osoittimen linja ei ole koko ruudun leveydelle vaan 50 viimeisimmälle palkille ulkoisen muuttujan mukaan. Historia Jos elinkeinonharjoittajan on käytettävä suurempaa historiaväliä, ulkoista muuttujaa voidaan helposti muuttaa mukautetun indikaattorin asetusikkunan avulla. Kuva 123 näyttää turva-ikkunan, jossa indikaattorilinja piirretään toisessa tyylissä - histogrammina Tällaisen tuloksen saamiseksi yksi rivi muuttui ohjelmakoodissa - muut line-tyylit ovat merkittyjä. Muut koodin osat ovat muuttumattomia. Kuva 123 Piirrä mukautettu indikaattorivi erillisessä ikkunassa Histogrammi Teknisten indikaattoreiden piirustusten samankaltaisuus ATR ja mukautettu indikaattori. Siirtyminen indikaattoriviin pystysuoraan ja vaakasuoraan. Joissakin tapauksissa on tarpeen siirtää indikaattoriviä. Se voidaan helposti tehdä MQL4: llä. Tarkastellaan esimerkkiä, jossa indikaattorilinjan sijainti turvallisuusikkunassa lasketaan Käyttäjän määrittelemät arvot. Esimerkki yksilöllisestä osoittimesta Siirtyminen indikaattoriviivoihin vaakasuorassa ja pystysuorassa. Kaaviossa siirrettävien viivojen säätöä varten on olemassa kaksi ulkoista muuttujaa - LeftRight kaikkien rivien vaakasuuntaiselle siirtymiselle ja UpDown kahdelle pisteviivalle pystysuunnassa. algoritmi, jota käytetään laskemalla vastaavien array-elementtien arvot, perustuu hyvin yksinkertaisiin sääntöihin. linjan siirtämiseksi vaakasuorassa, lasketaan laskettu arvo array-elementtiin, jonka indeksi on suurempi LeftRortilla siirryttäessä oikealle ja vähemmän siirryttäessä oikealle kuin palkin indeksi, jolle laskut suoritetaan. Jos linjaa siirretään pystysuunnassa, UpDown-piste on lisättävä siirtymään ylöspäin tai det joka on siirretty alaspäin jokaisen indikaattoriryhmän arvoon, joka luonnehtii aloituslinjan sijaintia. Analysoidussa esimerkkisindeksissä lasketaan viivalla. Tässä i on palkin indeksi, jolle suoritetaan laskenta, k on indikaattoriryhmän indeksi elementti Punainen indikaattoriviivain, jonka asiakaspäätelaite näyttää indikaattoriryhmän Line0: n mukaan siirretään vasempaan 5 baariin mukautettujen asetusten mukaisesti, katso kuvio 124 aloituslinjasta Tässä tapauksessa aloitusviiva on keskimääräinen keskiarvo yhtä suuri kuin 5 MA-laskennan kaava on High i Low i 2. Tässä esimerkissä punaisen viivan paikka on perustana kahden muun rivin indikaattoriryhmien arvojen laskemiselle eli niiden sijainnille taulukossa. Kaikkien indikaattoriryhmien elementtien indeksin k käyttäminen mahdollistaa laskentamenetelmien käyttämisen samassa pylväässä rivien Line1, Line2 elementtejä varten, jota käytetään laskettaessa vastaavan perusjoukon arvot Line0 As a tuloksen katkoviivoja siirretään suhteessa punaiseen viivaan indikaattoriasetusikkunassa määritellyn arvon, tässä tapauksessa 30 pistettä. Kuva 124. Kuva 124 Punainen viiva siirtyy vasempaan viiteen palkkiin Piilotettu osoitinviivat siirretään suhteessa punainen viiva 30 pistettä. Mukautettujen indikaattoreiden rajoitukset. MQL4: ssä on joitain rajoituksia, jotka tulisi ottaa huomioon mukautettujen indikaattoreiden ohjelmoinnissa. On olemassa joukko toimintoja, joita voidaan käyttää vain mukautetuissa indikaattoreissa eikä niitä voi käyttää Expert Advisors and scripts IndicatorBuffers, IndicatorCounted, IndicatorDigits, IndicatorShortName, SetIndexArrow, SetIndexBuffer, SetIndexDrawBegin, SetIndexEmptyValue, SetIndexLabel, SetIndexShift, SetIndexStyle, SetLevelStyle, SetLevelValue. Toisaalta kaupankäyntiä ei voida käyttää indikaattoreissa OrderSend, OrderClose, OrderCloseBy, OrderDelete ja OrderModify Tämä johtuu siitä, että indikaattorit toimivat rajapinnan virrassa erottavina asiantuntijoiden neuvonantajilta d-komentosarjoja, jotka toimivat omassa virrassaan. Tämä johtuu myös siitä, että silmukointiin perustuvia algoritmeja ei voida käyttää mukautetuissa indikaattoreissa Endless-silmukan sisältävän mukautetun indikaattorin alkaminen varsinaisen toteutusaikana voi johtaa asiakaspäätteeseen, tietokoneella. Asiantuntijoiden, käsikirjoitusten ja indikaattoreiden yleiset vertailutiedot sisältyvät taulukkoon 2 ohjelmien käyttötarkoitukseen. Aiemmin sanottiin, että MQL4-sääntöjen mukaan kauppatoimintoja ei voida käyttää mukautetuissa indikaattoreissa, joten automaattisen kaupankäynnin asiantuntijaneuvojat tai on käytettävä resursseja säästävää teknologiaa, jota käytetään indikaattoreiden laskennassa. Muokattujen indikaattoreiden luomista käytetään laajalti kaupankäynnin ohjelmien luomisessa. Useimmissa tapauksissa mukautetuissa indikaattoreissa voidaan tehokkaasti laskea indikaattorijoukon elementtien arvot kaupankäynnin kriteerien muodostamiseen ja kaupankäyntipäätösten tekeminen asiantuntijoiden neuvonantajissa Se voidaan teknisesti toteuttaa myös asiantuntijoiden neuvonantajissa, mutta tämä voi johtaa laskentojen päällekkäisyyteen erilaisissa sovellusohjelmissa ja kohtuuttomassa resurssien tuhlauksessa ja joissakin tapauksissa silloin, kun tehdään runsaasti resurssitehokkaita laskelmia. tapaukset, joissa tarvitaan mukautettujen indikaattoreiden laskentatulosten käyttämistä asiantuntijasovelluksessa tai komentosarjassa, voidaan käyttää iCustom-funktiota. Funktio iCustom. Customer-laskurin laskeminen Mukautettu indikaattori on koottava tiedosto ja se sijaitsee Terminalcatalogue-asiantuntijan indikaattoreissa. symboli - tietoturvan symbolin nimi, jonka tiedot indikaattorin laskemiseksi NULL osoittaa nykyisen symbol. timeframe - jakson voi olla yksi kaaviokausista 0 tarkoittaa nykyisen graafin ajan. nimi - mukautetun indikaattorin nimi. - Parametrien luettelo tarpeen mukaan Hyväksyttyjen parametrien on vastattava ilmoitetun tilauksen järjestystä ja ulkoisen muuttujan tyyppiä muokatun indikaattorin mukaan. Moodi - indikaattoriviivan indeksi voi olla - arvoon 7 ja sen on vastattava mitä tahansa SetIndexBar toiminnot. vaihde - Arvon indeksi indikaattoripuskurista siirtyy taaksepäin suhteessa nykyiseen palkkiin määrätyllä lukumääräluettelolla. Lähentää, miten iCustom voidaan käyttää käytännössä Ratkaista seuraava ongelma. ongelma 30 Kaupankäyntistrategia perustuu räätälöidyn osoittimen tiedot Jos ROC-rivi nykyisessä aikakehyksessä oranssissa ylittää tasaisen keskinopeuslinjan, paksu punainen, alle tietyn taso alhaalta ylöspäin, tämä on tärkeä kriteeri ostaa auki Osta ja sulje Myy Jos on päinvastoin, ota tämä huomioon. a relevant criterion to sell Write a code implementing this strategy. The principle of construction of the custom indicator is described in details in the section Custom Indicator ROC Price Rate of Change Fig 131 illustrates two points, in which ROC line in the current timeframe M15 crosses the smoothed rate of change line In point A the orange line crosses the red one from bottom upwards and the place of first intersection is below the level -0 001 In point B the orange line crosses the red one in the downward direction and the cross point is above the level 0 001 The fact of this crossing must be detected in the Expert Advisor and be considered as a signal to buy point A - close Sell and open Buy or to sell point B - close Buy and open Sell. Fig 131 Crossing of custom indicator lines is considered as a trading criterion. When solving such problems a ready Expert Advisor can be used, changing the order of calculation trading criteria in it In this case we can take as a basis the Expert Advisor described in the section Simple Expert Advisor The EA calculating trading criteria on the basis of a custom indicator will look loke this. Let us analyze what amendments were made in the source code The main part of the Expert Advisor used as basic has not changed Changes have been made in two blocks - block 1-2- and block 5-6.In the block 5-6 trading criteria are calculated In the described EA a trading strategy is based on two trading criteria - criterion to open Buy and criterion to open Sell The strategy used in the Expert Advisor allows the presence of only one opened market order, pending orders are not allowed The strategy also presupposes closing an opposite order when a criterion for opening triggers for example, if criterion to open a Buy order is relevant, it means that a Sell order must be closed. For using in the EA results of calculations performed in the custom indicator function iCustom must be executed. In this case formal parameters specified in iCustom call denote the following. NULL - calculations in the indicator are performed based on data of the current security in this case the EA is attached to EURUSD window, so data of EURUSD will be used see Fig 131.0 - in calculations data of the current timeframe are used in this case the current timeframe is M15, so data corresponding to M15 will be used. rocseparate - name of a custom indicator, in which calculations will be made. H,P, B,A - list of adjustable parameters In this case the custom indicator has adjustable parameters block 2-3 of code For a user to be able to set up values of these parameters from the EA, they are specified in the list of passed parameters of the function iCustom In the Expert Advisor values of these parameters can differ from those specified in the indicator In such a case during calculations in the indicator exactly these passed values will be used These parameters denote the following. H - number of bars in calculation history. P - period of calculation MA. B - number of bars for rate calculation. A - number of bars for smoothing. the meaning of these parameters is explained in details in the section Custom Indicator ROC Price Rate of Change.1 5 - index line of the indicator In the custom indicator 6 indicator arrays are used ROC line in the current timeframe orange is constructed on the basis of Line1 values, for which buffer with index 1 is used Smoothed average rate line is based on values of Line5 array elements, index of the used buffer is 5.0 - index of value obtained from an indicator buffer shift back relative to a current bar by the specified number of periods In this case values of indicator lines on the zero bar are used, that is why index 0 is specified. For a user to be able to change the adjustable indicator parameters in the EA manually, external variables are specified in block 1a-1b of the Expert Advisor In block 5-5a values of these parameters are assigned to other variables with shorter names - this is done for convenience of code presentation in block 5a-5b Thus a user can specify in parameter s, with which calculations in the custom indicator will be conducted After execution iCustom function will return value corresponding to a specified element value of specified indicator array calculated in the indicator using specified values of adjustable parameters. During practical operation it is convenient to see in a security window lines of the indicator, array elements of which are used in the Expert Advisor see Fig 131 At the same time execution of iCustom is not connected with the presence of the indicator in the security window, as well as with the values of its adjustable parameters. The execution of iCustom does not require the attachment of a corresponding indicator to a security window As well as the call of iCustom from any application program does not result in the attachment of a corresponding indicator to a security window Attachment of a technical indicator to a security window also does not lead to the call of iCustom in any application program. Trading criteria in th e EA block 5-6 are calculated on the basis of array element values obtained using iCustom function For example a criterion for opening Buy and closing Sell are calculated the following way. If the last known value of a smoothed average rate line L5 is less than the specified level value of the adjustable parameter Level 0 001 and the last known value of ROC line in the current timeframe L1 is larger than the smoothed average rate line L5 , the criterion for opening a Buy order and closing a Sell order is considered relevant For the confirmation of relevance of opposite criteria reflecting conditions are used. Trading criteria accepted in this example are used for educational purpose only and must not be considered as a guideline when trading on a real account.

No comments:

Post a Comment