Moving Average Eenvoudige Expert Adviseur


Meta Trader 4 - Kenners bewegende gemiddelde - kenner vir Meta Trader 4 Die bewegende gemiddelde deskundige vir die vorming van handel seine gebruik een bewegende gemiddelde. Opening en sluiting van posisies uitgevoer word wanneer die bewegende gemiddelde voldoen aan die prys op die onlangs gevorm bar (bar indeks gelyk aan 1). Die lot grootte sal geoptimaliseer word volgens 'n spesiale algoritme. Die deskundige adviseur ontledings instemming van die bewegende gemiddelde en die markprys grafiek. Die kontrolering word gedoen deur die funksie CheckForOpen (). As die bewegende gemiddelde voldoen aan die bar in so 'n manier dat die voormalige is hoër as Oop prys, maar laer as Close prys, sal die koop posisie oopgemaak. As die bewegende gemiddelde voldoen aan die bar in so 'n manier dat die voormalige is laer as Oop prys, maar hoër as Close prys, sal die sell posisie oopgemaak. Geldbestuur in die deskundige is baie eenvoudig, maar doeltreffend: die beheer oor elke posisie volume uitgevoer na gelang van die vorige transaksies resultate. Hierdie algoritme geïmplementeer word deur die funksie LotsOptimized (). Die basiese baie grootte word bereken op grond van die maksimum toelaatbare risiko: Die parameter MaximumRisk vertoon die basiese risiko persentasie vir elke transaksie. Dit beskik oor gewoonlik 'n waarde tussen 0,01 (1) en 1 (100). Byvoorbeeld, as gratis marge (AccountFreeMargin) gelyk aan 20.500 en reëls van kapitaal bestuur voorskryf om die risiko van 2 gebruik, sal die basiese baie grootte maak 20500 0,02 / 1000 0.41. Dit is baie belangrik om beheer oor die lot grootte akkuraatheid en om die resultaat te normaliseer met die toelaatbare waardes. Gewoonlik, fraksionele baie met stap van 0.1 word toegelaat nie. 'N Transaksie wat volume van 0.41 sal nie uitgevoer word. Om te normaliseer, is die funksie NormalizeDouble () gebruik word met akkuraatheid tot 1 karakter na die punt. Dit lei tot die basiese baie 0.4. Die basiese baie berekening op grond van gratis marge laat toeneem in volumes van die operasie, afhangende van handel uitslag, dit wil sê om handel te dryf met reinvesting. Dit is die basiese meganisme met verpligte kapitaal bestuur vir die verhoging van die saak effetiveness. DecreaseFactor is die mate waarin die lot grootte sal verminder na nuttelose handel. Normale waardes 2,3,4,5. As die voorafgaande transaksies was nutteloos, sal die daaropvolgende volumes te verminder met 'n faktor van DecreaseFactor om te wag deur die nuttelose tydperk. Dit is die belangrikste faktor in die hoofstad bestuur algoritme. Die idee is baie eenvoudig: as handel suksesvol is aan die toeneem, die deskundige werk met die basiese baie maak maksimum wins. Na afloop van die eerste nie-winsgewende transaksie, sal die deskundige die spoed verminder totdat 'n nuwe positiewe transaksie gemaak. Die algoritme toelaat om te skakel spoed verminder, want om dit te doen, moet 'n mens DecreaseFactor 0. spesifiseer die bedrag van die laaste agtereenvolgende nuttelose transaksies word bereken in die handel geskiedenis. Die basiese baie sal herbereken op hierdie basis: Dus, die algoritme kan effektief verminder die risiko voorkom as gevolg van 'n reeks van nuttelose transactions. The baie grootte Verplicht nagegaan word vir die minimum toelaatbare baie grootte aan die einde van die funksie, want die voorheen gemaak berekeninge kan lei tot baie 0: die deskundige is hoofsaaklik bedoel vir die werk met 'n daaglikse tydperk, en in die toets af - om dit te doen op 'n kort pryse. Dit sal handel net by die opening van 'n nuwe bar, wat is die rede waarom die modes van elke bosluis modellering nie nodig. Toets resultate word op die report. The bewegende gemiddelde Kruis Expert Adviseur Die bewegende gemiddelde kruis is een van die gewildste basiese handel strategieë. Dit maak gebruik van twee of meer bewegende gemiddeldes van verskillende tydperke om die rigting van die tendens te bepaal. Wanneer die vinniger bewegende gemiddelde (s) is bo die stadiger bewegende gemiddelde (s), is 'n lang posisie oop, en omgekeerd vir 'n kort posisie. Die bewegende gemiddelde kruis blink tydens lang, volgehoue ​​tendense as 'n medium / lang afstand handel strategie. Strategieë wat gebaseer is op die bewegende gemiddelde kruis was nog altyd gereeld op versoek van ons kliënte, en dis hoekom ons bied die bewegende gemiddelde kruis deskundige adviseur. Jy kan nou koop hierdie gewilde deskundige adviseur vir meer as 50 af Voorheen 45, die luukse bewegende gemiddelde Kruis deskundige adviseur is nou net 19,95 Kenmerke Tot 3 bewegende gemiddelde Lines. Gebruik twee bewegende gemiddeldes, of voeg 'n derde te filter tendense langtermyn. Bewegende gemiddelde tipes. Eenvoudig. Eksponensiële. Reëlmatige of Lineêre Geweegde. Prys Data. Kies uit Close, Open, High, Low, mediaan, Tipiese of Geweegde Close. Verskuiwing. Skuif die bewegende gemiddelde lyne vorentoe of agtertoe. Veelvuldige Tydraamwerke. Elke bewegende gemiddelde kan ingestel word om enige term tydraamwerk. Money Management - Die lot grootte word outomaties bereken sodat die maksimum risiko per handel is beperk tot 'n persentasie van jou aandele. Sleep stop / gelykbreek Stop - die stop verlies as die handel beweeg in wins outomaties aan te pas. Minimum winsvlakke, stap sleep stop in inkremente en meer Daily Handel Timer - Beperk jou intraday handel met die ure wat die mark is die meeste aktief is. Jy kan opsioneel sluit alle oop bestellings aan die einde van die dag. Handleiding Orde beheer - Plaas handleiding bestellings op jou grafiek met 'n bepaalde handel kommentaar, en die MA Kruis EA sal die stop verlies Trail en die orde te sluit outomaties op 'n teenoorgestelde kruis. Begin maal per Bar of elke tik. Kies hoe dikwels om orde opening en sluiting voorwaardes na te gaan. Jy kan handel op elke tik, of net op die einde van elke staaf. Close Op Cross - Sluit die huidige posisie op 'n bewegende gemiddelde kruis in die teenoorgestelde rigting. As afgeskakel, bestellings sal net sluit op 'n stop verlies of met die hand. Robuuste. Volle fouthantering en kennisgewing, weer probeer op requotes, en nog baie meer. Ten volle versoenbaar met ECN en 5-syfer makelaars. Alert - Kies tussen klank waarskuwings, die ingeboude waarskuwing dialoog, e-pos kennisgewings of kennisgewings gestuur na jou smartphone. Jy kan die bewegende gemiddelde Kruis EA onmiddellik aan te koop vir net 19.95Simple Expert adviseur Probleem 29. Skep 'n handel Expert adviseur. Voorlopige Argumente Voor die aanvang van 'n handel Expert adviseur program, is dit nodig om algemene beginsels van 'n toekomstige program definieer. Daar is geen streng program skep reëls. Maar, sodra hy 'n program geskep, 'n programmeerder voort gewoonlik om dit te verbeter. Om in staat wees om maklik te verstaan ​​die program in die toekoms, moet dit geskep word in ooreenstemming met 'n weldeurdagte en maklik-om-te verstaan ​​skema (dit is veral belangrik as 'n program verder sal verbeter word deur 'n ander programmeerder). Die mees geskikte program is die een wat bestaan ​​uit funksionele blokke, elk van wat verantwoordelik is vir die deel van berekeninge. Om 'n algoritme van 'n handel Expert adviseur te skep, kan analiseer wat 'n bedryfstelsel program moet doen. Een van die belangrikste data in die vorming van handel bestellings is die inligting oor bestellings wat reeds in 'n kliënt terminale bestaan. Sommige van handel strategieë laat net een eenrigting orde. Oor die algemeen, indien 'n handel strategie kan verskeie bestellings kan oop in 'n terminaal terselfdertyd wees, al is hulle getal redelik beperk moet word. By die gebruik van 'n strategie moet handel besluite gemaak word met inagneming van die huidige situasie. Voordat 'n handelsmerk besluit geneem word in 'n program, is dit nodig om te weet wat handel bestellings is reeds geopen of geplaas. In die eerste plek 'n program moet 'n blok van bestellings rekeningkundige wat onder die eerste wat uitgevoer moet word bevat. Tydens 'n EA uitvoering handel besluite gemaak moet word, die implementering van wat lei tot die uitvoering van handel bedrywighede. Kode deel wat verantwoordelik is vir die handel bestellings vorming is beter geskryf in 'n aparte blok. 'N Expert adviseur kan 'n handel versoek n nuwe hangende of bemark sodat oopmaak, toemaak of enige van bestaande bestellings te verander of uit te voer geen aksies glad vorm. 'N EA moet ook bevel pryse te bereken na gelang van 'n gebruikers begeer. Handel besluite gemaak moet word in 'n program op grond van handel kriteria. Die sukses van die hele program is afhanklik van die korrektheid van die opsporing van handel kriteria in die program. By die berekening van die handel kriteria n program kan (en moet) in ag neem al die inligting wat nuttig kan wees. Byvoorbeeld, kan 'n kundige adviseur kombinasie van tegniese aanwyser waardes analiseer, tyd van belangrike nuusberigte, huidige tyd, waardes van 'n paar prysvlakke, ens vir gerief, die program deel wat verantwoordelik is vir die berekening van die saak kriteria moet in 'n aparte blok. A handel Expert adviseur moet noodwendig bevat fout verwerking blok. Ontleding van foute wat mag voorkom in die uitvoering van handel werking stel, aan die een kant, 'n handel versoek herhaal en, aan die ander kant, 'n gebruiker in te lig oor 'n moontlike konflik situasie. Struktuur van 'n eenvoudige Expert adviseur Hier is 'n strukturele skema van 'n eenvoudige Expert adviseur gebou op die basis van 'n paar funksionele blokke, in elk 'n sekere losstaande deel van berekeninge te sluit. Op die volgende EA ontwikkeling stadium is daar nog geen programkode. Terselfdertyd die algoritme van 'n program is om 'n groot mate gevorm. Hoe die EA gebou op die fondamente van die aangebied skema sal werk kan maklik net verstaan ​​soek op die skema en oriënteer op blok name en verhoudings skikkings (beheer verbygaande) tussen hulle. Na program begin beheer word geslaag om die blok van voorlopige verwerking. In hierdie blok kan 'n paar algemene parameters ontleed. Byvoorbeeld, as daar nie genoeg bars in 'n venster (bars wat nodig is vir die berekening van parameters van tegniese aanwysers), 'n EA sal nie in staat wees om behoorlik te werk. In so 'n geval moet 'n EA werking te beëindig voorlopig lig 'n gebruiker daaroor en verslagdoening oor die rede van beëindiging. As daar is geen contraindicatons van 'n algemene aard, is beheer geslaag om rekeningkundige blok bestel. In die blok van rekeningkundige beveel die getal en gehalte van bestaande in 'n kliënt terminale vir 'n sekuriteit bestellings (om die venster waarvan die EA is aangeheg) waargeneem word. In hierdie blok bestellings van ander sekuriteite moet uitgeskakel word. As 'n geprogrammeer handel strategie vereis die gebruik van slegs die mark bestellings (en nie hangende bestellings gebruik) die feit van teenwoordigheid van hangende bestellings moet opgespoor word. As 'n strategie erken net een mark orde en daar is eintlik 'n paar bestellings, moet hierdie feit ook bekend word. Die taak van die orde rekeningkundige blok (in hierdie skema) is in die definisie of die huidige handel situasie ooreenstem met 'n verwagte een, naamlik dié waarin die EA kan voldoende funksioneer. As die situasie ooreenstem, moet beheer word geslaag om die volgende blok van die EAS werking voortgaan indien nie, moet die EAS bedryf beëindig en hierdie feit moet gerapporteer word aan 'n gebruiker. As daar is geen bestellings in die terminale of die getal en gehalte van bestaande bestellings ooreenstem met wat verwag is, is beheer geslaag om die blok te definieer handel kriteria. In hierdie blok alle kriteria wat nodig is vir die maak van handel besluite word bereken, naamlik kriteria vir die opening, sluiting en die wysiging van bestellings. Verdere beheer word geslaag om die blok van die sluiting van bestellings. Dit is maklik om te verstaan ​​waarom in die aangebied skema die blok van die sluiting van bestellings is vroeër as die blok van die opening van bestellings uitgevoer. Dit is altyd meer redelik om eerste bestaande bestellings te verwerk (naby of te verander) en eers daarna om nuwe bestellings oop. Oor die algemeen, is dit korrek gelei word deur die begeerte om so min as moontlik bestellings het. Tydens die uitvoering van hierdie blok alle bestellings, waarvoor die sluiting maatstaf is geaktiveer, moet gesluit word. Na al die nodige bestellings is gesluit, is beheer geslaag om 'n blok van nuwe bestellings grootte berekening. Daar is 'n baie algoritmes vir die berekening van 'n bevel volume. Die eenvoudigste van hulle is met behulp van 'n konstante, vaste baie grootte. Dit is gerieflik om hierdie algoritme gebruik in 'n program vir die toets strategieë. Meer gewilde metode van die definisie van 'n order grootte is besig om die aantal baie, afhangende van die bedrag van die vrye marge, byvoorbeeld 30-40 daarvan. As gratis marge is nie genoeg nie, die program staak sy operasie 'n gebruiker oor die rede het die hoogte. Volgens die getal van die lot oor die opening van nuwe bestellings word gedefinieer, word beheer geslaag om opening blok bestel. Indien enige van kriteria bereken vroeër verwys na die noodsaaklikheid van die opening van 'n bevel van 'n sekere tipe, is 'n handel versoek om 'n bevel te maak wat gevorm word in hierdie blok. Daar is ook 'n fout te analiseer blok in 'n kundige adviseur. As 'n bedryf werking misluk, is beheer (net in hierdie geval) geslaag om die fout verwerking blok. As 'n fout teruggestuur word deur 'n bediener of kliënt terminale is nie noodsaaklik is nog 'n poging aangewend om 'n handelsmerk operasie uit te voer. As 'n belangrike fout teruggestuur (byvoorbeeld, is 'n rekening geblokkeer), moet 'n EA sy operasie te beëindig. Onthou, in MQL4 is daar geen moontlikheid van program beëindig 'n EAS operasie in 'n sekuriteits venster (in teenstelling met skrifte, sien Vir Spesiale Funksies). Wat kan gedoen word in 'n program manier is die beëindiging van begin (). Op 'n nuwe begin van die funksie begin () op 'n nuwe merk die waarde van 'n sekere veranderlike-vlag verbied handel (in hierdie geval in staat gestel het as gevolg van 'n kritieke fout) ontleed kan word en beheer kan word geslaag vir die beëindiging van die spesiale funksie operasie dus vorming van nuwe handelsmerk versoek word nie toegelaat. In die aangebied skema die vlag waarde is ontleed in die blok van voorlopige verwerking. Trading Strategie mark pryse is voortdurend in beweging. Mark toestand op enige oomblik van tyd kan voorwaardelik gekenmerk óf as 'n tendens - 'n sterk eenrigting prysverandering (styging of daling), of as 'n plat - laterale prys beweging met swak afwykings van 'n sekere gemiddeld. Hierdie mark eienskappe is voorwaardelik, want daar is geen duidelike kriteria, waarvolgens tendens of plat geïdentifiseer kan word. Byvoorbeeld, 'n lang laterale bewegings met 'n sterk afwykings wat kan teruggevoer word nie aan 'n plat of 'n tendens. Oor die algemeen word aanvaar dat die mark is hoofsaaklik in die toestand van sywaartse beweging en tendense gewoonlik plaasvind 15-20 tyd. Alle handel strategieë kan ook konvensioneel verdeel word in twee hoofgroepe. Die eerste groep bevat plat-georiënteerde strategieë. Die hoofgedagte van sulke strategieë is dat na 'n duidelik afwyking prys moet terugkeer na die vorige posisie, dis hoekom bestellings oopgemaak in die rigting in teenstelling met die laaste prys beweging. Die tweede groep strategieë tendens strategieë, wanneer bestellings geopen in dieselfde rigting as die sout prys beweging. Daar is meer ingewikkeld (gekombineerde) strategieë. Sulke strategieë in ag neem verskeie faktore wat die mark kenmerk as gevolg handel kan beide uitgevoer op 'n plat en tendens. Dit is nie moeilik om te handel implementeer volgens die een of ander strategie tegnies - MQL4 bevat al die nodige middele daarvoor. Die belangrikste werk in die skepping van een keer eie strategie bestaan ​​in die soeke van die saak kriteria. Trading Kriteria In hierdie voorbeeld sal ons probeer om 'n tendens Expert adviseur, dit wil sê die een wat bestellings in die prys beweging rigting sal oopmaak bou. So, moet ons om uit te vind tussen die verskillende tegniese aanwysers diegene wat 'n tendens bespeur begin. Een van die eenvoudigste metodes van soek handel kriteria is gebaseer op die ontleding van die kombinasie van MA met verskillende gemiddelde periodes. Fig. 111 en Fig. 112 wys die posisie van twee verskillende MA (met periodes van gemiddeld 11 en 31) op verskillende mark dele. Gemiddeldes met klein gemiddelde tydperk (rooi lyne) is nader aan 'n prys grafiek, kronkelende en roerende. Bewegende gemiddeldes met groter tydperk van gemiddelde (blou lyn) is meer inerte, het groter lag en is verder geleë van markpryse. Kom ons gee aandag aan plekke waar MA met verskillende gemiddelde periodes te steek en probeer om te besluit, of die feit van MA kruising kan gebruik word as 'n lesing maatstaf. Fig. 111. Crossing van MA (11) en MA (31) wanneer die prys beweging rigting verander. In Fig. 111 sien ons 'n mark deel waar die opening van bestellings in die rigting van die prys beweging by MA kruising geregverdig. In punt A gaan oor die rooi lyn die blou een van onder na bo, na dat die markprys steeds groeiende vir 'n geruime tyd. Verdere omgekeerde MA kruising dui die prys beweging rigting te verander. As ons 'n koop orde oop by punt A en sluit dit by B, sal ons wins eweredig te leer verskil van A en B pryse. Fig. 112. Crossing van MA (11) en MA (31) wanneer die prys beweging rigting verander. Terselfdertyd is daar ander oomblikke in die mark wanneer MA kruis, maar dit beteken nie lei tot verdere aansienlike styging of daling (Fig. 112). Bestellings geopen by MA kruising by sulke oomblikke sal lei tot verliese. As verkoop teen 'n is geopen en gesluit op B, sal sulke handel verliese te bring. Dieselfde kan gesê word oor 'n koop orde by B geopen en gesluit C. Die sukses van die hele strategie geïmplementeer word op grond van MA kruising hang af van die aantal dele wat kan gekenmerk word as tendens en plat. In plat dikwels MA kruising is 'n gereelde gebeurtenis wat inmeng met enige tendens strategie. Talle valse seine as 'n reël lei tot verliese. Dit is waarom hierdie teken - kruising Mas met verskillende gemiddelde tydperk - kan gebruik word vir die bou van handel strategieë slegs in kombinasie met ander tekens bewys van 'n tendens. In hierdie voorbeeld (vir die bou van 'n eenvoudige Expert adviseur) sal ons moet weier die gebruik van hierdie teken. Ons sal nog 'n teken gebruik. Ontleding van visueel die karakter van die prys veranderinge in die mark, kan ons sien dat 'n lang een-rigting prys styg of daal dikwels voorkom as gevolg van 'n kort sterk beweging. Met ander woorde, indien daar binne 'n kort tydperk 'n sterk beweging gebeur, ons kan die voortsetting daarvan in 'n medium-termyn tydperk verwag. Fig. 113 toon die tydperk mark toe 'n sterk beweging tot gevolg gehad dat die voortsetting van die prys verandering in dieselfde rigting. As die kwota sterk movementquot kan ons die verskil van MA met verskillende gemiddelde periodes gebruik. Die sterker die beweging, hoe groter is die lag van MA met groter gemiddelde tydperk van MA met 'n klein tydperk. Verder het selfs sterk diskontinue prysbewegings met verdere terugkeer nie lei tot 'n groot verskil tussen MA, dit wil sê talle valse seine verskyn nie. Byvoorbeeld, die prys spring met 50 punte met verdere opbrengs (in die sentrum in Fig. 113) behels toename van verskil tussen MA net met 20 punte. Terselfdertyd 'n baie sterk beweging (wat gewoonlik nie gepaard gaan met 'n aansienlike regstelling) in punt A tot gevolg gehad dat die verskil toename tot 25 - 30 punte. As Koop orde oopgemaak wanneer 'n sekere waarde van verskil tussen MA bereik, byvoorbeeld in 'n, waarskynlik die einde sal nuttig wees wanneer 'n prys 'n voorafbepaalde Stop bestel waarde bereik. Kom ons gebruik hierdie waarde as 'n handelspos maatstaf in ons kundige adviseur. Aantal bestellings In hierdie voorbeeld ons analiseer 'n kundige adviseur wat teenwoordigheid van slegs een mark orde erken, hangende bestellings nie voorsien nie. So 'n benadering is geregverdig nie alleen in hierdie sekere voorbeeld nie, maar kan gebruik word as die basis vir enige strategie. Hangende bestellings word gewoonlik gebruik wanneer 'n ontwikkelaar het nogal 'n betroubare maatstaf vir die voorspelling van die toekoms prysverandering met 'n hoë waarskynlikheid. As daar nie so 'n maatstaf, nie nodig om te gebruik hangende bestellings. Die situasie wanneer 'n paar teenoorgestelde bestellings vir een sekuriteit is ook oop kan nie redelike oorweeg word. Dit is vroeër geskryf dat van ekonomiese oogpunt teenoorgestelde bestellings word beskou as sinnelose te wees, veral as die einde pryse is gelyk (sien Sluiting en verwyder Bestellings). In so 'n geval moet ons een orde te sluit deur 'n ander een en wag vir 'n sein na 'n mark orde oop te maak in 'n sekere rigting. Betrokkenheid van Handel Kriteria Vanuit hierdie posisie word dit duidelik watter verhoudings moontlik is tussen handel kriteria. Fig. 114 toon drie variante van korrelasie van handel kriteria, wanneer elke kriterium is belangrik (geldig). Aksies (opening en sluiting mark bestellings) plaasvind kloksgewys op die volgende foto. Fig. 114. Bestel opening en sluiting kriteria korrelasie (a en b - korrek, C - verkeerde). Die gewildste variant van 'n korrek gevorm handel kriteria is die variant a. Nadat hy het 'n mark orde Koop gehou op totdat die oomblik wanneer maatstaf wat sy sluiting snellers. Daarna het 'n pouse plaasvind wanneer geen bestellings oopgemaak. Verdere n mark orde Sell oopgemaak kan word. Voorwaardes vir die sluiting van 'n verkoop orde (in ooreenstemming met die korrekte gevorm kriteria) voorkom vroeër, as voorwaardes vir die opening van 'n koop orde. Tog kan 'n koop orde weer oopgemaak word, as 'n handelspos maatstaf dit vereis. Maar volgens hierdie variant n mark bestelling kan nie oopgemaak word indien daar 'n ope mark orde in die stryd rigting. Soortgelyke kriteria korrelasie is in die variant b. Die verskil is dat 'n maatstaf vir die opening van 'n mark orde is terselfdertyd 'n maatstaf vir die sluiting van die teenoorgestelde volgorde. Hierdie variant soos die variant n nie 'n paar bestellings geopen in die terminale op dieselfde tyd op 'n sekuriteit toelaat. Die variant van kriteria korrelasie is verkeerd. Volgens hierdie variant opening van 'n mark orde toegelaat wanneer strydig bestellings nog nie gesluit, wat is sinneloos. Daar kan seldsame gevalle wanneer hierdie variant is gedeeltelik geregverdig. Opening van 'n teenoorgestelde orde is soms aanvaarbaar vir vergoeding verliese wat by klein regstellings ná sterk prysbewegings. In sulke gevalle kan 'n teenoorgestelde volgorde oopgemaak van dieselfde of kleiner waarde as die bestaande een en dan gesluit word wanneer die regstelling is verby. So 'n taktiek kan nie in te meng met die quotmainquot orde geopen in die tendens rigting. In die algemeen geval is ook verskeie een-rigting bestellings moontlik. Dit gelyk gestel kan word wanneer 'n vroeëre geopen orde word beskerm deur 'n aftrekorder en die maatstaf wat dui op die prys ontwikkeling in dieselfde rigting veroorsaak weer. Maar wanneer die skep van so 'n strategie, 'n ontwikkelaar moet ten volle bewus daarvan dat in die geval van 'n skerp prys beweging verandering die geplaas aftrekorders kan uitgevoerde deur sommige makelaars by die eerste prys touch wees. En die verlies sal in verhouding tot die totale waarde van een-rigting mark bestellings wees. In ons voorbeeld gebruik ons ​​variant b van handel kriteria korrelasie. Alle oop mark bestellings gesluit óf deur 'n aftrekorder of na 'n maatstaf van die opening van 'n bevel in die teenoorgestelde rigting snellers (hier maatstaf van die sluiting Koop val saam met dié van die opening te verkoop en omgekeerd). Grootte van Geopen Bestellings In enige handel strategie orde groottes moet redelik beperk word. In 'n eenvoudige geval 'n groot vaste orde word in 'n kundige adviseur. Voordat EA werking begin, kan 'n gebruiker 'n grootte van toekomstige bestellings te stel en laat dit onveranderd vir 'n geruime tyd. Verdere as balans verander, 'n gebruiker kan 'n nuwe waarde van lotnommers van oop bestellings. 'N Te klein grootte orde bied meer vertroue in werking op die onvoorspelbare mark verandering, maar die wins in die geval van sukses sal nie so groot wees. As die grootte orde te groot is, kan 'n groot wins verkry, maar so 'n EA sal te riskant wees. Gewoonlik is die grootte van oop bestellings is so opgestel dat, moenie dat vereistes marge oorskry nie 2-35 persent van die balans of gratis marge (as 'n strategie kan net mens geopen orde, balans en gratis marge op die oomblik voor die einde opening sal wees gelyk). In hierdie voorbeeld beide variante geïmplementeer word. 'N gebruiker kan kies hetsy direk dui waardes van bestellings of stel die waarde in persentasie van die vrye marge. Programmering Besonderhede n eenvoudige tendens Expert adviseur tradingexpert. mq4 gebou op die basis van die vorige argumente kan soos volg lyk: Die beskrywing van veranderlikes Nog maatstaf in skatting program is die leesbaarheid. 'N Program word beskou as korrek geskryf, as dit maklik kan gelees word deur ander programmeerders, dis hoekom almal hoofprogram dele en hoofmomente wat kenmerkend is van die strategie moet opgemerk. Dit is ook die rede waarom dit word aanbeveel om te verklaar en kommentaar te lewer al die veranderlikes aan die begin van die program. In die blok 1-2 eksterne en globale veranderlikes beskryf. Volgens reëls, moet eksterne en globale veranderlikes oopgemaak voor hul eerste gebruik (sien tipes veranderlikes), dis hoekom hulle in die program hoof deel is verklaar. Alle plaaslike veranderlikes van die funksie begin () vergader en beskryf in die boonste funksie deel (blok 2-3) onmiddellik na die funksie kop. Reëls van verklaar plaaslike veranderlikes nie nodig nie, maar ook nie verbied. As 'n programmeerder gesigte probleme in die begrip van die betekenis van 'n veranderlike lees die program, kan hy verwys na die boonste program deel en uit te vind die betekenis en aard van enige veranderlike. Dit is baie handig in programmering praktyk. Blok van voorlopige verwerking In hierdie voorbeeld is die preprocessing bestaan ​​uit twee dele (blok 3-4). Die program eindig werking as daar nie genoeg bars in 'n sekuriteits venster in so 'n geval is dit onmoontlik om korrek op te spoor (in blok 5-6) waardes van bewegende gemiddeldes wat nodig is vir die berekening van kriteria. Behalwe hier die waarde van die veranderlike Werk ontleed. In die normale EA werking die veranderlike waarde is altyd waar (dit eens gestel tydens inisialisering). As 'n kritieke fout begaan in die program operasie, valse aan hierdie veranderlike en begin () eindig sy operasie. Hierdie waarde sal nie in die toekoms verander, dit is hoekom die volgende kode nie uitgevoer word. In so 'n geval moet die program operasie gestaak word en die rede vir die kritieke fout moet opgespoor word (indien nodig, moet 'n handeling sentrum gekontak word). Na afloop van die situasie opgelos is, kan die program weer begin, dit wil sê die EA kan aangeheg word aan 'n sekuriteit venster. Rekeningkunde bestellings Die beskryf Expert adviseur kan werk net met een mark orde. Die taak van die bestellings rekeningkundige blok (blok 4-5) is om eienskappe van 'n oop einde te definieer, as daar een is. In die loop gaan deur bestellings vir alle bestaande mark en hangende bestellings nagegaan, naamlik van die eerste (int i1) om die laaste een (iampltOrdersTotal ()). In elke siklus iterasie die volgende bevel word gekies deur die funksie OrderSelect (). Die keuse is gemaak van 'n bron van oopgemaak en hangende bestellings (SELECTBYPOS). As die keuse suksesvol (dws daar is nog 'n bevel in die terminale) uitgevoer word, verder hierdie orde en die situasie moet ontleed word: of die bevel vir die veiligheid, waarteen die EA bedryf oopgemaak word, of die einde is die mark of hangende dit ook in ag geneem moet word wanneer die tel van bestellings. In die reël: alle bestellings oop vir 'n ander sekuriteit word uitgeskakel. Operateur voortgaan tot stilstand kom die iterasie en kenmerke van so 'n bevel word nie verwerk. Maar as die bestelling vir die veiligheid oopgemaak word, om die venster waarvan die EA is aangeheg, is dit verder ontleed. As OrderType () gee terug waarde van meer as 1 (sien Soorte Trades), die geselekteerde bevel is 'n hangende een. Maar in hierdie Expert Adviseur bestuur hangende bestellings is nie voorsien nie. Dit beteken dat die uitvoering van die begin () moet beëindig word, omdat 'n konflik situasie plaasgevind het. In so 'n geval na 'n boodskap oor die werking beëindiging begin () uitvoering is gestop deur die operateur terugkeer. As die laaste tjek toon dat die ontleed ten einde 'n mark orde, is die totale aantal bestellings vir 'n sekuriteit bereken en ontleed. Vir die eerste van sulke bestellings al die nodige eienskappe gedefinieer. As in die volgende iterasie die einde toonbank (veranderlike Total) die tweede mark orde bevind, is die situasie ook oorweeg om konflik wees, want die EA meer as een mark orde nie kan bestuur. In so 'n geval begin () uitvoering is gestaak nadat wat 'n ooreenstemmende boodskap. As gevolg van die einde rekeningkundige blok uitvoering (indien alle tjeks suksesvol was) die veranderlike Totaal bewaar sy waarde nul as daar geen mark bestellings, of kry die waarde 1 as daar 'n mark sodat ons veiligheid. In laasgenoemde geval stel sommige veranderlikes in ooreenstemming met die volgorde eienskappe (aantal, tipe, opening prys, stop vlakke en bestel waarde) ook hul waardes te kry. Berekening Trading kriteria in die ontleed byvoorbeeld definisie van handel kriteria (blok 5-6) word bereken op die basis van verskil tussen Bewegende Gemiddeldes met verskillende tydperke van gemiddeld. Volgens aanvaarde kriteria 'n grafiek is-bul gerig as die huidige waarde van die MA met kleiner tydperk is groter as die waarde van MA met groter tydperk, en die verskil tussen die waardes is groter as 'n sekere waarde. In 'n beer beweging MA met kleiner tydperk is laer as MA met groter tydperk en die verskil is ook groter as 'n sekere kritiese waarde. Op die blok begin waardes Mas met gemiddeld tydperke PeriodMA1 en PeriodMA2 bereken. Die feit van die betekenis van enige handel maatstaf is uitgespreek deur die waarde van 'n ooreenstemmende veranderlike. Veranderlikes OpnB en OpnS dui die maatstaf verwek vir die opening Koop en verkoop bestellings, veranderlikes CLS en ClsS - vir afsluiting. Byvoorbeeld, as 'n maatstaf vir die opening Koop nie geaktiveer, die waarde van OpnB bly valse (set by die veranderlike inisialisering) indien dit veroorsaak, OpnB kry die waarde ware. In hierdie geval is die maatstaf vir die sluiting van Sell val saam met dié vir die opening van koop, maatstaf vir die opening van Sell val saam met wat vir die sluiting van koop. Trading kriteria in hierdie voorbeeld aanvaar word gebruik vir opvoedkundige doeleindes en moet nie beskou word as 'n riglyn wanneer die handel op 'n ware rekening. Sluiting Bestellings Dit is vroeër geskryf dat dit Expert adviseur is bedoel vir 'n operasie net met een mark orde oopgemaak vir 'n sekuriteit, waaraan venster die EA is aangeheg. Om die oomblik wanneer beheer in die Program word geslaag om die orde sluitingstyd blok dit is bekend vir seker dat teen die huidige oomblik is daar óf geen bestellings vir die veiligheid, of is daar net een mark orde. Dis hoekom die kode in bestellings sluit blokkie geskryf sodat net een einde suksesvol kan gesluit word. Hierdie blok is gebaseer op die oneindige lus terwyl die liggaam van wat bestaan ​​uit twee analoog dele: een vir die sluiting van 'n koop orde, 'n ander vir die sluiting van 'n verkoop orde. Terwyl word hier gebruik vir die doel wat in die geval van 'n handelsmerk werking mislukking kan dit weer herhaal. In die kop van die eerste operateur as voorwaarde vir die sluiting van 'n koop orde word bereken (Sell bestellings is gesluit in die ooreenstemmende manier). As die soort van 'n vroeëre geopen orde ooreenstem met koop (sien Soorte Trades) en die teken vir die sluiting van Koop betrokke is, word beheer geslaag om die liggaam van as operateur waar 'n versoek om toe te maak gevorm. Soos 'n bevel sluitingsprys in die funksie OrderClose () die waarde van 'n twee-sided aanhaling wat ooreenstem met die volgorde tipe word aangedui (sien vereistes en beperkings in die maak van Trades). As 'n handelsmerk operasie suksesvol uitgevoer, nadat 'n boodskap oor die orde sluiting getoon die huidige terwyl iterasie is gestop en die uitvoering van die bevel sluit blok is verby. Maar as die operasie nie, die gebruiker-gedefinieerde funksie vir die verwerking van foute FunError () genoem (blok 10-11). Verwerkingsfoute As geslaag parameter in FunError () die laaste dwaling kode bereken deur GetLastError () gebruik word. Afhangende van die fout kode FunError () gee terug 1 As die fout is nie krities en die werking kan herhaal word, en 0 indien die fout is van kritieke belang. Kritieke foute is verdeel in twee tipes - diegene, waarna 'n program uitvoering voortgesit kan word (byvoorbeeld, 'n gemeenskaplike fout) en diegene, waarna uitvoering van enige handel bedrywighede moet gestop word (byvoorbeeld, geblokkeer rekening). As jy na 'n onsuksesvolle handel operasie die gebruiker-gedefinieerde funksie gee terug 1, is die huidige terwyl iterasie beëindig en gedurende die volgende iterasie nog 'n poging aangewend word om die werking te voer - om die orde te sluit. As die funksie gee terug 0, is die huidige aanvang () uitvoering gestop. Op die volgende blok begin () sal begin deur die kliënt terminale weer en indien toestande vir orde sluitingstyd bewaar, sal nog 'n poging om die orde te sluit word. As tydens fout verwerking is dit uitgevind het dat verdere uitvoering program is sinneloos (byvoorbeeld die program werk op 'n ou kliënt terminale weergawe) tydens die volgende begin die uitvoering van die spesiale funksie begin () sal in die blok van voorlopige verwerking wanneer beëindig ontleding van die waarde van die veranderlike Werk. Berekening Bedrag van Lot vir nuwe bestellings Bedrag van baie kan bereken word in ooreenstemming met 'n gebruikers instellings volgende een van die twee variante. Die eerste variant is 'n sekere konstante waarde wat deur 'n gebruiker. Volgens die tweede variant die bedrag van baie word bereken op die basis van 'n bedrag gelykstaande aan 'n sekere persentasie (deur 'n gebruiker te stel) van 'n gratis marge. Aan die begin van die blok van die definisie van die bedrag van die lot oor nuwe bestellings (blok 7-8) nodig waardes van 'n paar veranderlikes bereken - minimale toegelaat bedrag van baie en stap van baie verandering wat deur 'n makelaar, gratis marge en prys van een lot vir die veiligheid. In hierdie voorbeeld is die volgende word voorsien. As 'n gebruiker het 'n sekere nie-nul waarde van die eksterne veranderlike LTS, byvoorbeeld 0.5, is dit aanvaar as die bedrag van baie LTS wanneer 'n handel versoek om 'n bevel te maak gevorm. As 0 aan LTS, is die aantal baie LTS gedefinieer op grond van die veranderlike Prots (persentasie), gratis marge en voorwaardes wat deur 'n makelaar. Na LTS bereken word, is 'n tjek gedoen. As hierdie waarde is laer as die minimum toelaatbare waarde, is die minimale toegelaat waarde aanvaar. maar as vry marge is nie genoeg nie, ná 'n ooreenstemmende boodskap die begin () uitvoering beëindig. Opening Bestellings Die blok van die opening van bestellings (blok 8-9) soos die bakkies van die opening van bestellings is 'n oneindige lus rukkie. In die kop van die eerste operateur as voorwaardes vir die opening van 'n koop orde bereken: as daar geen bestellings vir die sekuriteit (veranderlike Total is gelyk aan 0) en die teken vir die opening van 'n koop orde betrokke is (OpnB is waar), beheer oorgedra word na as operateur liggaam vir die opening van 'n bevel. In so 'n geval na tariewe is verfris pryse vir stop vlakke word bereken. Waardes van stop vlakke word aanvanklik deur 'n gebruiker in eksterne veranderlikes StopLoss en TakeProfit stel. In 'n algemene geval kan 'n gebruiker waardes wat vir hierdie kleiner dat 'n makelaar kan parameters. Behalwe 'n makelaar die minimale toegelaat afstand op enige oomblik kan verander (dit is 'n dikwels geval op sterk markbewegings, byvoorbeeld, voor belangrik nuusvrystelling). Dis hoekom voordat elke bestelling opening stop vlakke moet bereken met inagneming van waardes opgestel bu n gebruiker en die minimale toegelaat waarde wat deur 'n makelaar. Vir die berekening van stop vlakke die gebruiker-gedefinieerde funksie NewStop () word gebruik as 'n geslaag parameter die stop vlak waarde deur 'n gebruiker te stel word gebruik. In NewStop () eers die huidige minimale Toegestane afstand bereken. As die deur 'n gebruiker stel waarde ooreenstem met 'n makelaars vereistes, is hierdie waarde teruggekeer. As dit is kleiner as die toelaatbare waarde, is die mag deur 'n makelaar waarde gebruik. Pryse van stop versoeke word bereken vanaf die ooreenstemmende twee kante aanhaling (sien vereistes en beperkings in die maak van Trades). A handel versoek om 'n bevel te maak gevorm met behulp van die funksie OrderSend (). Vir die berekening van orde opening prys en pryse van stop versoek die twee kante aanhaling waardes wat ooreenstem met die volgorde tipe gebruik word. As 'n handelsmerk operasie suksesvol was (dit wil sê 'n bediener het die getal van 'n oop einde) ná 'n boodskap oor 'n suksesvolle einde opening vertoon word. begin () uitvoering is klaar. As 'n bevel nie geopen en die kliënt terminale teruggekeer 'n fout, is die fout verwerk volgens die vroeëre beskryf algoritme. Sommige Kode Eienaardighede Die geanaliseer Expert adviseur kode is gerig op die implementering van 'n sekere strategie. Let 'n program reëls bevat veranderlikes en berekeninge wat jou sal verander word, indien die strategie verander. Byvoorbeeld, volgens die aanvaarde strategie die deskundige adviseur is ontwikkel om te werk net met een orde. Dit mag die veranderlike kaartjie gebruik beide vir die identifisering van 'n slot order nommer (in blok van die sluiting van 6-7) en vir die identifisering van 'n sukses van 'n handelsmerk werking uitvoering by die opening van 'n bevel (in die blok opening 8-9 ). In hierdie geval so 'n oplossing is aanvaarbaar. As ons egter die ontleed kode as die grondslag vir die implementering van 'n ander strategie te neem (byvoorbeeld toelaat teenoorgestelde bestellings) ons sal moet een of meer veranderlikes te stel om in staat wees om getalle geopen bestellings erken en identifiseer die sukses van handel bedrywighede. In verdere strategie veranderinge sal ons moet kom program lyne wat deel van logika vervat in die bron strategie verander. Naamlik in die orde rekeningkundige blok sal ons nie die program operasie beëindig indien daar verskeie oop bestellings vir 'n sekuriteit. Naas, sal die voorwaardes vir die opening en sluiting bestellings verandering alslo. Dit sal die kode verander in blokke van die opening en sluiting bestellings behels. Op grond van hierdie analise kan ons maklik die gevolgtrekking dat die beskryf eenvoudige Expert adviseur is nie volmaak nie. Ontledend die grafiek, kan ons die handel reëls of forex seine as herskryf: Koop wanneer die geel lyn is bo die rooi lyn verkoop wanneer die geel lyn is onder die rooi lyn plaas van die besteding van 'n lang tyd kodering hierdie forex strategie, met Molanis Strategie Bouwer jy kan 'n handel diagram wat die bewegende gemiddelde strategie in minute verteenwoordig skep. Net sleep en twee Tegniese Analise blokke, een te koop blok en een Sell blok. Verbind hulle en stel die blok parameters te kry 'n diagram soos die volgende: Dit handel diagram het twee handel paaie. Die linker een is uitgelig. Dit gaan van die begin af blok tot die einde blok. 'N Mens kan dit lees as: Koop 1 baie EURCAD (met 'n 100 pit Neem Wins en 50 pit stop verlies) wanneer die kort tydperk bewegende gemiddelde (9) is bo die lang tydperk bewegende gemiddelde (18). Onthou om die handel diagram in teenoorgestelde rigting te lees om die handel vloei. Die reg handel pad kan gelees word as: Verkoop 1 baie EURCAD (met 'n 100 pit Neem Wins en 50 pit stop verlies) wanneer die lang tydperk bewegende gemiddelde (18) is bo die kort tydperk bewegende gemiddelde (9). Die opwekking van die MQL kode vir Meta Trader met net een kliek op die spyskaart Trading Diagram, kliek op Genereer MQL4 Kode na die venster MQL4 Kode te kry. Molanis Strategie Bouwer kan jy jou deskundige adviseur direk oop te maak met Meta Trader of om dit te stoor as 'n MQ4 lêer. Moenie mis ons video handleiding oor

Comments

Popular Posts