Monday 30 October 2017

Crossing Liikkuvan Keskiarvon Asiantuntija Neuvonantajana


Yksinkertainen asiantuntijaedustaja Ongelma 29. Luo kaupankäynnin asiantuntijaedustaja. Alustavat argumentit Ennen kaupankäynnin asiantuntijaneuvottelujen aloittamista on määriteltävä tulevaisuuden ohjelman yleiset periaatteet. Ei ole olemassa tiukkoja ohjelmasääntöjä. Kuitenkin, kun ohjelma on luotu, ohjelmoija yleensä jatkaa sen parantamista. Jotta ohjelma olisi helppo ymmärtää tulevaisuudessa, se on luotava hyvin ajattelevan ja helposti ymmärrettävän järjestelmän mukaisesti (on erityisen tärkeää, jos toinen ohjelmoija jatkaa ohjelman kehittämistä). Sopivin ohjelma on se, joka koostuu toiminnallisista lohkoista, joista kukin vastaa sen osasta laskelmia. Luoda algoritmi kaupankäynnin Expert Advisor, analysoi mitä toimintaohjelma pitäisi tehdä. Kaupan tilausten muodostamisessa tärkeimpiä tietoja ovat tiedot tilauksista, jotka jo ovat asiakkaiden terminaaleissa. Jotkut kaupankäynnin strategiat mahdollistavat vain yhden yksisuuntaisen järjestyksen. Yleisesti ottaen, jos kaupankäynnin strategiassa sallitaan, useita tilauksia voi olla avoinna päätelaitteessa samanaikaisesti, vaikka niiden määrä on kohtuudella rajoitettava. Käytettäessä mitä tahansa strategiaa, kauppapäätökset olisi tehtävä ottaen huomioon nykytilanne. Ennen kaupan päätöstä ohjelmassa on tarpeen tietää, mitä kaupankäyntijärjestelyjä on jo avattu tai asetettu. Ensinnäkin ohjelmassa on oltava tilauskirjanpito, joka on ensimmäisten joukossa. EA: n toteuttamisen aikana olisi tehtävä kauppapäätöksiä, joiden toteuttaminen johtaa kauppatoimien toteuttamiseen. Kauppatilausten muodostuksesta vastaava koodiosuus on paremmin kirjoitettu erilliseen lohkoon. Asiantuntijapäällikkö voi muodostaa kaupan pyynnön avata uusi vireillä oleva tai markkinoiden tilaus, sulkea tai muokata olemassa olevia tilauksia tai tehdä mitään toimia. EA: n on myös laskettava tilaushinnat käyttäjien haluun mukaan. Kauppapäätökset olisi tehtävä ohjelmassa kaupan perusteiden pohjalta. Koko ohjelman menestys riippuu siitä, onko ohjelman kaupalliset kriteerit havaittu oikein. Kaupankäyntisääntöjä laskettaessa ohjelma voi (ja täytyy) ottaa huomioon kaikki hyödylliset tiedot. Esimerkiksi asiantuntija-neuvonantaja voi analysoida teknisten indikaattoreiden, tärkeiden uutisraporttien, nykyajan, joidenkin hintatasojen jne. Yhdistelmän jne. Käytännöllisyyden vuoksi kauppakriteereiden laskemisesta vastaava ohjelmaosa olisi kirjoitettava erilliseen lohko. Kaupan asiantuntijatiedon tulee välttämättä sisältää virheenkäsittelylohko. Kauppaa toteutettaessa mahdollisesti esiintyvien virheiden analysointi mahdollistaa toisaalta toistetun kauppapyynnön ja toisaalta ilmoittaa käyttäjälle mahdollisesta konfliktitilanteesta. Yksinkertaisen asiantuntijan neuvonantajan rakenne Seuraavassa on yksinkertaisen asiantuntijaneuvon rakenteellinen kaavio, joka on rakennettu useiden funktionaalisten lohkojen perusteella. Jokaisessa lohkossa on tietty erillinen laskennan osa. Seuraavassa EA: n kehitysvaiheessa ei vielä ole ohjelmakoodia. Samanaikaisesti ohjelman algoritmi muodostuu suurelta osin. Kuinka EA rakentaa tarjotun järjestelmän perustana on helppo ymmärtää yksinkertaisesti tarkastelemalla järjestelmää ja suunnittelemalla niiden välisiä lohkon nimet ja suhteet - rutiinit (ohjauksen kulku). Kun ohjelman käynnistysohjaus siirretään alustavan käsittelyn lohkoon. Tässä lohkossa voidaan analysoida joitain yleisiä parametreja. Jos esimerkiksi ikkunassa ei ole riittävästi palkkeja (teknisten indikaattoreiden parametrien laskemiseen tarvittavat palkit), EA ei pysty toimimaan riittävästi. Tällöin EA: n on lopetettava toiminta, joka ilmoittaa siitä etukäteen käyttäjälle ja ilmoittaa lopettamisen syystä. Jos yleisluonteisia vasta-aiheita ei ole, valvonta siirretään tilauslaskentaan. Laskentatoimeksiannossa havaitaan asiakkaan terminaalissa olevan tietoturvan (jonka ikkunaan EA on liitetty) tilausten lukumäärä ja laatu. Tällöin muiden arvopaperien tilaukset on poistettava. Jos ohjelmoitu kaupankäyntistrategia vaatii vain markkinoiden tilauksia (ja ei käytä odottavia tilauksia), on havaittava viivästyvien tilausten olemassaolo. Jos strategia hyväksyy vain yhden markkinatilauksen ja tosiasiallisesti on useita tilauksia, tämä tosiasia on myös tunnettava. Tilauskirjan (tässä järjestelmässä) tehtävänä on määritellä, vastaako nykyinen kaupankäynnin tilanne odotettu, eli se, missä EA voi toimia asianmukaisesti. Jos tilanne vastaa, valvonta on siirrettävä seuraavaan lohkoon, jotta EA: n toiminta jatkuu, jos ei, EA: n toiminta on lopetettava ja tämä tosiasia on ilmoitettava käyttäjälle. Jos terminaalissa ei ole tilauksia tai olemassa olevien tilausten määrä ja laatu vastaa odotettua, valvonta siirretään kaupankäynnin kriteereiden määrittämiseen. Tässä lohkossa lasketaan kaikki kauppapäätösten tekemiseen tarvittavat kriteerit, nimittäin kriteerit tilausten avaamiseksi, sulkemiseksi ja muokkaamiseksi. Lisäsäätö siirretään sulkemissuunnitelman lohkoon. On helppo ymmärtää, miksi tarjotussa järjestelmässä sulkemis - tilausten lohko toteutetaan aikaisemmin kuin avattavien tilausten aukiolla. On aina järkevämpää käsitellä ensimmäisiä olemassa olevia tilauksia (sulje tai muokata) ja vasta sen jälkeen uusia tilauksia. Yleensä on oikein ohjata halu saada mahdollisimman pieniä tilauksia. Tämän lohkon toteutuksen aikana kaikki tilaukset, joiden osalta sulkemisperuste on aktivoitu, on suljettava. Kun kaikki tarvittavat tilaukset on suljettu, ohjaus siirtyy uuden tilauksen koon laskentaan. Tilausmäärän laskemiseen on paljon algoritmeja. Yksinkertaisimmista niistä käytetään kiinteää, kiinteää erän kokoa. Tämä algoritmi on kätevää käyttää testausstrategioissa. Tavallisempi tilausmäärittelytapa määrittelee paljon erät riippuen vapaamarginaalin määrästä, esimerkiksi 30-40. Jos vapaa marginaali ei riitä, ohjelma lopettaa toimintansa ilmoittamalla käyttäjälle syystä. Kun uusien tilausten avaamisosien määrä on määritetty, ohjaus siirtyy tilauksen avauslohkoon. Jos jokin aikaisemmin lasketuista kriteereistä osoittaa jonkin tietyntyyppisen tilauksen avaamisen välttämättömyyden, tässä lohkossa muodostetaan kauppapyyntö tilauksen avaamiseen. Asiantuntijavastaavalla on myös virheen analysointia. Jos jokin kauppa epäonnistuu, ohjaus (vain tässä tapauksessa) välitetään virheenkäsittelylohkoon. Jos palvelimen tai asiakaspäätteen palauttama virhe ei ole ratkaiseva, yritetään vielä yrittää suorittaa kaupankäynti. Jos keskeinen virhe palautetaan (esimerkiksi tili on estetty), EA: n on lopetettava toimintansa. Muista, että MQL4: ssä ei ole mahdollisuutta ohjelmoida EA: n toimintaa tietoturvaikkunassa (poikkeuksena komentosarjoista, katso Erityistoiminnot). Ohjelman tapaan voidaan tehdä start (). Uuden toiminnon aloitusvaiheessa () uudella rullalla voidaan analysoida tietyn muuttujan lippua, joka kieltää kaupankäynnin (tässä tapauksessa mahdollisen kriittisen virheen vuoksi), ja ohjaus voidaan siirtää erikoistoiminto, joten uuden kauppapyynnön muodostaminen ei ole sallittua. Tarjotussa järjestelmässä lipun arvo analysoidaan alustavassa käsittelyssä. Kaupankäyntistrategia Markkinat ovat jatkuvasti muuttumassa. Markkinatilanne jokaisella hetkellä voi olla ehdollinen joko suuntauksena - vahva yksisuuntainen hinnanmuutos (nousu tai lasku) tai tasainen sivusuuntainen hintaliike, jolla on heikot poikkeamat tiettyyn keskiarvoon. Nämä markkinaominaisuudet ovat ehdollisia, koska ei ole olemassa selviä kriteerejä, joiden mukaan voidaan tunnistaa suuntaus tai tasainen. Esimerkiksi pitkät lateraaliset liikkeet, joilla on voimakkaita poikkeamia, joita ei voida jäljittää tasolle eikä trendille. Yleensä oletetaan, että markkinat ovat pääasiassa sivuttaisliikkeen tilassa ja suuntaukset yleensä tapahtuvat 15-20 kertaa. Kaikki kaupankäyntistrategiat voidaan myös tavanomaisesti jakaa kahteen pääryhmään. Ensimmäisessä ryhmässä on tasapohjaisia ​​strategioita. Tällaisten strategioiden tärkein ajatus on, että ilmeisen poikkeamahinnan palauttamisen jälkeen on palattava edelliseen asemaan, minkä vuoksi tilaukset avataan viimeisen hintakehityksen vastaisesti. Toiset ryhmästrategiat ovat trendistrategioita, kun tilaukset avataan samaan suuntaan kuin suolahintojen liikkeet. On monimutkaisempia (yhdistettyjä) strategioita. Tällaisissa strategioissa otetaan huomioon monet eri tekijät, jotka luonnehtivat markkinat, koska tulos kaupankäynnillä voidaan toteuttaa sekä tasaisella että trendillä. Ei ole vaikeaa toteuttaa kaupankäyntiä tämän tai kyseisen strategian mukaisesti teknisesti - MQL4 sisältää kaikki tarvittavat keinot sille. Tärkein työ kerran luomalla oman strategiansa on etsiä kaupankäynnin kriteerit. Kaupankäynnin kriteerit Tässä esimerkissä yritämme laatia trendi Expert Advisor, eli se, joka avaa tilaukset hinnanliikkeen suuntaan. Joten meidän on löydettävä erilaisia ​​teknisiä indikaattoreita, jotka havaitsevat trendin alkamisen. Yksi yksinkertaisimmista kaupankäynnin kriteereiden etsintämenetelmistä perustuu analysointiin keskittymähankkeiden yhdistämiseen eri keskiarvoilla. Kuviot 111 ja 112 esittävät kahden eri MA: n (keskiarvot 11 ja 31 jaksoilla) eri markkina-osien sijaintiin. Keskimääräiset keskimääräiset keskiarvot (punaiset viivat) ovat lähempänä hintataulukkoa, kiertyvät ja liikkuvat. Keskimääräiset keskiarvoja, joilla on suurempi keskiarvo (blue line), ovat inerttejä, niillä on suurempi viive ja ne sijaitsevat markkinoiden hinnoista. Pyri kiinnittämään huomiota paikkoihin, joissa maat, joilla on erilaisia ​​keskimääräisiä ajanjaksoja, päätyvät ja päättävät, voidaanko MA-risteytyksen tosiasiaa käyttää lukukriteereinä. Kuva 111. MA (11): n ja MA: n (31) ylitys, kun hintasuunta muuttuu. Kuviossa 111 nähdään markkinaosuus, jossa avaamispäätökset hintaliikkeen suuntaan MA-risteyksessä ovat perusteltuja. A-pisteessä punainen viiva ylittää sinisen alhaalta ylöspäin, jonka jälkeen markkinahinta jatkuu jonkin aikaa kasvamassa. Muut käänteinen MA-ylitys osoittaa hinnanmuutoksen suunnanmuutoksen. Jos avaamme ostotilauksen kohdassa A ja suljetamme sen B: ssä, saamme voiton suhteutettuna A - ja B-hintojen eroon. Kuva 112. MA (11): n ja MA: n (31) ylitys, kun hintasuunta muuttuu. Samalla markkinoilla on muitakin hetkiä, kun MA ylittää, mutta tämä ei johda huomattavaan hintojen nousuun tai laskuun (kuva 112). Tilaukset, jotka avataan MA-risteyksessä tällaisissa hetkissä, johtavat tappioihin. Jos Myynti aukeaa A: ssa ja suljetaan B: ssä, tällainen kaupankäynti aiheuttaa tappioita. Samaa voidaan sanoa B-tilauksesta, joka on avattu B: ssä ja suljettu C: llä. MA-risteyksen perusteella toteutetun strategian onnistuminen riippuu osista, joita voidaan pitää trendinä ja tasana. Litteä usein MA ylittäminen on säännöllinen tapahtuma, joka häiritsee kaikkia trendistrategiaa. Useat väärät signaalit johtavat pääsääntöisesti häviöihin. Siksi tämä keskivertojakaumaa käyttävien hallintarekisterien allekirjoittaminen voidaan käyttää kaupankäynnin strategioiden rakentamiseen vain yhdessä muiden trendien osoittavien merkkien kanssa. Tässä esimerkissä (yksinkertaisen asiantuntijaedustajan rakentamiseksi) meidän on kieltäydyttävä käyttämällä tätä merkkiä. Käytämme toisen merkin. Analysoimalla visuaalisesti markkinoiden hinnanmuutoksia, voimme nähdä, että pitkä yksisuuntainen hinnankorotus tai - lasku ilmenee usein lyhyen voimakkaan liikkeen seurauksena. Toisin sanoen, jos lyhyellä aikavälillä tapahtui voimakas liike, voimme odottaa sen jatkuvan keskipitkällä aikavälillä. Kuvio 113 kuvaa markkinoiden aikakautta, kun vahva liike johti hintojen muutoksen jatkumiseen samaan suuntaan. Kiintiön voimakkaana liikkumana voimme käyttää MA: iden eroa erilaisilla keskiarvoilla. Mitä voimakkaampi liike on, sitä suurempi on MA: n viive, jolla MA: lla on keskimääräinen keskimääräinen ajanjakso, jossa on pieni keskiarvo. Lisäksi jopa voimakkaat epäjatkuiset hintamuutokset, joilla on edelleen tuottoa, eivät johda suuria eroja MA: n välillä, ts. Lukuisia vääriä signaaleja ei näy. Esimerkiksi hinnankorotus 50 pistettä ylimääräisellä paluulla (keskellä kuvassa 113) aiheutti MA: n erojen kasvun vain 20 pistettä. Samanaikaisesti todellinen voimakas liike (johon ei yleensä liity huomattavaa korjausta) A-pisteessä lisäsi eron jopa 25-30 pistettä. Jos Buy-tilaus avataan, kun tiettyjen arvojen ero MA: n välillä on saavutettu, esimerkiksi A: ssä, todennäköisesti tilaus on kannattava, kun hinta saavuttaa ennalta määrätyn Stop-tilauksen arvon. Käytä tätä arvoa kaupankäyntitekijänä asiantuntijaneuvostossamme. Tilausten määrä Tässä esimerkissä analysoimme asiantuntijaneuvontaa, joka myöntää vain yhden markkinatilauksen olemassaolon, kunnes tilauksia ei toimiteta. Tällainen lähestymistapa on perusteltu paitsi tässä tietyssä esimerkissä, mutta sitä voidaan käyttää minkä tahansa strategian perustana. Odottavia tilauksia käytetään yleensä silloin, kun kehittäjällä on melko luotettava kriteeri tulevaisuuden hinnanmuutoksen ennakoimiseksi suurella todennäköisyydellä. Jos tällaista kriteeriä ei ole, ei ole tarvetta käyttää odottavia tilauksia. Tilanne, jossa useita vastakkaisia ​​tilauksia yhdelle turvallisuudelle on avoinna, ei myöskään voida pitää järkevänä. Aiemmin kirjoitettiin, että taloudellisesti katsoen vastakkaisia ​​tilauksia pidetään mielettöminä, varsinkin jos tilaushinnat ovat samat (ks. Tilausten sulkeminen ja poistaminen). Tällöin pitäisi sulkea toinen tilaus toisella ja odottaa signaalia avata yksi markkinatilaus tiettyyn suuntaan. Kaupankäynnin kriteerien suhde Tässä tilanteessa käy selväksi, mitä suhteita kaupankäynnin kriteerien välillä on mahdollista. Kuvio 114 esittää kahta kaupankäynnin kriteerien korrelaation vaihtelua, kun jokainen kriteeri on tärkeä (pätevä). Toimet (markkinoiden tilausten avaaminen ja sulkeminen) tapahtuvat myötäpäivään seuraavissa kuvissa. Kuva 114. Tilaa avaus - ja sulkemiskriteerit korrelaatio (a ja b - oikea, c - virheellinen). Oikein muodostettujen kaupankäyntikohteiden suosituin muunnelma on variantti a. Avattuaan markkinoiden tilaus Osta järjestetään vasta siihen hetkeen asti, kun kriteeri vaatii sen sulkemista laukaisee. Tämän jälkeen keskeytyy, kun tilauksia ei avaudu. Myynnin voi avata edelleen. Myynnin tilauksen sulkemisen edellytykset (oikein perustelluissa kriteereissä) esiintyvät aiemmin kuin Ostotilauksen avaamista koskevat ehdot. Osta-tilaus voidaan kuitenkin avata uudelleen, jos kaupankäyntitekijä vaatii tätä. Mutta tämän vaihtoehdon mukaan markkinamääräystä ei voida avata, jos markkinatilaus on päinvastainen. Vastaava kriteerikorrelaatio on variantissa b. Ero on se, että markkinaratkaisun avaaminen on samanaikaisesti kriteeri päinvastaisen järjestyksen sulkemiselle. Tämä variantti, kuten variantti a, ei salli useita terminaalin avaamia tilauksia samanaikaisesti yhdessä tietoturvassa. Kriteerikorrelaation muunnelma on virheellinen. Tämän vaihtoehdon mukaan markkinamääräyksen avaaminen on sallittua, kun vastakkaisia ​​tilauksia ei ole vielä suljettu, mikä on järjetöntä. Voi olla harvoja tapauksia, joissa tämä variantti on osittain perusteltu. Päinvastaisen järjestyksen avaaminen on joskus hyväksyttävää kompensoimaan pieniä oikaisuja tappioita voimakkaiden hinnanmuutosten jälkeen. Tällöin vastaava järjestys voidaan avata samasta tai pienemmästä arvosta kuin jo olemassa oleva ja sitten suljettu, kun korjaus on päättynyt. Tällainen taktiikka ei salli häiritä trendin suunnassa avatun quotmainketjun järjestystä. Yleensä on mahdollista myös useita yksisuuntaisia ​​tilauksia. Tämä voi olla perusteltu, kun aiemmin avattu tilaus on suojattu pysäytysjärjestyksellä ja kriteeri, joka osoittaa hintakehityksen samaan suuntaan, laukaisi jälleen. Tällaisen strategian luomisen aikana kehittäjän on kuitenkin oltava täysin tietoinen siitä, että jos jyrkkä hintakehitys muuttuu, jotkut välittäjät saattavat estää sijoitetut pysäytysmäärät ensimmäisellä hintatasolla. Ja tappio on oikeassa suhteessa yhden suuntaisen markkinatilauksen kokonaisarvoon. Esimerkissämme käytämme kaupankäynnin kriteerien korrelaation vaihtoehdon b. Kaikki avoimet markkinatilaukset suljetaan joko pysäytysjärjestyksessä tai kriteerin jälkeen, kun tilaus avataan vastakkaisessa suunnassa laukaisevien toimijoiden kanssa (täten sulkemisvaatimuksen kriteeri on samansuuntainen kuin Myynnin avaaminen ja päinvastoin). Avattujen tilausten koko Jokaisessa kaupankäyntitavoitteessa tilauskoot on kohtuudella rajoitettava. Yksinkertaisessa tapauksessa Expert Advisorissa käytetään kiinteää tilauskokoa. Ennen EA: n toiminnan aloittamista käyttäjä voi asettaa minkä tahansa tulevien tilausten koon ja jättää sen ennalleen jonkin aikaa. Edelleen, jos saldo muuttuu, käyttäjä voi määrittää uuden arvon avattujen tilausten määrästä. Liian pieni tilauskoko lisää luottamusta toimintaan odottamattomassa markkinamuutoksessa, mutta menestyksen tulos ei ole niin suuri. Jos tilauskoko on liian suuri, voidaan hankkia suuri voitto, mutta tällainen EA on liian riskialtista. Tavallisesti avattujen tilausten koko on asetettu niin, että marginaalivaatimukset eivät ylitä 2-35 prosenttia saldosta tai vapaasta marginaalista (jos strategia mahdollistaa vain yhden avoimen tilauksen, saldon ja vapaamarginaalin juuri ennen tilauksen avaamista yhtä suuri). Tässä esimerkissä molemmat vaihtoehdot toteutetaan. Käyttäjä voi valita joko ilmoittaa tilausten suoraan arvot tai asettaa arvon prosentteina vapaasta marginaalista. Ohjelmointitiedot Yksinkertainen trendi Expert-neuvonantaja tradingexpert. mq4, joka on rakennettu edellisten argumenttien perusteella, voi näyttää tältä: Muuttujien kuvaaminen Yksi arviointiperuste ohjelman arvioinnissa on sen luettavuus. Ohjelma katsotaan kirjoitetuksi oikein, jos muut ohjelmoijat voivat helposti lukea, joten kaikki tärkeimmät ohjelman osat ja strategiaan vaikuttavat keskeiset hetket on kommentoida. Tästä syystä on suositeltavaa ilmoittaa ja kommentoida kaikkia muuttujia ohjelman alussa. Lohkossa 1-2 kuvataan ulkoisia ja globaaleja muuttujia. Sääntöjen mukaan ulkoiset ja globaalit muuttujat on avattava ennen ensimmäistä käyttöä (ks. Muuttujatyypit), joten ne on ilmoitettu ohjelman pääosassa. Kaikki funktion aloitusvaiheet () paikalliset muuttujat kerätään ja kuvataan ylemmässä toiminto-osassa (lohko 2-3) välittömästi toiminnon otsikon jälkeen. Paikallisten muuttujien ilmoittamista koskevat säännöt eivät vaadi sitä, mutta eivät myöskään kiellä niitä. Jos ohjelmoijalla on vaikeuksia ymmärtää muuttujan merkitystä ohjelman lukemisen aikana, hän voi viitata ylempään osaan ja saada selville minkä tahansa muuttujan merkitys ja tyyppi. Se on erittäin kätevä ohjelmointikäytännössä. Esikäsittelyprosessi Tässä esimerkissä esikäsittely koostuu kahdesta osasta (lohko 3-4). Ohjelma lopettaa toimintansa, jos suojausikkunassa ei ole riittävästi palkkeja, jolloin on mahdotonta havaita oikein (lohkossa 5-6) liikkuvaa keskiarvoa, joka on tarpeen kriteereiden laskemiseksi. Tämän lisäksi muuttujan työn arvo analysoidaan. Normaalissa EA-toiminnossa muuttujan arvo on aina totta (se asetetaan kerran alustuksen aikana). Jos kriittinen virhe esiintyy ohjelmatoiminnossa, väärä on määritetty tähän muuttujaan ja start () lopettaa toimintansa. Tämä arvo ei muutu tulevaisuudessa, joten seuraavia koodeja ei ole suoritettu. Tällöin ohjelman toiminta on lopetettava ja kriittisen virheen syy on selvitettävä (tarvittaessa yhteyskeskukseen on otettava yhteyttä). Kun tilanne on ratkaistu, ohjelma voidaan käynnistää uudelleen, eli EA voidaan liittää suojausikkunaan. Kirjanpitotilaukset Kuvattu asiantuntija-neuvonantaja voi sallia vain yhden markkinatilauksen. Tilausten kirjanpidollisen tehtävän (lohko 4-5) tehtävänä on määritellä avoimen tilauksen ominaisuudet, jos sellainen on. Kaikkien nykyisten markkinoiden tilausten kautta ja odottamattomat tilaukset tarkistetaan, eli ensimmäisestä (int i1) viimeisestä (iampltOrdersTotal ()). Kunkin syklin iteroinnin yhteydessä seuraava järjestys valitaan OrderSelect () - toiminnolla. Valinta tehdään avoimen ja odottavan tilauksen lähteestä (SELECTBYPOS). Jos valinta toteutetaan onnistuneesti (ts. Terminaalissa on vielä yksi tilaus), tämä tilaus ja tilanne on analysoitava: onko tilaus avattu turvallisuudelle, jossa EA toimii, onko tilaus markkinoilla vai vireillä se on otettava huomioon myös laskettaessa tilauksia. Rivillä: kaikki toiselle turvallisuudelle avattavat tilaukset poistetaan. Operaattori jatkaa pysäyttämistä, ja tällaisen tilauksen ominaisuuksia ei käsitellä. Mutta jos tilaus avautuu turvallisuudelle, jonka ikkunaan EA liitetään, sitä analysoidaan edelleen. Jos OrderType () palauttaa arvoksi yli 1 (katso Kauppatyypit), valittu järjestys on vireillä. Mutta tässä asiantuntijaneuvostossa, joka hoitaa odottavia tilauksia, ei toimiteta. Se tarkoittaa, että aloituksen () suorittaminen on lopetettava, koska konfliktitilanteessa tapahtui. Tällöin operaattorin palautus lopettaa operaation lopettamisen aloituksen () suorittamisen viestin. Jos viimeinen tarkistus osoitti, että analysoitu tilaus on markkinatilaus, lasketaan ja analysoidaan turvatilojen tilausten kokonaismäärä. Ensimmäisen tällaisen tilauksen osalta kaikki tarvittavat ominaisuudet määritellään. Jos seuraavassa iteroinnissa tilauslaskuri (muuttuja Total) löytää toisen markkinajärjestyksen, tilanne katsotaan myös ristiriidaksi, koska EA ei pysty käsittelemään useampaa kuin yhtä markkinatilausta. Tällöin käynnistys () suorittaminen lopetetaan vastaavan viestin näyttämisen jälkeen. Tilauslaskutoimituksen tuloksena (jos kaikki tarkistukset ovat onnistuneet) muuttuja Total säilyttää nolla-arvonsa, jos sillä ei ole markkinatilauksia tai saa arvon 1, jos meillä on markkinointitilaus turvallisuutemme vuoksi. Viimeksi mainitussa tapauksessa tietyt muuttujat, jotka on asetettu järjestysominaisuuksiin (numero, tyyppi, avaushinta, pysäytystasot ja tilausarvo), saavat myös arvot. Kauppaan liittyvien kriteerien laskeminen Analysoitu esimerkki kaupankäynnin kriteereistä (lohko 5-6) on laskettu liikkeellä olevien keskimääräisten keskiarvojen ja erilaisten keskiarvojen välillä. Hyväksyttyjen kriteerien mukaan kaavio on härkäohjattu, jos MA: n nykyinen arvo pienemmällä jaksolla on suurempi kuin MA: n arvo suuremmalla jaksolla ja arvojen välinen ero on suurempi kuin tietty arvo. Karhu-liikkeessä MA, jolla on pienempi aika, on pienempi kuin MA, jolla on suurempi aika ja ero on myös suurempi kuin tietty kriittinen arvo. Lohkojen aloitusarvot, joissa on keskimääräisiä jaksoja PeriodMA1 ja PeriodMA2, lasketaan. Kaupankäyntitekijän merkityksen merkitys ilmoitetaan vastaavan muuttujan arvolla. Muuttujat OpnB ja OpnS merkitsevät kriteerin, joka käynnistää tilausten osto - ja myyntitilauksen, muuttujat Cls ja ClsS - sulkeutumisen. Esimerkiksi jos avaamisperuste avaamiselle ei ole lauennut, OpnB: n arvo on edelleen väärä (asetettu muuttujan alustukseen), jos se on lauennut, OpnB saa arvon totta. Tässä tapauksessa sulkeutumisen kriteeri samaan aikaan kuin osto-ostoksen avaaminen, avaaminen avautuu samaan aikaan kuin Buy-ostoksen kriteeri. Tässä esimerkissä hyväksyttyjä kaupankäyntisääntöjä käytetään vain opetustarkoituksiin, eikä niitä pidä pitää ohjeistuksena, kun kaupankäynti todellisessa tilissä. Sulkemispäätökset Aiemmin kirjoitettiin, että tämä asiantuntijaneuvonantaja on tarkoitettu käytettäväksi vain yhdellä turvatarkastuksella avatuilla markkinoilla, joihin EA liittyy. Siihen hetkeen, kun ohjattu ohjelma ohjataan tilauksen sulkemislohkoon, tiedetään varmasti, että tällä hetkellä ei ole mitään tilauksia turvallisuudesta, tai vain yksi markkinatilaus. Tästä syystä koodi sulkeutuvien tilausten kentässä on kirjoitettu niin, että vain yksi tilaus voidaan sulkea onnistuneesti. Tämä lohko perustuu ääretönpiiriin, jonka rungossa on kaksi samanlaista osaa: yksi Buy-tilauksen sulkemisesta, toinen Sell-järjestyksen sulkemiseksi. Tätä käytetään täällä sen tarkoituksen vuoksi, että jos kyseessä on kaupan toimintahäiriö, se voidaan toistaa vielä kerran. Ensimmäisen operaattorin otsikossa lasketaan ostotilauksen sulkemisvaatimus (myydä tilaukset suljetaan samalla tavalla). Jos aikaisemman avatun tilauksen tyyppi vastaa Ostoa (katso Kauppatyypit) ja Osta-merkin merkitys on merkityksellinen, valvonta siirretään operaattorin kehoon, jos sulkemispyyntö muodostuu. Tilauksen päätöskurssi OrderClose () - toiminnossa on järjestyksessä kaksipuolisen tarjouksen arvo, joka vastaa tilaustyyppiä (katso Vaatimukset ja rajoitukset kaupankäynnin tekemisessä). Jos kaupankäynti toteutetaan onnistuneesti, tilauksen sulkemista koskevan viestin jälkeen näytetään nykyinen iterointi pysäytettynä ja tilauksen sulkemislohkon toteutus on päättynyt. Mutta jos toiminto epäonnistuu, käyttäjän määrittelemää virheenkorjaustoimintoa FunError () kutsutaan (lohko 10-11). Virheiden käsittely Lähetysparametrilla FunError (): ssä käytetään viimeistä GetLastError (): n laskemaa virhekoodia. Riippuen virhekoodista FunError () palauttaa 1, jos virhe ei ole kriittinen ja toimenpide voidaan toistaa ja 0, jos virhe on kriittinen. Kriittiset virheet on jaettu kahteen tyyppiin: ne, joiden jälkeen ohjelman suorittamista voidaan jatkaa (esimerkiksi yleinen virhe) ja sen jälkeen minkä tahansa kaupan toimenpiteiden suorittaminen on lopetettava (esimerkiksi estetty tili). jos epäonnistuneen kaupankäynnin jälkeen käyttäjän määrittämä funktio palauttaa 1: n, nykyinen iterointi päättyy ja seuraavan iteroinnin aikana toinen yritys suorittaa operaation suorittaminen - tilauksen sulkeminen. Jos funktio palaa 0, käynnistyksen () suorittaminen keskeytyy. Seuraavalla rasti alkaa () käynnistyy uudelleen asiakaspäätteellä ja jos tilauksen sulkemisen ehdot säilytetään, toinen yritys sulkea tilaus tehdään. Jos virheenkäsittelyn aikana havaitaan, että ohjelman myöhempi suorittaminen on järjetöntä (esimerkiksi ohjelma toimii vanhan asiakaspäätteen versiossa) seuraavan käynnistyksen aikana, erikoistoiminnon käynnistämisen () suorittaminen lopetetaan alustavassa käsittelyssä, kun analysoidaan muuttuvan työn arvoa. Lottojen määrän laskeminen uusille tilauksille Erän suuruus voidaan laskea käyttäjien asetusten mukaisesti, kun toinen kahdesta vaihtoehdosta on tehty. Ensimmäinen muunnos on tietty vakioarvo, jonka käyttäjä on asettanut. Toisen vaihtoehdon mukaan erän määrä lasketaan tietyn prosenttiosuuden (käyttäjän asettama) summan perusteella, joka on vapaa marginaali. Uusien tilausten määrän lohkossa (lohkossa 7-8) lasketaan joidenkin muuttujien välttämättömät arvot - vähimmäismäärä sallittujen erän ja erän muutoksen vaihe, jonka välittäjä on perustanut, vapaa marginaali ja yksi erä turvallisuudesta. Tässä esimerkissä annetaan seuraava. Jos käyttäjä on asettanut ulkoisen muuttujan Lts tietyn nollasta poikkeavan arvon, esimerkiksi 0,5, se hyväksytään erän Lts summana, kun muodostetaan kauppapyyntö tilauksen avaamiseksi. Jos Lts: lle on annettu 0, Lts: n lukumäärä määritellään muuttujan Prots (prosenttiosuus), vapaa marginaali ja välittäjän asettamat olosuhteet. Kun Lts lasketaan, tehdään tarkistus. Jos tämä arvo on pienempi kuin minimaalinen sallittu arvo, hyväksytään minimaalinen sallittu arvo. mutta jos vapaa marginaali ei riitä, vastaavan viestin jälkeen käynnistys () suorittaminen lopetetaan. Avausmääräykset Avausmääräysten lohko (lohko 8-9) kuten avauspuhelujen poika on ääretön silmukka samalla. Ensimmäisen operaattorin otsikossa lasketaan, mikäli ostotilauksen avaamista koskevat ehdot lasketaan: jos ei ole tilauksia arvopaperille (muuttuja Yhteensä on 0) ja ostotilauksen avaaminen on merkityksellinen (OpnB on tosi), valvonta siirretään, jos operaattorin elin avaa tilauksen. Tällöin kun hinnat korotetaan, lasketaan pysäytystason hinnat. Stop-tasojen arvoja alun perin asettaa käyttäjä ulkoisissa muuttujissa StopLoss ja TakeProfit. Yleisessä tapauksessa käyttäjä voi asettaa arvot näille parametreille pienemmiksi kuin välittäjä sallii. Sen lisäksi, että välittäjä voi muuttaa minimaalisen sallitun matkan milloin tahansa (usein esimerkiksi voimakkailla markkinoilla tapahtuvilla liikkeillä, ennen merkittävää uutisvapautta). Siksi ennen jokaista tilausten avaamisen pysäytystasoa on laskettava ottaen huomioon arvot, jotka asetetaan käyttäjälle ja välittäjän asettama minimaalinen sallittu arvo. Pysäytystasojen laskemiseksi käyttäjän määrittelemää NewStop () - toimintoa käytetään kulloiduksi parametriksi käyttäjän käyttämän pysäytystason arvoon. NewStopissa () ensin lasketaan nykyinen minimaalinen sallittu etäisyys. Jos käyttäjän asettama arvo vastaa välittäjävaatimuksia, tämä arvo palautetaan. Jos se on pienempi kuin sallittu arvo, käytetään välittäjän sallimaa arvoa. Pysäytyspyyntöjen hinnat lasketaan vastaavasta kaksipuolisesta tarjouksesta (ks. Vaatimukset ja rajoitukset kaupan tekemisessä). Kauppapyyntö tilauksen avaamiseksi muodostetaan funktiolla OrderSend (). Laskettaessa tilauksen avaushintaa ja pysäytyspyyntöjen hintoja käytetään tilauslajin vastaavia kaksipuolisia lainausarvoja. Jos kaupankäynti onnistui (eli palvelin palautti avoimen tilauksen numeron) sen jälkeen, kun viesti onnistuneesta tilausnäytöstä on näkyvissä. start () - toiminto on päättynyt. Jos tilausta ei avata ja asiakaspääte palautti virheen, virhe käsitellään aiemmin kuvatun algoritmin mukaisesti. Joitakin koodin erityispiirteitä Analysoitu Expert Advisor - koodi on suunnattu tietyn strategian toteuttamiseen. Huomaa, jotkut ohjelmarivit sisältävät muuttujia ja laskelmia, jotka muutettaisiin, jos strategiaa muutettaisiin. Esimerkiksi hyväksytyn strategian mukaisesti asiantuntijaneuvonta kehitetään toimimaan vain yhdellä tilauksella. Tämän sallittiin käyttää muuttujan lippua sekä sulkemisnumeron (sulkeutuvan sulkemiskerroksen 6-7) tunnistuksessa että kaupallisen operaation menestyksen tunnistamiseksi tilauksen avaamisen yhteydessä (aukon 8-9 ). Tässä tapauksessa tällainen ratkaisu on hyväksyttävä. Kuitenkin, jos analysoidun koodin pohjana käytetään toisen strategian toteuttamista (esimerkiksi sallitaan vastakkaiset tilaukset), meidän on otettava käyttöön yksi tai useampi muuttuja, jotta voimme tunnistaa avattujen tilausten lukumäärät ja tunnistaa kaupan toimien onnistuminen. Uusissa strategiamuutoksissa meidän on muutettava tulevia ohjelmalinjoja, jotka sisältävät lähdestrategian sisältämät logiikan osan. Nimittäin tilauskirjanpidossa meidän ei tarvitse lopettaa ohjelman toimintaa, jos on useita avoimia tilauksia tietoturvasta. Lisäksi tilausten avaamista ja sulkemista koskevat ehdot muuttuvat. Tällöin koodi muuttuu avaus - ja sulkemisjärjestelyissä. Tämän analyysin perusteella voimme helposti päätellä, että kuvattu yksinkertainen Expert Advisor ei ole täydellinen. In a general case, for the implementation of order accounting one should use a universal function based on using data arrays and not containing logics of a certain strategy. The same can be said about the blocks of opening and closing orders. A more complete program must contain a main analytical function, all other user-defined functions must be subordinate to it. This analytical function must contain a program code, in which all conditions for the implementation of any strategy are analyzed all subordinate functions must perform limited actions. The function of accounting orders must only account orders, functions of opening and closing orders must only open and close orders, and the analytical function must quotthinkquot and manage all other functions, i. e. call them when needed. The Moving Average Cross Expert Advisor The moving average cross is one of the most popular basic trading strategies. It uses two or more moving averages of different periods to determine the direction of the trend. When the faster moving average(s) is above the slower moving average(s), a long position is opened, and vice versa for a short position. The moving average cross excels during long, sustained trends as a mediumlong-range trading strategy. Strategies based on the moving average cross have always been frequently requested by our clients, and thats why we offer the moving average cross expert advisor. You can now purchase this popular expert advisor for over 50 off Formerly 45, the deluxe Moving Average Cross expert advisor is now only 19.95 Up to 3 Moving Average Lines . Use two moving averages, or add a third to filter out long-term trends. Moving Average Types . Simple . Exponential . Smoothed or Linear Weighted . Price Data . Choose from Close, Open, High, Low, Median, Typical or Weighted Close . Shift . Shift the moving average lines forward or backward. Multiple Timeframes . Each moving average can be set to any chart timeframe. Money Management - The lot size is automatically calculated so that the maximum risk per trade is limited to a percentage of your equity. Trailing Stop Break Even Stop - Automatically adjust the stop loss as the trade moves into profit. Set minimum profit levels, step trailing stop in increments and more Daily Trade Timer - Limit your intraday trading to the hours that the market is most active. You can optionally close all open orders at the end of the day. Manual Order Control - Place manual orders on your chart with a specified trade comment, and the MA Cross EA will trail the stop loss and close the order automatically on an opposite cross. Run Once Per Bar or Every Tick . Choose how often to check order opening and closing conditions. You can trade on every tick, or only on the close of each bar. Close On Cross - Close the currently opened position on a moving average cross in the opposite direction. If disabled, orders will only close on a stop loss or manually. Robust . Full error handling and notification, retry on requotes, and much more. Fully compatible with ECN and 5-digit brokers. Alerts - Choose between audio alerts, the built-in alert dialog, email alerts or notifications sent to your smartphone. You can purchase the Moving Average Cross EA instantly for only 19.95Adjustable MA Expert Advisor Adjustable MA Forex expert advisor is a customizable moving average EA that offers flexible tuning of the traditional 2-MA cross strategy. You can set different MA periods, MA types, minimum difference, stop-loss, take-profit, trailing stop and slippage. This expert advisor always opens position on cross and closes it on the next cross. The back-test of the Adjustable MA MetaTrader expert advisor has shown 12.2 profit with 12.6 maximum drawdown during a 6-year period. The used position39s volume was set to 0.1 standard lots. The EA made 647 trades, of which 56.41 were profitable. The default settings were used in this back-test on EURUSD M5 chart. As you can see, the results are not very good. It is not recommended to use this EA on live account. What are the stop-loss and take-profit used by this EA By default it uses fixed stop-loss at 100 pips and take-profit at 70 pips. The trailing stop is turned off by default. How often does it trade On 5-minute EURUSD chart (the back-test settings) this EA will trade once every day on average. Any settings other than default can be used The limited forward test (which should be more reliable than a back-test) on AUDUSD M5 chart showed some profitable set-up for this expert advisor. These parameters should be changed from default: StopLoss mdash 30 TakeProfit mdash 50 TrailingStop mdash 20 Period1 mdash 50 Period2 mdash 10 This EA is ECN-compatible. You must set ECNMode input parameter to true in order to enable ECN-compatibility for this expert advisor. Otherwise, you will most likely be seeing OrderSend Error 130 messages when EA will be trying to open positions. This is because, if you are trading with an ECN broker (with market execution for orders), you cannot set SLTP on position opening. You have to open a position first without SLTP and only then modify it, adding stop-loss andor take-profit level. Discussion Warning Before you ask basic questions regarding installation of the expert advisors, please, read this MT4 Expert Advisors Tutorial to get the elementary knowledge on handling them. Do you have your own trading results or any other remarks regarding this expert advisor Discuss Adjustable MA with other traders and MQL programmers on the experts forums. Stochastic Oscillator EA v2 About the Stochastic Oscillator The Stochastic Oscillator Indicator was developed in the late 1950s by Dr. George Lane. The term stochastic refers to the point of a current price in relation to its price range over a period of time. The stochastic oscillator show 2 lines (Main and Signal line) and s support and resistance level. He is included in Metatrader. The default settings are: K 5, D 3 Slowing 3. Trade logic of this forex robot The Stochastic Oscillator EA is a forex robot based on the Stochastic Oscillator with its Main Line, Signal Line and the Support and Resistance levels. He included 5 Stochastic based entry and 3 exit strategies. Crossover in OversoldOverbought Level: Trades if the Main and Signal lines crosses above or below the Support and Resistance levels. Main Line BreakIn: Opens a long trade if the Main Line breaks into the above Level. Vice versa for short trade. Main Line BreakOut: Opens a long trade if the Main Line breaks out of the above Level. Vice versa for short trade. Signal Line BreakIn: Opens a long trade if the Signal Line breaks into the above Level. Vice versa for short trade. Signal Line BreakOut: Opens a long trade if the Signal Line breaks out of the above Level. Vice versa for short trade. Exit On Crossover: Closes the trade on a crossover of the main and signal lines. Main Line BreakThrough: Closes the trade if the Main Line crosses the predefined level. Signal Line BreakThrough: Closes the trade if the Signal Line crosses the predefined level. Stochastic Level Mode If you set the Stochastic Level Mode to 8220Use only buy level8221 the Sell Entry Level and Sell Exit Levels will be calculated based on the Buy Levels like this: Sell Entry Level 100-Buy Entry Level. Sell Exit Level 100-Sell Entry Level. Included functions All versions have variable Magic Number, Take Profit, Stop Loss, Lot Size and Slippage. Does the inverse strategy initiate trades on the same cross, i. e. crossing support from above or resistance from below. I bought your EA but am looking for an inverse stoch strategy that initiates a sell when stoch crosses down from above resistance and initates a buy when it crosses up from below support. Any way to use this EA to do that I would also like to add an MACD filter ( only when buying, 8211 only when selling) This is the closest I8217ve gotten to any EA that would do this for me. Could I pay you to Mod it for these specs The inverse strategy works exactly the same way as the normal strategy does, but it only opens a sell trade instaed of a buy trade and a buy instaed of a sell. I am not planning to add a MACD filter. But I can make a modification for you. Please contact me here .

No comments:

Post a Comment