Forex Mql4


MQL4 TUTORIAL. The MQL4 Tutorial är en omfattande manual för MQL4 språk utformad för att hjälpa en näringsidkare optimera handel på Forex marknaden genom automatisering av vissa åtgärder eller till och med alla handelsprocesser. MQL4 är ett programmeringsspråk för handelsstrategier integrerade till MetaTrader 4 handelsplattform MQL4 språk Gör det möjligt att skapa mekaniska rådgivare för handel med handelssystem, skript, anpassade indikatorer och funktionsbibliotek som automatiserar Internethandel i enlighet med en viss handelsstrategi eller gör det enklare att analysera marknaden. Expertrådgivare, indikatorer och skript som skrivits i MQL4 kan fungera dag Och nattåterställning och stängning av handelspositioner samt anmälan till näringsidkaren om alla programmerade förändringar i Forex-marknaden. MQL4-språk kräver ingen speciell datorkunskap Alla har möjlighet att själv studera det algoritmiska programmeringsspråket och testa den erhållna kunskapen på demo Och riktiga konton. Handledningen är en chm-fil som stöds av alla MS Windows Operativsystem Om den nedladdade boken inte öppnas, högerklicka på filen, välj Egenskaper och klicka sedan på Unblock. Speculativ handel med valutor och CFDs medför hög risk för kapital. Du kan förlora hela insättningen för kort sikt. Du borde inte Starta handel med riktiga pengar om du inte har möjlighet att förlora det. Innan du deponerar pengar, noggrant överväga din ekonomiska kunskap och aptit för risk. Simple Expert Advisor. Problem 29 Skapa en Trading Expert Advisor. Preliminary Arguments. Before du börjar programvara en handel Expertrådgivare är det nödvändigt att definiera allmänna principer för ett framtida program. Det finns inga strikta regler för skapande av program. Men efter att ha skapat ett program fortsätter en programmerare oftast att förbättra den. För att kunna förstå programmet i framtiden måste det vara Skapad i enlighet med ett väl genomtänkt och lättförståeligt system är det särskilt viktigt om ett program kommer att förbättras ytterligare av en annan programmerare T Hans mest praktiska program är det som består av funktionella block, som var och en är ansvarig för sin del av beräkningarna. För att skapa en algoritm för en handelsexpertrådgivare, låt oss analysera vad ett operativprogram ska göra. En av de viktigaste uppgifterna i Bildandet av handelsorder är informationen om order som redan existerar i en klientterminal Vissa handelsstrategier tillåter endast en enriktad order Allmänt om en handelsstrategi tillåter kan flera beställningar vara öppna i en terminal samtidigt, trots att deras antal Bör vara rimligt begränsad När man använder någon strategi bör handelsbeslut fattas med hänsyn till nuvarande situation Innan ett handelsbeslut fattas i ett program är det nödvändigt att veta vilka handelsorder som redan har öppnats eller placerats. Först av allt måste ett program Innehålla ett orderbeställningsredovisning som är bland de första som ska utföras. Vid ett EA-genomförande bör handelsbeslut fattas, vars genomförande leder Till utförandet av handelsverksamheten Koddelen ansvarig för handelsorder Beställningen är bättre skriven i ett separat block En expertrådgivare kan bilda en handelsförfrågan om att öppna en ny väntande eller marknadsorder, stäng eller ändra några av befintliga order eller utför inga åtgärder alls En EA måste också beräkna orderpriserna beroende på användarens önskemål. Handelsbeslut bör fattas i ett program på grundval av handelskriterier. Hela programmets framgång beror på huruvida handelskriterierna är korrekta i programmet. Vid beräkning av handelskriterier a Programmet kan och måste ta hänsyn till all information som kan vara användbar. Exempelvis kan en expertråd analysera kombinationen av tekniska indikatorvärden, tidpunkten för viktiga pressmeddelanden, aktuell tid, värden av vissa prisnivåer osv. För bekvämligheten är programdelen ansvarig För beräkningen av handelskriterier bör skrivas i ett separat block. En handelsexpertrådgivare måste nödvändigtvis innehålla felbehandlingsblock Analyzin G Fel som kan uppstå vid utförandet av handelstransaktionen tillåter å ena sidan att upprepa en handelsförfrågan och å andra sidan att informera en användare om en eventuell konfliktsituation. Struktur av en enkel expertrådgivare. Strukturella schema av en enkel expertrådgivare konstruerad på grundval av flera funktionella block, i varje block en viss fristående del av beräkningarna. Fig 109 Strukturellt schema av en enkel expertrådgivare. I följande EA-utvecklingsstadium finns det ingen programkod än Samtidigt som algoritmen för ett program bildas i stor utsträckning. Hur EA byggd på basen för det erbjudna systemet kommer att fungera kan lätt förstås genom att helt enkelt titta på schemat och orientera sig på blocknamn och relativstyrningsstyrning som passerar dem. Efter program Startkontroll överförs till blocket för förberedande bearbetning I det här blocket kan vissa allmänna parametrar analyseras Till exempel om det inte finns tillräckligt med staplar i en fönsterfält som är nödvändig för att beräkna pa Ramar av tekniska indikatorer kommer ett EA inte att kunna fungera på ett adekvat sätt. I ett sådant fall måste en EA avsluta operationen preliminärt informera en användare om det och rapportera om orsaken till uppsägning. Om det inte finns några kontraindikatoner av generell karaktär, överförs kontrollen till Order bokslut block. In block of accounting order numret och kvaliteten på order som finns i en klient terminal för en säkerhet till fönstret som EA är bifogad detekteras I detta block måste order av andra värdepapper elimineras Om en programmerad handelsstrategi Kräver att man använder endast marknadsordningar och inte använder pågående order måste faktumet av förekomsten av pågående order upptäckas. Om en strategi endast godkänner en marknadsordnad och det faktiskt finns flera order, bör detta faktum också vara känt. Uppgiftens orderbokföring i Det här systemet syftar till att definiera om den nuvarande handelssituationen motsvarar en förväntad, det vill säga den där EA kan fungera väl om t Hans situation motsvarar, måste kontrollen överföras till nästa block för att fortsätta EA: s operation, om inte, måste EA: s operation avslutas och detta faktum måste rapporteras till en användare. Om det inte finns några order i terminalen eller numret och Kvaliteten på befintliga order motsvarar vad som förväntades, kontrollen överförs till blocket av definierade handelskriterier. I det här blocket beräknas alla kriterier som krävs för att fatta handelsbeslut, nämligen kriterier för öppnande, stängning och modifiering av order. Ytterligare kontroll överförs till blocket av Stängningsorder. Det är lätt att förstå varför i det erbjudna systemet existerar blockeringen av stängningsorder tidigare än blocket av öppningsorder. Det är alltid mer rimligt att behandla första befintliga order stäng eller ändra och först efter det att öppna nya order. Det är korrekt att styras av önskan att ha så små order som möjligt. Under utförandet av detta block måste alla order, för vilka slutkriteriet har aktiverats, måste Stängas. Efter alla nödvändiga order har stängts överförs kontrollen till ett block med ny orderstorlek. Det finns många algoritmer för att beräkna en ordervolym. Den enklaste av dem använder en konstant, fast partistorlek. Det är bekvämt att använda Denna algoritm i ett program för teststrategier Mer populär metod för att definiera en orderstorlek är att ange antalet partier beroende på hur mycket fri marginal som till exempel 30-40 är. Om fri marginal inte räcker slutar programmet sin operation med Informerade en användare om orsaken. Efter att antalet partier för öppnandet av nya order har definierats, överförs kontrollen till orderöppningsblocket. Om något av de tidigare beräknade kriterierna pekar på nödvändigheten att öppna en order av en viss typ, en handelsförfrågan att öppna En order skapas i det här blocket. Det finns också ett felanalysblocket i en expertrådgivare Om någon handelshandling misslyckades överförs kontrollen endast i det här fallet till felbehandlingsblocket Om ett fel returneras av en server Eller klientterminalen är inte avgörande, görs ytterligare ett försök att utföra en handelsoperation Om ett avgörande fel returneras till exempel, blockeras ett konto, en EA måste avsluta sin operation. Kom ihåg att i MQL4 finns det ingen möjlighet att programmet avslutar ett EA S funktion i ett säkerhetsfönster som skiljer sig från skript, se Specialfunktioner Vad som kan göras på ett program sätt är uppsägning av start Vid en ny start av funktionen starta på ett nytt fält värdet av en viss variabel flagga som förbjuder handel med Detta fall aktiverat som ett resultat av ett kritiskt fel kan analyseras och kontroll kan överföras för avslutningen av specialfunktionsoperationen, varför bildandet av en ny handelsförfrågan inte är tillåten. I det erbjudna systemet analyseras flaggvärdet i blocket av preliminär bearbetning. Trading Strategy. Marketpriserna ständigt rör sig Marknadsståndet kan när som helst präglas av villkoret antingen som en trend - stark enriktad prisförändring ökar eller faller, eller Som en platateral prisrörelse med svaga avvikelser från ett visst medelvärde. Dessa marknadsegenskaper är villkorliga, eftersom det inte finns några tydliga kriterier enligt vilken trend eller platt kan identifieras. Exempelvis kan långa laterala rörelser med starka avvikelser som inte kan spåras Till en lägenhet eller en trend Generellt antas det att marknaden huvudsakligen är i sidledningsrörelsen och trenderna äger vanligtvis rum 15-20 av tiden. Fig 110 Flat och trend på marknaden. Alla handelsstrategier kan också konventionellt fördelas In i två huvudgrupper Den första gruppen innehåller plattorienterade strategier Huvudideen för sådana strategier är att efter ett uppenbart avvikspris måste återgå till föregående position, så beställer man order i strid med den senaste prisrörelsen. Den andra gruppen Strategier är trendstrategier, när order öppnas i samma riktning som saltprisrörelsen. Det finns mer komplicerade kombinerade strategier. Sådana strategier E beaktar många olika faktorer som karaktäriserar marknaden som ett resultat handel kan utföras både på platt och trend Det är inte svårt att genomföra handel enligt denna eller den strategiska tekniken - MQL4 innehåller alla nödvändiga medel för det Huvudsakliga arbetet med att skapa När en egen strategi består i att söka efter handelskriterier. Träningskriterier. I det här exemplet kommer vi att försöka bygga en trend Expert Advisor, det vill säga den som kommer att öppna order i prisriktningsriktningen. Så måste vi hitta bland olika tekniska indikatorer de Som upptäcker en trendbegagnad En av de enklaste metoderna för att söka handelskriterier är baserad på analysen av kombinationen av MA med olika medelvärden. Fig 111 och Fig. 112 visar läget för två olika MA med perioder med medelvärde 11 och 31 på olika marknader Delar Medeltal med liten medelvärde är röda linjer närmare ett prisschema, vridigt och rörligt. Förflyttande medelvärden med större medellånga blå linje är Mer inerta, har större lagring och ligger längre bort från marknadspriserna. Låt oss vara uppmärksamma på platser där MA med olika medelvärden korsar och försöker bestämma om MA-korsningen kan användas som läsningskriterium. 111 Korsning av MA 11 och MA 31 när prisriktningsriktningen ändras. I fig 111 ser vi en marknadsdel där öppningsorder i riktning mot prisrörelsen vid MA-kryssningen är motiverad. I punkt A passerar den röda linjen den blå från botten uppåt, efter det att marknaden Priset fortsätter att växa under en längre tid Mer omvänd MA-kryssning visar prisändringsriktningsändringen Om vi ​​öppnar en order på punkt A och stänger den vid B kommer vi att få vinst proportionell mot skillnaden mellan A - och B-priserna. 112 Korsning av MA 11 Och MA 31 när prisriktningsriktningen ändras. Samtidigt finns det andra ögonblick på marknaden när MA cross, men det leder inte till ytterligare betydande prishöjningar eller nedgång. Fig 112 Beställningar öppnade vid MA överkörning vid sådan m Oments kommer att leda till förluster Om säljaren öppnas vid A och stängs vid B kommer sådan handel att medföra förluster. Detsamma kan sägas om en köporder öppnad vid B och stängd vid C. Framgången för hela strategin implementerad på grundval av MA Korsning beror på antalet delar som kan karakteriseras som trend och platt. I ofta flat är MA-korsning en vanlig händelse som stör en trendstrategi. Många falska signaler leder i regel till förluster. Det är därför denna signering av MA med olika Genomsnittlig period - kan användas för att bygga handelsstrategier endast i kombination med andra tecken som visar en trend I det här exemplet för att bygga en enkel expertrådgivare måste vi vägra använda detta tecken. Vi kommer att använda ett annat tecken Analysera visuellt prissättningsgraden i På marknaden kan vi se att en lång enriktad prishöjning eller - fall ofta framstår som en följd av en kort stark rörelse. Med andra ord, om det inom en kort period hände en stark rörelse, kan vi förvänta oss att Fortsättning på en medellång sikt. Fig 113 Stark prisrörelse kan leda till en trendutveckling. Figur 113 visar marknadsperioden när en stark rörelse resulterade i fortsatt prisförändring i samma riktning. Som en stark rörelse kan vi använda Skillnaden mellan MAs med olika medelstora perioder. Ju starkare rörelsen desto större är MAs fördröjning med större medelvärde från MA med en liten period av medelvärde. Även de starka diskontinuerliga prisrörelserna med ytterligare avkastning leder inte till stor skillnad mellan MAs, dvs många falska signaler visas inte till exempel Prishopp med 50 poäng med ytterligare avkastning i mitten i Fig 113 medförde en ökning av skillnaden mellan MAs endast med 20 poäng. Samtidigt är en riktigt stark rörelse som vanligtvis inte åtföljs av En betydande korrigering i punkt A resulterade i skillnaden ökar upp till 25-30 poäng. Om köporder öppnas när ett visst värde av skillnad mellan MAs är uppnått, Till exempel i A, är förmodligen ordern lönsam när ett pris når ett förinställt stoppordervärde. Låt oss använda detta värde som ett handelskriterium i vår Expert Advisor. Number of Orders. In detta exempel analyserar vi en expertrådgivare som medger närvaro Av endast en marknadsordning, väntar inte på beställningar. Ett sådant tillvägagångssätt är motiverat inte bara i det här visade exemplet, men kan användas som grund för någon strategi. Uppdragsordningar används vanligtvis när en utvecklare har ett ganska pålitligt kriterium för prognoser för Framtida prisförändring med stor sannolikhet Om det inte finns något sådant kriterium behöver man inte använda väntande order. Situationen när flera motsatta order för en säkerhet är öppna kan inte heller anses vara rimliga. Det var tidigare skrivet att från ekonomiska synvinklar motsatta order anses Att vara meningslöst, speciellt om orderpriserna är lika, se Sluta och ta bort beställningar I så fall bör vi stänga en order av en annan och vänta på att en signal öppnas En marknadsordnad i en viss riktning. Relation av handelskriterier. Från denna position blir det klart vilka relationer som är möjliga mellan handelskriterierna Fig 114 visar tre varianter av korrelation av handelskriterier, när varje kriterium är viktigt giltigt Åtgärder för öppnande och stängning av marknadsordningar tar Placera medsols på följande bilder. Fig 114 Beställningsöppnande och stängningskriterier korrelation a och b - korrekt, c - felaktigt. Den mest populära varianten av ett korrekt bildat handelskriterium är varianten a. Efter att ha öppnats en marknadsorder köps kvar tills Det ögonblick då kriteriet kräver stängningsutlösare Efter det uppstår en paus när inga beställningar öppnas Vidare en marknadsorder Sälj kan öppnas Villkor för stängning av Säljorder i enlighet med korrekt utformade kriterier förekommer tidigare än villkor för att öppna en Köporder. En köporder kan öppnas igen om ett handelskriterium kräver detta men enligt denna variant kan en marknadsorder inte b E öppnas om det finns en öppen marknadsordning i motsatt riktning. Likartade kriterier korrelationen finns i varianten b Skillnaden är att ett kriterium för att öppna någon marknadsorder är samtidigt ett kriterium för att stänga motsatt ordning Denna variant som varianten A tillåter inte att flera beställningar öppnas i terminalen samtidigt på en säkerhet. Varianter av kriterier korrelation är felaktig Enligt denna variant är öppnandet av en marknadsorder tillåten när stridliga order inte är stängda ännu, vilket är meningslöst. Det kan vara Sällsynta fall när denna variant är delvis berättigad Öppnande av en motsatt order är ibland acceptabel för att kompensera förluster som uppstår vid små korrigeringar efter starka prisrörelser. I sådana fall kan en motsatt order öppnas med samma eller mindre värde än den redan existerande och sedan stängas När korrigeringen är över En sådan taktik tillåter att inte störa huvudordern som öppnas i trendriktningen. I allmänhet är flera - Direction Orders är också möjliga Detta kan vara motiverat när en tidigare öppnad order skyddas av en Stop-order och kriteriet som pekar på prisutvecklingen i samma riktning utlöstes igen. När en sådan strategi skapas måste en utvecklare vara fullt medveten Att i händelse av en kraftig prisrörelse förändras de placerade stopporderna oexkluderade av vissa mäklare vid första priskontrollen och förlusten kommer att stå i proportion till det totala värdet av enriktad marknadsorder. I vårt exempel använder vi variant b av handel Kriterier korrelation Alla öppna marknadsordningar stängs antingen av en stopporder eller efter ett kriterium för att öppna en order i motsatt riktning utlöses här kriteriet för stängning Köp sammanfaller med öppningsförsäljningen och vice versa. Size of Opened Orders. In någon handelsstrategibeständning Storlekar bör vara rimligt begränsade I ett enkelt fall används en fast orderstorlek i en Expert Advisor Innan EA-driftsstart kan en användare ställa in alla storlekar av framtida order och le Fortsätter att vara oförändrad under en längre tid Ytterligare om balans ändras kan en användare skapa ett nytt värde av mycket antal beställda order. En för liten orderstorlek ger ökat förtroende för driften vid oförutsägbar marknadsförändring, men vinsten vid framgång kommer att Vara inte så stor Om orderstorleken är för stor kan stor vinst förvärvas, men en sådan EA kommer att vara för riskabel. Normalt är storleken på öppnade beställningar inrättad så att marginalkraven inte överstiger 2-35 procent av balansen Eller fri marginal om en strategi tillåter endast en öppen ordning, balans och fri marginal just nu innan orderöppningen blir lika. I detta exempel implementeras båda varianterna. En användare kan välja att antingen ange direkta värden av order eller ange värdet i Procentsats från den fria marginalen. Programmeringsdetaljer. En enkel trend Expert Advisor konstruerad på grundval av tidigare argument kan se ut så här. Deskribibla variabler. Ett mer kriterium vid programuppskattning är dess läsbarhet Ett program anses Att skrivas korrekt, om det lätt kan läsas av andra programmerare, det är därför som alla huvudprogramdelar och huvudmoment som kännetecknar strategin måste kommenteras. Det är också därför det rekommenderas att deklarera och kommentera alla variabler i början av programmet . I block 1-2 beskrivs externa och globala variabler. Enligt regler måste externa och globala variabler öppnas innan deras första användning, se Typ av variabler, det är därför de deklareras i programhuvuddelen Alla lokala variabler i Funktionsstart samlas och beskrivs i det övre funktionsdelblocket 2-3 omedelbart efter funktionsrubriken Regler för att deklarera lokala variabler kräver inte det men förbjuder inte heller om en programmerare har svårigheter att förstå betydelsen av en variabel när han läser Program kan han hänvisa till den övre programdelen och ta reda på vilken variabel det är och vilken typ det är. Det är mycket praktiskt i programmeringspraxis. Detta exempel förbehandlingen består av två delar block 3-4 Programmet avslutar operationen om det inte finns tillräckligt med staplar i ett säkerhetsfönster i så fall är det omöjligt att detektera i block 5-6 värden av rörliga medelvärden som är nödvändiga för att beräkna kriterier förutom Här analyseras värdet av det rörliga arbetet I den normala EA-operationen är det variabla värdet alltid sant det är inställt en gång under initialiseringen Om ett kritiskt fel uppstår i programoperationen är falskt tilldelat denna variabel och börjar slutföra sin funktion Detta värde kommer att Inte förändras i framtiden, det är därför följande kod inte exekveras I sådant fall måste programoperationen stoppas och orsaken till det kritiska felet måste detekteras vid behov, ett handelscenter måste kontaktas. När situationen är löst, Programmet kan startas igen, det vill säga att EA kan fästas i ett säkerhetsfönster. Kontonbeställningar. Den beskrivna expertrådgivaren möjliggör endast att arbeta med en marknadsordning. Ta Sk av orderna redovisningsblocket 4-5 är att definiera egenskaperna hos en öppnad ordning, om det finns en i loop genom order för all befintlig marknad och pågående order kontrolleras, nämligen från den första int i 1 till den sista I lt OrdersTotal I varje cykelterrering väljs nästa ordning med funktionen OrderSelect. Urvalet är gjort från en källa till öppna och väntande beställningar SELECTBYPOS. Om valet utförs framgångsrikt, det finns ytterligare en order i terminalen, fortsätt denna order och Situationen måste analyseras om ordern öppnas för säkerheten, där EA verkar, om ordern är marknaden eller väntar på den måste också beaktas vid räkning av order. I linjen. all order som öppnas för en annan säkerhet elimineras Operatör Fortsätter att stoppa iterationen och karaktäristika för en sådan order behandlas inte men om ordern öppnas för säkerheten, till det fönster som EA är fäst vid analyseras vidare. Om O RderType returnerar värdet mer än 1 se Typ av transaktioner, den valda ordningen är en väntande men i den här expertrådgivaren hanterar inte pågående order det betyder att körning av start måste avslutas, eftersom en konfliktsituation inträffade i ett sådant fall efter en Meddelande om operationsterminering startkörning stoppas av operatörens retur. Om den sista kontrollen visade att den analyserade ordern är en marknadsordnad, beräknas och analyseras det totala antalet order för en säkerhet. För det första av dessa order är alla nödvändiga egenskaper Definierad Om i nästa iteration hittar orderräkningsvariabeln Total finner den andra marknadsordningen, anses situationen också vara konflikt, eftersom EA inte kan hantera mer än en marknadsordning. I sådant fall upphör utförandet efter att ha visat ett motsvarande meddelande. Som ett resultat av orderbokningsblocket genomfördes om alla kontroller var framgångsrika, bibehåller variabeln Total sitt nollvärde om det inte finns några marknadsordningar , Eller får värdet 1 om det finns en marknadsordning för vår säkerhet I det senare fallet kommer vissa variabler som sätts i korrespondens med orderegenskaperna nummer, typ, öppningspris, stoppnivåer och ordervärde också att få sina värden. Beräkning av handelskriterier. Den analyserade exempeldefinitionen av handelskriterier block 5-6 beräknas på grundval av skillnaden mellan Moving Averages med olika perioder av medelvärde Enligt accepterade kriterier är ett diagram tjurstyrt om nuvärdet för MA med mindre period är större än Värdet av MA med större period och skillnaden mellan värdena är större än ett visst värde. I en björnörelse MA med mindre period är lägre än MA med större period och skillnaden är också större än ett visst kritiskt värde. Vid blockets början Värden av MA med medelvärden PeriodMA1 och PeriodMA2 beräknas Faktumet av betydelsen av något handelskriterium uttrycks via värdet av en motsvarande variabel Variabler OpnB och OpnS anger kriteriet utlösande för att öppna Köp och Sälj order, variabler Cl och ClsS - för stängning Till exempel, om ett kriterium för att öppna Buy inte har utlösts, förblir värdet för OpnB falskt inställt på variabelinitialiseringen om den har utlöst , OpnB får värdet sant I detta fall är kriteriet för att stänga Sälj sammanfaller med det för att öppna Köp, kriteriet för att öppna Sälj sammanfaller med det för att stänga Buy. Trading kriterier accepterade i detta exempel används endast för pedagogiskt syfte och får inte betraktas som En riktlinje vid handel på ett riktigt konto. Avslutande beställningar. Det var tidigare skrivet att denna expertrådgivare endast är avsedd för drift med en marknadsorder som öppnas för en säkerhet, i vilket fönster EA bifogas till det ögonblick då kontrollen i programmet är Skickas till orderluckningsblokken är det säkert säkert att det för närvarande inte finns några order på säkerheten, eller det finns bara en marknadsordning. Det är därför koden I order är stängningsblocket skrivet så att endast en order kan stängas med framgång. Detta block är baserat på oändlig slinga, vars kropp består av två analoga delar en för att stänga en köporder, en annan för att stänga en Säljorder medan Används här för att i händelse av ett handelsbrott kan det upprepas igen. I den första operatörens rubrik om villkoret för stängning av en köporder beräknas Säljordningar stängs på analogt sätt Om typen av en tidigare Öppnad ordning motsvarar Köp se Typ av transaktioner och tecknet för stängning Köp är relevant, kontrollen överförs till kroppen om operatören där en förfrågan om att stänga bildas Som en orderslutningspris i funktionen OrderClose värdet av en dubbelsidig Citationstecken som motsvarar ordertypen är angivet se Krav och begränsningar i att göra affärer Om en handelstransaktion utförs framgångsrikt visas ett meddelande om orderavslutningen aktuell när iterationen är stoppad Och exekveringen av ordningens stängningsblock är över Men om operationen misslyckas, används den användardefinierade funktionen för att behandla fel FunError block 10-11.Processing Errors. As en passerad parameter i FunError används den senaste felkoden som beräknas av GetLastError Beroende på felkoden returnerar FunError 1 om felet inte är kritiskt och åtgärden kan upprepas och 0 om felet är kritiskt. Kritiska fel är indelade i två typer - de, varefter ett programkörning kan fortsätta till exempel en Vanligt fel och de efter vilka exekvering av eventuella handelsoperationer måste stoppas till exempel blockerat konto. if efter en misslyckad handelstransaktion returnerar den användardefinierade funktionen 1, strömmen medan iterationen avslutas och under nästa iteration görs ett annat försök För att utföra operationen - för att stänga ordningen Om funktionen returnerar 0, stoppas nuvarande startkörning. Nästa start startas av klientterminalen igen och om Villkoren för orderlåsning bevaras, ett annat försök att stänga ordern kommer att göras. Om det under felbehandling upptäcks att ytterligare programkörning är meningslös, exempelvis fungerar programmet på en gammal klientterminalversion under nästa start av utförandet av Specialfunktionsstart kommer att avslutas i blocket av preliminär bearbetning när man analyserar värdet på den variabla Arbetet. Kalkylera mängden av partier för nya order. Antalet partier kan beräknas enligt en användares inställningar efter en av de två varianterna. Den första Varianten är ett visst konstant värde som upprättats av en användare Enligt den andra varianten beräknas mängden partier på basis av en summa som är lika med en viss procentuell uppsättning av en användare av en fri marginal. I början av blocket att definiera Mängden partier för nya order block 7-8 nödvändiga värden för vissa variabler beräknas - minimalt tillåtet antal partier och steg för lotbyte som upprättats av en mäklare, fri marginal a Nd pris av ett parti för säkerheten. I detta exempel tillhandahålls följande om en användare har satt upp ett visst värde av icke-nollvärdet av den externa variabeln Lts, till exempel 0 5, accepteras den som mängden Lt när en Handelsförfrågan om att öppna en order bildas Om 0 är tilldelad till Lts, definieras antalet partier Lts på basis av variabeln Prots procentsats, fri marginal och villkor som ställts upp av en mäklare. Efter att Lts beräknats utförs en kontroll Om detta värde är lägre än det minimala tillåtna värdet accepteras det minimala tillåtna värdet, men om fri marginal inte räcker till, efter ett motsvarande meddelande, avslutas startkörningen. Opening-order. Blocket av öppningsorder block 8-9 som blocket Av öppningsorder är en oändlig slinga medan I den första operatörens rubrik om villkoren för att öppna en Köporder beräknas om det inte finns några order för säkerhetsvariabeln Totalt är lika med 0 och tecknet för att öppna en Köporder är relevant. OpnB är Sant är kontrollen klar Ed till om operatörsorgan för att öppna en order I sådant fall efter skattesatser är uppdaterade priser för stoppnivåer beräknade. Val av stoppnivåer fastställs initialt av en användare i externa variabler StopLoss och TakeProfit I allmänhet kan en användare ställa in värden för Dessa parametrar mindre som en mäklare tillåter Förutom att en mäklare kan ändra det minsta tillåtna avståndet när som helst är det ofta ett fall vid starka marknadsrörelser, till exempel före viktiga nyheter. Det är därför innan varje order öppnas måste stoppnivåer beräknas med hänsyn till Kontonvärden ställer in en användare och det minimala tillåtna värdet som ställts in av en mäklare. För att beräkna stoppnivåer används den användardefinierade funktionen NewStop som en godkänd parameter. Stoppnivåvärdet som en användare har bestämt används i NewStop först tillåts nuvarande minimala Avståndet beräknas Om värdet som ställts av en användare motsvarar kraven för en mäklare returneras detta värde Om det är mindre än det tillåtna värdet används det värde som en mäklare använder P Risktillstånd för stop-förfrågningar beräknas från motsvarande dubbelsidiga citat se Krav och begränsningar i att göra affärer. En handelsförfrågan om att öppna en order bildas med funktionen OrderSend. För beräkning av orderöppningspris och priser på stoppförfrågningar är de dubbelsidiga Citationstecken som motsvarar ordertypen används. Om en handelstransaktion lyckades, så returnerade servern numret på en öppnad order efter ett meddelande om en lyckad orderöppning visas. Startkörningen är klar Om en order inte öppnades och klientterminalen returnerade 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.

Comments

Popular Posts