Systeemhandel

Optimaliseren van Lotgrootte en Aantal Orders voor Grid en Martingale Strategieën
MetaTrader4
Optimaliseren van Lotgrootte en Aantal Orders voor Grid en Martingale Strategieën

Als trader weet je hoe belangrijk lotgrootte en het aantal trades zijn voor strategieën zoals Grid en Martingale. Deze aspecten kunnen het verschil maken tussen winst en verlies. We vragen ons vaak af wat er in het verleden met een bepaald symbool is gebeurd tijdens range zones. Hoe vaak is de prijs tussen twee prijsniveaus van een range zone teruggekaatst? Dit noem ik het Bounce Number. Dit getal kan berekend worden door een statistische analyse van de geschiedenis van elk symbool op de markt. Laten we dit verduidelijken met afbeelding 1. Afbeelding 1: Definitie van het Bounce Number, doel en toepassingen De afbeelding laat zien hoe prijsbewegingen statistieken genereren voor de Bounce Number Tool. Om vertraging op de tool te creëren, heb ik deze als een EA ontwikkeld die de Sleep-functie gebruikt. Deze functie voorkomt dat de grafiek crasht door het hoge aantal candles dat op de invoer van de tool is ingesteld. De andere afbeelding (Afbeelding 2) toont een beknopte grafische structuur van de tools en de betekenis van de objecten. Afbeelding 2: Statistieken van het Bounce Number. Gebruik van de tool: Volgens afbeelding 2, als we Bouncing Channel Half Height instellen op 600 punten: zijn er 6 verschillende bounce-nummers van 1 tot 6 voor dit symbool.Bounce nummer 2 betekent dat de prijs vanuit het midden van het bounce-kanaal (hoogte 2 * 600 = 1200 punten) beweegt en een keer de rode en een keer de blauwe lijn raakt voordat het het TP van 1200 punten bereikt. Voor bounce nummer 5 betekent dit dat de prijs vanuit het midden van het kanaal begint en 2 keer de rode lijn en 3 keer de blauwe lijn raakt, of vice versa, voordat het TP van 1200 punten wordt bereikt. Dit geldt ook voor de andere bounce-nummers.We hebben geen bounce nummer 7, wat betekent dat er geen 7 keer terugkaatsing is geweest tussen de rode en blauwe lijnen (met 1200 punten afstand) in de hele geschiedenis die in de invoer van de tool is geselecteerd. Houd er rekening mee dat als je meer historische data selecteert (Max aantal terugblik candles), de kans om 7 bounces te vinden toeneemt. Maar zoals we zien, is zelfs de kans op 6 bounces 22 in totaal 9020 items waarbij de prijs TP’s heeft geraakt. Wat zit er in de invoer van de Tool: - Max aantal terugblik candles: Net als bij andere scan-tools moet je voorzichtig zijn met het getal dat je voor dit veld instelt. Verhoog het niet dramatisch om geheugencrashes te voorkomen.- Tijdframe: Het tijdframe van de candles die we willen gebruiken om bounces van de kanaalgrenzen en de aanraking van TP-lijnen te vinden. Gebruik een lager tijdframe voor smalle kanalen. Als je niet weet wat je moet instellen, gebruik dan bij voorkeur het M1 tijdframe.- Bouncing Channel Half Height: Dit is de afstand van de groene lijn tot de rode en blauwe lijnen, uitgedrukt in punten.- Achtergrondkleur van de grafiek- Kleur Bar Chart 1/Kleur Bar Chart 2: om de statistische balken een beetje flair te geven.- Kleur van de telcellen- Kleur van de Bounce Numbers Cell- Kleur van de laadbalk: Tijdens de berekening helpt deze laadbalk de gebruiker te weten of het werkt en hoe snel de berekeningen zijn. - Een knop toegevoegd om te starten en het aantal historische candles vanaf het scherm in te voeren.

2024.01.12
Geluidssignaal bij Verbinding en Ontkoppeling - Een Handige Tool voor MetaTrader 5
MetaTrader5
Geluidssignaal bij Verbinding en Ontkoppeling - Een Handige Tool voor MetaTrader 5

