Kombinerade användningen av program Det sägs tidigare att handelsfunktioner enligt MQL4-regler inte kan användas i anpassade indikatorer, varför för automatiserad handel bör Expert Advisors eller scripts användas. Den resursbesparande tekniken som används för beräkningar i indikatorer (se Creation of Custom Indicators) används dock ofta när man skapar handelsprogram. I de flesta fall i anpassade indikatorer kan man effektivt beräkna värden av indikatoruppsättningselement som är nödvändiga för bildandet av handelskriterier och beslutsfattande i expertrådgivare. Beräkningar utförda i anpassade indikatorer kan också implementeras i Expert Advisors, men det kan leda till dubbla beräkningar i olika applikationsprogram och orimligt slöseri med resurser, och i vissa fall (när långa resursintensiva beräkningar utförs) ett handelsbeslut fattades sent. I de fall då det behövs att använda beräkningsresultat av anpassade indikatorer i en expertrådgivare eller ett skript kan funktionen iCustom () användas. Funktion iCustom () Beräkning av den angivna anpassade indikatorn. Den anpassade indikatorn måste sammanställas (.ex4-fil) och finns i katalogen Terminalcatalogueexpertsindicators. symbol - symbolnamn för en säkerhet, på vilken data en indikator kommer att beräknas. NULL indikerar den aktuella symbolen. tidsram - period. Kan vara en av diagramperioderna. 0 betyder perioden för det aktuella diagrammet. namn - namn på den anpassade indikatorn. . - Lista över parametrar (vid behov). Passade parametrar måste motsvara ordningsföljden och typen av externa variabler för en anpassad indikator. läge - Index för en indikatorrad. Kan vara från - till 7 och måste motsvara indexet som används av någon av SetIndexBar-funktionerna. Skift - Index av erhållet värde från en indikatorbuffert (skift tillbaka i förhållande till en aktuell streck med ett visst antal staplar). Låt oss överväga hur iCustom () kan användas i praktiken. Låt oss lösa följande problem: Problem 30. En handelsstrategi är baserad på data för anpassad indikator rocseparate. mq4. Om ROC-linjen i den aktuella tidsramen (orange) passerar en jämn genomsnittlinje (tjock röd) under en viss nivå från botten uppåt är detta ett relevant kriterium att köpa (öppna Köp och stäng Sälj). Om det finns motstridiga villkor, anser du att detta är ett relevant kriterium att sälja. Skriv en kod som genomför denna strategi. Konstruktionsprincipen för den anpassade indikatorn rocseparate. mq4 beskrivs i detaljer i avsnittet Anpassad indikator ROC (Prisförändringsgrad). Fig. 131 illustrerar två punkter, i vilka ROC-linjen i den aktuella tidsramen (M15) korsar den släta hastigheten för ändringslinjen. I punkt A passerar den orange linjen den röda från botten uppåt och platsen för första korsningen ligger under nivån -0.001. I punkt B korsar den orange linjen den röda i nedåtriktningen och korspunkten ligger över nivån 0,001. Fakta om denna passage måste upptäckas i Expert Advisor och anses vara en signal att köpa (punkt A - stäng Sälj och öppna Köp) eller att sälja (punkt B - stäng Köp och öppna Sälj). Fig. 131. Korsning av anpassade indikatorlinjer betraktas som ett handelskriterium. Vid lösningen av sådana problem kan en klar Expert Advisor användas, ändra ordern för beräkningshandelsvillkor i den. I det här fallet kan vi utgå från Expert Advisor tradingexpert. mq4 som beskrivs i avsnittet Simple Expert Advisor. EA shared. mq4 beräkningshandelskriterier utifrån en anpassad indikator kommer att se här: Låt oss analysera vilka ändringar som gjorts i källkoden (tradingexpert. mq4). Huvuddelen av Expert Advisor som används som grundläggande har inte ändrats. Ändringar har gjorts i två kvarter - block 1-2- och block 5-6. I block 5-6 beräknas handelskriterier. I den beskrivna EA är en handelsstrategi baserad på två handelsvillkor - kriterium för att öppna Köp och kriterium för att öppna Sälj. Den strategi som används i Expert Advisor möjliggör närvaron av endast en öppnad marknadsorder, väntande beställningar är inte tillåtna. Strategin förutsätter också att man stänger en motsatt ordning när ett kriterium för att öppna utlösare till exempel om kriterium för att öppna en köporder är relevant betyder det att en Säljorder måste stängas. För att använda i EA shared. mq4 resultaten av beräkningar som utförs i den anpassade indikatorn rocseparate. mq4, måste funktionen iCustom () utföras: I detta fall anger formella parametrar som anges i iCustom () - samtalet följande: NULL - beräkningar i indikatorn är utförs baserat på data från den aktuella säkerheten i detta fall är EA kopplad till EURUSD-fönstret, så data från EURUSD kommer att användas (se bild 131) 0 - I beräkningar används data för den aktuella tidsramen i det här fallet den aktuella tidsramen är M15, så data som motsvarar M15 kommer att användas kvotaseparatequot - name av en anpassad indikator, där beräkningar kommer att göras. H, P, B, A - lista över justerbara parametrar. I det här fallet har den anpassade indikatorn rocseparate. mq4 inställbara parametrar (block 2-3 av rocseparate. mq4 code). För att en användare ska kunna ställa in värden för dessa parametrar från EA, anges de i listan över godkända parametrar för funktionen iCustom (). I expertrådgivarens värden för dessa parametrar kan skilja sig från de som anges i indikatorn. I ett sådant fall under beräkningar i indikatorn exakt kommer dessa passerade värden att användas. Dessa parametrar anger följande: H - Antal staplar i beräkningshistorik P - Beräkningstid MA B - Antal staplar för beräkning av beräkning A - Antal staplar för utjämning. (betydelsen av dessa parametrar förklaras i detaljer i avsnittet Anpassad indikator ROC.) 1 (5) - Indikatorens indexrad. I den anpassade indikatorn används rocseparate. mq4 6 indikatorrader. ROC-raden i Den aktuella tidsramen (orange) är uppbyggd på grundval av Line1-värden, för vilken buffert med index 1. Används med en jämn medellinjelinje baserat på värdena på Line5-element, indexet för den använda bufferten är 5. 0 - värdeindex erhållen från en indikatorbuffert (skift tillbaka i förhållande till en aktuell streck med angivet antal perioder). I detta fall används värden av indikatorlinjer på nollstången, det är därför index 0 anges. För att en användare ska kunna Ändra de justerbara indikatorparametrarna i EA manuellt, externa variabler anges i block 1a-1b (av expertrådgivaren). I block 5-5a tilldelas värdena för dessa parametrar till andra variabler med kortare namn - detta görs för att göra det lättare kodpresentation i block 5a - 5b. Således kan en användare ange i shared. mq4 parametrar, med vilka beräkningar i anpassad indikator rocseparate. mq4 kommer att utföras. Efter exekvering kommer iCustom () - funktionen att returnera värde som motsvarar ett specificerat elementvärde för angiven indikatormatris beräknad i indikatorn med angivna värden för justerbara parametrar. Under praktisk drift är det bekvämt att se i en säkerhetsfönsterlinje av indikatorn, vars arrayelement används i expertrådgivaren (se fig 131). Samtidigt är exekveringen av iCustom () inte kopplad till närvaron av indikatorn i säkerhetsfönstret, liksom med värdena för dess justerbara parametrar. Utförandet av iCustom () behöver inte bifogas en motsvarande indikator till ett säkerhetsfönster. Förutom anropet av iCustom () från något applikationsprogram leder inte till att en motsvarande indikator bifogas ett säkerhetsfönster. Bilaga av en teknisk indikator till ett säkerhetsfönster leder inte heller till att iCustom kallas i något applikationsprogram. Handelsvillkor i EA (block 5-6) beräknas på grundval av matriselementvärden erhållna med hjälp av iCustom () - funktionen. Exempelvis beräknas ett kriterium för att öppna Köp och stänga Sälj på följande sätt: Om det senast kända värdet av en glatt genomsnittlinje (L5) är mindre än den angivna nivån (värdet på den inställbara parametern Nivå 0.001) och det senast kända värdet av ROC-linjen i den aktuella tidsramen (L1) är större än den släta genomsnittslinjen (L5), kriteriet för att öppna en köporder och stänga en Säljorder anses vara relevant. För bekräftelse av relevans av motsatta kriterier används reflekterande villkor. Handelsvillkor accepterade i det här exemplet används endast för utbildningsändamål och får inte betraktas som en riktlinje vid handel på ett verkligt konto. Genomsnittlig genomsnittlig Den rörliga genomsnittliga tekniska indikatorn visar medelvärdet av instrumentpriset under en viss tidsperiod. När man beräknar glidande medelvärde, genomsnittar man instrumentpriset för denna tidsperiod. När priset ändras ökar eller förminskar dess rörliga genomsnitt. Det finns fyra olika typer av glidande medelvärden: Enkel (även kallad aritmetisk), Exponentiell. Smoothed och Weighted. Flyttande medelvärde kan beräknas för varje sekventiell dataset, inklusive öppnings - och slutkurser, högsta och lägsta priser, handelsvolym eller andra indikatorer. Det är ofta fallet när dubbla rörliga medelvärden används. Det enda där glidande medelvärden av olika typer skiljer sig avsevärt från varandra är när viktkoefficienter, som tilldelas de senaste uppgifterna, skiljer sig åt. Om vi pratar om Simple Moving Average. Samtliga priser för den aktuella tidsperioden är lika med värdet. Exponentiell rörlig medelvärde och linjärt vägt rörande medelvärde bifogar mer värde till de senaste priserna. Det vanligaste sättet att tolka prisglidande genomsnittet är att jämföra sin dynamik med prisåtgärden. När instrumentpriset stiger över sitt glidande medelvärde visas en köpsignal, om priset sjunker under sitt glidande medelvärde, har vi en säljsignal. Detta handelssystem, som är baserat på det rörliga genomsnittet, är inte utformat för att ge inträde till marknaden rätt i sin lägsta punkt och dess utgång höger på toppen. Det tillåter att handla enligt följande trend: att köpa snart efter att priserna når botten och att sälja snart efter att priserna har nått sin topp. Flyttande medelvärden kan också tillämpas på indikatorer. Det är här tolkningen av indikatorens glidande medelvärden liknar tolkningen av prisförskjutande medelvärden: om indikatorn stiger över dess glidande medelvärde betyder det att den stigande indikatorrörelsen sannolikt kommer att fortsätta: om indikatorn faller under dess glidande medelvärde innebär att det sannolikt fortsätter att gå nedåt. Här är typerna av glidande medelvärden på diagrammet: SMA (Medium Moving Average (SMA) Exponential Moving Average (EMA) Smoothed Moving Average (SMMA) Linjärt vägt rörligt medelvärde (LWMA) Du kan testa handelssignalerna för denna indikator genom att skapa en expertrådgivare i MQL5 Wizard. Beräkning Enkelt rörligt medelvärde (SMA) Enkelt, med andra ord beräknas aritmetiskt rörligt medelvärde genom att summera priserna på instrumentlåsning under ett visst antal enskilda perioder (t ex 12 timmar). Detta värde divideras därefter med antalet sådana perioder. SMA SUM (CLOSE (i), N) N SUM summa CLOSE (i) aktuell period nära pris N antal beräkningsperioder. Exponentiellt rörligt medelvärde (EMA) Exponentiellt glatt rörligt medelvärde beräknas genom att tillägga en viss andel av nuvarande slutkurs till föregående värde för glidande medelvärde. Med exponentiellt slätade glidande medelvärden är de senaste snabba priserna mer värdefulla. P-procent exponentiell glidande medelvärde kommer att se ut: EMA (CLOSE (i) P) (EMA (i - 1) (1 - P)) CLOSE (i) nuvarande period nära pris EMA (i - 1) av en föregående period P procentsatsen av att använda prisvärdet. Smoothed Moving Average (SMMA) Det första värdet av detta slätade glidande medelvärde beräknas som det enkla glidande medelvärdet (SMA): SUM1 SUM (CLOSE (i), N) Det andra glidande medlet beräknas enligt följande formel: SMMA (i) (SMMA1 (N-1) CLOSE (i)) N Lyckande glidande medelvärden beräknas enligt följande formel: PREVSUM SMMA (i - 1) N SMMA (i) (PREVSUM - SMMA (i - 1) CLOSE (i)) N SUM summan SUM1 Summa summan av slutkurserna för N perioder räknas den från föregående stapel PREVSUM glatt summa av föregående stapel SMMA (i-1) glatt glidande medelvärde för föregående stapel SMMA (i) glatt glidande medelvärde för nuvarande stapel (förutom den första) CLOSE (i) nuvarande slutpris N utjämningsperiod. Efter aritmetiska omvandlingar kan formeln förenklas: SMMA (i) (SMMA (i - 1) (N - 1) CLOSE (i)) N Linjärt Vägt Flytande Medelvärde (LWMA) Vid viktat glidande medelvärde är de senaste data av mer värde än mer tidiga data. Viktat glidande medelvärde beräknas genom att multiplicera var och en av slutkurserna inom den angivna serien med en viss viktkoefficient: LWMA SUM (CLOSE (i) I, N) SUM (I, N) SUM Summa CLOSE (i) Nuvarande nära pris SUM (I, N) Total summa av viktkoefficienter N utjämningsperiod. Jag är ny för att koda och lär mig mycket, men jag har slagit något som jag inte kan få mitt huvud för just nu. Jag försöker ringa resultatet av ett test i en av mina indikatorer, till ett ea, så det kan lägga till det i sina egna tester innan man gör en handel. Ea är ett enkelt glidande medelvärde kors. Indikatorn är en indikator för trending eller mätning. Jag har bifogat indikatorkoden. Jag skulle vilja ha hjälp, och om möjligt förklaras helt enkelt så att jag kan ta huvudet på hur det ska sättas in i indikatorn, för att ea ska känna igen det. När jag har indikatorn sorterad kommer jag att flytta på ea. Indikatorn har två test, där jag skulle vilja lägga till iCustom-funktionen. Vid detta tillfälle vill jag bara lägga till det i ett test, det spelar ingen roll vilken, som jag försöker förstå den. Någon som är villig att hjälpa och förklara det helt enkelt. skulle vara mycket fördelaktigt - jag kan inte tycka att hitta något på nätet som förklarar det så jag förstår det. Resultatet av testet kan helt enkelt vara quottruequot. Tack på förhand för din tid. Mike iCustom låter dig komma åt dina indikatorer buffertar. det är så enkelt. Du skriver till exempel en EA som har en strategi baserad på 2 indikatorer, du kan bygga indikatorkoden i EA, det är möjligt men uteslutet lite som indikatorbuffertar fungerar inte på EA: erna, du måste använda arrayer och hantera dem i kvotserier Alternativet är att indikatorerna ska köra och få åtkomst till sina buffertar från EA. det här är det som iCustom underlättar. Inga förändringar behövs för indikatorerna. EA hämtar helt enkelt buffertarna som behövs vid de skiftvärden som behövs. I iCustom-samtalet kan det också passera alla externa variabler som behövs för att ställa in indikatorn, beroende på vad som är tillämpligt. ICustom låter dig komma åt dina indikatorer buffertar. det är så enkelt. Du skriver till exempel en EA som har en strategi baserad på 2 indikatorer, du kan bygga indikatorkoden i EA, det är möjligt men uteslutet lite som indikatorbuffertar fungerar inte på EA: erna, du måste använda arrayer och hantera dem i kvotserier Alternativet är att indikatorerna ska köra och få åtkomst till sina buffertar från EA. det här är det som iCustom underlättar. Inga förändringar behövs för indikatorerna. EA hämtar helt enkelt buffertarna som behövs vid de skiftvärden som behövs. I iCustom-samtalet kan det också passera alla externa variabler som behövs för att konfigurera indikatorn som tillämplig Tack för det RaptorUK, men det är den faktiska kodningen som jag har problem med. Jag är väldigt ny på MQL4 och har bara gjort det ett par månader och lär mig fortfarande - så jag behöver en enkel förklaring av kodningen och hur man ställer upp den i indikatorn.
No comments:
Post a Comment