Friday 24 November 2017

Forex Mql4


MQL4 Tutorial. The MQL4 Tutorial er en omfattende manual for MQL4 språk designet for å hjelpe en handelsmann optimalisere handel i Forex markedet ved automatisering av bestemte handlinger eller til og med alle handelsprosesser. MQL4 er et programmeringsspråk for trading strategier integrert til MetaTrader 4 handelsplattform MQL4 språk gjør det mulig å lage mekaniske handelssystemer, ekspertrådgivere, skript, tilpassede indikatorer og funksjonsbiblioteker, som automatiserer Internett-handel i henhold til en bestemt handelsstrategi, eller gjør det enklere å analysere markedet. Ekspertrådgivere, indikatorer og skript skrevet i MQL4 kan jobbe dagen og nattåpning og avsluttende handelsstillinger, samt å informere handelsmannen om alle programmerte endringer i Forex-markedet. MQL4-språk krever ingen spesiell datakunnskap. Alle har mulighet til å studere det algoritmiske programmeringsspråket av seg selv og teste den innhentede kunnskapen på demo og ekte kontoer. Opplæringen er en chm-fil som støttes av alle MS Windows operativsystemer Hvis den nedlastede boken ikke åpnes, høyreklikk filen, velg Egenskaper, og klikk deretter Unblock. Speculative trading with currencies og CFDs har høy risiko for kapital. Du kan miste hele innskuddet for kort sikt. Du bør ikke starte opp handel med ekte penger hvis du ikke har mulighet til å miste det. Før du legger inn midler, vurder nøye med din økonomiske kunnskap og appetitt for risiko. Enkel Expert Advisor. Problem 29 Opprett en handelsekspert Advisor. Preliminary Arguments. Before du begynner å programmere en handel Ekspertrådgiver, det er nødvendig å definere generelle prinsipper for et fremtidig program. Det er ingen strenge programskapende regler. Når en gang har opprettet et program, fortsetter en programmerer vanligvis å forbedre den. For å kunne forstå programmet i fremtiden må det være opprettet i samsvar med et godt gjennomtenkt og lettforståelig skjema, er det spesielt viktig om et program vil bli ytterligere forbedret av en annen programmerer T han mest praktiske programmet er det som består av funksjonelle blokker, som hver er ansvarlig for sin del av beregningene. For å lage en algoritme til en handelsekspert Advisor, la s analysere hva et operasjonsprogram skal gjøre. En av de viktigste dataene i Dannelsen av handelsordrer er informasjonen om bestillinger som allerede finnes i en klientterminal. Noen av handelsstrategier tillater kun en ensrettet ordre. Generelt, hvis en handelsstrategi tillater det, kan flere bestillinger være åpne i en terminal samtidig, men deres nummer bør være begrenset begrenset Ved bruk av en strategi bør handelsbeslutninger treffes under hensyntagen til den nåværende situasjonen. Før en handelsavgjørelse i et program er det nødvendig å vite hvilke handelsordre som allerede er åpnet eller plassert. Først og fremst må et program inneholde en blokk med ordreregnskap som er blant de første som skal utføres. Under en EA-gjennomføring bør handelsbeslutninger fattes, hvor implementeringen fører til til utførelse av handelsvirksomhet Kodedel ansvarlig for handelsordreformasjon er bedre skrevet i en separat blokk En ekspertrådgiver kan danne en handelsforespørsel om å åpne en ny ventende eller markedsordre, lukke eller endre noen eksisterende ordrer eller utfør ingen handlinger i det hele tatt En EA må også beregne bestillingspriser avhengig av brukerens ønske. Handelsbeslutninger bør gjøres i et program på grunnlag av handelskriterier Suksessen til hele programmet er avhengig av korrektheten av detektering av handelskriterier i programmet. Ved beregning av handelskriterier a Programmet kan og må ta hensyn til all informasjon som kan være nyttig. Eksempelvis kan en ekspertrådgiver analysere kombinasjon av tekniske indikatorverdier, tidspunkt for viktige nyheter, nåtid, verdier av enkelte prisnivåer osv. For enkelhets skyld er programdelen ansvarlig for beregning av handelskriterier skal skrives i en separat blokk. En handelsekspert Advisor må nødvendigvis inneholde feilbehandlingsblokk Analyzin g feil som kan oppstå i utførelsen av handelsoperasjon tillater på den ene siden å gjenta en handelsforespørsel og på den annen side å informere en bruker om en mulig konfliktsituasjon. Struktur av en enkel ekspertrådgiver. Nå er en strukturelle skjema av en enkel ekspertrådgiver konstruert på grunnlag av flere funksjonsblokker, i hver blokk en bestemt løsrevet del av beregninger. Fig. 109 Strukturskjema av en enkel ekspertrådgiver. I det følgende EA-utviklingsstadiet er det ingen programkode ennå. Samtidig blir algoritmen til et program i stor grad dannet. Hvordan EA bygget på basene av den tilbudte ordningen vil operere, kan lett forstås, bare se på skjemaet og orientere seg på blokknavn og relasjonsarrayer kontroll som går mellom dem. Etter program startkontroll blir sendt til blokken av foreløpig prosessering I denne blokken kan noen generelle parametere analyseres For eksempel hvis det ikke er nok streker i en vindusstang som er nødvendig for å beregne pa rammere for tekniske indikatorer, vil en EA ikke kunne operere på en hensiktsmessig måte. I et slikt tilfelle må en EA avslutte operasjonen for tidlig å informere en bruker om det og rapportere om årsaken til terminering. Dersom det ikke foreligger kontraindikatoner av generell karakter, blir kontrollen overført til bestille regnskapsblokk. I blokk med regnskapsordrer registreres antall og kvalitet på ordre som eksisterer i en klientterminal for en sikkerhet til vinduet som EA er knyttet til. I denne blokken skal ordre av andre verdipapirer elimineres Hvis en programmert handelsstrategi krever at du bruker bare markedsordrer og ikke bruker ventende ordrer, må faktumet for tilstedeværelse av ventende ordrer oppdages. Dersom en strategi kun aksepterer en markedsordre, og det faktisk er flere ordrer, bør dette faktum også være kjent. Oppgaven til bestillingsregnskapsblokken i Denne ordningen er i å definere om dagens handelssituasjon tilsvarer en forventet, dvs. det som EA kan tilstrekkelig operere hvis t han situasjonen tilsvarer, må kontrollen overføres til neste blokk for å fortsette EAs operasjon. Hvis ikke, må EAs operasjon avsluttes, og dette faktum må rapporteres til en bruker. Hvis det ikke er noen ordre i terminalen eller nummeret og Kvaliteten på eksisterende ordrer tilsvarer det som var forventet, kontrollen er overført til blokken med definerende handelskriterier. I denne blokken beregnes alle kriteriene som er nødvendige for å utføre handelsbeslutninger, nemlig kriterier for åpning, lukking og endring av ordre. Ytterligere kontroll overføres til blokken av avsluttende ordrer. Det er lett å forstå hvorfor i den tilbudte ordningen er blokkering av avsluttende ordrer utført tidligere enn blokk for åpningsordrer. Det er alltid mer rimelig å behandle første eksisterende ordrer lukke eller modifisere og først etter det for å åpne nye ordrer. Generelt, det er riktig å bli styrt av ønsket om å ha så små ordrer som mulig. Under utførelsen av denne blokken må alle ordrer, for hvilke sluttkriteriet er aktivert, må bli lukket. Etter at alle nødvendige bestillinger er stengt, sendes kontrollen til en blokk med størrelsesberegning av nye ordrer. Det er mange algoritmer for å beregne et ordrevolum. Den enkleste av dem bruker en konstant, fast masse størrelse. Det er praktisk å bruke denne algoritmen i et program for teststrategier Mer populær metode for å definere en ordrestørrelse er å sette antall masse avhengig av mengden fri marginal, for eksempel 30-40 av den. Hvis fri marginal ikke er nok, avslutter programmet operasjonen med informert en bruker om årsaken. Etter at antall partier for åpning av nye ordrer er definert, blir kontroll overført til bestillingsåpningsblokken. Hvis noen av de kalkulerte kriteriene tidligere peker på nødvendigheten av å åpne en ordre av en bestemt type, vil en handelsforespørsel åpne en ordre er dannet i denne blokken. Det er også feilanalyseringsblokk i en ekspertrådgiver Hvis en hvilken som helst handelstransaksjon feilet, blir kontroll bare i dette tilfellet sendt til feilbehandlingsblokken Hvis en feil returnert av en server eller klientterminalen er ikke avgjørende, er det enda et forsøk på å utføre en handelstransaksjon Hvis en kritisk feil returneres for eksempel, er en konto blokkert, en EA må avslutte driften. Husk, i MQL4 er det ingen mulighet for at programmet avslutter en EA s-operasjon i et sikkerhetsvindu som skiller seg fra skript, se Spesialfunksjoner Hva som kan gjøres i et program, er avslutningen av starten Ved en ny start av funksjonen, start på et nytt kryss av verdien av et bestemt variabel flagg som forbyder handel med denne saken aktivert som et resultat av en kritisk feil kan analyseres og kontroll kan overføres for avslutning av spesialfunksjonen, og dermed er det ikke tillatt å opprette ny handelsforespørsel. I den tilbudte ordningen blir flaggverdien analysert i blokkeringen av forbehandling. Strategi. Markedsprisene beveger seg konstant Markedsstatistikken kan på et hvilket som helst tidspunkt preges som en trend - sterk ensrettet prisendring stiger eller faller, eller som en flat-sidet prisbevegelse med svake avvik fra et visst gjennomsnitt. Disse markedsegenskapene er betingede, fordi det ikke er klare kriterier, hvilken trend eller flat kan identifiseres. For eksempel kan lange laterale bevegelser med sterke avvik som ikke kan spores til en flat eller en trend Generelt sett antas det at markedet hovedsakelig er i sidestørrelse, og trender finner vanligvis sted 15-20 av tiden. Fig 110 Flat og trend i markedet. Alle handelsstrategier kan også bli konvensjonelt delt inn i to hovedgrupper Den første gruppen inneholder flatorienterte strategier Hovedideen til slike strategier er at etter en tydelig avvikspris må gå tilbake til forrige posisjon, så er ordrer åpnet i retningen i strid med den siste prisbevegelsen. Den andre gruppen Strategier er trendstrategier, når ordrer åpnes i samme retning som saltprisbevegelsen. Det er mer kompliserte kombinerte strategier. Slike strategier tak e hensyn til mange forskjellige faktorer som karakteriserer markedet som et resultat handel kan utføres både på flat og trend Det er ikke vanskelig å implementere handel i henhold til denne eller den strategiske teknikken - MQL4 inneholder alle nødvendige midler for det Hovedarbeidet i etableringen av når en egen strategi består i å søke etter trading criteria. Trading Criteria. In dette eksemplet vil vi prøve å konstruere en trend Expert Advisor, det vil si den som vil åpne ordrer i prisbevegelsesretningen. Derfor må vi finne blant ulike tekniske indikatorer de som oppdager en trendbegrep En av de enkleste metodene for å søke handelskriterier er basert på analysen av kombinasjonen av MA med ulike gjennomsnittlige perioder Fig. 111 og Fig. 112 viser stillingen til to forskjellige MA med perioder med gjennomsnittlig 11 og 31 på ulike markeder deler Gjennomsnitt med liten gjennomsnittstid Røde linjer er nærmere et prisdiagram, vridd og bevegelig. Flytte gjennomsnitt med større gjennomsnittlig blå linje er gjennomsnittlig. mer inert, har større lag og ligger lenger fra markedsprisene. La oss være oppmerksom på steder der MA med ulike gjennomsnittsperioder krysser og prøver å bestemme om MA-krysset kan brukes som lesingskriterium. Fag 111 Kryssing av MA 11 og MA 31 når prisbevegelsesretningen endrer seg. I fig. 111 ser vi en markedsdel hvor åpningsordrer i retning av prisbevegelse ved MA-krysset er begrunnet. I punkt A krysser den røde linjen den blå fra bunnen oppover, etter at markedet prisen fortsetter å vokse i noen tid Videre omvendt MA-kryssing indikerer endringen i prisbevegelsesretningen Hvis vi åpner en kjøpsordre ved punkt A og lukker den ved B, vil vi få fortjeneste proporsjonal med forskjellen på A - og B-priser. Fig 112 Kryssing av MA 11 og MA 31 når kursbevegelsesretningen endres. Samtidig er det andre øyeblikk i markedet når MA krysser, men dette fører ikke til ytterligere betydelig prisvekst eller høst. Fig. 112 Ordrer åpnet ved MA-krysset på slike m oments vil føre til tap Hvis selgingen er åpnet på A og stengt ved B, vil slik handel medføre tap Det samme kan sies om en kjøpsordre åpnet ved B og stengt ved C. Suksessen til hele strategien implementert på grunnlag av MA kryssing avhenger av antall deler som kan karakteriseres som trend og flat I flat ofte er MA-kryssing en vanlig begivenhet som forstyrrer enhver trendstrategi. Tallrike falske signaler fører som regel til tap Derfor er dette krysset av MA med forskjellige gjennomsnittlig periode - kan kun brukes til å bygge handelsstrategier bare i kombinasjon med andre tegn som viser en trend. I dette eksemplet for å bygge en enkel Expert Advisor må vi nekte å bruke dette tegnet. Vi vil bruke et annet tegn. Analysere visuelt tegnet av prisendringer i Markedet kan vi se at en lang en-retningsprisstigning eller - fall ofte ser ut som følge av en kort sterk bevegelse. Med andre ord, hvis det i løpet av kort tid skjedde en sterk bevegelse, kan vi forvente at fortsettelse på mellomlang sikt. Fig 113 Sterk prisbevegelse kan føre til en trendutvikling. Fig. 113 viser markedsperioden da en sterk bevegelse førte til at prisendringen fortsatte i samme retning. Som en sterk bevegelse kan vi bruke forskjellen på MA med ulike gjennomsnittlige perioder Jo sterkere bevegelsen, desto større er MA-forsinkelsen med større gjennomsnittlig periode fra MA med en liten gjennomsnittlig gjennomsnitt. Dessuten gir selv sterke diskontinuerlige prisbevegelser med videre avkastning ikke en stor forskjell mellom MAs, det vil si at mange falske signaler ikke vises. For eksempel viste prishopp med 50 poeng med ytterligere retur i senteret i Fig 113 en økning i forskjellen mellom MAs bare med 20 poeng. Samtidig er en veldig sterk bevegelse som vanligvis ikke ledsages av en betydelig korreksjon i punkt A resulterte i forskjellen øker opp til 25-30 poeng. Hvis kjøpsordren åpnes når en viss verdi av forskjellen mellom MA er nådd, for eksempel i A, vil sannsynligvis det være lønnsomt når en pris når en forhåndsinnstilt Stoppordreverdi La oss bruke denne verdien som et handelskriterium i vår ekspertrådgiver. Antall ordrer. I dette eksemplet analyserer vi en ekspertrådgiver som tillater nærvær av bare en markedsordre, ventende ordrer er ikke gitt. En slik tilnærming er rettferdiggjort ikke bare i dette bestemte eksemplet, men kan brukes som grunnlag for enhver strategi. Ordrerende ordrer brukes vanligvis når en utvikler har ganske pålitelig kriterium for å prognose fremtidig prisendring med høy sannsynlighet Hvis det ikke foreligger et slikt kriterium, trenger ikke å bruke ventende ordrer. Situasjonen når flere motsatte bestillinger for en sikkerhet er åpne, kan heller ikke anses som fornuftige Det var tidligere skrevet at fra motsatt synspunkt er motsatte bestillinger vurdert å være meningsløs, spesielt hvis bestillingsprisene er like, se Lukke og slette ordrer I et slikt tilfelle bør vi lukke en bestilling av en annen og vente på et signal for å åpne en markedsordre i en bestemt retning. Relatelse av handelskriterier. Fra denne posisjonen blir det klart hvilke forhold som er mulige mellom handelskriteriene. Fig. 114 viser tre varianter av korrelasjon av handelskriterier, når hvert kriterium er viktig, gyldig. Handlinger åpne og lukke markedsordrer tar plasser med klokken på følgende bilder. Fig 114 Bestillingsåpning og avsluttende kriterier korrelasjon a og b - riktig, c - feil. Den mest populære varianten av et korrekt dannet handelskriterium er varianten a. Etter å ha blitt åpnet en markedsordre, holdes kjøpt til øyeblikket når kriteriet krever lukkestarter Etter det oppstår en pause når det ikke åpnes ordrer. Ytterligere en markedsordre Selg kan åpnes Forutsetninger for å lukke en Selgordre i samsvar med korrekt dannede kriterier, skjer tidligere enn vilkår for å åpne en Bestillingsordre. en kjøpsordre kan åpnes igjen, hvis et handelskriterium krever dette, men i henhold til denne varianten kan en markedsordre ikke b e åpnes dersom det er en åpen markedsordre i motsatt retning. Tilsvarende kriterier er korrelasjonen i varianten b Forskjellen er at et kriterium for å åpne noen markedsordre samtidig er et kriterium for lukking av motsatt rekkefølge Denne varianten som varianten a tillater ikke flere ordrer åpnet i terminalen samtidig på en sikkerhet. varianten av kriterier korrelasjon er feil i henhold til denne varianten åpning av en markedsordre er tillatt når strid ordrer ikke er lukket ennå, noe som er meningsløst det kan være sjeldne tilfeller når denne varianten er delvis begrunnet Åpning av en motsatt rekkefølge er noen ganger akseptabel for å kompensere tap som oppstår ved små korreksjoner etter sterke prisbevegelser. I slike tilfeller kan en motsatt rekkefølge åpnes med samme eller mindre verdi enn den allerede eksisterende og deretter stengt når korreksjonen er over En slik taktikk tillater ikke å forstyrre hovedordren åpnet i trendretningen. I generelle tilfelle er flere - Direction bestillinger er også mulig Dette kan være berettiget når en tidligere åpnet ordre er beskyttet av en Stop-ordre og kriteriet som peker på prisutviklingen i samme retning utløses igjen. Når en slik strategi er opprettet, må en utvikler være fullt klar over at i tilfelle av skarp prisbevegelse endres de anslåtte stoppordrene unexecuted av noen meglere ved første prisberøring og tapet vil stå i forhold til den totale verdien av en-retningsordrer på markedet. I vårt eksempel bruker vi variant b av handel kriterie korrelasjon Alle åpne markedsordrer er stengt enten med en stoppordre eller etter et kriterium for å åpne en ordre i motsatt retning utløser her kriteriet om å lukke Kjøp, sammenfaller med åpningssalg og omvendt. Størrelse på åpne ordrer. I en hvilken som helst handelsstrategisk rekkefølge størrelser bør være begrenset begrenset I et enkelt tilfelle brukes en fast ordreformat i en ekspertrådgiver. Før EA-operasjonsstart kan en bruker angi hvilken som helst størrelse av fremtidige ordrer og le ave det uendret i noen tid Videre hvis saldoen endres, kan en bruker sette opp en ny verdi av antall antall åpnede ordrer. En for liten ordstørrelse gir mer tillit til drift ved uforutsigbar endring i markedet, men fortjenesten i tilfelle suksess vil ikke så stor Hvis bestillingsstørrelsen er for stor, kan du få stort overskudd, men en slik EA vil være for risikabel. Vanligvis er størrelsen på åpnede ordrer satt opp, slik at marginskravene ikke overstiger 2-35 prosent av balansen. eller fri marginal dersom en strategi tillater kun en åpnet ordre, balanse og fri marginal for øyeblikket før bestillingsåpningen blir lik. I dette eksemplet implementeres begge varianter En bruker kan velge enten å angi direkte verdier av ordrer eller sette verdien i prosentandel fra fri marginal. Programmering Detaljer. En enkel trend Expert Advisor konstruert på grunnlag av tidligere argumenter kan se slik ut. Deskribere Variabler. En mer kriterium i program estimering er dens lesbarhet Et program er vurdert For å være korrekt skrevet, hvis det lett kan leses av andre programmører, er det derfor viktig at alle hovedprogramdeler og hovedmomenter som kjennetegner strategien, er kommentert. Dette er også grunnen til at det anbefales å erklære og kommentere alle variabler i begynnelsen av programmet . I blokk 1-2 beskrives eksterne og globale variabler. I henhold til regler må eksterne og globale variabler åpnes før deres første bruk, se Variabler, derfor de er deklarert i programhoveddelen. Alle lokale variabler av Funksjonsstart samles og beskrives i øverste funksjon delblokk 2-3 umiddelbart etter funksjonsoverskriften Regler for deklarering av lokale variabler krever ikke det, men forbud ikke heller Hvis en programmerer har problemer med å forstå betydningen av en variabel når han leser program, kan han referere til den øvre programdelen og finne ut betydningen og typen av hvilken som helst variabel. Det er veldig praktisk i programmeringspraksis. Blokk av foreløpig behandling. dette eksempelet forbehandlingen består av to delblokker 3-4 Programmet avslutter drift hvis det ikke er nok stenger i et sikkerhetsvindu i et slikt tilfelle er det umulig å oppdage i blokk 5-6 verdier av bevegelige gjennomsnitt som er nødvendige for beregning av kriterier. her er verdien av det variable arbeidet analysert I den normale EA-operasjonen er variabelverdien alltid sant. Den er satt en gang under initialiseringen. Hvis det oppstår en kritisk feil i programoperasjonen, er falsk tilordnet denne variabelen og begynner å fullføre operasjonen. Denne verdien vil ikke forandre seg i fremtiden, derfor er følgende kode ikke utført. I slike tilfeller må programoperasjonen stoppes og årsaken til den kritiske feilen må detekteres om nødvendig, et forretningssenter må kontaktes. Etter at situasjonen er løst, programmet kan startes igjen, det vil si at EA kan festes til et sikkerhetsvindu. Reklameordrer. Den beskrevne ekspertrådgiver tillater bare å jobbe med en markedsordre Ta sk av ordrene regnskapsblokk blokk 4-5 er å definere egenskapene til en åpnet rekkefølge, hvis det er en I løkken går gjennom bestillinger for alle eksisterende markeder og ventende ordrer blir sjekket, nemlig fra første int i 1 til den siste I lt OrdersTotal I hver syklusteerasjon velges neste rekkefølge med funksjonen OrderSelect. Valget er laget fra en kilde til åpne og ventende ordrer SELECTBYPOS. Hvis valget utføres vellykket, det er en ordre i terminalen, videre denne bestillingen og situasjonen må analyseres om bestillingen er åpnet for sikkerheten, der EA opererer, om bestillingen er marked eller ventende det, må også tas hensyn til når du teller ordrer. I linjen. all ordre åpnet for en annen sikkerhet, elimineres Operatør fortsett stopper iterasjonen og karakteristikkene til en slik ordre blir ikke behandlet. Men hvis bestillingen åpnes for sikkerheten, blir det videre analysert i vinduet som EA er knyttet til. Hvis O rderType returnerer verdi mer enn 1 se Type handel, den valgte rekkefølgen er en ventende, men i denne ekspertrådgiveren er det ikke gitt ledende ventende ordrer. Det betyr at utførelsen av start må avsluttes, fordi det oppstod en konfliktsituasjon i et slikt tilfelle etter en melding om operasjonsterminering startkjøring stoppes av operatørens retur. Hvis siste sjekk viste at den analyserte bestillingen er en markedsordre, beregnes og analyseres det totale antallet ordre for en sikkerhet. For den første av slike ordrer er alle nødvendige egenskaper definert Hvis i neste iterasjon finner rekkefølgervariabelen Total, finner den andre markedsordren, anses situasjonen også for å være konflikt, fordi EA ikke klarer å administrere mer enn en markedsordre. I et slikt tilfelle stoppes kjøringen etter at en tilsvarende melding er vist. Som et resultat av bestillingsblokkutførelsen dersom alle kontroller var vellykkede, variabelen Total opprettholder nullverdien dersom det ikke er noen markedsordrer , eller får verdien 1 hvis det er en markedsordre for sikkerheten i sistnevnte tilfelle vil noen variabler som er angitt i korrespondanse med ordreegenskapene tall, type, åpningspris, stoppnivå og ordreverdi også få sine verdier. Beregning av handelskriterier. Den analyserte eksempeldefinisjonen for handelskriteriene blokk 5-6 beregnes på grunnlag av forskjellen mellom Moving Averages med ulike perioder av gjennomsnitt. I henhold til aksepterte kriterier er et diagram bull-directed hvis den nåværende verdien av MA med mindre periode er større enn verdien av MA med større periode og forskjellen mellom verdiene er større enn en bestemt verdi I en bjørnbevegelse MA med mindre periode er lavere enn MA med større periode og forskjellen er også større enn en viss kritisk verdi. Ved blokkbegynnelsen Verdier av MA med gjennomsnittlige perioder PeriodMA1 og PeriodMA2 beregnes Fakta om betydning av ethvert handelskriterium uttrykkes via verdien av en tilsvarende variabel Variabler OpnB og OpnS angir kriteriet utløsende for åpning Kjøp og selg ordrer, variabler Cls og ClsS - for å lukke For eksempel hvis et kriterium for å åpne Buy ikke har utløst, forblir verdien av OpnB falsk satt til variabelinitialiseringen hvis den har utløst , OpnB får verdien sant I dette tilfellet er kriteriet for å lukke Selg sammenfallende med det for å åpne Kjøp, kriterium for åpning Selg sammenfallende med det for å lukke Buy. Trading kriterier akseptert i dette eksemplet brukes kun til pedagogisk formål og må ikke betraktes som en retningslinje når du handler på en ekte konto. Avsluttende ordrer. Det ble tidligere skrevet at denne ekspertrådgiveren kun er beregnet for operasjon med en markedsordre åpnet for sikkerhet, hvilket vindu EA er vedlagt til øyeblikket når kontrollen i programmet er passert til ordreavslutningsblokken, er det sikkert kjent at det for øyeblikket ikke er noen ordrer for sikkerheten, eller det er bare en markedsordre. Det er derfor koden i ordrer er lukkeblokken skrevet slik at bare en ordre kan lukkes med hell. Denne blokken er basert på uendelig sløyfe mens kroppen består av to analoge deler en for å lukke en kjøpsordre, en annen for å lukke en selgordre mens brukt her med det formål at i tilfelle av en feil i handelbruken, kan det gjentas igjen. I overskriften til den første operatøren dersom betingelsen for å lukke en kjøpsordre er beregnet. Selgordrene er lukket på analog måte. Hvis typen av en tidligere Åpnet ordre tilsvarer Kjøp se Typer av handler og tegnet for å lukke Kjøp er relevant, kontroll sendes til kroppen hvis operatør der en forespørsel om å lukke er dannet. Som en ordre sluttkurs i funksjonen OrderClose verdien av en tosidig sitat som svarer til ordrekortet er angitt, se se Krav og begrensninger i å gjøre handler Hvis en handelshandling utføres vellykket, etter at en melding om rekkefølgen avsluttes, vises den nåværende mens iterasjonen er stoppet og utførelsen av ordreavslutningsblokken er over, men hvis operasjonen mislykkes, blir den brukerdefinerte funksjonen for å behandle feil FunError kalt blokk 10-11.Prosessfeil. Som en passert parameter i FunError brukes den siste feilkoden beregnet av GetLastError Avhengig av feilkoden FunError returnerer 1 hvis feilen ikke er kritisk, og operasjonen kan gjentas, og 0 hvis feilen er kritisk. Kritiske feil er delt inn i to typer - hvoretter en programkjøring kan fortsette for eksempel en vanlig feil og de, hvorefter utførelsen av noen handelsoperasjoner må stoppes for eksempel blokkert konto. if etter en mislykket handel opererer den brukerdefinerte funksjonen tilbake 1, den nåværende mens iterasjonen avsluttes og i neste iterasjon gjøres et nytt forsøk å utføre operasjonen - for å lukke rekkefølgen Hvis funksjonen returnerer 0, stopper den nåværende startkjøpet på nytt. På neste kryss start startes klientterminalen igjen, og hvis betingelsene for å lukke ordre er bevart, vil et annet forsøk på å lukke ordren bli gjort. Hvis det under feilsøkingen blir funnet ut at videre programgjennomføring er meningsløst, for eksempel, opererer programmet på en gammel klientterminalversjon under neste start av utførelsen av spesiell funksjonstart vil bli avsluttet i blokkeringen av foreløpig behandling ved analyse av verdien av variabelen Work. Calculating Amount of Lot for New Orders. Amount of lots kan beregnes i henhold til en bruker s innstillinger etter en av de to varianter Den første variant er en bestemt konstant verdi satt opp av en bruker Ifølge den andre varianten beregnes mengden av partier på grunnlag av en sum som tilsvarer en viss prosentandel satt av en bruker av en fri margin. I begynnelsen av blokken med å definere mengden av partier for nye ordrer blokk 7-8 nødvendige beregningsverdier for enkelte variabler er beregnet - minimal tillatt mengde masse og trinn for mye endring satt opp av en megler, fri margin a nd prisen på ett parti for sikkerheten. I dette eksemplet er følgende gitt Hvis en bruker har opprettet en viss ikke-null-verdi av den eksterne variabelen Lts, for eksempel 0 5, aksepteres det som mengden Lt når en handelsforespørsel for å åpne en ordre dannes Hvis 0 er tildelt Lts, blir antall masse Lts definert på grunnlag av variabelen Prots prosent, fri margin og betingelser satt opp av en megler. Etter at Lts er beregnet, utføres en undersøkelse Hvis denne verdien er lavere enn den minimale tillatte verdien, aksepteres den minimale tillatte verdien, men hvis fri marginal ikke er nok, etter en tilsvarende melding, avsluttes startkjøpet. Oppkjøpsordrer. Blokken av åpningsordrer blokkerer 8-9 som blokken av åpningsordrer er en uendelig sløyfe mens I hovedet til den første operatøren dersom vilkårene for å åpne en kjøpsordre beregnes dersom det ikke er noen ordre for sikkerhetsvariabelen Totalt er lik 0 og tegnet for åpning av en kjøpsordre er relevant. OpnB er sant, kontroll er bestått ed til operatørorganet for å åpne en ordre I et slikt tilfelle etter satser er oppdaterte priser for stoppnivåer beregnet. Verdier av stoppnivåer settes opprinnelig av en bruker i eksterne variabler StopLoss og TakeProfit I en generell sak kan en bruker sette verdier for Disse parameterne mindre som en megler tillater. I tillegg til at en megler kan endre den minimale tillatte avstanden, er det et ofte tilfelle ved sterke markedsbevegelser, for eksempel før viktig nyhetsutgave. Det er derfor før hver bestilling åpner stoppnivåer må regnes med å ta i bruk kontoverdier angi bu en bruker og den minimale tillatte verdien satt opp av en megler. For å beregne stoppnivåer brukes den brukerdefinerte funksjonen NewStop som en passert parameter. Stoppnivåverdien som er satt av en bruker, brukes i NewStop først, den nåværende minimal tillatt avstanden er beregnet Hvis verdien som er satt av en bruker tilsvarer en megler s krav, returneres denne verdien Hvis den er mindre enn den tillatte verdien, brukes verdien som er tillatt av en megler P Risikoen for stoppforespørsler er beregnet ut fra det tilsvarende tosidige sitatet, se Krav og begrensninger i å gjøre handler. En handelsforespørsel om å åpne en ordre dannes ved hjelp av funksjonen OrderSend. For beregning av bestillingsåpningspris og priser på stoppanmodninger skal de tosidige Sitatverdier som svarer til ordretypen brukes. Hvis en handelsoperasjon var vellykket, da serveren returnerte nummeret til en åpnet ordre etter at en melding om en vellykket ordreåpning er vist, er startkjøpet ferdig. Hvis en ordre ikke ble åpnet og klientterminalen returnerte en error, the error is processed according to the algorithm described earlier. Some Code Peculiarities. The analyzed Expert Advisor code is oriented to the implementation of a certain strategy Note, some program lines contain variables and calculations that would be changed, if the strategy were changed. For example, according to the accepted strategy the Expert Advisor is developed to work only with one order This allowed to u se the variable Ticket both for the identification of a closing order number in block of closing 6-7 and for the identification of a success of a trade operation execution when opening an order in the block of opening 8-9 In this case such a solution is acceptable However, if we take the analyzed code as the basis for the implementation of another strategy for example allow opposite orders we will have to introduce one or several variables to be able to recognize numbers of opened orders and identify the success of trade operations. In further strategy modifications we will have to change come program lines containing part of logics contained in the source strategy Namely in the order accounting block we will not have to terminate the program operation if there are several open orders for a security Besides, conditions for opening and closing orders will alslo change This will entail the code changing in blocks of opening and closing orders. On the basis of this analysis we can easily co nclude that the described simple Expert Advisor is not perfect 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 think and manage all other functions, i e call them when needed. Forex CFD Trading on Stocks, Indices, Oil, Gold by XM. March 14, 2017 at 8 27 am GMT. Currency markets were in a wait-and-see mode during the Asian session as investors were cautious ahead of central bank meetings this week which include the. March 14, 2017 at 8 19 am GMT. EURUSD is currenlty down after recording a five-week high during yesterday s trading The RSI indicator is close to the 50 neutral level at 53, suggesting that. March 13, 2017 at 4 11 pm GMT. The upcoming parliamentary election in the Netherlands is at the forefront of investors minds this week as the event will be the first key test. March 13, 2017 at 9 17 am GMT. The Thai capital witnessed an important event this spring, the annual grand gala dinner, which was much anticipated by online investors who are clients of. March 10, 2017 at 9 36 am GMT. On 15th April, XM will be hosting yet another free forex seminar, and this time in Muscat, Oman Forex instructor Habib Akiki, along with the. March 9, 2017 at 9 05 am GMT. We would like to inform you that due to the seasonal change in the Daylight Savings Tiime, the trading hours of various instruments will be. There is a reason why over 1 Million Clients Choose XM for Forex Trading, Stock Indices Trading, Commodity Trading, Stocks, Metals and Energies Trading. Licensed and Regulated Broker. The XM Group is licensed by the FCA in the United Kingdom, the ASIC in Australia and CySec in Cyprus adhering to enhanced regulatory standards This gives our clients the freedom to focus on what is important their trading decisions. Globally Renowned. We have clients from over 196 countries and staff speaking over 30 languages Our management has visited over 120 cities globally to understand clients and partners needs. Focused on the Client. Size does not matter At XM the client comes first regardless of net capital worth, account type or size of investment All our clients receive the same quality services, the same execution, and the same level of support XM was founded on these values, and that will not change. Range of Trading Instruments. Our clients can choose to Trade Forex, Stock Indices, Commodities, Stocks, Metals and Energies from the same account With a wide range of trading instruments available from a single multi asset platform XM makes trading easier and efficient. Transparent and Fair. At XM what you see is what you get, with no hidden terms Be that pricing, execution or promotions What we advertise is what we give our clients, regardless of the size of their investment. Easy and Convenient. All our systems are built and updated with the client in mind Starting from our account opening procedure, to managing your account, depositing or withdrawing funds and finally trading, it s all straightforward simple and easy to use for all our clients. Legal is a trading name of Trading Point Holdings Ltd, registration number HE 322690, 12 Richard Verengaria Street, Araouzos Castle Court, 3rd Floor 3042 Limassol, Cyprus , which wholly owns Trading Point of Financial Instruments Ltd Cyprus , registration number HE 251334, 12 Richard Verengaria Street, Araouzos Castle Court, 3rd Floor, 3042 Limassol, Cyprus. This website is operated by Trading Point of Financial Instruments Ltd. Trading Point of Financial Instruments Ltd is regulated by the Cyprus Securities and Exchange Commission CySEC under license number 120 10, and registered with FCA FSA, UK , under reference no 538324 Trading Point of Financial Instruments Ltd operates in accordance with the Markets in Financial Instruments Directive MiFID of the European Union. Risk Warning Forex Trading involves significant risk to your invested capital Please read and ensure you fully understand our Risk Disclosure. Restricted Regions Trading Point of Financial Instruments Ltd does not provide services for citizens of certain regions, such as The United States of America.

No comments:

Post a Comment