Als trader weet je dat connectiviteit cruciaal is. Daarom is deze eenvoudige tool ontworpen om je een geluidssignaal te geven bij het verbinden of ontkoppelen van MetaTrader 5. Om deze tool te laten werken, voeg je de geluidsbestanden in WAV-formaat toe in de MQL5\Files\Sounds map. Kopieer de onderstaande code en compileer de Utility. De bijgevoegde code bevat opmerkingregels, omdat het gebruik van #resource het uploaden bemoeilijkt. //+------------------------------------------------------------------+ //|                               Connect_Disconnect_Sound_Alert.mq5 | //|                                Copyright 2024, Rajesh Kumar Nait | //|                  https://www.mql5.com/en/users/rajeshnait/seller | //+------------------------------------------------------------------+ #property copyright "Copyright 2024, Rajesh Kumar Nait" #property link      "https://www.mql5.com/en/users/rajeshnait/seller" #property version   "1.00" #include <Trade/TerminalInfo.mqh> bool     first             = true; bool     Now_IsConnected   = false; bool     Pre_IsConnected   = true; datetime Connect_Start = 0, Connect_Stop = 0; CTerminalInfo terminalInfo; //--- Geluidsbestanden #resource "\\Files\\Sounds\\CONNECTED.wav" #resource "\\Files\\Sounds\\DISCONNECTED.wav" //+------------------------------------------------------------------+ //| Functie voor initialisatie van de expert                                   | //+------------------------------------------------------------------+ int OnInit()   { //---       ResetLastError();       while ( !IsStopped() ) {          Pre_IsConnected = Now_IsConnected;          Now_IsConnected = terminalInfo.IsConnected();          if ( first ) {             Pre_IsConnected = !Now_IsConnected;          }          if ( Now_IsConnected != Pre_IsConnected ) {             if ( Now_IsConnected ) {                Connect_Start = TimeLocal();                if ( !first ) {                   if(!PlaySound("::Files\\Sounds\\DISCONNECTED.wav"))                      Print("Fout: ",GetLastError());                }                if ( IsStopped() ) {                   break;                }                if(!PlaySound("::Files\\Sounds\\CONNECTED.wav"))                   Print("Fout: ",GetLastError());             } else {                Connect_Stop = TimeLocal();                if ( !first ) {                   if(!PlaySound("::Files\\Sounds\\CONNECTED.wav"))                      Print("Fout: ",GetLastError());                }                if ( IsStopped() ) {                   break;                }                if(!PlaySound("::Files\\Sounds\\DISCONNECTED.wav"))                   Print("Fout: ",GetLastError());             }          }          first = false;          Sleep(1000);       } //---    return(INIT_SUCCEEDED);   } //+------------------------------------------------------------------+ Bekijk ook deze video voor een uitleg over het gebruik van deze tool:

2024.01.08
Geavanceerde MQL5 Tools voor Traders: Deel 7 van de MQL5 Programmeren Handleiding
MetaTrader5
Geavanceerde MQL5 Tools voor Traders: Deel 7 van de MQL5 Programmeren Handleiding

Deel 7. Geavanceerde MQL5 Tools "Deel 7. Geavanceerde MQL5 Tools" uit het boek "MQL5 Programmeren voor Traders" behandelt de geavanceerde mogelijkheden van de MQL5 API, die van groot belang zijn bij het ontwikkelen van programma's voor MetaTrader 5. Dit omvat aangepaste financiële symbolen, ingebouwde economische kalender evenementen en algemene technologieën zoals netwerken, databases en cryptografie. In dit deel bespreken we bibliotheken – een speciaal type programma dat kant-en-klare API's biedt voor verbinding met andere MQL-programma's. Ook gaan we in op de mogelijkheid om softwarepakketten te ontwikkelen en logisch met elkaar verbonden programma's in projecten te combineren. Tenslotte worden integraties met andere softwareomgevingen, waaronder Python, gepresenteerd. We beginnen met het bestuderen van bronnen, dit zijn bestanden van elk type die in de programmatuur kunnen worden ingebed. Bronnen kunnen bevatten: Multimedia-elementen "Harde" instellingen van externe programma's Andere MQL5-programma's in gecompileerde vorm De MQL5 ontwikkelomgeving staat het opnemen van applicatiegegevens arrays, afbeeldingen, geluiden en lettertypen in het bronbestand toe, waardoor het programma een zelfvoorzienend en gebruiksvriendelijk product voor de eindgebruiker wordt. Bijzondere aandacht gaat uit naar grafische bronnen met rasterafbeeldingen in BMP-formaat: je leert hoe je ze kunt creëren, bewerken en dynamisch op de grafiek kunt weergeven. We ronden het laatste deel van het boek af met de studie van de OpenCL-integratie in MQL5. OpenCL is een open standaard voor parallel programmeren in multiprocessorsystemen, inclusief grafische processors (GPU's) en centrale verwerkings eenheden (CPU's). Het stelt ons in staat om computationeel intensieve taken te versnellen, op voorwaarde dat de algoritmen kunnen worden parallelized. Dit kan onder andere het trainen van neurale netwerken, de Fourier-transformatie en het oplossen van vergelijkingssystemen omvatten. Het gebruik van OpenCL in MQL-programma's vereist de aanwezigheid van speciale stuurprogramma's van de fabrikant en ondersteuning voor OpenCL versie 1.1 of hoger. Het hebben van een grafische kaart is niet verplicht, aangezien de centrale processor ook kan worden gebruikt voor parallelle berekeningen.

2023.12.16
Automatisering van Handel met MQL5: Een Gids voor Traders
MetaTrader5
Automatisering van Handel met MQL5: Een Gids voor Traders

