Monday 6 November 2017

Lær Forex Trading For Nybegynnere Pdf Redaktør


Hvordan lære Forex Trading. Høy avkastning gjør valutamarkedene Forex et meget attraktivt investeringsalternativ for noen. Den høye risikoen i valutahandel kan føre til betydelige tap for selv erfarne handelsfolk. Lær så mye som mulig om hvordan denne bransjen fungerer før du vurderer å sette pengene dine og muligens skjorten på ryggen din på bordet. Les om grunnleggende valutahandel, sammen med de beste alternativene for de fleste forbrukere på Bankrate, et pålitelig nettsted med et vell av penger og investeringsrådgivning. Finn ut om svindel som er utbredt i denne bransjen på Federal Trade Commission FTC-nettstedet Dette byrået gjør forskrifter for å beskytte forbrukerne mot skruppelløse forhandlere som lover alt og leverer zip. FTC overvåker næringen veldig tett og utsteder regelmessige oppdateringer om viktige utviklinger. Oppgi en gratis praksis konto på Forex-nettstedet Gjør virtuelle valutahandler ved å bruke din gratis praksis konto i tretti dager Fortsett å foll ow markedet så lenge som nødvendig for å forstå hva du vet og hva du ikke vet. Få tips og triks levert til din postkasse av TopForexReview Få nyheter eller varsler om emner som kan påvirke valutaene du vurderer å handle. bare noen få valutaer, slik at du kan holde styr på endringer og mulige årsaker. Ta med en eller to forexhandlerfora og diskutere trender, problemer og feller i bransjen Still spørsmål i forumet De fleste brukere er vennlige og hjelpsomme til nybegynnere. Dra nytte av andre mennesker opplever og utvikler spillplanen din før du går videre. Legg til en liten sum av ekte praksispenger i løpet av en måned. Bruk penger som du allerede har allokert til skjønnsmessig inntekt, slik som besparelser fra morgenmagasinet ditt, bli vanlig i stedet for latte og lomme besparelsene, lunsj for en måned må du pakke lunsj eller bryte åpne myntenburken din og kontanter i halvparten, ikke alt på din lokale matvarebyttesenter. Velg et anerkjent currenc y handelssted eller megler, etter at du har evaluert anbefalinger fra andre handelsfolk og undersøkt dem på FTC-nettstedet. Prøv å holde fast ved budsjettet og spillplanen du gjorde når du praktiserer. Forexmiraket Tjen 600 per år. Trader gir en effektiv årlig vekst av 10 840.Malcolm Rees Forra måneden rapporterte Moneyweb om investeringsordningen NaxaInvest som tilbød investorer avkastning på 2 per dag, tilsynelatende gjennom handel i valutamarkedet forex. Etter rapporten var Financial Services Board FSB raskt i stand til å utstede en advarsel investorer for å unngå ordningen som det ikke var en autorisert leverandør av finansielle tjenester. Det er overraskende at forexforutsetninger har montert et forsvar for Naxas krav om at avkastning på over 600 er mulig gjennom valutahandel. En slik forexguru er FSB-lisensiert Johan van As . Suksessfulle forexhandlere kan gjøre mye bedre enn de 2 fortjenesten per dag som tilbys av disse ordningene, hevder han. Gjennom firmaet ForexMasters Van As tilbyr kundene tre-da y forex treningsprogrammer fra hjemmet hans, til en pris av R10 000. En heftig avgift, kanskje, men ikke om hva slags avkastning Van As hevder å kunne hjelpe sine klienter å oppnå, er mulig. Som forsvar for hans påstander, Van As har gitt Moneyweb med prospektet for PrivateFX et privatforvaltet forex-program som hevder å ha generert en 716 sammensatt avkastning på 14 måneder. Han hevder også at den internasjonale forexguru Greg Secker belaster R25 000 for to dager med trening og tre timers telefonsupport, i sammenligning. Van As advarer firmaer som handler på vegne av klienter, er veldig forsiktige med deres pengehåndtering og risikovurdering. Derfor er resultatene lavere enn det enkelte kan gjøre. Individer raker det inn. Noen individer inkluderer Van As klient Adrian, som tilsynelatende deponert 337 60 i sin handelsregning 11. juli 2007, og hevder å ha hatt en fortjeneste på 9 133 00 innen de følgende tre månedene. Det tilsvarer en årlig vekst på 10 840.Moneyweb har en kopi o F hans kontoer, noe som tyder på at disse vekstratene skal være nøyaktige. En annen slik vellykket forex-forhandler er Lourens Smit, en 80-årig pensjonist, en Van As-klient. For eksempel for den rette mannen, hvis du er rimelig kunnskapsrik med figurer, er en gave fra himmelen sier han. Jeg er ikke forberedt på å garantere dette, men jeg har gjort et gjennomsnitt på 10 hver måned jeg startet med 8k, og jeg jobbet opp til en svært betydelig mengde ganske få hundre tusen dollar innen mindre enn et år sa han. Det er ingen måte at noen med all erfaring i verden kan lære deg hva som skal skje i de neste fem minuttene. Men det er trender å følge, og det finnes 101 forskjellige metoder du kan bruke for å hjelpe deg med å bestemme om dette er en lang skudd eller kort skudd, sier han. Et kors av mestere. ForexMasters er på ingen måte en eneste stemme som synger sangen til fantastisk forex retur. I stedet ser det ut til å bli slått sammen av et stadig intensiverende kor av forexforkunnere. twitter stream, Van As fremmet U S forex software, forexdominator hvis skaperen, Cecil Robles, hevder å kunne forutsi bevegelser i valutamarkedet med 84 nøyaktighet. Ved å kjøpe programvare forex investorer don t nødt til å gjøre praktisk talt alt unntatt bestemme hvor mye fortjeneste du vil gjøre på mulighetene programvaren varsler deg om og iblant overvåker dine åpne bransjer. Programvaren er basert på 25 000 forskning og utvikling, og det gjør 99 av det store løftet for deg, hevder han. Greg Secker har også gjort sine runder i SA s motiverende talende fora, blant annet ved Sandton City, gjennom Kunnskap til Handling-kampanjen. Secker's løfter om å levere den største muligheten i menneskehetens historie gjennom hurtige forex millioner, er blitt utspurt av Storbritannias s Guardian, som viste at hans handelsselskap hadde netto eiendeler på bare 91 132 per 31. desember 2010 og hadde et tap i løpet av året på 97 13. Lokalt gir investeringsplattformen Trading Results investorene tilgang til den fantastiske re svinger generert av den amerikanske plattformen som viser en 931 13 gevinst siden november 2011.Trading Results nettsted hadde opprinnelig lovet investorer en 3 til 5 vekst per måned, men synes å ha endret uttalelsen siden det ble informert av Moneyweb som lovende avkastning utover 20 år over Repo-frekvensen er ulovlig i henhold til forbrukerbeskyttelsesloven. Vista har publisert sine resultater siden 2009 og har vist en vekst på mer enn 60 år, og i fjor viste de veksten på 100, sier direktør for Trading Results, Pierre Van der Walt. Så vi sier at vi tilbyr 40-60 vekst som er mindre enn det. Mens mange forex trading plattformer tilbyr en enkel og rask gateway til utallige millioner Van As er litt mer kommende om de involverte risikoene. Forex trading er ikke En enkel aktivitet, sier han, men legger til at det heller ikke er for vanskelig. Du må være en veldig disiplinert person, du må ha mye tålmodighet, må være i stand til å tåle stress, må ha en god forståelse g av markedene og må ha en god metode for å tolke markedsbevegelsene, sier han. Trader må være trygg med risikoen og må akseptere det faktum at han kan miste pengene sine hvis han gjør for mange feil. Det tar tid å utvikle seg ferdighet i handel Det er dessverre ingen hurtigreparasjon eller en rikshurtig oppskrift. Selv i lys av Van As advarsel, gir den tilsynelatende muligheten for lekere å generere avkastninger som dverg de oppnådd av faglige fondsledere, bønn om et bestemt åpenbart spørsmål. Hvorfor er det ikke flere investeringsforvaltere som plasserer kundens penger i Forex-midler, og hvorfor er det ikke mange eksperteksperter som tilbyr opplæring, ikke bare å komme inn på markedet selv for å generere avkastningen de lover i stedet for å bruke tid på å levere de dyre, men ikke utrolig dyre, trening programmene de tilbyr. Forex-markeder er uforutsigbare og volatile, så dette betyr at det er potensial til å tjene mye penger, men motsatt er også sant, sier Chantal Robertson, hea d av Specialist Sales på FNB. Forexmarkedet ville være en høyrisiko investering, og man ville derfor forvente å gi en bedre avkastning sammenlignet med å si en egenkapitalinvestering. Men med tanke på volatiliteten i markedene er det lite sannsynlig at massive avkastninger ville være oppnåelig på en bærekraftig basis. Et ord med forsiktighet for alle potensielle investorer når de blir lovet slike glimrende avkastninger, er at de trenger å sikre at de bruker et anerkjent firma. Dette gjelder spesielt når man bruker en utenlandsk handelsplattform. Tanya Woker, tidligere visepresident for handels - og industriministeriets forbrukerutvalg, har også advart om at, som med NaxaInvest, løfter de fantastiske avkastningene gjennom investering Muligheter som Forex blir ofte brukt som en front for å lokke investorer i ulovlige, raske, raske ordninger som Ponzis og pyramider. Robertson understreker at FNB, som autorisert forhandler, ikke tilbyr en spekulativ handelsplattform som et produkt. Steg-for-trinns veiledning for å skrive en ekspertrådgiver i MQL5 for nybegynnere. Denne artikkelen er rettet mot nybegynnere som ønsker å lære å skrive enkle ekspertrådgivere i det nye MQL5-språket Vi vil begynne først ved å definere hva vi vil ha vår EA Expert-rådgiver å gjøre, og deretter gå videre til hvordan vi vil at EA skal gjøre det.1 Handelsstrategi. Hva vår EA vil gjøre. Det vil overvåke en bestemt indikator, og når en bestemt betingelse er oppfylt eller visse betingelser er oppfylt, vil den legge handel enten en kort selg eller lang kjøp, avhengig av den nåværende tilstanden som er oppfylt. Ovenstående kalles en handelsstrategi Før du kan skrive en EA, må du først utvikle strategien du vil automatisere i EA. I dette tilfellet, la oss endre ovennevnte uttalelse slik at den reflekterer strategien vi ønsker å utvikle til en EA. We vil bruke en indikator som heter Flytter gjennomsnittlig med en periode på 8 Yo Du kan velge hvilken som helst periode, men i form av vår strategi vil vi bruke 8.Vi vil at vår EA skal legge en Long Buy-handel når Moving Average-8 for vår diskusjon skyld, jeg vil referere til det som MA - 8 øker oppover og prisen ligger nær den, og det vil plassere en kort selg når MA-8 faller nedover og prisen er nær under den. Vi skal også bruke en annen indikator som kalles gjennomsnittlig retningsbevegelse ADX med periode 8 også for å hjelpe oss med å avgjøre om markedet er trending eller ikke. Vi gjør dette fordi vi bare ønsker å gå inn i handel når markedet trender og slapp av når markedet er på linje. Det er ikke trending. For å oppnå dette, plasserer vi bare vår handel Kjøp eller selg når ovennevnte betingelser er oppfylt og ADX-verdien er større enn 22 Hvis ADX er større enn 22, men avtar, eller ADX er mindre enn 22, vil vi ikke handle, selv om betingelsen B er oppfylt. Vi vil også Beskytt oss selv ved å sette et Stopp tap på 30 pips, og for vår Profit ta Rget vil vi målrette en fortjeneste på 100 pips. We vil også at vår EA skal se etter Kjøp selg muligheter bare når en ny bar er blitt dannet, og vi vil også sørge for at vi åpner en kjøpsposisjon hvis kjøpsbetingelsene er oppfylt, og vi gjør det ikke allerede har en åpnet og åpner en Selg posisjon når salgsbetingelsene er oppfylt, og vi har ikke allerede en åpnet. Vi har nå utviklet vår strategi. Det er nå på tide å begynne å skrive vår kode.2 Skrive en ekspert Advisor. Begin ved å lansere MetaQuotes Language Editor 5 Trykk deretter Ctrl N eller klikk på Ny knapp på menylinjen. Figur 1 Start et nytt MQL5-dokument. I vinduet MQL5 Wizard velger du Expert Advisor og klikker Neste som vist på Fig. 2.Figur 2 Valg programtype. I det neste vinduet skriver du inn navnet du vil gi til EA i boksen Navn I dette tilfellet har jeg skrevet MyFirstEA Du kan deretter skrive inn navnet ditt i Forfatter-boksen og også din nettadresse eller e-postadresse i lenken boks hvis du har en. Figur 3 Generelle egenskaper til Expert Adv isor. Since. Vi ønsker å kunne endre noen av parametrene for vår EA for å se hvilke verdier som kan gi oss det beste resultatet, vil vi legge til dem ved å klikke på Add-knappen. Figur 4 Innstilling EA-inngangsparametre. vår EA, vi vil kunne eksperimentere med innstillingene for Stop Loss, Take Profit, ADX Period og Moving Average Period, så vi vil definere dem på dette punktet. Dobbeltklikk under Navn-delen og skriv navnet på parameteren, dobbeltklikk under Type for å velge datatypen for parameteren, og dobbeltklikk under delen Innledende verdi og skriv inn startverdien for parameteren. Når du er ferdig, skal den se slik ut som dette. Figur 5 Datatyper EA input parametere. Som du kan se over, valgte jeg integer int datatype for alle parametrene La oss snakke litt om datatyper. char Karetypen tar 1 byte med minne 8 bits og tillater uttrykk i binær notasjon 2 8 256 verdier Karetypen kan inneholde både positiv og negativ verdier Verdien av verdi er fra -128 til 127.uchar Uchar-integertypen opptar også 1 byte minne, samt karetype, men i motsetning til det er uchar kun ment for positive verdier. Minimumverdien er null, maksimumverdien er 255 Det første bokstaven u i navnet på uchar-typen er forkortelsen for unsigned. short Størrelsen på den korte typen er 2 bytes 16 bits, og dermed tillater det å uttrykke verdier som er lik 2 til strømmen 16 2 16 65 536 Siden den korte typen er et tegn, og inneholder både positive og negative verdier, er verdien av verdier mellom -32 768 og 32 767.orthort Den usignerte korte typen er typen ushort som også har en størrelse på 2 byte Minsteverdien er 0, maksimumverdien er 65 535.int Størrelsen på int-typen er 4 byte 32 bits. Minimalverdien er -2 147 483 648, den maksimale er 2 147 483 647.uint Den usignerte heltall typen er uint Det tar 4 byte minne og lar uttrykk heltall fra 0 til 4 294 967 295.long Størrelsen på den lange typen er 8 byte 64 bits Minimumsverdien er -9 223 372 036 854 775 808, maksimumsverdien er 9 223 372 036 854 775 807.ulong Ulong-typen okkuperer også 8 byte og kan lagre verdier fra 0 til 18 446 744 073 709 551 615. Fra de ovennevnte beskrivelsene av de ulike datatyper er de usignerte heltalltypene ikke utformet for å lagre negative verdier. Et forsøk på å angi en negativ verdi kan føre til uventede konsekvenser. For eksempel hvis du vil lagre negative verdier , du kan ikke lagre dem i de usignerte typene, dvs. uchar, uint, ushort, ulong. Tilbake til vår EA Ser du på datatyper, vil du være enig med meg om at vi antar å bruke char eller uchar datatyper siden dataene vi har til hensikt å butikken i disse parameterne er mindre enn 127 eller 255 henholdsvis For god minnestyring er dette den beste tingen å gjøre. Men for diskusjonens skyld holder vi oss fortsatt til int type. Når du er ferdig med å sette alle nødvendige parametere, klikk på Ferdig-knappen og MetaQuote s Editor vil opprette skjelettet av koden for deg som vist i neste figur. Lagt s koden kuttes inn i de ulike seksjonene for bedre forståelse. Øverste del Overskrift av koden er der eiendommen til EA er definert Du kan se at her er verdiene du fyllte inn i MQL5-veiviseren i figur 3.I denne delen av koden kan du definere flere parametere som beskrivelse kortfattet tekstbeskrivelse av EA, deklarere konstanter, inkludere tilleggsfiler eller importfunksjoner. Når en setning begynner Med et symbol kalles det et preprosessor-direktiv, og det slutter ikke med et semikolon. Et annet eksempel på preprosessor-direktiver inkluderer. Definer direktivet brukes til konstantdeklarasjon. Det er skrevet i skjemaet. definer identifiserer tokenstring. What dette gjør er å erstatte hver forekomst av identifikator i koden din med verdien tokenstring. definer ABC 100 definere COMPANYNAME MetaQuotes Software Corp. Det vil erstatte alle forekomster av COMPANYNAME med strengen MetaQuotes Software Corp, eller det vil erstatte alle forekomster av ABC med karbon eller heltall 100 i koden. Du kan lese mer om preprosessorens direktiver i MQL5 Manual La oss nå fortsette med vår diskusjon. Den andre delen av toppteksten til koden vår er innspillingsparameteren. Vi angir alle parametere, som vil bli brukt i vår EA i denne delen Dette inkluderer alle variabler som vil bli brukt av alle Funksjonene vi skal skrive i vår EA. Variabler erklært på dette nivået kalles Global Variables fordi de er tilgjengelige for alle funksjoner i vår EA som kan trenge dem. Inngangsparametrene er parametere som kun kan endres utenfor vår EA. Vi kan også erklære andre variabler som vi vil manipulere i løpet av vår EA, men vil ikke være tilgjengelig utenfor vår EA i denne delen. Neste er EA-initialiseringsfunksjonen Dette er granen st funksjon som kalles når EA er lansert eller festet til et diagram, og det kalles bare en gang. Denne delen er det beste stedet å gjøre noen viktige kontroller for å sikre at vår EA fungerer veldig bra. Vi kan bestemme om du vil vite om diagrammet har nok barer for vår EA til å jobbe osv. Det er også det beste stedet å få håndtakene vi skal bruke til våre indikatorer ADX og Moving Average indicators. The OnDeinit funksjonen kalles når EA er fjernet fra diagrammet. For vår EA, vil vi frigjøre håndtakene som er opprettet for våre indikatorer under initialiseringen i denne delen. Denne funksjonen behandler NewTick-hendelsen som genereres når et nytt tilbud mottas for et symbol. Merknad, den ekspertrådgiveren kan ikke utføre handelsoperasjoner hvis bruk av ekspertrådgivere i klientterminalen er ikke tillatt. Knappen Auto Trading. Figur 6 Autotrading er aktivert. De fleste av kodene våre som vil implementere vår handelsstrategi, utviklet tidligere, vil bli skrevet i denne delen. Nå har vi sett på e ulike deler av koden for vår EA, la oss begynne å legge kjøtt til skjelettet.2 2 INGANGSPARAMETRE AVSNITT. Som vi kan se, har vi lagt til flere parametere Før vi fortsetter å diskutere de nye parameterne, la oss diskutere noe du kan se nå De to fremre skråstrekkene gir oss mulighet til å legge kommentarer i kodene våre. Med kommentarer kan vi vite hva våre variabler står for, eller hva vi gjør på det tidspunktet i koden. Det gir også en bedre forståelse av koden vår. er to grunnleggende måter å skrive kommentarer på. Dette er en linje med en linje. Dette er en multi-line kommentar. Dette er en multi-line kommentar. Flertalls kommentarer starter med symbolet og slutter med den. Kompilatoren ignorerer alle kommentarer når du samler koden din. Bruk enkle linjeproblemer for inngangsparametrene er en god måte å gjøre våre EA-brukere forstå hva disse parametrene står for. På EA Input-egenskapene, vil brukerne våre ikke se parameteren selv, men i stedet vil de se kommentarene som vist under. Figure 7 Expert Advisor inngangsparametere. Nå, tilbake til vår kode. Vi har bestemt oss for å legge til flere parametere for vår EA EAMagic er det magiske tallet for alle bestillinger fra vår EA Minimum ADX-verdi AdxMin er erklært som en dobbel datatype En dobbel brukes til å lagre flytpunktkonstanter, som inneholder et heltall, et desimalpunkt og en brøkdel del. double mysum 123 5678.double b7 0 09876. Partiet til handel Lot representerer volumet av det finansielle instrumentet vi ønsker å handel Da erklærte vi andre parametere som vi skal bruke. AdxHandle skal brukes til å lagre ADX-indikatorhåndtaket, mens maHandle vil lagre håndtaket for Moving Average-indikatoren. PlsDI, minDI, adxVal er dynamiske arrays som vil holde verdier av DI, - DI og hoved ADX av ADX-indikatoren for hver linje på diagrammet. maVal er et dynamisk array som vil holde verdiene av den bevegelige gjennomsnittlige indikatoren for hver linje på diagrammet. På den måten, hva er dynamiske arrayer Et dynamisk array er en array erklært uten en dimensjon Med andre ord, ingen verdi er spesifisert i paret av firkantede parenteser En statisk matrise, derimot, har sine dimensjoner definert ved punktet for declaration. double allbars 20 dette vil ta 20 elements. pclose er en variabel vi vil bruke til å lagre Lukk pris for linjen vi skal overvåke for å sjekke våre Kjøp Selg handler. STP og TKP skal brukes til å lagre stoppet og ta fortjenesteverdiene i vår EA.2 3 EA INTELLISASJONSDATO. Her oppnår vi håndtakene til vår indikator ved hjelp av de respektive indikatorfunksjonene. ADX-indikatorhåndtaket oppnås ved å bruke iADX-funksjonen. Det tar diagramsymbolet NULL betyr også det nåværende symbolet på det nåværende diagrammet, diagramperioden tidsramme 0 også betyr den nåværende tidsrammen på det nåværende diagrammet, ADX-gjennomsnittsperioden for beregning av indeksen som vi tidligere definerte under inngangsparameterseksjonen som parametere eller argumenter. int iADX-strengsymbol, symbolnavn ENUMTIMEFRAMES p eriod, periode int adxperiode gjennomsnittlig periode. Moving Average indikatorhåndtaket oppnås ved å bruke iMA-funksjonen. Det har følgende argumenter. tabelsymbolet som kan oppnås ved hjelp av symbolsymbol eller NULL for det nåværende symbolet på det nåværende diagrammet. tidsramme som kan oppnås ved hjelp av perioden eller 0 for gjeldende tidsramme på det nåværende diagrammet. Flytende gjennomsnittlig gjennomsnittlig periode som vi definerte tidligere under inngangsparameterseksjonen. Skiftet av indikatoren i forhold til prisdiagramforskyvningen er her. Gjennomsnittlig utjevningstype kan være noen av følgende gjennomsnittlige metoder. Enkel gjennomsnittlig-MODESMA, eksponentiell gjennomsnittlig-MODEEMA, glatt gjennomsnittlig-MODESMMA eller lineærvektet gjennomsnittlig-MODELWMA, og prisen som brukes for gjennomsnittet her bruker vi den nære price. int iMA-strengen symbol symbol navn ENUMTIMEFRAMES periode periode int karteriod gjennomsnitt periode int mashift horisontal skift ENUMMAMETHOD mamethod utjevning type ENUMAPPLIEDPRICE appliedpri ce type pris eller handle. Vennligst les MQL5 manualen for å få mer informasjon om disse indikatorfunksjonene. Det vil gi deg en bedre forståelse av hvordan du bruker hver indikator. Vi prøver igjen å sjekke om det er feil hvis funksjonen ikke var vellykket tilbake håndtaket, vi får en feilmelding Vi bruker varslingsfunksjonen til å vise feilen ved hjelp av GetlastError-funksjonen. Vi bestemmer oss for å lagre stoppfallet og ta fortjenesteverdiene i variablene STP og TKP vi erklært tidligere Hvorfor gjør vi dette. Det er fordi verdiene som er lagret i INPUT-parametrene, er skrivebeskyttet. De kan ikke endres. Så her vil vi sørge for at vår EA fungerer veldig bra med alle meglere. Digits eller Digits r eturns antall desimaltall som bestemmer nøyaktigheten av prisen av det nåværende diagramsymbolet For et 5-sifret eller 3-sifret prisdiagram multiplicerer vi både Stop-loss og Take Profit ved 10.2 4 EA DEINTIALIZATION SECTION. Since denne funksjonen kalles når EA er deaktivert eller fjernet f rom et diagram, vil vi slippe alle indikatorhåndtakene som ble opprettet under initialiseringsprosessen her. Vi opprettet to håndtak, en for ADX-indikator og et annet håndtak for Moving Average-indikatoren. Vi vil bruke indikatorenRelease-funksjonen for å oppnå dette. Det tar bare en argument indikatorhåndtaket. bool IndikatorRelease int indikatorhåndtak indikatorhåndtak. Funksjonen fjerner et indikatorhåndtak og frigjør beregningsblokken på indikatoren hvis den ikke er benyttet.2 5 EA ONTICK SECTION. Det første vi må gjøre her er for å sjekke om vi har nok barer på det nåværende diagrammet. Vi kan få de totale stengene i historien til et diagram ved hjelp av Bars-funksjonen. Det tar to parametere, symbolet kan fås ved hjelp av symbol eller symbol. Disse to returnerer gjeldende symbol for det nåværende diagrammet som vår EA er vedlagt, og perioden eller tidsrammen for det nåværende diagrammet kan oppnås ved hjelp av Periode eller Periode. Disse to returnerer tidsrammen til det aktuelle diagrammet hvor t han EA er knyttet. Hvis de totale tilgjengelige linjene er mindre enn 60, vil vi at vår EA skal slappe av til vi har nok barer tilgjengelig på diagrammet Alarmer-funksjonen viser en melding i et eget vindu. Det tar noen verdier adskilt av komma som parameterargument I dette tilfellet har vi bare én strengverdi. Avkastningen utgår fra initialiseringen av vår EA. Expert Advisor vil utføre handelsoperasjoner i begynnelsen av en ny linje, så det er nødvendig å løse problemet med den nye stavidentifikasjonen. , vi vil være sikre på at vår EA ikke ser etter Long Short oppsett på hvert kryss, vi vil bare at vår EA skal sjekke om Long Short posisjoner når det er en ny bar. Vi begynner med å erklære en statisk datetime variabel OldTime som vil lagre Bar-tiden Vi erklærte det som statisk fordi vi vil at verdien skal beholdes i minnet til neste anrop av OnTick-funksjonen. Da vil vi kunne sammenligne verdien med NewTime-variabelen også av datetime datatype, som er en matrise o f ett element for å holde den nye nåværende stangtiden Vi har også erklært en bool datatypevariabel IsNewBar og setter sin verdi til falsk Dette skyldes at vi vil at verdien sin skal være SANTE bare når vi har en ny bar. Vi bruker CopyTime-funksjonen for å få tiden til den nåværende linjen Det kopierer baretiden til matrisen NewTime med ett element hvis det lykkes, sammenligner vi tiden til en ny linje med den forrige barstiden. Hvis tiden ikke er like, betyr det at vi har en ny bar, og vi stiller variabelen IsNewBar til TRUE og lagrer verdien av gjeldende bar tid til variabelen OldTime. The variabelen IsNewBar indikerer at vi har en ny bar Hvis det er FALSK, fullfører vi utførelsen av OnTick-funksjonen. Ta en titt ved koden. it sjekker for feilsøkingseksjonen, vil den skrive ut meldingen om stangtider når feilsøkingsmodus, vil vi vurdere det videre. Den neste tingen vi vil gjøre her, er å sjekke om vi har nok barer til å jobbe med Hvorfor gjenta det Vi vil bare være sikre på at vår EA fungerer riktig, det burde Vær oppmerksom på at mens OnInit-funksjonen bare kalles en gang når EA er koblet til et diagram, blir OnTick-funksjonen kalt hver gang det er et nytt kryss pris. Du observerer at vi har gjort det på en annen måte her. Vi bestemmer oss for å lagre totale stenger i historien som vi oppnådde fra expression. in en ny variabel, erklærte Mybars innenfor OnTick-funksjonen Denne typen variabel er en lokal variabel, i motsetning til variabelen som vi erklærte på INPUT PARAMETERS-delen av koden mens variablene ble erklært til Input Parameters delen av koden vår er tilgjengelig for alle funksjoner, i vår kode som kan trenge dem, er variabler som er deklarert innenfor en enkelt funksjon, begrenset og tilgjengelig for den funksjonen. Den kan ikke brukes utenfor den funksjonen. Nedenfor erklærte vi noen få variabler av MQL5 struktur typer som vil bli brukt i denne delen av vår EA MQL5 har ganske mange bygget i strukturer som gjør ting ganske enkelt for EA utviklere La oss ta strukturene en akter er den andre. Dette er en struktur som brukes til å lagre de nyeste prisene på symbol. struct MqlTick datetime tid Tid for de siste prisene oppdateres dobbelt bud Nåværende Bud pris dobbelt spør Aktuelt Spør pris dobbelt siste Pris på siste avtale Siste ulong volum Volum for nåværende siste pris. Enhver variabel som er oppgitt å være av typen MqlTick, kan enkelt brukes til å oppnå nåværende verdier av Spør, Bud, Siste og Volum når du ringer SymbolInfoTick-funksjonen. Så vi erklærte nyeste pris som en MqlTick-type slik at vi kunne bruke det for å få Ask og Bud priser. Denne strukturen brukes til å utføre alle handelsforespørsler for en handelsoperasjon. Den inneholder i alle strukturer alle feltene som er nødvendige for å utføre en handel deal. struct MqlTradeRequest ENUMTRADEREQUESTACTIONS handling Handling type ulong magic Expert Advisor ID magisk nummer ulong rekkefølge Bestill billett streng symbol Handel symbol dobbeltvolum Forespurt volum for en avtale i mye dobbel pris Pris dobbelt stopplimit StopLimit nivå av bestil dobbel sl Stop Loss nivå av rekkefølgen double tp Ta Profit nivå av bestillingen ulong avvik Maksimal mulig avvik fra forespurt pris ENUMORDERTYPE type Ordre type ENUMORDERTYPEFILLING typefilling Ordreutførelse type ENUMORDERTYPETIME typetid Ordreutførelse tid datetime utløp Bestill utløps tid for ordrene av ORDERTIMESPECIFIED skriv streng kommentare Bestill kommentar. Enhver variabel som er erklært å være av typen MqlTradeRequest, kan brukes til å sende ordrer til vår handel. Her erklærte vi mrequest som en MqlTradeRequest type. Resultatet av enhver handel operasjon returneres som en spesiell forhåndsdefinert struktur av MqlTradeResult type Enhver variabel som er oppgitt for å være av MqlTradeResult type, vil kunne få tilgang til handelsforespørselen results. struct MqlTradeResult uint retcode Drift returkode ulong deal Avtale billett, hvis det utføres ulong rekkefølge Bestill billett, dersom det plasseres dobbeltvolum Avtalevolum, bekreftet av megler dobbelt pris Deal pris, bekreftet b y megler dobbelt bud Nåværende Bud pris dobbelt spør Aktuelt Spør pris streng kommentar Meldinger kommentar til operasjon som standard det er fylt av operasjonsbeskrivelsen. Prisen Åpen, Lukk, Høy, Lav, Tid, Volumene på hver linje og spredningen for et symbol lagres i denne strukturen. En hvilken som helst array som er oppgitt å være av MqlRates-typen, kan brukes til å lagre prisen, volumene og spredningshistorikken for et symbol. struct MqlRates datetime tid Periode starttid dobbel åpen Åpent pris dobbel høy Høyeste pris på periode dobbelt lav Laveste pris for perioden dobbelt lukk Lukk pris lang tickvolume Tick volum int spredning Spred lang realvolume Handelsvolum. Her har vi erklært en matrise som vil bli brukt til å lagre denne informasjonen. Nedenfor bestemmer vi for å angi alle arrays vi vil bruke til å lagre Bars-detaljer som serier Dette er for å sikre at verdiene som skal kopieres til arrays, blir indeksert som tidsseriene, det vil si 0, 1, 2, 3, for å korrespondere med stolpene ind ex Så vi bruker ArraySetAsSeries function. bool ArraySetAsSeries ugyldig array array ved referanse bool set true, angir omvendt rekkefølgen på indeksering. Det skal bemerkes at dette også kan gjøres en gang i initialiseringsdelen av koden vår. Jeg har imidlertid bestemt meg for å vise det på dette punktet for vår forklaring. Vi bruker nå SymbolInfoTick-funksjonen for å få det siste pristilbudet Denne funksjonen tar to argument diagramsymbol og MqlTick strukturvariabelen latestprice Igjen, hvis det er feil, rapporterte vi det. Neste vi kopierte informasjon om de siste tre linjene i vårt Mqlrates-type-array ved hjelp av funksjonen Copy Rates Funksjonen Copy Rates brukes til å få historikkdata for MqlRates-strukturen til en spesifisert Symbol-periode i spesifisert mengde til en MqlRates-type array. int Kopier priser streng-symbolnavn symbolnavn ENUMTIMEFRAMES tidsramme period int startpos start position int count data count to copy MqlRates ratesarray target array to copy. The symbol name is obtained by usi ng symbol the current period timeframe is obtained by using period For the start position, we will start from the current bar, Bar 0 and we will count only three Bars, Bars 0, 1, and 2 The result will be store in our array, mrate. The mrate array now contains all the price, time, volumes and spread information for bars 0 1 and 2 Therefore to get the details of any bar, we will use the following. for example, we can have the following information about each bar. Bar 1 Start time Bar 1 Open price Bar 0 current bar high price, etc. Next we, copied all the indicator values into the dynamic arrays we have declared using the CopyBuffer function. int CopyBuffer int indicatorhandle , indicator handle int buffernum , indicator buffer number int startpos , start position int count , amount to copy double buffer target array to copy. The indicator handle is the handle we created in the OnInit section Concerning buffer numbers, the ADX indicator has three 3 buffers. The Moving Average indicator has only one 1 buffer. We copy from the present bar 0 to the past two bars So amount of records to copy is 3 bars 0, 1 and 2 The buffer is the target dynamic arrays we had earlier declared adxVal, plsDI, minDI and maVal. As you can see here again, we try to capture any error that may occur in the copying process If there is error, no need to go further. It is important to note that the CopyBuffer and the CopyRates function returns the total number of records copied on su ccess while it returns -1 incase of an error That is why we are checking for a value less than 0 zero in the error checking functions here. At this point we want to check if we already have a Buy or Sell position opened, in order words, we want to make sure we have only ONE Sell or Buy trade opened at a time We do not want to open a new Buy if we already have one, and we do not want to open a new Sell if we already have one opened. To achieve we will first of all declare two bool data type variables Buyopened and Sellopened which will hold a TRUE value if we already have a position opened for either Buy or Sell. We use the trade function PositionSelect to know if we have an open position This function returns TRUE if we have a position opened already and FALSE if we have none. It takes, as the major argument parameter, the symbol currency pair we want to check Here, we use symbol because we are checking the current symbol currency-pair. If this expression returns TRUE, then we want to check if the position opened is a Buy or a Sell We use the PositionGetInteger function for this it gives us the type of position opened when we use it with the POSITIONTYPE modifier It returns the Position type identifier which can either be POSITIONTYPEBUY or POSITIONTYPESELL. In our case, we used it to determine which of the position we already have opened If it is a Sell, we store a TRUE value in Sellopened and if it is a Buy, we store a TRUE value in Buyopened We will be able to use these two variables later when we are checking for Sell or Buy conditions later in our code. It is now time to store the close price for the bar we will be using for our Buy Sell setup Remember we declared a variable for that earlier. Having done this, we will now proceed to the next step. It is now time to start checking for a Buy opportunity. Let us analyze the expression above as it represents the strategy we designed earlier We are declaring a bool type variable for each of our conditions that must be met bef ore an order can be placed A bool type variable can only contain TRUE or FALSE So, our Buy strategy has been broken down into four conditions If any of the conditions is met or satisfied, then a value of TRUE is stored in our bool type variable, otherwise, a value of FALSE will be stored Let us look at them one by one. Here we are looking at the MA-8 values on Bars 0, 1 and 2 If value of MA-8 on the current bar is greater than its value on the previous Bar 1 and also the MA-8 value on Bar 1 is greater than its value on Bar 2 it means that MA-8 is increasing upwards This satisfies one of our conditions for a Buy setup. This expression is checking to see if Bar 1 Close price is higher than the value of MA-8 at the same period Bar 1 period If the price is higher, then our second condition has also been satisfied, then we can check for other conditions However, if the two conditions we have just considered were not met, then there will be no need to check other conditions That is why we deci de to include the next expressions within these two initial conditions expressions. Now we want to check if the current value of ADX ADX value on Bar 0 is greater than the Minimum ADX value declared in the input parameters If this expression is true, that is, the current value of ADX is greater than the Minimum required value we also want to be sure that the plusDI value is greater than the minusDI value This is what we achieved in the next expression. If all these conditions are met, that is, if they return true, then we want to be sure that we do not open a new Buy position if we already have one It is now time to check the value of the Buyopened variable we declared earlier in our code. If Buyopened is true, we do not want to open another Buy position, so, we display an alert to inform us and then return so that our EA will now wait for the next Tick However, if Buyopened is FALSE, then we prepare our records using the MqlTradeRequest type variable mrequest which we declared earlier to send our order. The action here, which is the trade operation type, is TRADEACTIONDEAL because we are placing a trade order for an immediate execution If we are modifying an order, then we will use TRADEACTIONMODIFY To delete an order we will use TRADEACTIONREMOVE We used our MqlTick type latestprice to get the latest Ask price The order Stop loss price is obtained by subtracting our StopLoss in points from the Ask price while the order take profit price is obtained by adding our TakeProfit in points to the Ask price You will also observe that we used the NormalizeDouble function for the Ask price, the StopLoss and TakeProfit values, it is good practice to always normalize these prices to the number of digits of currency pair before sending it to the trade server. The symbol is the current symbol Symbol or Symbol The order type is the type of order we are placing, here we are placing a buy order ORDERTYPEBUY For a Sell order, it will be ORDERTYPESELL. The order typefilling is the order e xecution type ORDERFILLINGFOK means that the deal can be executed exclusively with a specified volume at the equal or better price than the order specified price If there is no sufficient volume of offers on the order symbol, the order will not be executed. The OrderSend function takes two arguments, the MqlTradeRequest type variable and the MqlTradeResult type variable. As you can see, we used our MqlTradeRequest type variable and the MqlTradeResult type variable in placing our order using OrderSend. Having sent our order, we will now use the MqlTradeResult type variable to check the result of our order If our order is executed successfully, we want to be informed, and if not, we want to know too With the MqlTradeResult type variable mresult we can access the Operation return code and also the order ticket number if the order is placed. The return code 10009 shows that the OrderSend request was completed successfully, while 10008 shows that our order has been placed That is why we have ch ecked for any of these two return codes If we have any of them, we are sure that our order has been completed or it has been placed. To check for a Sell Opportunity, we check for the opposite of what we did for Buy Opportunity except for our ADX that must be greater than the Minimum value specified. Just as we did in the buy section, we are declaring a bool type variable for each of our conditions that must be met before an order can be placed A bool type variable can only contain TRUE or FALSE So, our Sell strategy has been broken down into four conditions If any of the conditions is met or satisfied, then a value of TRUE is stored in our bool type variable, otherwise, a value of FALSE will be stored Let us look at them one by one as we did for the Buy section. Here we are looking at the MA-8 values on Bars 0, 1 and 2 If value of MA-8 on the current bar is less than its value on the previous Bar 1 and also the MA-8 value on Bar 1 is less than its value on Bar 2 it means that MA-8 is decr easing downwards This satisfies one of our conditions for a Sell setup. This expression is checking to see if Bar 1 Close price is lower than the value of MA-8 at the same period Bar 1 period If the price is lower, then our second condition has also been satisfied, then we can check for other conditions However, if the two conditions we have just considered were not met, then there will be no need to check other conditions That is why we decide to include the next expressions within these two initial conditions expressions. Now we want to check if the current value of ADX ADX value on Bar 0 is greater than the Minimum ADX value declared in the input parameters If this expression is true, that is, the current value of ADX is greater than the Minimum required value we also want to be sure that the MinusDI value is greater than the plusDI value This is what we achieved in the next expression. If these conditions are met, that is, if they return true, then we want to be sure that we do not op en a new Buy position if we already have one It is now time to check the value of the Buyopened variable we declared earlier in our code. If Sellopened is true, we do not want to open another Sell position, so, we display an alert to inform us and then return so that our EA will now wait for the next Tick However, if Sellopened is FALSE, then we setup our Sell trade request as we did for Buying order. The major difference here is the way we calculated our stop loss price and take profit price Also since we are selling, we sell at the Bid price that is why we used our MqlTick type variable latestprice to get the latest bid price The other type here, as explained earlier, is ORDERTYPESELL. Also here, we used the NormalizeDouble function for the Bid price, the StopLoss and TakeProfit values, it is good practice to always normalize these prices to the number of digits of currency pair before sending it to the trade server. Just as we did for our Buy order, we must also check if our Sell order is successful or not So we used the same expression as in our Buy order.3 Debugging and Testing our Expert Advisor. At this point, we need to test our EA to know it our strategy works or not Also, it is possible that there are one or two errors in our EA code This will be discovered in the next step. Debugging our code helps us to see how our code performs line by line if we set breakpoints and there and then we can notice any error or bug in our code and quickly make the necessary corrections before using our code in real trade. Here, we are going to go through the step by step process of debugging our Expert Advisor, first of all, by setting breakpoints and secondly, without breakpoints To do this, Make sure you have not closed the Editor First of all, let us select the chart we want to use to test our EA On the Editor Menu bar, click on Tools and click on Options as shown below. Figure 8 Setting Debugging options. Once the Options window appears, select the currency pair, and the period timeframe to use and click the OK button. Before we start the debugger, let us set breakpoints Breakpoints allow us to monitor the behavior performance of our code at certain selected locations or lines Rather than running through all the code at once, the debugger will stop whenever it see a breakpoint, waiting for your net action By this we will be able to analyze our code and monitor its behavior as it reaches every set break-points We will also be able to evaluate the values of some of our variables to see if things are actually the way we envisaged. To insert a breakpoint, go to the line in your code where you want to set the breakpoint By the left hand side, on the gray field near the border of the code line, double-click and you will see a small round blue button with a white square inside it Or on the alternative, place the cursor of your mouse anywhere on the code line where you want the breakpoint to appear and press F9 To remove the breakpoint, press F9 again or double-click o n it. Figure 10 Setting a breakpoint. For our code, we are going to set breakpoint on five different lines. I will also label them form 1 to 5 for the sake of explanation. To continue, set breakpoint at the seven code lines as shown in the figure below Breakpoint 1 is the one we have created above. Figure 11 Setting additional breakpoints. Once we have finished setting our breakpoints, we are now set to start debugging our code. To start the debugger, press F5 or click the green button on the Toolbar of the MetaEditor. Figure 12 Starting the Debugger. The first thing the editor does is to compile the code, if there is any error at the point, it will display it and if no error, it will let you know that the code compiled successfully. Figure 13 Compilation Report. Please note that the fact that the code compiled successfully does not mean there may not be errors in your code Depending on how your code is written, there may be runtime errors For example, if any of our expressions does not evaluate correctly due to any little oversight, the code will compile correctly but may not run correctly Too much of the talk, let s see it in action. Once the debugger has finished compiling the code, it takes you to the trading terminal, and attach the EA to the chart you have specified on the MetaEditor Options settings At the same time, it shows you the Input parameters section of the EA Since we are not adjusting anything yet, just click the OK button. Figure 14 Expert Advisor Input Parameters for Debugging. You will now see the EA clearly on the top-right hand corner of the chart. Once it starts the OnTick it will stop as soon as it gets to our breakpoint 1.Figure 15 Debugger stops at the first breakpoint. You will notice a green arrow at that code line That tells you that previous code line had been executed we are now ready to execute the present line. Let me make some explanations before we proceed If you look at the Editor s Tool Bar, you will observe that the three buttons with curved arr ows which were earlier grayed out are now activated This is because we are now running the debugger These buttons commands are used to step through our code Step into, Step over or Step out. Figure 16 Step into command. The Step Into is used to go from one step of the program execution into the next step, entering into any called functions within that code line Click on the button or press F11 to invoke the command We will use this command in our Step-by-Step debugging of our code. Figure 17 Step over command. The Step over on the other hand does not enter into any called function within that code line Click on the button or press F10 to invoke the command. Figure 18 Step out command. To execute a program step that is one level higher, you click this button or press Shift F11.Also, at the lower part of the Editor, you will see the Toolbox window The Debug tab in this window has the following headings. File This displays the name of the file been called. Function This displays the present funct ion from the file been called. Line This displays the number of the code line in the file from which the function is called. Expression This is where you can type the name of any expression variable you are interested in monitoring from our code. Value This will display the value of the expression variable we typed at the Expression area. Type This will display the data type of the expression variable been monitored. Back to our debugging process. The next thing we want to do is now to type in the variables expressions from our code that we are interested in monitoring Make sure you only monitor the variables expressions that really matters in your code For our example, we will monitor the following. OldTime old bar time. NewTime 0 current bar time. IsNewBar flag that indicates the new bar. Mybars Total bars in History Our EA depends on it. You can add other ones like the ADX values, the MA-8 values, etc. To add the expression variable, double-click under the Expressions area or right-click under the Expressions area and select Add as shown in the figure above. Type the expression variable to monitor or watch. Figure 19 The expressions watching window. Type all the necessary variables expressions. Figure 20 Adding expressions or variables to watch. If the variable hasn t been declared yet, its type is Unknown identifier except the static variables. Now, lets move on. Figure 21 Step into command in action. Click the Step into button or press F11 and observe what happens Keep on pressing this button or F11 until you get to breakpoint no 2 continue until you get to breakpoint no 4 as shown below and observe the expressions watching window. Figure 22 Watching the expressions or variables. Figure 23 Watching the expressions or variables. Figure 24 Watching the expressions or variables. Once there is a new tick, it will return to the fist code line of the OnTick function And all the values of our variables expression will now be reset because this is a new tick except if any of them is declared as a static variable In our case we have one static variable OldTime. Figure 25 Values of variables on NewTick event. To go over the process again, continue pressing the F11 key and keep monitoring the variables at the expressions watching window You can stop the debugger and then remove all the breakpoints. As we see, in Debug mode it prints the message We have new bar here. Figure 26 Expert Advisor prints the message in Debug mode. Start the debugging process again but this time without breakpoints Keep watching at every tick and if any of our Buy Sell condition is met, it will place a trade and since we have written our code to tell us if an order is placed successful or otherwise, we will see an alert. Figure 27 Expert Advisor places trade during debugging. I think you can leave the EA to work for a few more minutes while you take a coffee Once you are back and you have made some money just kidding , then click the STOP Red button on the MetaEditor to stop debugging. Figure 28 Stopping the debugger. What we have actually done here is to see that our EA only checks for a trade at the opening of a new Bar and that our EA actually works There is still a lot of room for adjustments to our EA code. Let me make it clear, at this point that, the Trading terminal must be connected to the internet, otherwise, debugging will not work because the terminal will not be able to trade.3 2 TESTING OUR EA STRATEGY. At this point we now want to test our EA using the Strategy Tester built into the Trading Terminal To start the Strategy Tester, press CONTROL R or click the View menu on the Terminal Menu Bar and click on Strategy Tester as shown below. Figure 26 Starting the Strategy Testing. The Tester Strategy Tester is shown at the lower part of the terminal For you to see all the Tester s settings, you need to expand resize it To do this, move your mouse pointer to the point shown by the red arrow as shown below. Figure 27 The Strategy Tester window. The mouse pointer changes to a double-end a rrow, hold down the mouse and drag the line upwards Stop when you discover that you can see everything on the settings tab. Figure 28 The Strategy Tester Settings Tab. Select the EA you want to test. Select the Currency pair to use for the test. Select the Period Timeframe to use for the test. Select Custom Period and set the dates in 5.Set the dates for the custom period to be used for the test. Execution is Normal. Select the deposit amount in USD to be used for the test. Set Optimization to Disable We are not optimizing now, we just want to test. Click this button when you are ready to start test. Before we click the Start button, lets look at the other tabs on the Tester. The processor used by the Tester for the Test Depending on your Computer s processor type Mine is only one 1 core processor. Figure 29 The Strategy Tester Agents tab. Once the agent, you will see something similar to the figure below. Figure 30 The Strategy Tester Agents tab during a test. This is where all the events going on d uring the test period is displayed. Figure 31 The Strategy Tester Journal tab showing trade activities. This is where you can specify the input parameters for the EA. Figure 32 The Strategy Tester Inputs tab. If we are optimizing our EA, then we will need to set the values in the circled area. The Start is the values you want the Tester to begin with. The Step is the increment rate for the value you selected, and. The Stop is the value at which the Tester will stop incrementing the value for that parameter. However, in our case we are not optimizing our EA, so we will not need to touch that for now. Once everything is set, we now go back to the Settings tab and click the Start button Then the tester begins its work All you need to do now is to go and take another cup of coffee if you like, or, if you are like me, you may want to monitor every event, then turn to the Journal tab. Once you begin to see messages about orders been sent on the Journal Tab, you may then wish to turn to a NEW tab named Graph which has just been created Once you switch to the Graph tab, you will see the graph keep on increasing or decreasing as the case may be depending on the outcome of your trades. Figure 33 The graph result for the Expert Advisor Test. Once the test is completed, you will see another tab called Results Switch to the Results tab and you will see the summary of the test we have just carried out. Figure 34 The Strategy Tester Results tab showing test results summary. You can see the total Gross Profit, Net Profit, total trades total loss trades and many more Its really interesting to see that we have about USD 1,450 0 within the period we selected for our test At least we have some profit. Let me make something very clear to you here You will discover that the settings for the EA parameters that you see in the Strategy tester is different from the initial settings in the Input parameters of the EA I have just demonstrated to you that you can change any of those input parameters to get the best out of your EA Instead of using a period of 8 each for the Moving Average and ADX, I changed it to 10 for Moving Average and 14 for ADX I also change the Stop Loss from 30 to 35 Last but not the least, I decided to use 2 Hour timeframe Remember, this is the Strategy Tester. If you want to view a complete report of the test, then right-click on anywhere in the Results tab, you will see a menu From this menu, Select Save as Report. Figure 35 Saving the result of the test. The save dialog window will appear, type a name for your report if you want, otherwise leave the default name and click the save button The whole report will be saved in HTML format for you. To view the chart for the test that was carried out, click Open Chart and you will see the chart displayed. Figure 36 The chart showing the test. That s it, we have successfully written and tested our EA and we now have a result to work with You can now go back to the strategy tester Settings tab and make the test for other Timefram es Period. I want you to carry out the test using different currency pairs, different timeframes, different Stop Loss, different Take profit and see how the EA performs You can even try new Moving Average and ADX values As I said earlier, that is the essence of the Strategy tester I will also like you to share your results with me. In this step by step guide, we have been able to look at the basic steps required in writing a simple Expert Advisor based on a developed trading strategy We have also looked at how we check our EA for errors using the debugger We also discussed how to test the performance of our EA using the Strategy Tester With this, we have been able to see the power and robustness of the new MQL5 language Our EA is not yet perfect or complete as many more adjustments must still be made in order to used it for real trading. There is still more to learn and I want you to read the article over again together with the MQL5 manual, and try everything you have learn in this artic le, I can assure you that you will be a great EA developer in no distant future. Hello Mr Olowoyo Thanks you very much for your extremelly interesting article about the way to build and EA It is simples for beginners and really helpful I am really new in the coding of EA but I realize it is extremelly necessary to test different strategies I have downloaded you EA and try to compile it but I get immediately 50 errors In the previous comments I did not see such problems reported by the users Please find enclosed a extract of the error table I will appreciate very to receive some help Jean Philippe. Hi Samuel your guide was awesome and really cleared the air but I have some problems in calling other indicators in my EA can you tell me how add MACD and VIDyA signals in my EA I need to calculate the Signal and Main amount of MACD for example but don t know how to call them in my EA That would be a great help if you tell me how to do that you are awesome. I am trying to compile the code provid ed in this tutorial but getting the error iADX wrong parameter count at the following line adxHandle iADX NULL,0,ADXPeriod The code seems fine to me How do I fix the error Could anyone help. Slideshare uses cookies to improve functionality and performance, and to provide you with relevant advertising If you continue browsing the site, you agree to the use of cookies on this website See our User Agreement and Privacy Policy. Slideshare uses cookies to improve functionality and performance, and to provide you with relevant advertising If you continue browsing the site, you agree to the use of cookies on this website See our Privacy Policy and User Agreement for details. Explore all your favorite topics in the SlideShare app Get the SlideShare app to Save for Later even offline. Continue to the mobile site. Double tap to zoom out. Forex trading for dummies 2016 updated. Share this SlideShare. LinkedIn Corporation 2017.Forex Day Trading - Why Us. Learn to trade Forex like a pro with our free train ing program You will learn how to trade with our powerful, proprietary trading systems and benefit from our unique mental training MP3 s. You ll also have the opportunity to trade for our retail and institutional clients as a money manager, prop trader, or hedge fund manager. It s the accelerated approach to a successful trading career. Forex Day Trading offers some unique services to our Investors and traders Here are some. Accelerated Trading Career Opportunity with FastTrack Enjoy professional trading tools and training via our FastTrack FX Pro Trader program For both beginner and advanced traders who want to trade for a living or more effectively. Attractive IB Program An introducing broker makes money by offering forex services to potential traders Qualified individuals and institutions welcomed. Maximum Safety of Funds via Trust For the first time ever, ANY size client can open a trust account This provides the ultimate environment for safety of funds, something that almost no brokerag e firm offers. Professionally Managed Accounts Created for investors who don t have time to trade their own account or want to add diversification to their investment portfolios. Free MP3 to Tune Your Mind for Trading Success Request a Free Demo from our main menu and download our proprietary Forex Mental Tuner MP3 which conditions your mind for trading success while you sleep. Advantages of Trading Forex. Trading the foreign exchange Forex or FX market has a number of advantages over stock and futures trading. Trading 24 Hours a Day From Sunday afternoon to Friday afternoon US time. Low Minimum Investment Trading currencies requires a lot less starting capital than trading stocks You can start with just 100 USD. Attractive IB Opportunities Offer forex services to traders and get compensated We offer one of the most beneficial IB programs in our Industry.1000 1 Leverage FX trading offers greater buying power than day trading stocks, which offers 4 1 maximum leverage. Tight Trading Spreads Frac tion of 1 pip Sub 1-pip spreads on some of the major currency pairs the majors. Simpler to Trade than Stocks There are only a few major currencies in forex, whereas in the equities market there are tens of thousands of possible stocks to trade. Free Trading Platform with Real-time Charts and News Free trading platform based on MetaTrader technology with streaming, real-time charts, news and commentary relevant to the currency market. No Re-Quotes on MT4 Platform During normal market volatility in the foreign exchange market. No Trading Restrictions in Falling Markets There are no restrictions to sell currencies short, unlike stocks, which have artificial restrictions in place when sold short or when the market drops by a given amount. Forex Market Latest News. The Euro was unable to sustain a recovery attempt on Tuesday and came under fresh selling pressure as the dollar gained renewed support after stronger than expected data The Australian Reserve Bank interest rate decision was one of the least Continue reading. Monday s trading maintained the familiar pattern seen after a Friday payroll release with generally lacklustre conditions and narrow ranges, amplified by the normal dip in trading volumes during August The dollar overall was still hampered by profit taking and corrective Continue reading. Friday s economic data was not strong enough to trigger further dollar buying with the currency subjected to profit taking after a strong week Equity markets generally remained on the defensive following sharp Wall Street losses overnight and risk conditions overall Continue reading. Start Your FX Business.

No comments:

Post a Comment