Hur man gör en handelsrobot på nolltid. För att göra en handelsrobot behöver du ett handelssystem. Åtgärder på finansmarknaderna innebär många risker, inklusive den mest kritiska, risken att fatta ett felaktigt handelsbeslut. Drömmen för varje näringsidkare är att Hitta en handelsrobot som alltid är i gott skick och inte utsatt för mänskliga svagheter - rädsla, girighet och otålighet. Varje nykomling vill få eller skapa ett tydligt och strikt handelssystem som kan presenteras i form av algoritmer och helt bli av med Rutinmässig verksamhet Är det möjligt. Ett handelssystem är ett nödvändigt villkor för att komma in på marknaden och det systemet ska vara lönsamt, naturligtvis När nykomlingar kommer till marknaden blir de vanligtvis överväldigade av den stora massan av information som är svår att förstå böcker och handelsförum Kan ge lite hjälp i det fallet. Tyvärr är inte alla författare framgångsrika näringsidkare och inte alla framgångsrika näringsidkare skrivböcker. Många särskilda webbresurser skapas bara för att tjäna vinst för deras o Eftersom det är mycket svårare att handla egna pengar än att utfärda prognoser och lära sig handelssystem. Varje näringsidkare bör självständigt överlåta alla stadier av ett handelssystem skapande. Det är ett populärt ordspråk att det inte spelar någon roll vilket system du använder för handel , Det viktigaste är att du verkligen bör handla enligt det systemet. Annars växlas handel på marknaden till ett spel med ett förutsägbart result. Trading Robots and Forex. Forex-marknaden antas ha en bra likviditet. Det gör det också möjligt att handla 24 timmar En dag, till skillnad från många andra marknader Därför försöker många handlare att göra handelsrobotar speciellt för Forex marknaden, eftersom det erbjuder ett stort antal handelsinstrument. Men skeptiker hävdar att alla valutapar är starkt korrelerade med varandra och ger mycket låg volatilitet i Marknaden Men deras motståndare svarar att varje valutapar har sina egna funktioner och låg volatilitet kompenseras av en stor hävstång. I vilket fall är Forex-instrument attraktiva för Gör handelsrobotar och de flesta anhängare av den automatiserade handeln sin kompetens på valutapar. MetaTrader 4 och MetaTrader 5 handelsterminaler är speciellt utformade för att enkelt utveckla automatiserade handelssystem men samtidigt är deras gränssnitt också bekvämt för manuell handel. Hur startar Att göra en handelsrobot. Det finns många sätt att bygga ett automatiserat handelssystem Vi kommer att beskriva endast några få stora. Den första metoden ligger på matte En utvecklare försöker skapa en slags ekvation som kan överväga många faktorer. Detta tillvägagångssätt bygger på Fast tro på att prisrörelser hanteras av en modell som kan hittas med hjälp av tillgängliga historiska data. I de flesta fall vet anhängarna av ett sådant tillvägagångssätt för mycket matte men vet ingenting om att inte vara intresserade av marknaden. Marknaden är en ren abstraktion , En typ av ett intellektuellt spel för dem Detta tillvägagångssätt leder vanligtvis till många års studier och utveckling, medan ett bestämt resultat i form av ett arbete Automatiserat handelssystem är inte så viktigt. Det andra tillvägagångssättet bygger på att studera marknadslagar. Inga försök görs för att förstå varför priset går upp eller ner när olika tekniska analysfigurer visas på ett diagram. Fördelen med detta tillvägagångssätt är att det kräver ingen Speciell kunskap om matematik och gör inga antaganden om marknadens drivkraft. Det är mest tydligt och praktiskt när man studerar handel. Det är mest populärt bland handlare som mottog universellt erkännande. Nackdelen med tillvägagångssättet är nödvändigheten att ständigt följa alla nödvändiga symboler. Senare börjar en näringsidkare överväga automatisering av handelsprocesser och det mest betydande problemet framträder i det här skedet komplexiteten att formalisera handelsregler när man försöker uttrycka dem i form av algoritmer. I vissa fall kan handlare som försöker beställa en handelsrobot inte beskriva handelsregler och Hitta gemensam grund med programmerare. Det tredje tillvägagångssättet är baserat på försöket att skapa en svart boxbas Ed på neurala nätverk med användning av färdiga verktyg allmänt tillgängliga i specialprogram och matpaket. Skapa ett automatiserat handelssystem med elementen i den artificiella intelligensen är en spännande och utmanande uppgift även för nykomlingar, eftersom det inte kräver någon djup matematisk Bakgrund, eller programmeringserfarenhet - allting görs med hjälp av visuella hjälpmedel. En näringsidkare bör känna till grunderna för tekniska indikatorer, ha förmåga att förbereda nödvändiga prisdata och erfarenhet i ett visst paket för att arbeta med neurala nätverk. Den huvudsakliga nackdelen med detta tillvägagångssätt är att En handelsrobot som erhållits med hjälp av sådana specialverktyg för att arbeta med neurala nätverk är faktiskt en svart låda. Traders känner inte till sina arbetsprinciper och i allmänhet är det omöjligt att förutsäga vilken marknadsfas som är mest problematisk för roboten. Programmerare väljer ofta de Fjärde tillvägagångssättet börjar de göra en handelsrobot från början utan att spendera tid för manuellt tra Ding Varför handla manuellt Du kan göra en robot att spendera några månader och skörda fördelarna med dina ansträngningar då. Men inga smärtor, inga vinster I de flesta fall börjar programmerare skapa all nödvändig infrastruktur med ett välbekant programmeringsspråk istället för att bara göra en handelsrobot Få och bearbeta prisdata, visuell representation av diagram och indikatorer, anpassade sätt att testa strategier på historiska data och så vidare. De får stor erfarenhet i processen Men i de flesta fall bringar den erfarenheten dem inte närmare det slutliga målet att skapa Ett automatiserat handelssystem Och även om en handelsrobot skapas finns det ingen garanti för att det kommer att bli lönsamt. Och om en programmerare vill skriva ett annat handelssystem. Djup omstrukturering och nya programmeringsfel är oundvikliga. Det finns också det femte tillvägagångssättet att köpa en Färdigt handelssystem i form av en handelsrobot I det här fallet handlar en näringsidkare som en operatör eller en tuner. Detta tillvägagångssätt sparar mycket tid utan att behöva lea Rn många nya saker och gör det möjligt för handlare att snabbt komma in i den automatiserade handelns värld. Den huvudsakliga nackdelen med detta tillvägagångssätt stammar från dess fördelar som du inte känner till handelsprincipen för din handelsrobot och dess struktur. Och även om en säljare har försett dig med En detaljerad beskrivning av det implementerade handelssystemet kommer du aldrig att vara helt säker på. Men ingen av de nämnda metoderna kan ge dig absolut garanti utom en bankdeposition Men det är inte en mycket lämplig lösning för personer intresserade av marknadshandel och sätt Att öka sina privata tillgångar. Vad är den bästa tillvägagångssättet för den automatiska handeln för en näringsidkare. Vart och ett av de fem beskrivna tillvägagångssätten har sina fördelar och motsvarar någon bestämd typ av näringsidkare. Det är osannolikt att du kommer att välja den första tillvägagångssättets analytiska beskrivning utan Bra matematisk bakgrund Det är lika osannolikt att du kommer att börja från att göra handelsrobotar baserade på neurala nätverk. Men båda Se tillvägagångssätt är väldigt spännande och ger god intellektuell övning. Då kommer vi bara att diskutera det andra tillvägagångssättet, vilket redan anses vara det klassiska. Det är det tillvägagångssätt som vanligtvis väljs av nya efterföljare av den automatiska handeln, eftersom den tekniska analysen fortfarande är nyckeln Kunskapsområde när man lär sig handelens grunder. En annan fördel med det andra tillvägagångssättet är att efter att du spenderat tid för manuell handel och få en känsla av marknaden, kommer du redan ha en god förståelse för tekniska analysverktyg. Dessutom kommer du att kunna programvara Handelsstrategier eller skapa neurala nätverk på en högre nivå. De första stegen i att göra en handelsrobot. För att skapa ett automatiserat handelssystem behöver du programmeringsförmåga och kunskap om alla komplexa handelsförfrågningar. Men först kan du börja från färdiga Expert Advisors handlar robotar från Free Code Base-biblioteket. Ladda ner alla Expert Advisor-handelsrobotar och starta den i Strategitestaren av MetaT Rader 4 eller MetaTrader 5 klientterminaler Välj ett historikintervall som visar en stark trend och ett intervall med en platt Utför optimering av en Expert Advisor-ingångsparametrar och undersök deras skillnader vid dessa två intervaller. Starta en Expert Advisor med de optimala parametrarna för en platt på Ett trendintervall och de optimala parametrarna för en trend på ett plattintervall. Undersök skillnaderna i handelsresultat, fördelningsfördelningar och andra statistiska parametrar. Som ett resultat kommer du att veta hur mycket ditt handelssystems beteende kan variera när marknadsläget förändras . Det vore bättre att prova flera standard handelsstrategier med hjälp av den här metoden på olika delar av historien och olika symboler. En sådan provkörning hindrar från att passa ett handelssystem för ett visst historiskt intervall och ger bättre förståelse för trend - och motgångssystem. Nästa steg Skulle vara att skapa mer komplexa handelssystem baserat på kombinationen av redan existerande enkla signaler Från MQL5 Wizard-uppsättning Du kan testa och utveckla din handelsintuition genom att sortera ut dåliga signaler för ett system med ett filter baserat på ett annat system utan programmeringsmedel. Huvudsaken här är inte att överdriva. Ju fler ingångsparametrar ett handelssystem har desto lättare Ska monteras Det har skett mycket diskussioner om skillnaderna mellan optimering och montering Det finns inga allmänt accepterade lösningar här Men visualisering av testoptimeringsresultat och din egen sunt förnuft kan hjälpa dig. Läs om att identifiera de viktigaste inmatningsparametrarna som påverkar din Handelssystem från hela uppsättningen av inmatningsdata Betala inte mycket uppmärksamhet på sekundära parametrar som tar tid under optimering men påverkar inte systemets mycket logik. Kom ihåg att ett bra handelssystem alltid visar en liten fri rörelse av sekundära parametrar, men det gör det Visa inte dramatisk volatilitet vid oöverstigliga marknadsförändringar. Du kan spendera så mycket tid på detta stadium som du önskar , Tills du är säker på att du kan förstå eventuella handelsstrategiska undersöknings-test och optimeringsresultat Kunskapen om styrkor och svagheter i standardsystem gör att du kan bli bättre förberedd när du skapar din egen handelsrobot. Programmera en handelsrobot. Antag att du har lärt dig Lär sig MQL4 eller MQL5 programmeringsspråk och nu är du redo att skriva din första expertrådgivare för MetaTrader-klientterminalen Flera fall är möjliga här. Först kan du undersöka flera färdiga handelsrobotar som beskrivs i artiklarna för att bättre förstå programmeringsplikten. Andra , Du kan ställa frågor om eller om du har några olösta problem. Upplevda samhällsdeltagare hjälper vanligtvis de nykomlingar som visar uppriktigt intresse för ämnet. För det tredje kan du beställa imprpovement eller utveckling av en expertrådgivare eller en indikator i Jobbtjänsten om du inte kan Att skriva ett nödvändigt program på egen hand Men även om du beställer via freelance-tjänsten bör du hav Jag har en aning om strategitestning för att hitta ett gemensamt språk med en utvecklare. Dessutom kan grundläggande kunskaper i ett programmeringsspråk ge dig möjlighet att genomföra mindre korrigeringar och ändringar i koden efter att arbetet redan har slutförts. Det skulle ju inte vara alltför bekvämt Att ringa en programmerare för att åtgärda varje liten fråga du stöter på. Det skulle vara mycket enklare och snabbare för att fixa det själv. Inget behov av att återställa hjulet. Hur hittar du din egen handelsstrategi eller åtminstone i vilken riktning ska du fokusera din sökning Alla näringsidkare skyddar sina egna handelssystem om de har en. Alla nykomlingar vill skapa ett lönsamt system eller få ett färdigt. Samtidigt verkar någon erhållen lösning vara för enkel jämfört med nykomlingens idéer om ett äkta handelssystem. Armé män över hela världen är benägna att överdrivna nivåer av sekretess Det finns många skämt om det inklusive följande Militärhemligheten är inte i det du studerar, - en officer säger till militärskolan Studenter - men i det faktum att du precis studerar det. Situationen med handelssystemen är lika stor som de flesta handlare använder enkla och välkända handelsideer med mindre ändringar, till exempel, lägger till Trailing Stop eller bekräftelser från trendindikatorer. Det finns gott om Av traderforum med begränsad tillgång där deltagare går med i deras ansträngningar att utveckla eller förbättra några hemliga handelssystem. Mest intressant är att sådana system inte innehåller något speciellt alls. Vanligtvis används en välkänd idé som handel med trenden då Det är perfekt med några nya indikatorer som inte är kända för allmänheten. Därför kan du enkelt ta till sig tillgängliga robotrobotkoder och försöka använda dem korrekt med olika symboler och tidsramar. Ett annat populärt ord kan nämnas här. Du gillar inte katter. Du bara inte Vet hur man lagar mat Det är svårt att tro men sannolikheten för att du kommer att utveckla något som är riktigt nytt är väldigt litet Huvudet här är att skapa Ea-system med hjälp av tillgängliga ingredienser Tänk inte att några genier har tillgång till några hemliga system från NASA-laboratorier. Det är Grays hemlighet. Bara några kommer att göra det. Så, varför använder ingen handelsidéer om de bokstavligen är Inom arm s reach Svaret ligger troligen i mänsklig psykologi Personalen i många banker och stora investeringsfonder inkluderar näringsidkare som utför affärer enligt strikta regler och inom begränsade volymer Men av några skäl lämnar bara några institutionella handlare sina företag och börjar handla med sina Egna pengar. Det visar sig att du inte bara behöver en handelsstrategi utan också järndisciplinen för att följa det. Många handlare upptäckte med ånger att de också har samma psykologiska problem som beskrivs i böckerna. Efter att ha insett att den värsta fienden av handlare är själva, En nykomling börjar tänka på att göra en handelsrobot för att eliminera en psykologisk börda. Även om jag avviker något från ämnet, borde jag nämna legen Dary Turtles traders som framgångsrikt handlas på flera marknader i slutet av 1900-talet Läs Turtlevägen och du kommer att se att det viktigaste för en näringsidkare är en självdisciplin och inte något topphemligt system Okej, de flesta nykomlingar kommer inte att kunna Att följa en lönsam strategi även om de får det gratis. Problemet är att de flesta handelsstrategier som är perfekt utrustade för manuell handel knappast kan formaliseras och transkriberas till ett programmeringsspråk. De strategier som lätt kan formaliseras, till exempel de som involverar Två glidande medelvärden är alltför enkla och kräver mycket förädlingar och förbättringar så att de kan användas i praktiken Således blir en enkel idé komplicerad genom en mängd externa parametrar som förhindrar en handelsrobot från falska poster och fel klart synliga för en Utvecklare En optimeringsproblem för handelsrobotar uppstår Denna process bör inte bli en överoptimering och anpassning för ett visst historikintervall. Ta itu med detta problem har framåtprovningen med de erhållna systemparametrarna implementerats i MetaTrader 5-terminalen. Om resultaten för framåtprovningen inte skiljer sig avsevärt från de som uppnåtts i optimeringsdelen är det sannolikt att en handelsrobot kommer att vara stabil nog för Någon tid efter lanseringen på ett handelskonto En längd av ett intervall för parametraroptimering och ett verkligt värde av det visserligen beror på ett visst handelssystem. Därför påminner optimeringen av en handelsrobot innan den lanseras på ett handelskonto på avveckling En sling - desto mer försiktigt har vi lindat och slängt en projektil från slingan, desto längre kommer den att flyga och ju mer exakt dess bana kommer att bli. En grundligt utvecklad handelsrobot kommer att hålla ett positivt resultat på ett handelskonto under en längre tid än en Trading robot erhållen som ett resultat av en montering Vi kan säga att gralen är en fungerande idé och korrekt justering av parametrar som utförs från tid till ti Mig vid tillfällen av marknadsförhållandena förändringar. Detta kan illustreras av resultaten av det automatiserade handelsmästerskapet som hålls i många år redan skickat Expert Advisors av alla deltagare passerar genom automatiska tester på tidsintervallet från januari till slutet av juli Huvudkravet för att passera det automatiska testet är en vinst som uppnåtts i åtta månaders provning. Men mindre än hälften av handelsrobotar som antas för mästerskapet är lönsamma efter dig månader med autonomt arbete. Du kan också prova dina färdigheter när det gäller att göra och justera din handel Robot för att delta i mästerskapet och få framåtriktad testresultat från din expertrådgivare Dessutom är deltagandet gratis och priserna är imponerande. Vi hoppas att vi ses där. Professionella intradaghandlare spenderar många timmar sittande på sina datorer och väntar på rätten Ögonblick för att göra en affär Naturligtvis kan de inte vara i bra form hela tiden. De flesta handlare kommer till slutsatsen att deras handlingar S bryter mot sina egna handelsregler Inte alla handelssystem kan formaliseras, men även sådana system kan i de flesta fall anta ytterligare verktyg, såsom indikatorer, analytiska system och falska signaler. Vi gör inga speciella rekommendationer här om MQL4 eller MQL5 språk Lärande, eftersom det finns många andra användbara artiklar om det här ämnet. Syftet med denna artikel var att ge en första inledande idé om hur man börjar göra din handelsrobot för MetaTrader 4 och MetaTrader 5 terminaler. Vi hoppas att denna artikel kommer att spara tid för Nykomlingar och visa rätt riktning i den svåra uppgiften att utveckla ett automatiserat handelssystem. Förhandlingar om handel, automatiserade handelssystem och teststrategier för handel Pressmeddelande newdigital, 2014 02 15 06 58 Traderformat och smaker baserade på dailyfxartikel Teknisk vs Fundamental Teknisk analys Är konsten att studera tidigare prisbeteende och försöker förutse prisdrag i framtiden. Dessa är näringsidkare S som endast fokuserar på prisdiagram och ofta innehåller indikatorer och verktyg för att hjälpa dem. De tittar på prisåtgärder, stöd och motståndsnivåer och diagrammönster för att skapa handelsstrategier som förhoppningsvis kommer att göra en vinst. Grundläggande analys ser på de underliggande ekonomiska förutsättningarna för Varje valuta Traders kommer att vända sig till ekonomisk kalender och centralbankmeddelanden De försöker att förutse var priset kan ledas utifrån räntor, arbetslösa påståenden, skatteavkastning och mer. Detta kan göras genom att titta på mönster i tidigare ekonomiska pressmeddelanden eller genom förståelse Ett lands ekonomiska situation Korttids-mot-med-termen mot långsiktig Beslutar vilken tidsram vi ska använda bestäms mestadels av hur mycket tid du måste ägna dig åt marknaden på ett dagligt sätt. Ju längre tid du har Varje dag att handla, desto mindre är tidsramen du kan handla, men valet är i sista hand ditt. Korttidshandel innebär i allmänhet att man placerar handel med avsikt att clo Sjunga ut positionen inom samma dag, även kallad Day Trading eller Scalping om handeln öppnas och stängs mycket snabbt På grund av den hastighet vid vilken handel öppnas och stängs, använder kortfristiga handlare små tidsramar per timme, 30 min , 15min, 5min, 1min Medellångsiktiga affärer eller Swing Trades lämnas vanligtvis i några timmar upp till några dagar. Vanliga tidsramar som används för denna typ av handel är dagliga, 4-timmars - och timkartor. Affärer öppna för dagar, veckor, månader och möjligen år Veckovisa och dagliga diagram är populära val för långsiktiga näringsidkare Om du är en deltidspraktiker kan det vara lämpligt att börja med att handla långsiktiga affärer som kräver mindre tid Diskretionär vs Automatiserad diskretionär handel innebär att en näringsidkare öppnar och stänger branschen med eget gottfinnande. De kan använda någon av de handelsstilar som anges ovan för att skapa en strategi och sedan genomföra den strategin genom att placera varje enskild handel. Den första challen Nge skapar en vinnande strategi att följa men den andra och eventuellt svårare utmaningen följer noggrant strategin genom tjock och tunn. Psykologin i handeln kan orsaka kaos på en annars lönsam strategi om du bryter dina egna regler under knäcktid. Automatiserad handel eller Algoritmisk handel kräver samma tid och engagemang för att skapa en handelsstrategi som en diskretionär näringsidkare, men då handlar automaten den faktiska handelsprocessen med andra ord öppnar och stänger mjukvaran mjukvaran själv utan att behöva hjälp av näringsidkaren. Det har tre Huvudsakliga fördelar För det första sparar den näringsidkaren ganska lite tid eftersom de inte längre behöver övervaka marknaden så nära till insatshandeln. För det andra tar det emot känslorna ur handel genom att låta en dator öppna och stänga affärer på dina vägnar. Det betyder att du Följer din strategi för brevet och kan inte avvika. För det tredje kan automatiserade strategier handla 24 timmar om dygnet, 5 dagar i veckan Ger ditt konto möjligheten att utnyttja alla möjligheter som kommer sin väg oavsett tid på dagen. Det måste läsas artikel för alla Freelance-kunder här innan de trycker på Ny jobb-knappen, för att minimera skiljedomsförfarandet. Trafiksystemkodning. Handelssystem är helt enkelt uppsättningar av regler som handlarna använder för att bestämma sina poster och utgångar från en position. Utveckling och användning av handelssystem kan hjälpa handlare att uppnå jämn avkastning samtidigt som riskbegränsning. I en idealisk situation bör handlare känna sig som robotar, genomföra affärer systematiskt och utan känslor Så kanske du frågade dig själv Vad är det för att stoppa en robot från att handla mitt system Svaret Inget Denna handledning kommer att presentera dig för de verktyg och tekniker som du kan använda för att skapa ditt eget automatiserade handelssystem. Hur är automatiserade handelssystem skapade automatiserad handel System skapas genom att konvertera ditt handelssystem s regler till kod som din dator kan förstå din dator körs sedan Dessa regler regleras via din handelsprogramvara, som söker efter affärer som följer dina regler. Slutligen placeras handeln automatiskt med din mäklare. Denna handledning kommer att fokusera på andra och tredje delen av denna process där dina regler omvandlas till en kod som Din handelsprogramvara kan förstå och använda. Vilken handelsprogramvara stöder automatiserade handelssystem Det finns många handelsprogram som stöder automatiserade handelssystem. Vissa kommer automatiskt generera och placera affärer med din mäklare. Andra kommer automatiskt hitta affärer som passar dina kriterier, men kräver att du placerar Beställningarna med din mäklare manuellt Dessutom kräver helt automatiska handelsprogram ofta att du använder specifika mäklarfirmor som stöder sådana funktioner, du kan också behöva fylla i en kompletterande auktoriseringsblankett. Tillägg och nackdelar Automatiserade handelssystem har flera fördelar, men de har också sina nackdelar Trots allt, om någon hade ett handelssystem som automatiskt gjorde Pengar hela tiden, skulle han eller hon bokstavligen ha en penningmaskin. Ett automatiskt system tar känslan och upptaget arbete, vilket gör att du kan fokusera på att förbättra din strategi och penninghanteringsregler. När ett lönsamt system utvecklas , Det kräver inget arbete för din del förrän det bryts eller marknadsförutsättningarna kräver en förändring. Om systemet inte är korrekt kodat och testat kan stora förluster uppstå mycket snabbt. Ibland är det omöjligt att sätta vissa regler i kod, vilket gör det Svårt att utveckla ett automatiserat handelssystem. I denna handledning lär du dig att planera och designa ett automatiserat handelssystem, hur man översätter denna design till kod som din dator kommer att förstå, hur man testar din plan för att säkerställa optimal prestanda och slutligen, Hur man sätter systemet i bruk. Ta reda på om det går en mindre väg att arbeta till din tjänst - eller mot det. Ett handelssystem kan spara tid och ta emot känslan ur handel, men adoptera tar kunskap och resurs S - läs mer här. De flesta mäklare kommer att förse dig med handelsrekord, men det är också viktigt att hålla reda på dina egna. Dessa steg kommer att göra dig en mer disciplinerad, smartare och i slutändan rikare näringsidkare. Ofta frågade frågor. I Storbritannien , Black Wednesday 16 september 1992 är känd som den dag som spekulanter bröt pundet. De gjorde det faktiskt inte. Det är viktigt att känna din skuld-till-inkomst-kvot eftersom det är siffran långivare använder för att mäta din förmåga att betala tillbaka. Om Monsanto Company s två huvudsakliga verksamhetsavdelningar och dess huvudkonkurrenter inom varje sektor, inklusive The Mosaic. När du gör en hypotekslån, är det betalda beloppet en kombination av en ränteavgift och huvudbetalning över de Frågor som ställs. I Storbritannien, Svart onsdag 16 september 1992 är känd som den dag som spekulanterna bröt pundet. De gjorde det faktiskt inte. Det är viktigt att veta din skuldsättningsgrad eftersom det är siffran långivare använder för att mäta din förmåga att betala tillbaka. N om Monsanto Company s två huvudsakliga verksamhetsavdelningar och dess huvudkonkurrenter inom varje bransch, inklusive The Mosaic. När du gör en hypotekslån är det betalda beloppet en kombination av en ränteavgift och huvudbetalning över. Skapa din egen handelsrobot i 6 steg. En mer tid om MQL5-guiden. Världen runt oss förändras snabbt och vi försöker hålla fast vid det. Vi har inte tid att lära oss något nytt, och det här är en normal inställning till ett normalt människa. Traders är Människor precis som alla andra, de vill få maximala resultat för minimalt arbete Speciellt för handlare erbjuder MetaEditor 5 en underbar MQL5-guide. Det finns flera artiklar som beskriver hur man skapar ett automatiserat handelssystem med hjälp av guiden, inklusive en lätt version av MQL5-guiden För Dummies och en version från utvecklare - MQL5 Wizard New Version. Det verkar allt bra - en handelsrobot skapas med 5 musklick, du kan testa den i Strategy Tester och optimera parametrarna för Ett handelssystem kan du låta den resulterande roboten handla på ditt konto utan att behöva göra någonting annat manuellt Men problemet uppstår när en MQL5-utvecklare av näringsidkare vill skapa något av sig själv, något unikt som aldrig har beskrivits någonstans, och Kommer att skriva sin egen modul av handelssignaler. Trader öppnar MQL5-dokumentationen, kommer till Standardbiblioteket och är skrämmad för att se. Fruktansvärda klasser. Förresten, förenklar MQL5-guiden kraftigt skapandet av expertrådgivare, men först behöver du Att lära sig vad som ska användas som input för att automatiskt skapa en expertrådgivare med hjälp av guiden MQL5, se till att dess komponenter följer fem grundläggande klasser i avsnittet basklasser av expertrådgivare. CExpertBase är en basklass för fyra andra klasser. CExpert är klassen för att skapa en handelsrobot. Det här är den klass som handlar. CExpertSignal är en klass för att skapa en modul för handelssignaler. Artikeln handlar om den här klassen. CExpertTrailing är en Klass för att få ett skyddande stoppförlust. CExpertMoney är pengarhanteringsklassen. Här är hela kraften i det stora och hemska tillvägagångssättet som kallas Objektorienterad programmering OOP Men var inte rädd, nu har nästan alla en mobiltelefon med massor av Funktion och nästan ingen vet hur det fungerar Vi behöver inte studera allt detta, vi kommer bara att diskutera några funktioner i CExpertSignal-klassen. I denna artikel kommer vi att gå igenom stadierna för att skapa en modul för handelssignaler och du kommer att se Hur man gör det utan att behöva lära sig OOP eller klasserna Men om du vill kan du gå lite längre då.1 Skapa en klass från grunden. Vi kommer inte att ändra någon befintlig modul av handelssignaler till våra behov, för det är den Sätt att bli förvirrad Därför ska vi helt enkelt skriva vår egen klass, men först använder vi Navigatorn för att skapa en ny mapp för att lagra våra signaler i MQL5 Include Expert. Högerklicka på mappen som vi har skapat, välj Ny fil och skapa En ny klass för vår mod Ule av handelssignaler. Fyll i fälten. Klassnamn - klassens namn Detta kommer att vara en modul för att generera signaler vid korsningen av två glidande medelvärden, så låt namnet det MACross. Base Name är den klass där vår klass Är härledd Och vi borde härleda den från basklassen CExpertSignal. Click Finish och ett utkast till vår modul är redo. Det är hela öst så långt. Vi behöver bara lägga till inkluderingsdeklarationen till den resulterande filen så att kompilatorn vet var du ska hitta Basklass CExpertSignal. Kontrollera den resulterande klassen, den måste vara fri från kompileringsfel och klicka F7 Det finns inga fel och vi kan gå vidare.2 A Hantera modulen. Vår klass är helt tom, den har inga fel och vi kan testa det - låt oss försöka skapa en ny expertrådgivare i MQL5-guiden baserat på den. Vi når steget att välja en modul för handelssignaler och se att vår modul inte finns där. Och hur kan det vara där? Vi lägger inte till några indikationer på MQL5-guiden förstår att vår klass kan vara s Omething användbart Låt oss fixa det här Om du tittar på modulerna i standardpaketet ser du att varje av dem innehåller en rubrik i början av filen. Detta är handtaget i modulen som är sammansatt enligt vissa regler. Och reglerna är mycket Enkelt. Öppna, till exempel källkoden för modulen för AMA-baserade handelssignaler, se den logiska beskrivningen i Signaler för det adaptiva rörliga genomsnittsvärdet. Kör MQL5-guiden och välj den här modulen. Det sista blocket i handtaget hänvisar till modulparametrarna , Den första raden innehåller namnet på modulen som ska visas i MQL5-guiden Som du kan se finns det inget komplicerat Således innehåller handtaget i varje modul följande inmatningar. Titel - Modulnamnet som ska visas i MQL5-guiden. Type - versionen av signalen modulen Det måste alltid vara SignalAdvanced. Name - namnet på modulen efter det att det har valts i guiden MQL5 och används i kommentarer för att beskriva interna parametrar för den genererade Expert Advis Eller helst angivet. ShortName - ett prefix för automatisk namngivning av externa parametrar i den genererade expertrådgivaren i form av Signal ShortName ParameterName. Class - namnet på det som finns i modulen. Page - en parameter för att få hjälp för detta Modul endast för moduler från standardleveransen. Next kommer beskrivningen av parametrarna i form av parametervärden, där följande är specificerat med kommaseparerad. Funktionsnamnet för att ställa in parametervärdet när du startar Expert Advisor . Parametertypen kan vara uppräkning. Standardvärdet för parametern, det vill säga det värde som kommer att ställas in till parametern, om du inte ändrar det i MQL5-guiden. Beskrivningen av parametern, som du ser när du börjar experten Advisor generated in the MQL5 Wizard. Now, knowing all this, let s create the handle of our module of trading signals So, we are writing a module for getting trading signals at the intersection of two moving averages We need to set at least four external parameters. FastPeriod - the period of the fast moving average. FastMethod - the type of smoothing of the fast moving average. SlowPeriod - the period of the slow moving average. SlowMethod - the type of smoothing of the slow moving average. You could also add a shift and the type of prices to calculate each of the moving averages, but it does not change anything fundamentally So the current version is as follows. The module handle is ready, and we have described the following in it. The name displayed in the MQL5 Wizard - Signals at the intersection of two moving averages. Four external parameter to configure the trading signals. FastPeriod - the period of the fast moving average with the default value of 13.FastMethod - the type of smoothing of the fast moving average, simple smoothing by default. SlowPeriod - the period of the slow moving average with the default value of 21.SlowMethod - the type of smoothing of the slow moving average, simple smoothing by default. Save the changes and compile There should not be any errors Run the MQL5 Wizard to check You see, our module is now available for selection, and it shows all of our parameters. Congratulations, our module of trading signal looks great now.3 Methods for Setting Parameters. Now it is time to work with the external parameters Since our trading module is represented by the class MACross, then its parameters must be stored within the same class as private members Let s add four lines equal to the number of parameters to the class declaration We ve already described the parameter in the handle and know the following. But how do the values of the external parameters of the module appear in the appropriate members of our class MACross It s all very simple, you only need to declare public methods of the same name in the class, namely, to add four lines to the public section. When you generate an Expert Advisor on the basis of this module using the MQL5 Wizard and run it on the chart, these four methods are automatically called when initializing the Expert Advisor So here is a simple rule. The rule of parameter creation in the module - for each parameter that we have declared in the handle, we should create a private member in the class for storing its value and a public member for setting a value to it The method name must match the name of the parameter. And the last moment is to set default values for our parameters that will be used in case the methods of value setting are not called Each declared variable or class member must be initialized This technique allows to avoid many of hard-to-find errors. For automatic initialization, the best suiting one is the class constructor it is always the first one to be called when creating an object For default values, we will use those written in the module handle. Here the class members are initialized using the initialization list. As you can see, we haven t used moving average indicators yet We found a simple rule - as many parame ters are stated in the handle of the module, so many methods and members should be in the class that implements the module There is nothing complicated However, don t forget to set default values of parameters on the constructor.4 Check the Correctness of Input Parameters. We have created parameters for our trading module, written methods for setting values to them, and now comes the next important phase - the correctness of parameters must be checked In our case, we must check the periods of moving averages and the type of smoothing for their calculation For this purpose you should write your own ValidationSettings method in the class This method is defined in the parent class CExpertBase and in all its children it is obligatorily redefined. But if you do not know anything about object-oriented programming, just remember - in our class we should write the ValidationSettings function, which requires no parameters and returns true or false. As you can see, in the public part of the MACross class we ve added declaration of the ValidationSettings method, and then added the method body in the following form. First comes the return type, then the class name, then scope resolution operator and all this is followed by the name of the previously declared method Do not forget that the name and type of parameters must match in the declaration and description of the class method However, the compiler will warn you of such an error. Note that first the base class method is called, and then input parameters are checked. If you do not add this line, the generated Expert Advisor will not be able to initialize our module of trading signals.5 Where Are Our Indicators. It s time to work with the indicators, since all the preparatory work with the parameters for them have been completed Each module of trading signals contains the InitIndicators method, which is automatically called when you run the generated Expert Advisor In this method, we must provide indicators of moving averages for our module. First, declare the InitIndicators method in the class and paste its draft. So there is nothing complicated, we declare the method and then simply create the method body, as we have done for the ValidationSettings method Above all, do not forget to insert the class name and the operator in the function definition We have a draft, which we can insert into a code to create moving averages Let s do this properly - for each indicator we create a separate function in the class, which returns true if successful The function can have any name, but let it reflect its purpose, so let s call the functions CreateFastMA and CreateSlowMA. That s all, we only need to write code that generates the MA indicators and somehow integrates the handles of these indicators into the trading module, so that the module can use the values of these indicators That is why a pointer to a variable of type CIndicators is passed as a parameter The following is written in Documentation about it. The CIndicators is a class for collecting instances of timeseries and technical indicators classes The CIndicators class provides creation of instanced of technical indicator classes, their storage and management data synchronization, handle and memory management. This means that we must create our indicators and place them in this collection Since only indicators of the CIndicator form and its children can be stored in the collection, we should use this fact We will use CiCustom which is the above mentioned child For each moving average we declare an object of type CiCustom in the private part of the class. Of course, you can create your own indicator class, which will be derived from CIndicator and implement all the necessary methods for use with the MQL5 Wizard But in this case we want to show how you can use any custom indicator in the module of trading signals using CiCustom. Here s how it looks in the code. In the CreateFastMA method, first check the pointer of the collection of indicators, and then ad d a pointer of the fast MA mfastma to this collection Then declare the MqlParam structure, which is especially designed for storing parameters of custom indicators, and fill it with values. We use Custom Moving Average from the standard terminal delivery pack as the custom MA indicator The name of the indicator must be indicated relative to the folder datafolder MQL5 Indicators Since Custom Moving from the standard package is located in datafolder MQL5 Indicators Examples , we specify its path including the Examples folder. If you look at the code for this indicator, you can see all the required data. The values of the structure contain the type-value pairs. parameter type - string to transfer the name of the indicator. the name of the executable file of the custom indicator - Custom Moving. parameter type - int value of the period. period of the moving average. parameter type - int shift value. horizontal shift of the average in bars. parameter type - int enumeration value is an integer. method of averaging. After filling the structure, the indicator is initialized by the Create method of all the required parameters symbol name and the timeframe on which it is calculated, the type of the indicator from the ENUMINDICATOR enumeration, the number of indicator parameters and the MqlParam structure with parameter values And the last one is specifying the number of indicator buffers using the NumBuffers method. The CreateSlowMA method for creating the slow moving average is simple When using custom indicators in the module, do not forget that the Expert Advisor generated by the MQL5 Wizard will also run in the tester So at the beginning of our file we add the property property testerindicator that communicates to the tester the location of required indicators. If we use several different indicators, we should add this line for each of them So, we have added the indicators For more convenience, let s provide two methods of receiving MA values. As you can see, the methods are very simple , they used the GetData method of the SIndicator parent class, which returns a value from the specified indicator buffer at the specified position. If you need classes for working with classical indicators of the standard package, they are available in section Classes for working with indicators We are ready to proceed to the final stage.6 Define the LongCondition and ShortCondition Methods. Everything is ready to make our module work and generate trading signals This functionality is provided by two methods that must be described in each child of CExpertSignal. LongCondition checks the buy conditions and returns the strength of the Long signal from 0 to 100.ShortCondition - checks the sell condition and returns the strength of the Short signal from 0 to 100.If the function returns a null value, it means that there is no trading signal If there are conditions for the signal, then you can estimate the strength of the signal and return any value not exceeding 100 Evaluation of the signal st rength allows you to flexibly build trading systems based on several modules and market models Read more about this in MQL5 Wizard New Version. Since we are writing a simple module of trading signals, we can agree that the buy and sell signals are valued equally 100 Let s add necessary methods in the class declaration. Also, let s create the description of functions This is how the buy signal is checked it s all the same with the sell signal. Note that we have declare the idx variable, to which the value returned by the StartIndex function of the parent class CExpertBase is assigned The StartIndex function returns 0, if the Expert Advisor is designed to work on all ticks, and in this case the analysis starts with the current bar If the Expert Advisor is designed to work at open prices, StartIndex returns 1 and the analysis starts with the last formed bar. By default StartIndex returns 1 which means that the Expert Advisor generated by the MQL5 Wizard will only run at the opening of a new b ar and will ignore incoming ticks during formation of the current bar. How to activate this mode and how it can be used will be described later in the finishing stroke. The module is ready for use, so let s create a trading robot in the MQL5 Wizard based on this module. Checking an Expert Advisor in the Tester. To test the efficiency of our module, let s generate an Expert Advisor based on it in the MQL5 Wizard and run it on the chart The Inputs tab of the appeared start window contains the parameters of the MACross module. All other parameters have also been added by the MQL5 Wizard while generating the EA based on the selected money management module and position maintenance module Trailing Stop Thus, we only had to write a module of trading signals and received a ready solution This is the main advantage of using the MQL5 Wizard. Now let s test the trading robot in the MetaTrader 5 Strategy Tester Let s try to run a quick optimization of key parameters. In these settings of input parameter s, more than half a million of passes is required for full optimization Therefore, we choose fast optimization genetic algorithm and additionally utilize MQL5 Cloud Network to accelerate the optimization The optimization has been done in 10 minutes and we have got the results. As you can see, creating a trading robot in MQL5 and optimization of input parameters have taken much less time than would be required for writing the position management servicing logic, debugging and searching for the best algorithms. You can skip this item or go back to it later when you are completely comfortable with the technique of writing a module of trading signals. If you open the source code of the Expert Advisor generated by the MQL5 Wizard, you will find the global variable ExpertEveryTick with the false value Based on this variable, the StartIndex function returns its value It communicates to the Expert Advisor the mode it should run in. If you set ExpertEveryTick true and compile the code, the trading robot will analyze each incoming tick, and thus make decisions on the values of the current incomplete bar Do this only if you understand how it works Not all trading systems are designed to work inside the bar. You can also add a keyword input for the ExpertEveryTick parameter, and then you will have a new input parameter of the Expert Advisor which you can set at the EA startup on a chart or in the tester. And now it s time to summarize what we have done.6 Steps to Create a Module of Trading Signals. If you have mastered MQL5, then you no longer need to write an Expert Advisor from scratch Just create a module of trading signals and, based on this module, automatically generate a trading robot with the enabled trailing and trade volume management modules And even if you are not familiar with OOP or do not want to delve much into the structure of trade classes, you can just go through 6 steps. Create a new class using the MQL5 Wizard in a separate folder MQL5 Include MySignals Our module of trading signals will be stored there. Create a module handle that describes the parameters, their type and default values. Declare module parameters in the class and add methods for initialization in the constructor. Check the input parameters and do not forget to call ValidationSettings of the CExpertSignal base class. Create indicator-objects and add a predefined initialization method InitIndicators. Identify conditions of trading signals in the methods LongCondition and ShortCondition. Each step is simple and requires little skill in MQL5 programming You only need to write your module once, following the instructions, and further verification of any trade idea will take no more than an hour, without tiring hours of coding and debugging. From Simple to Complex. Remember that the trading strategy implemented by your trading robot created using the MQL5 Wizard, is as complex as the module of trading signals it uses But before you start to build a complex trading system based on a set of rul es for entry and exit, split it into several simple systems and check each one separately. Based on simple modules you can create complex trading strategies using the ready-made modules of trading signals, but this is a topic for another article. First off all I would like to thank the author s for this article I m new to MetaTrader, MQL5 and Forex trading, so these articles are really useful When I test this EA, I notice that for closing a long position, it gives a sell signal with a doubled lot size Why does it not only close my long position, but directly enters a short at the same signal As a first test to understand all the programming, I would like to only go long, so only open and close a long position without entering a short position at the closing sell signal Thanks in advance. I do not have any experience yet with programming in MQL, but I do have some experience in programming in other languages One of the easiest errors to make in programming my specific class was Java, which is very similar in style to C and apparently MQL is not closing the braces properly It is one of the easiest errors to make, and conversely, also one of the harder ones to find KJG, as far as the closing a long and heading right into a short, it is probably what this style of EA is designed to do I have seen many trading styles with just that type of setup, I believe they were designed for a market that has a lot of volatility and wide price swings happening all the time, like something that would likely happen on a minute time frame chart Good article as well I definitely will be making use of this one and many others here I am sure. I followed the instructions in steps 1 and 2, but the signal doesn t appear in the Wizard list of available signals I tried with other signals and none works Maybe there s a limitation in the number of signals that can be displayed in the wizard Anyone can help.
Comments
Post a Comment