Deel 6: HandelsautomatiseringIn "Deel 6: Handelsautomatisering" van "MQL5 Programmeren voor Traders" duiken we in een essentieel onderdeel van de MQL5-taal. We beginnen met een beschrijving van de basiscomponenten, zoals specificaties van financiële instrumenten en instellingen van handelsrekeningen. Dit zijn belangrijke vereisten voor het ontwikkelen van goed functionerende Expert Advisors.Daarna gaan we verder met ingebouwde functies en datastructuren, robot-specifieke gebeurtenissen en de belangrijke aspecten van het functioneren van Expert Advisors in de strategie tester. De MetaTrader 5 Strategie Tester is een onmisbaar hulpmiddel in de ontwikkeling van handelsrobots, omdat het je in staat stelt om de financiële prestaties te evalueren en handelsstrategieën te optimaliseren.De tester biedt onmisbare tools voor debugging in verschillende modi, waaronder visueel testen met behulp van bars of ticks, met gemodelleerde of echte ticks. Ook is het mogelijk om de visuele reproductie van de quotestroom weer te geven en eenvoudig te testen zonder visueel venster. Eerder hebben we gezien hoe we indicatoren in de visuele modus konden testen, maar daar geldt een beperkte set instellingen voor. Bij het ontwikkelen van Expert Advisors hebben we toegang tot het volledige scala aan mogelijkheden van de tester.We zullen ook kijken naar een andere weergave van markgegevens: Depth of Market en de bijbehorende software-interface.MetaTrader 5 biedt de mogelijkheid om financiële instrumenten (symbolen) te analyseren en te verhandelen, die de basis vormen van alle subsystemen van de terminal. Gebruikers kunnen symbolen selecteren uit de lijst die door de broker wordt aangeboden en deze in de Marktwaak kunnen volgen. Met de MQL5 API kun je de kenmerken van alle symbolen bekijken en analyseren, en ze toevoegen of verwijderen uit de Marktwaak.Naast de standaard symbolen die door brokers worden aangeboden, ondersteunt MetaTrader 5 ook het creëren van aangepaste symbolen, het laden van hun eigenschappen en quotingsgeschiedenis uit willekeurige gegevensbronnen of het berekenen hiervan met formules en MQL5-programma's.

2023.12.16
MQL5 Programmeren voor Traders: Toepassingen en Expert Advisors
MetaTrader5
MQL5 Programmeren voor Traders: Toepassingen en Expert Advisors

Deel 5: Applicaties creëren in MQL5 In "Deel 5. Applicaties creëren" van het boek MQL5 Programmeren voor Traders, duiken we dieper in de API's die verband houden met algoritmisch handelen. We bekijken financiële data-analyse, grafiekvisualisatie, automatisering en gebruikersinteracties. We beginnen met de algemene principes van het creëren van MQL-programma's en behandelen de verschillende gebeurtenistypes, functies en modellen binnen de terminal. Vervolgens onderzoeken we de toegang tot tijdseries, de werkzaamheden met grafieken en grafische objecten, evenals de principes voor het creëren en toepassen van elk type MQL-programma afzonderlijk. De MetaTrader 5 terminal ondersteunt vijf soorten programma's: technische indicatoren, Expert Advisors (EA's) voor automatische of semi-automatische handel, scripts voor eenmalige taken, services voor achtergrondoperaties en bibliotheken voor individuele functionele modules. We gaan aan de slag met het werken met indicatoren en grafieken en leren technieken die ook toepasbaar zijn voor Expert Advisors. De ontwikkeling van Expert Advisors komt aan bod in het volgende deel van het boek, waarin we de automatische uitvoering van orders, de formalisering van handelsstrategieën en hun testen en optimalisatie met historische data onderzoeken. We leren hoe we standaard ingebouwde indicatoren kunnen gebruiken en hoe we onze eigen applicaties vanaf nul kunnen maken of op basis van andere indicatoren. Alle gecompileerde programma's worden weergegeven in de Navigator in MetaTrader 5, behalve de EX5-bibliotheken, die door andere programma's worden gebruikt maar geen aparte weergave in de Navigator hebben. Uiteindelijk krijgen we een beter begrip van de mogelijkheden van de MQL5-taal en de toepassing ervan in algoritmisch handelen. Dit stelt ons in staat om effectief met financiële data te werken en handelsindicatoren en Expert Advisors te creëren.

2023.12.16
MQL5 Programmeren voor Traders – Veelgebruikte API's in MetaTrader 5
MetaTrader5
MQL5 Programmeren voor Traders – Veelgebruikte API's in MetaTrader 5

Deel 4. Veelgebruikte MQL5 API's In de vorige delen van dit boek hebben we de basis van de MQL5 programmeertaal verkend en hebben we gekeken naar de syntax, gebruiksregels en belangrijke concepten. Maar om praktische programma's te schrijven die gebruik maken van dataverwerking en geautomatiseerde trading, moet je veel ingebouwde functies gebruiken om met de MetaTrader 5 terminal te communiceren. In "Deel 4. Veelgebruikte MQL5 API's" richten we ons op het beheersen van ingebouwde functies (MQL5 API) en zullen we geleidelijk aan gespecialiseerde subsystemen verkennen. Elke MQL5 toepassing kan rekenen op een overvloed aan technologieën en functionaliteiten. Daarom is het logisch om te beginnen met de eenvoudigste en meest nuttige functies die in de meeste programma's kunnen worden toegepast. Onder de belangrijkste onderwerpen bestuderen we array-bewerkingen, stringverwerking, bestandsinteracties, dataconversie en functies voor gebruikersinteractie. We zullen ook wiskundige functies en het beheer van de programmeeromgeving verkennen. In tegenstelling tot sommige andere programmeertalen, vereist het gebruik van de ingebouwde functies van de MQL5 API geen extra preprocessor-directieven. De namen van alle MQL5 API-functies zijn beschikbaar in de globale context (namespace) en kunnen altijd onvoorwaardelijk worden benaderd. We zullen ook de mogelijkheid bespreken om vergelijkbare namen te gebruiken in verschillende programmacontexten, zoals methoden van klassen of aangepaste namespaces. In dergelijke gevallen moet je de contextresolutieoperator gebruiken om de globale functie aan te roepen, waar we het eerder over hadden in de sectie over geneste types, namespaces en de contextoperator '::'. Programmeren vereist vaak bewerkingen met verschillende datatypes. In de vorige secties hebben we de mechanismen voor expliciete en impliciete conversie van ingebouwde datatypes al gezien. Deze zijn echter niet altijd geschikt om verschillende redenen. Om een nauwkeurigere dataconversie tussen verschillende types te bieden, bevat de MQL5 API een set van conversiefuncties. Bijzondere aandacht wordt besteed aan functies voor conversies tussen strings en andere types, zoals getallen, data en tijden, kleuren, structuren en enumeraties.

2023.12.15
Objectgeoriënteerd Programmeren in MQL5 voor Traders
MetaTrader5
Objectgeoriënteerd Programmeren in MQL5 voor Traders

Deel 3: Objectgeoriënteerd Programmeren in MQL5In deel 3 van onze serie over MQL5, "Objectgeoriënteerd Programmeren in MQL5", duiken we in de wereld van OOP binnen de MQL5-taal. Softwareontwikkeling gaat vaak gepaard met de complexiteit van het beheren van meerdere entiteiten, en dat vraagt om geavanceerde technologieën die het programmeren makkelijker, productiever en kwalitatief beter maken.De OOP-techniek is gebaseerd op het concept van objecten: dit zijn variabelen van een zelf gedefinieerd type, dat door de programmeur met behulp van MQL5-tools is gecreëerd. Door het maken van deze aangepaste types kunnen we objecten modelleren, wat het schrijven en onderhouden van programma's veel eenvoudiger maakt.In dit deel onderzoeken we verschillende manieren om nieuwe types te definiëren, zoals klassen, structuren en unions. Deze aangepaste types kunnen data en algoritmes combineren om de staat en het gedrag van applicatie-objecten te beschrijven.De auteur legt het principe van "verdeel en heers" uit, waarbij hij laat zien dat objecten mini-programma's zijn, elk verantwoordelijk voor het oplossen van een kleine maar logische taak. Je kunt objecten samenvoegen tot een enkel systeem en zo producten en diensten van willekeurige complexiteit creëren.Om gebruikers te helpen de mogelijkheden van MQL5 te verkennen, introduceert dit deel de principes van OOP, compleet met praktische implementatievoorbeelden. Het boek behandelt ook sjablonen, interfaces en namespaces, en onthult de flexibiliteit en kracht van OOP bij het ontwikkelen van programma's in MQL5.

2023.12.15
MQL5 Programmeren voor Traders – Deel 1: Een Introductie tot MetaTrader 5
MetaTrader5
MQL5 Programmeren voor Traders – Deel 1: Een Introductie tot MetaTrader 5

Deel 1. Introductie tot MQL5 en de ontwikkelomgeving In het eerste deel van het boek, getiteld "Introductie tot MQL5 en de ontwikkelomgeving", worden de basisprincipes van de MQL5-taal en de ontwikkelomgeving besproken. Een van de nieuwe functies die in de MQL5-taal is geïntroduceerd, in vergelijking met MQL4 (de programmeertaal van MetaTrader 4), is de ondersteuning voor objectgeoriënteerd programmeren (OOP). Dit maakt het vergelijkbaar met C++. Hoewel sommige OOP-functies al zijn overgezet van MQL4 naar MQL5, kunnen veel gebruikers die niet bekend zijn met programmeren OOP als uitdagend ervaren. Het doel van dit boek is om deze aanpak begrijpelijk en toegankelijk te maken. Het boek fungeert als aanvulling op de MQL5-referentie en behandelt alle aspecten van MQL5-programmering, waarbij alle processen uitgebreid worden uitgelegd. Ontwikkelaars kunnen kiezen tussen objectgeoriënteerde en procedurele programmeerstijlen, en zelfs beide combineren. Wie al ervaring heeft met programmeren, kan de basis overslaan. C++-programmeurs zullen het makkelijker vinden om MQL5 onder de knie te krijgen, maar het is belangrijk om aandacht te besteden aan de taalverschillen om fouten te voorkomen. Met MQL5 kun je verschillende soorten programma's maken, zoals indicatoren voor de grafische weergave van data, Expert Advisors voor handelsautomatisering, scripts voor eenmalige acties en services voor achtergrondtaken. Een kenmerk van MetaTrader 5 is het beheer van het volledige handelssysteem vanuit de clientterminal, waarin MQL5-programma's draaien en handelsopdrachten naar de handelsserver sturen. MQL5-toepassingen worden niet op de server geïnstalleerd. Deel 1 legt uit hoe je programma's kunt bewerken, compileren en uitvoeren, en behandelt verschillende datatypes, variabelen, expressies, arrays, foutopsporing en uitvoer.

2023.12.15
Handgeschreven Cijfers Herkennen met een Expert Advisor voor MetaTrader 5
MetaTrader5
Handgeschreven Cijfers Herkennen met een Expert Advisor voor MetaTrader 5

Een Expert Advisor die handgeschreven cijfers herkent De MNIST database bevat 60.000 afbeeldingen voor training en 10.000 afbeeldingen voor testen. Deze afbeeldingen zijn gemaakt door een originele NIST-set van 20x20 pixels zwart-wit monsters opnieuw te combineren, die op hun beurt zijn verkregen van het Amerikaanse Census Bureau en aangevuld met testmonsters van Amerikaanse middelbare scholieren. De monsters zijn genormaliseerd naar een formaat van 28x28 pixels en anti-aliasing is toegepast, wat grijswaarden heeft geïntroduceerd. Het getrainde model voor het herkennen van handgeschreven cijfers, mnist.onnx, is gedownload van Github via de Model Zoo (opset 8). Geïnteresseerden kunnen ook andere modellen downloaden, met uitzondering van modellen met opset 1, die niet meer worden ondersteund door de laatste ONNX-runtime. Verrassend genoeg is de outputvector niet verwerkt met de Softmax activatiefunctie, zoals gebruikelijk is in classificatiemodellen. Maar dat is geen probleem, want we kunnen dit gemakkelijk zelf implementeren. int PredictNumber(void)  {   static matrixf image(28,28);   static vectorf result(10);   PrepareMatrix(image);   if(!OnnxRun(ExtModel,ONNX_DEFAULT,image,result))     {      Print("OnnxRun error ",GetLastError());      return(-1);     }   result.Activation(result,AF_SOFTMAX);   int predict=int(result.ArgMax());   if(result[predict]<0.8)      Print(result);      Print("waarde ",predict," voorspeld met waarschijnlijkheid ",result[predict]);   return(predict);  }  Teken cijfers in een speciaal raster met de muis, terwijl je de linkermuisknop ingedrukt houdt. Om het getekende cijfer te herkennen, druk je op de knop CLASSIFY. Als de verkregen waarschijnlijkheid voor het herkende cijfer minder dan 0.8 is, wordt de resulterende vector met waarschijnlijkheden voor elke klasse naar de log geprint. Probeer bijvoorbeeld een lege, niet ingevulde invoerveld te classificeren. [0.095331445,0.10048489,0.10673151,0.10274081,0.087865397,0.11471312,0.094342403,0.094900772,0.10847695,0.09441267] waarde 5 voorspeld met waarschijnlijkheid 0.11471312493085861Om de een of andere reden is de herkenningsnauwkeurigheid merkbaar lager voor het cijfer negen (9). Cijfers die naar links hellen, worden nauwkeuriger herkend.

2023.11.23
Neem Winst op Basis van Huidige Winst - Handige Strategie voor MetaTrader 4
MetaTrader4
Neem Winst op Basis van Huidige Winst - Handige Strategie voor MetaTrader 4

Inleiding De meeste Expert Advisors (EA's) sluiten posities op basis van een vooraf bepaalde afstand in pips vanaf de aankoopprijs. Echter, de code die gebruikt wordt door EA Perceptron is voornamelijk gebaseerd op de huidige winst. Deze aanpak maakt het eenvoudig om de take profit te beheren wanneer je meerdere open posities hebt. Je kunt de totale huidige winst eenvoudig volgen op basis van het magic number, ideaal als je verschillende botinstellingen of verschillende EA's tegelijkertijd gebruikt. Voeg me toe als vriend en volg mijn updates om op de hoogte te blijven van het laatste nieuws! Het gebruik van deze code kan ook positieve effecten hebben op problemen die zich kunnen voordoen bij een take profit die is gebaseerd op pips. Bijvoorbeeld, een pip-gebaseerde take profit kan veranderen afhankelijk van de slippage van je broker, wat je winst kan beperken. Door een code te gebruiken die is gebaseerd op de huidige winst, kun je dit probleem vermijden en meer controle hebben over je trades. Wil je meer leren over hoe je een take profit kunt instellen op basis van de huidige winst? Kijk dan eens naar de code van EA SwingBot als referentie. … Totaal aantal orders Laten we beginnen met de code die het totale aantal open orders met hetzelfde magic number berekent. Het magic number is een unieke identificatie die aan een order is toegewezen door de trader of een EA (Expert Advisor). De code initialiseert een variabele totaal_orders op nul. Vervolgens doorloopt het alle open orders met een for-lus en selecteert elke order met behulp van de OrderSelect()-functie. Als een order succesvol is geselecteerd, wordt de totaal_orders-variabele met één verhoogd. //-----------------    int totaal_orders = 0;    for(int i = 0; i < OrdersTotal(); i++)      {       if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))         {          if(OrderMagicNumber() == MagicNumber)          {          totaal_orders++;         }         }      } … Huidige Winst Berekenen De code initialiseert twee variabelen: winstMin en winst. De variabele winstMin wordt gebruikt om de take profit op dit niveau te activeren; de waarde wordt uitgedrukt in de valuta van de rekening. De variabele winst wordt gebruikt om de huidige winst van alle open posities met hetzelfde magic number op te tellen. De variabele stopLoss wordt gebruikt voor de stop loss. De code maakt gebruik van een for-lus om door alle open posities te itereren met de OrdersTotal()-functie. Voor elke open positie wordt de bijbehorende order geselecteerd met behulp van de OrderSelect()-functie. Als de order succesvol is geselecteerd en het dezelfde magic number heeft, wordt de winst van de order opgeteld bij de winst-variabele.       double winstMin = 3; // doelwinst       double winst = 0; // huidige winst              for(int i=0; i<OrdersTotal(); i++)         {          if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))            {             if(OrderMagicNumber() == MagicNumber) // In geval van meerdere EA's, kun je de MagicNumber-filter verwijderen om de functie op alle orders toe te passen               {                winst += OrderProfit();               }            }         } De minimale winst kan ingesteld worden als een externe variabele en geconfigureerd in de EA-instellingen: … Posities Sluiten bij Bereiken van Winst De code gebruikt een for-lus om door alle open orders te itereren met de OrdersTotal()-functie. De lus begint vanaf de laatste order en gaat naar de eerste order. Voor elke order wordt de bijbehorende trade geselecteerd met de OrderSelect()-functie. Als de geselecteerde trade hetzelfde symbool heeft als de huidige grafiek, van het type OP_BUY is, en hetzelfde magic number heeft zoals opgegeven in de code, wordt gecontroleerd of de winst van de trade groter of gelijk is aan winstMin. Als dat zo is, wordt de trade gesloten tegen de biedprijs met de OrderClose()-functie en wordt er een bericht weergegeven dat de kooporder is gesloten. Op dezelfde manier, als de geselecteerde trade hetzelfde symbool heeft als de huidige grafiek, van het type OP_SELL is, en hetzelfde magic number heeft zoals opgegeven in de code, wordt gecontroleerd of de winst van de trade groter of gelijk is aan winstMin. Als dat zo is, wordt de trade gesloten tegen de verkoopprijs met de OrderClose()-functie en wordt er een bericht weergegeven dat de verkooporder is gesloten.       for(int e = OrdersTotal() - 1; e >= 0; e--)         {          if(OrderSelect(e, SELECT_BY_POS, MODE_TRADES))            {             if(OrderSymbol() == Symbol() && OrderType() == OP_BUY && OrderMagicNumber() == MagicNumber) // De order wordt alleen gewijzigd als het MagicNumber overeenkomt met dat van de huidige order.               {                if(winst >= winstMin)                  {                   OrderClose(OrderTicket(), OrderLots(), ND(OrderClosePrice()), 3); // Biedprijs                   Print("Kooporder gesloten", winst, " - Minimale stoploss: ",MarketInfo(Symbol(), MODE_STOPLEVEL));                  }           }             if(OrderSymbol() == Symbol() && OrderType() == OP_SELL && OrderMagicNumber() == MagicNumber)               {                if(winst >= winstMin)                  {                   OrderClose(OrderTicket(), OrderLots(), ND(OrderClosePrice()), 3); // Vraagsprijs                   Print("Verkooporder gesloten", winst, " - Minimale stoploss: ",MarketInfo(Symbol(), MODE_STOPLEVEL));                  }           }         }         } … Conclusie Deze code kan nuttig zijn voor al die strategieën voor het sluiten van posities op basis van take profit, maar het kan ook gecombineerd worden met een trailing stop die is gebaseerd op de toename van de huidige winst. Het systeem is ook handig in het geval van meerdere Expert Advisors. Als je de if-voorwaarde op de MagicNumber uitsluit, kun je algemene take profit-niveaus instellen om gelijktijdig alle open posities van alle actieve EA's te beheren.

2023.10.27
De Dubbele Bollinger Band Strategie: Een Gids voor MT4 Traders
MetaTrader4
De Dubbele Bollinger Band Strategie: Een Gids voor MT4 Traders

1. Overzicht De Dubbele Bollinger Band Strategie maakt gebruik van twee Bollinger Bands om handelsmomenten in de forexmarkt te filteren. Het doel van deze strategie is om een koop- of verkooporder te plaatsen wanneer de prijs respectievelijk boven of onder de 3σ (drie standaarddeviaties) komt. Bovendien houdt de strategie rekening met het 2σ (twee standaarddeviaties) niveau van de Bollinger Bands bij het nemen van handelsbeslissingen. Standaardinstellingen: 2σ Bollinger Bands (20,2): de eenvoudige voortschrijdende gemiddelde (20) en het aantal standaarddeviaties (2). 3σ Bollinger Bands (20,3): de eenvoudige voortschrijdende gemiddelde (20) en het aantal standaarddeviaties (3). Invoereisen 2. Long Entry Open een kooporder wanneer aan de volgende 2 voorwaarden is voldaan: Voorwaarde 1: De vraagprijs kruist boven de 3σ bovenste Bollinger Band (BB3UP). Voorwaarde 2: Als voorwaarde 1 is voldaan, controleer dan of de huidige prijs zich binnen het bereik van de 2σ bovenste Bollinger Band (BB2UP) en de 2σ onderste Bollinger Band (BB2LO) bevindt. 3. Short Entry Open een verkooporder wanneer aan de volgende 2 voorwaarden is voldaan: - Voorwaarde 1: de biedprijs kruist onder de 3σ onderste Bollinger Band (BB3LO). - Voorwaarde 2: als voorwaarde 1 is voldaan, controleer dan of de huidige prijs zich binnen het bereik van de 2σ onderste Bollinger Band (BB2LO) en de 2σ bovenste Bollinger Band (BB2UP) bevindt. 4. Exit Orders Gebruik OCO-bestellingen (One Cancels Other), waarbij zowel stop-loss als take-profit worden ingesteld op N pips. ※N: Instelparameters.

2023.10.02
Optimale Forex Trading met de Martin Gale Breakout Expert Advisor voor MetaTrader 4
MetaTrader4
Optimale Forex Trading met de Martin Gale Breakout Expert Advisor voor MetaTrader 4

Welkom bij onze blog over de Martin Gale Breakout Expert Advisor! Dit handige hulpmiddel is speciaal ontwikkeld voor handelaren die actief zijn op de Forex-markt. Met een combinatie van breakout trading en de Martin Gale geldbeheerstrategie, kan deze EA je helpen om je handelsresultaten te optimaliseren. Invoermogelijkheden: TakeProfPoints: Hiermee stel je het Take Profit-niveau in punten voor elke trade in. BalancePercentageAvailable: Geef het percentage van je accountbalans op dat je wilt gebruiken voor trading. TP_Percentage_of_Balance: Dit bepaalt welk percentage van je accountbalans als Take Profit wordt gebruikt voor elke trade. SL_Percentage_of_Balance: Deze instelling bepaalt welk percentage van je balans wordt toegewezen als Stop Loss voor trades. Start_The_Recovery: Dit is een cruciaal onderdeel van het herstelproces, dat regelt wanneer en hoe herstelmaatregelen worden geactiveerd. TP_Points_Multiplier: Een multiplier voor Take Profit punten, waarmee je flexibele winstnemingsstrategieën kunt toepassen. MagicNumber: Een unieke identifier voor deze EA, zodat deze zijn eigen trades onafhankelijk kan beheren. Hoogtepunten van de Strategie: Breakout Trading: De EA is gespecialiseerd in het identificeren van breakout kansen op de markt, waar prijsbewegingen belangrijke niveaus doorbreken. Dynamische Lotgrootte: De lotgrootte wordt dynamisch aangepast op basis van je accountbalans en risicovoorkeuren, volgens de principes van Martin Gale geldbeheer. Verlies Herstel: Deze EA heeft een krachtig herstelmechanisme dat is ontworpen om verliezen te compenseren door handelsparameters aan te passen wanneer dat nodig is. De belangrijkste functie die in deze EA wordt gebruikt, is de CalcLotWithTP() functie. Deze heeft 3 invoerparameters: Takeprofit, Startprice, Endprice. Het berekent het volume dat nodig is voor de trade om het winstdoel te behalen wanneer het binnenkomt op de Startprice en verlaat op de Endprice. Alles in de code is goed gecommentarieerd, zodat het begrijpen ervan gemakkelijker is. Bekijk ook mijn YouTube-video hierover:

2023.09.26
De Martin Gale Breakout Strategie voor MT5: Optimaliseer Je Forex Trading
MetaTrader5
De Martin Gale Breakout Strategie voor MT5: Optimaliseer Je Forex Trading

De "Martin Gale Breakout" strategie is een innovatieve System Trading oplossing die speciaal ontwikkeld is voor de Forexmarkt. Deze EA combineert een breakout handelsaanpak met elementen van het Martin Gale geldbeheersysteem om je handelsresultaten te optimaliseren. Invoervariabelen: TakeProfPoints: Met deze parameter stel je het Take Profit niveau in punten voor elke trade in. BalancePercentageAvailable: Geef het percentage van je accountbalans op dat je wilt gebruiken voor traden. TP_Percentage_of_Balance: Deze parameter bepaalt het percentage van je accountbalans dat als Take Profit wordt gebruikt voor iedere trade. SL_Percentage_of_Balance: Hiermee stel je het percentage van je balans in dat als Stop Loss voor trades wordt aangewend. Start_The_Recovery: Deze parameter speelt een cruciale rol in het herstelproces, en regelt wanneer en hoe herstelmaatregelen worden geactiveerd. TP_Points_Multiplier: Een multiplier voor Take Profit punten, wat flexibele winstrealisatie strategieën mogelijk maakt. MagicNumber: Een unieke identifier voor deze EA, zodat hij zijn eigen trades onafhankelijk kan beheren. Hoogtepunten van de Strategie: Breakout Trading: De EA is gespecialiseerd in het identificeren van breakout kansen op de markt, waar prijsbewegingen belangrijke niveaus doorbreken. Dynamische Lotgrootte: De lotgroottes worden dynamisch aangepast op basis van je accountbalans en risicovoorkeuren, volgens de principes van het Martin Gale geldbeheer. Verliesherstel: De EA bevat een krachtig herstelmechanisme dat is ontworpen om verliezen te compenseren door handelsparameters adaptief aan te passen wanneer dat nodig is. De belangrijkste functie die in deze EA gebruikt wordt, is de CalcLotWithTP() functie, die 3 invoervariabelen heeft: Takeprofit, Startprijs, Eindprijs. Deze functie berekent het benodigde volume voor de trade zodat deze het winstdoel bereikt wanneer hij bij de Startprijs instapt en bij de Eindprijs uitstapt. Alles in de code is voorzien van opmerkingen, zodat het begrip ervan wordt vergemakkelijkt.

2023.09.26
Bepaling van de Vulbeleid voor MetaTrader 5: Wat Elke Trader Moet Weten
MetaTrader5
Bepaling van de Vulbeleid voor MetaTrader 5: Wat Elke Trader Moet Weten

Als je met MetaTrader 5 werkt, is het belangrijk om te begrijpen hoe het vulbeleid van financiële instrumenten werkt. Dit kan een grote impact hebben op je handelsbeslissingen! Wat is het Vulbeleid? Het vulbeleid (of filling policy) geeft aan hoe een order wordt uitgevoerd op de markt. Dit beleid kan variëren afhankelijk van het financiële instrument dat je verhandelt. Hoe Bepaal Je het Vulbeleid? Invoer van het Symbool: De functie begint met het invoeren van het symbool van het financiële instrument waarvoor je het vulbeleid wilt bepalen. Opvragen van het Vulbeleidstype: Met de functie SymbolInfoInteger haal je informatie op over het vulbeleid van het opgegeven symbool. Deze informatie wordt opgeslagen in een variabele genaamd filling als een getal. Vergelijken van Vulbeleid: Vervolgens vergelijk je de numerieke waarde van filling met vooraf gedefinieerde constanten die verschillende vulbeleidsopties vertegenwoordigen, zoals "Vul of Annuleer" (SYMBOL_FILLING_FOK), "Onmiddellijk of Annuleer" (SYMBOL_FILLING_IOC), en "Terug" (SYMBOL_FILLING_RETURN). Teruggeven van het Vulbeleidstype: Op basis van de vergelijking bepaalt de functie het vulbeleidstype. Als het overeenkomt met "Vul of Annuleer," wordt ORDER_FILLING_FOK teruggegeven. Bij "Onmiddellijk of Annuleer" krijg je ORDER_FILLING_IOC, en als het niet overeenkomt met een van deze, wordt ORDER_FILLING_RETURN teruggegeven. Waarom is dit Belangrijk? Door het vulbeleid van een symbool in MetaTrader 5 te begrijpen, kun je beter geïnformeerde handelsbeslissingen nemen. Dit helpt je om effectiever te handelen en je strategieën te verbeteren.

2023.09.26
Eerste Vorige 3 4 5 6 7 8 9 10 11 12 13 Volgende Laatste