Systeemhandel

Ontdek de AK-47 Scalper EA voor MetaTrader 4: Jouw Perfecte Handelspartner
MetaTrader4
Ontdek de AK-47 Scalper EA voor MetaTrader 4: Jouw Perfecte Handelspartner

1. Invoerparameters #define ExtBotName "AK-47 Scalper EA" //Naam van de bot #define  Version "1.00" //--- invoerparameters extern string  EASettings        = "---------------------------------------------"; //-------- <EA Instellingen> -------- input int      InpMagicNumber    = 124656;   //Magisch Nummer extern string  TradingSettings   = "---------------------------------------------"; //-------- <Handelsinstellingen> -------- input double   Inpuser_lot       = 0.01;     //Lots input double   InpSL_Pips        = 3.5      //Stoploss (in Pips) input double   InpMax_spread     = 0.5      //Maximaal toegestane spread (in Pips) (0 = zwevend) extern string  MoneySettings     = "---------------------------------------------"; //-------- <Geldinstellingen> -------- input bool     isVolume_Percent  = true;     //Sta Volume Percentage toe input double   InpRisk           = 3        //Risico Percentage van Balans (%) input string   TimeSettings      = "---------------------------------------------"; //-------- <Handeltijdinstellingen> -------- input bool     InpTimeFilter     = true      //Handeltijdfilter input int      InpStartHour      = 2         //Startuur input int      InpStartMinute    = 30        //Startminuut input int      InpEndHour        = 21        //Einduur input int      InpEndMinute      = 0         //Eindminuut 2. Initialisatie van lokale variabelen //--- Variabelen int      Pips2Points;               // slippage  3 pips    3=punten    30=punten double   Pips2Double;               // Stoploss 15 pips    0.015      0.0150 int      InpMax_slippage   = 3;     // Maximaal toegestane slippage in Pips. bool     isOrder           = false; // slechts 1 order openen int      slippage; string   strComment        = ""; 3. Hoofdcode a/ Initialisatiefunctie voor de Expert int OnInit()   { //---      //3 of 5 cijfers detectie    //Pip en punt    if (Digits % 2 == 1)    {       Pips2Double  = _Point*10;       Pips2Points  = 10;       slippage = 10* InpMax_slippage;    }    else    {           Pips2Double  = _Point;       Pips2Points  =  1;       slippage = InpMax_slippage;    }    //---    return(INIT_SUCCEEDED);   } b/ Expert tick-functie void OnTick()   { //---      if(IsTradeAllowed() == false)      {       Comment("AK-47 EA\nHandel niet toegestaan.");       return;      }             MqlDateTime structTime;        TimeCurrent(structTime);        structTime.sec = 0;               //Stel starttijd in        structTime.hour = InpStartHour;        structTime.min = InpStartMinute;              datetime timeStart = StructToTime(structTime);               //Stel eindtijd in        structTime.hour = InpEndHour;        structTime.min = InpEndMinute;        datetime timeEnd = StructToTime(structTime);               double acSpread = MarketInfo(Symbol(), MODE_SPREAD);        StopLevel = MarketInfo(Symbol(), MODE_STOPLEVEL);              strComment = "\n" + ExtBotName + " - v." + (string)Version;       strComment += "\nGMT tijd = " + TimeToString(TimeGMT(),TIME_DATE|TIME_SECONDS);       strComment += "\nHandeltijd = [" + (string)InpStartHour + "u" + (string)InpStartMinute + " --> " +  (string)InpEndHour + "u" + (string)InpEndMinute + "]";              strComment += "\nHuidige Spread = " + (string)acSpread + " Punten";       strComment += "\nHuidige stopniveau = " + (string)StopLevel + " Punten";              Comment(strComment);          //Update Waarden       UpdateOrders();              TrailingStop();              //Controleer Handeltijd       if(InpTimeFilter)       {          if(TimeCurrent() >= timeStart && TimeCurrent() < timeEnd)          {             if(!isOrder) OpenOrder();          }       }       else       {          if(!isOrder) OpenOrder();       }   } 3.1 Bereken signaal om orders te verzenden void OpenOrder(){       //int OrdType = OP_SELL;//-1;    double TP = 0;    double SL = 0;    string comment = ExtBotName;    //Bereken Lots    double lot1 = CalculateVolume();       //if(OrdType == OP_SELL){       double OpenPrice = NormalizeDouble(Bid - (StopLevel * _Point) - (InpSL_Pips/2) * Pips2Double, Digits);       SL = NormalizeDouble(Ask + StopLevel * _Point + InpSL_Pips/2 * Pips2Double, Digits);                if(CheckSpreadAllow())                                    //Controleer Spread       {          if(!OrderSend(_Symbol, OP_SELLSTOP, lot1, OpenPrice, slippage, SL, TP, comment, InpMagicNumber, 0, clrRed))          Print(__FUNCTION__,"--> OrderSend fout ",GetLastError());       }    //} } 3.2 Bereken Volume double CalculateVolume()   {    double LotSize = 0;    if(isVolume_Percent == false)      {       LotSize = Inpuser_lot;      }    else      {       LotSize = (InpRisk) * AccountFreeMargin();       LotSize = LotSize /100000;       double n = MathFloor(LotSize/Inpuser_lot);       //Comment((string)n);       LotSize = n * Inpuser_lot;       if(LotSize < Inpuser_lot)          LotSize = Inpuser_lot;       if(LotSize > MarketInfo(Symbol(),MODE_MAXLOT))          LotSize = MarketInfo(Symbol(),MODE_MAXLOT);       if(LotSize < MarketInfo(Symbol(),MODE_MINLOT))          LotSize = MarketInfo(Symbol(),MODE_MINLOT);      }    return(LotSize);   } 3.3 EA heeft een functie "trailing Stop", SL wijzigt elke keer dat de prijs verandert (naar beneden) void TrailingStop()   {    for(int i = OrdersTotal() - 1; i >= 0; i--)      {       if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))         {          if((OrderMagicNumber() == InpMagicNumber) && (OrderSymbol() == Symbol()))   //_Symbol))            {             //Voor Verkooporder             if(OrderType() == OP_SELL)               {                   //--Bereken SL wanneer prijs verandert                   double SL_in_Pip = NormalizeDouble(OrderStopLoss() - (StopLevel * _Point) - Ask, Digits) / Pips2Double;                   if(SL_in_Pip > InpSL_Pips){                         double newSL = NormalizeDouble(Ask + (StopLevel * _Point) + InpSL_Pips * Pips2Double, Digits);                         if(!OrderModify(OrderTicket(), OrderOpenPrice(), newSL, OrderTakeProfit(), 0, clrRed))                         {                            Print(__FUNCTION__,"--> OrderModify fout ",GetLastError());                         {                         continue;                         }                     }           }                        //Voor SellStop Order             else if(OrderType() == OP_SELLSTOP)               {                   double SL_in_Pip = NormalizeDouble(OrderStopLoss() - (StopLevel * _Point) - Ask, Digits) / Pips2Double;                                      if(SL_in_Pip < InpSL_Pips/2){                      double newOP = NormalizeDouble(Bid - (StopLevel * _Point) - (InpSL_Pips/2) * Pips2Double, Digits);                      double newSL = NormalizeDouble(Ask + (StopLevel * _Point) + (InpSL_Pips/2) * Pips2Double, Digits);                                           if(!OrderModify(OrderTicket(), newOP, newSL, OrderTakeProfit(), 0, clrRed))                      {                         Print(__FUNCTION__,"--> Wijzig PendingOrder fout!", GetLastError());                         continue;                      }                   }           }       }     }   }

2023.01.14
XP Forex Trade Manager MT5: Optimaliseer je Trading met deze Handige Tool
MetaTrader5
XP Forex Trade Manager MT5: Optimaliseer je Trading met deze Handige Tool

De Forex Trade Manager MT5 maakt het beheren van openstaande orders in MetaTrader 5 een stuk eenvoudiger. Wanneer je een nieuwe order opent, stelt de manager automatisch de Stop Loss en Take Profit in. Zodra de prijs beweegt, kan het programma de Stop Loss naar Break Even verplaatsen (stop loss = openingsprijs) of de Stop Loss continu verplaatsen (Trailing Stop) om je winst te beschermen. Deze Forex Trade Manager kan orders beheren voor alleen de huidige symbolen (waar de EA actief is) of voor alle openstaande orders (ongeacht het symbool) en kan de Stop Loss en Take Profit verbergen voor de broker. Dit is een strategie voor het beheren van handmatig geopende trades (geopend op alle symbolen of alleen het huidige symbool op de grafiek) door: Stop Loss en/of Take Profit in pips in te stellen voor de trades Een Trailing Stop functie die de SL volgt met de prijs Break Even, waarmee de SL naar BE wordt verplaatst op een gekozen afstand De SL/TP kan op de standaard manier door de broker worden beheerd of in stealth-modus – verborgen voor de broker. Parameters: “SLTP Params” Stop Loss – stop loss in pips voor trades Take Profit – take profit in pips voor trades “Break even” UseBreakEven (true/false) – stelt je in staat om alleen de break-even functie voor openstaande trades te gebruiken BEActivation – winst in pips wanneer de break-even functie geactiveerd is BELevel – extra afstand van BE in pips wanneer de SL wordt geplaatst door de break-even functie “Trailing Stop” UseTrailingStop (true/false) – stelt je in staat om alleen de trailing stop functie voor openstaande trades te gebruiken TSStart – winst in pips wanneer de trailing stop functie geactiveerd is TSStep – minimale afstand in pips tussen de nieuwe en huidige SL om de SL door de trailing stop functie te verplaatsen TSDistance – afstand van de huidige prijs in pips wanneer de SL wordt geplaatst door de trailing stop functie “Gedrag” StealthMode(true/false) – verberg sl/tp niveaus voor de broker en de EA sluit trades programmatisch op die niveaus OnlyCurrentPair(true/false) – laat alleen het beheer van trades toe van het huidige symbool op de grafiek (true) of van alle pairs (false) Info: Alle parameters voor trades en functies zijn instelbaar in de parameters van de EA. De Forex Trade Manager toont ook informatie op de grafiek over de huidige dagelijkse winst/verlies in pips en de valuta van het account.

2023.01.10
XP Forex Trade Manager Grid MT5: Jouw Gids voor Slimme Handelsstrategieën
MetaTrader5
XP Forex Trade Manager Grid MT5: Jouw Gids voor Slimme Handelsstrategieën

De Forex Trade Manager Grid MT5 is een onmisbare tool voor elke serieuze trader. Met deze EA (Expert Advisor) kun je jouw handelsorders eenvoudig beheren en jouw winstdoelen behalen. Het enige wat je hoeft te doen, is de eerste order plaatsen met een Take Profit, de EA draaien en de gewenste winst in pips instellen. De EA neemt het beheer van jouw posities over en verzamelt de door jou ingestelde hoeveelheid pips. Deze strategie is speciaal ontwikkeld voor het beheren van handmatig geopende trades op de huidige valutapaar. De strategie voegt posities toe aan de reeds geopende trades in een grid management systeem, met een gekozen afstand in pips tussen de trades, tot maximaal 15 trades (of minder). De eerste tot 3 trades worden beheerd met individuele take profits. Zodra de 4e trade wordt toegevoegd, sluit de EA de hele grid op een gemeenschappelijk niveau (break-even). Na het sluiten van een trade op TP kan deze opnieuw worden geopend. De hele cyclus kan worden afgesloten als het verlies groter is dan het toegestane percentage van de risicobalans. Parameters: Additional Trade Params: AddNewTradeAfter: afstand in pips vanaf de laatste trade waarna nieuwe trades aan de grid worden toegevoegd. Take Profit: TakeProfit1Total (aantal) – totale TP in pips vereist vanaf de eerste positie. TakeProfit1Partitive – initiële TP in pips voor de eerste positie in de cyclus. TakeProfit1Offset – minimale afstand in pips vanaf de take profit van de laatst gesloten eerste positie die vereist is om deze eerste trade te vernieuwen. TakeProfit2/3 – individuele TP in pips voor de tweede/derde positie in de cyclus. TakeProfit 4/5/6/…15Total – totale TP in pips van alle posities in de cyclus (voor 4 of meer geopende trades). TradeParams: MaxOrders: maximaal toegestane aantal trades in de grid. Risk Balance %: maximaal toegestaan verlies als percentage van de rekeningbalans (sluit alle geopende posities). Lots: lotgrootte voor de trades geopend door de EA. Slippage: toegestane slippage in punten. Info: Alle parameters voor trades en functies zijn instelbaar in de parameters van de EA. De Forex Trade Manager Grid toont ook informatie op de grafiek over de winst/verlies van de huidige cyclus in pips en in de valuta van je rekening.

2023.01.10
Optimaliseer je Trading met de XP Forex Trade Manager voor MetaTrader 4
MetaTrader4
Optimaliseer je Trading met de XP Forex Trade Manager voor MetaTrader 4

Als trader weet je hoe belangrijk het is om je openstaande orders efficiënt te beheren. De Forex Trade Manager MT4 maakt dit een stuk eenvoudiger in MetaTrader 4. Zodra je een nieuwe order opent, stelt de manager automatisch een Stop Loss en Take Profit in. Beweegt de prijs, dan kan het programma de Stop Loss verplaatsen naar Break Even (stop loss = openingsprijs) of de Stop Loss continu aanpassen met een Tailing Stop om je winst te beschermen. De Forex Trade Manager kan orders beheren voor alleen de huidige symbolen (waar de EA werkt) of voor alle openstaande orders, ongeacht het symbool. Bovendien kun je de Stop Loss en Take Profit verbergen voor de broker. Dit is een slimme strategie voor het beheren van handmatige trades die je opent (zowel op alle symbolen als alleen op het huidige grafieksymbool) door: Stop Loss en/of Take Profit in pips in te stellen voor de trades De Trailing Stop functie die de SL volgt met de prijs Break Even, wat de SL op een gekozen afstand verplaatst SL/TP kan door de broker op de standaard manier beheerd worden of in stealth modus – verborgen voor de broker. Belangrijke Parameters: SLTP Params Stop Loss – stop loss in pips voor trades Take Profit – take profit in pips voor trades Break Even UseBreakEven (waar/onwaar) – alleen het break-even functie voor openstaande trades gebruiken BEActivation – winst in pips bij activatie van de break-even functie BELevel – extra afstand van BE in pips wanneer SL wordt geplaatst door de break-even functie Trailing Stop UseTrailingStop (waar/onwaar) – alleen de trailing stop functie voor openstaande trades gebruiken TSStart – winst in pips bij activatie van de trailing stop functie TSStep – minimale verschil in pips tussen nieuwe en huidige SL om SL te verplaatsen door de trailing stop functie TSDistance – afstand van de huidige prijs in pips wanneer SL wordt geplaatst door de trailing stop functie Gedrag StealthMode (waar/onwaar) – verberg SL/TP niveaus voor de broker en sluit trades op die niveaus programmatically OnlyCurrentPair (waar/onwaar) – beheer trades alleen van het huidige grafieksymbool (waar) of van alle paren (onwaar) Informatie: Alle parameters voor trades en functies zijn instelbaar in de parameters van de EA. De Forex Trade Manager toont ook informatie op de grafiek over de huidige dagelijkse winst/verlies in pips en de rekeningvaluta.

2023.01.10
Beheer je Forex Orders met de XP Forex Trade Manager Grid voor MT4
MetaTrader4
Beheer je Forex Orders met de XP Forex Trade Manager Grid voor MT4

Als trader weet je dat het beheren van je orders cruciaal is voor het behalen van je doelen. De XP Forex Trade Manager Grid MT4 is een handige tool die je hierbij helpt. Je hoeft alleen maar je eerste order met een Take Profit in te voeren, de Expert Advisor (EA) te starten en het gewenste aantal pips in te stellen dat je wilt behalen. Deze EA neemt het beheer van je posities over en verzamelt het afgesproken aantal pips. Deze strategie is ideaal voor handmatige trades die je hebt geopend op een huidige valutapaar. De EA voegt nieuwe posities toe aan de reeds geopende trades met een grid management-methode, waarbij je een zelfgekozen afstand in pips tussen de trades kunt instellen - tot wel 15 trades (of minder). De eerste 3 trades worden beheerd met individuele take profits, en vanaf de 4e trade sluit de EA de hele grid op een gemeenschappelijk niveau (break-even). Na het sluiten van de trade op TP kan deze opnieuw worden geopend. De hele cyclus kan worden afgesloten als het verlies groter is dan het toegestane percentage van het risicobalans. Parameters: Extra Handelsparameters: AddNewTradeAfter – afstand in pips vanaf de laatste trade waarna nieuwe trades aan de grid worden toegevoegd Take Profit TakeProfit1Total (getal) – totale TP in pips die vereist is vanaf de eerste positie TakeProfit1Partitive – initiële TP in pips voor de eerste positie in de cyclus TakeProfit1Offset – minimale afstand in pips van de take profit van de laatst gesloten eerste positie die nodig is om deze eerste trade te vernieuwen TakeProfit 2/3 – individuele TP in pips voor de tweede/derde positie in de cyclus TakeProfit 4/5/6/... 15Total – totale TP in pips van alle posities in de cyclus (voor 4 of meer geopende trades) Handelsparameters: MaxOrders – maximaal toegestaan aantal trades in de grid Risicobalans % – maximaal toegestaan verlies als percentage van het account saldo (sluit alle geopende posities) Lots – lotgrootte voor trades die door de EA worden geopend Slippage – toegestane slippage in punten Info: Alle parameters voor trades en functies zijn instelbaar in de parameters van de EA. De Forex Trade Manager Grid toont ook informatie op de grafiek over de winst/verlies van de huidige cyclus in pips en de valuta van je account.

2023.01.10
RSI Bot voor MetaTrader 5: Optimaliseer je Handelsstrategie
MetaTrader5
RSI Bot voor MetaTrader 5: Optimaliseer je Handelsstrategie

Welkom bij onze nieuwe blogpost over de RSI Bot voor MetaTrader 5! Deze slimme tool helpt je om je handelsstrategieën te optimaliseren door automatisch koopsignalen te genereren wanneer de Relative Strength Index (RSI) onder de 20 ligt en verkoopsignalen wanneer de RSI boven de 80 komt. Parameters van de RSI Bot Hieronder vind je een overzicht van de belangrijkste instellingen die je kunt aanpassen om de RSI Bot naar jouw wensen te configureren: RSI Instellingen: Dit gedeelte bevat alle parameters die je kunt instellen. Ingangsperiode voor RSI: Inp_RSI_ma_period = 30; – Dit bepaalt de gemiddelde periode voor de RSI-berekening. Toegepaste Prijs: Inp_RSI_applied_price = PRICE_WEIGHTED; – Dit geeft aan welke prijs wordt gebruikt voor de RSI-berekening. RSI Niveau BOVEN: Inp_RSI_LevelUP = 80; – Dit is de drempel voor een verkoopsignaal. RSI Niveau BENEDEN: Inp_RSI_LevelDOWN = 20; – Dit is de drempel voor een koopsignaal. Signaal Verkoopsignaal: Inp_RSI_stringUP = "Signal Sell"; – Dit is het label dat wordt weergegeven voor het verkoopsignaal. Signaal Koopsignaal: Inp_RSI_stringDOWN = "Signal Buy"; – Dit is het label dat wordt weergegeven voor het koopsignaal. Met deze instellingen kun je de RSI Bot precies afstemmen op jouw handelsstijl. Of je nu een beginnende trader bent of een doorgewinterde professional, deze tool kan je helpen om betere beslissingen te nemen in de markt. Probeer de RSI Bot vandaag nog uit en ontdek hoe het jouw handelsresultaten kan verbeteren!

2023.01.04
Lazy Bot MT5: Jouw Daily Breakout Systeem voor MetaTrader 5
MetaTrader5
Lazy Bot MT5: Jouw Daily Breakout Systeem voor MetaTrader 5

Ben je op zoek naar een slimme manier om je trading te automatiseren? Dan is de Lazy Bot MT5, ook wel bekend als de Daily Breakout EA, iets voor jou! Deze Expert Advisor is ontworpen om de hoogste en laagste waarden van de vorige dag te analyseren en automatisch twee pending orders te plaatsen: een BUY_STOP en een SELL_STOP. Laten we eens dieper ingaan op de instellingen en functies van deze handige tool. 1. Invoeren van parameters Input parameters //Importeer externe classes #include <Trade\PositionInfo.mqh> #include <Trade\Trade.mqh> #include <Trade\SymbolInfo.mqh> #include <Trade\AccountInfo.mqh> #include <Trade\OrderInfo.mqh> //--- Definieer vooraf gedefinieerde variabelen voor leesbaarheid van de code #define Ask    SymbolInfoDouble(_Symbol, SYMBOL_ASK) #define Bid    SymbolInfoDouble(_Symbol, SYMBOL_BID) //--- Invoeren van parameters input string  EASettings = "---------------------------------------------"; //-------- <EA Instellingen> -------- input int      InpMagicNumber = 123456;   //Magic Number input string   InpBotName = "LazyBot_V1"; //Bot Naam input string  TradingSettings = "---------------------------------------------"; //-------- <Trading Instellingen> -------- input double   Inpuser_lot = 0.01;        //Lots input double   Inpuser_SL = 5.0;          //Stoploss (in Pips) input double   InpAddPrice_pip = 0;       //Afstand van [H], [L] naar OP_Price (in Pips) input int      Inpuser_SLippage = 3;      // Maximale slippage toegestaan (in Pips). input double   InpMax_spread    = 0;      //Maximale toegestane spread (in Pips) (0 = variabel) input string  TimeSettings = "---------------------------------------------"; //-------- <Handel Tijd Instellingen> -------- input bool     isTradingTime = true;      //Sta handelstijd toe input int      InpStartHour = 7;          //Begin Uur input int      InpEndHour = 22;           //Eind Uur input string  MoneyManagementSettings = "---------------------------------------------"; //-------- <Geld Instellingen> -------- input bool     isVolume_Percent = false;   //Sta volume percentage toe input double   InpRisk = 1;           //Risico percentage van balans (%) 2. Initialisatie van lokale variabelen //Lokale parameters datetime last; int totalBars; int     Pips2Points;            // slippage  3 pips    3=punten    30=punten double  Pips2Double;    // Stoploss 15 pips    0.015      0.0150 double slippage; double acSpread; string strComment = ""; CPositionInfo m_position; // trade positie object CTrade m_trade; // trading object CSymbolInfo m_symbol; // symbool info object CAccountInfo m_account; // account info wrapper COrderInfo m_order; // openstaande orders object 3. Hoofdcode De strategie van deze bot is vrij simpel. Elke dag verwijdert de bot alle oude orders, zoekt de hoogste en laagste waarde van de vorige dagelijkse kaars en plaatst vervolgens twee pending orders: een BUY_STOP en een SELL_STOP. Er is geen TakeProfit ingesteld. 4. Functie voor Expert initialisatie int OnInit()   { //---    //Detectie van 3 of 5 cijfers    //Pip en punt    if(_Digits % 2 == 1)      {       Pips2Double  = _Point*10;       Pips2Points  = 10;       slippage = 10* Inpuser_SLippage;      }    else      {       Pips2Double  = _Point;       Pips2Points  =  1;       slippage = Inpuser_SLippage;      }           if(!m_symbol.Name(Symbol())) // stelt de naam van het symbool in       return(INIT_FAILED);    RefreshRates(); //---    m_trade.SetExpertMagicNumber(InpMagicNumber);    m_trade.SetMarginMode();    m_trade.SetTypeFillingBySymbol(m_symbol.Name());    m_trade.SetDeviationInPoints(slippage); //---    return(INIT_SUCCEEDED);   } 5. Functie voor Expert tick void OnTick()   {      if(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED) == false)      {       Comment("LazyBot\nHandel niet toegestaan.");       return;      }         //Verkrijg handelstijd,    // Opening sectie    // Londen 14h - 23h GMT Vietnam    // New York 19h - 04h GMT Vietnam    MqlDateTime timeLocal;    MqlDateTime timeServer;       TimeLocal(timeLocal);    TimeCurrent(timeServer);         // werkt niet op feestdagen.    if(timeServer.day_of_week == 0 || timeServer.day_of_week == 6)       return;           int hourLocal = timeLocal.hour;//TimeHour(TimeLocal());    int hourCurrent = timeServer.hour;//TimeHour(TimeCurrent());    acSpread = SymbolInfoInteger(_Symbol, SYMBOL_SPREAD);       strComment = "\nLokale Uur = " + hourLocal;    strComment += "\nHuidige Uur = " + hourCurrent;    strComment += "\nSpread = " + (string)acSpread;    strComment += "\nTotaal Bars = " + (string)totalBars;    Comment(strComment);    //Controleer Trailing    TrailingSL(); //---    if(last != iTime(m_symbol.Name(), PERIOD_D1, 0))// && hourCurrent > InpStartHour)      {       //Controleer Handelstijd       if(isTradingTime)         {          if(hourCurrent >= InpStartHour) // && hourCurrent < InpEndHour){            {             DeleteOldOrds();             //Verzend Order BUY_STOP en SELL_STOP             OpenOrder();             last = iTime(m_symbol.Name(), PERIOD_D1, 0);          }         }       else         {          DeleteOldOrds();          //Verzend Order BUY_STOP en SELL_STOP          OpenOrder();          last = iTime(m_symbol.Name(), PERIOD_D1, 0);         }      }   }    6. Bereken signaal en verzend orders //+------------------------------------------------------------------+ //| BEREKEN SIGNAALE EN VERSTUUR ORDER                                  | //+------------------------------------------------------------------+ void OpenOrder()   {       double TP_Buy = 0, TP_Sell = 0;       double SL_Buy = 0, SL_Sell = 0;              //Controleer Maximale Spread       if(InpMax_spread != 0){          if(acSpread > InpMax_spread){             Print(__FUNCTION__," > huidige Spread is groter dan gebruiker Spread!...");             return;          }       }              double Bar1High = m_symbol.NormalizePrice(iHigh(m_symbol.Name(), PERIOD_D1, 1));       double Bar1Low = m_symbol.NormalizePrice(iLow(m_symbol.Name(), PERIOD_D1, 1));              //Bereken Lots       double lot1 = CalculateVolume();          double OpenPrice = m_symbol.NormalizePrice(Bar1High + InpAddPrice_pip * Pips2Double);// + NormalizeDouble((acSpread/Pips2Points) * Pips2Double, Digits);          //Voor BUY_STOP --------------------------------       TP_Buy = 0;//Bar1High + NormalizeDouble(min_sl* Pips2Double, Digits);       SL_Buy = m_symbol.NormalizePrice(OpenPrice - Inpuser_SL * Pips2Double);          totalBars = iBars(m_symbol.Name(), PERIOD_D1);       string comment = InpBotName + ";" + m_symbol.Name() + ";" + totalBars;             if(CheckVolumeValue(lot1)             && CheckOrderForFREEZE_LEVEL(ORDER_TYPE_BUY_STOP, OpenPrice)             && CheckMoneyForTrade(m_symbol.Name(),lot1, ORDER_TYPE_BUY)             && CheckStopLoss(OpenPrice, SL_Buy))         {             if(!m_trade.BuyStop(lot1, OpenPrice, m_symbol.Name(), SL_Buy, TP_Buy, ORDER_TIME_GTC, 0, comment))// gebruik "ORDER_TIME_GTC" wanneer vervaldatum = 0             Print(__FUNCTION__, "--> Koop Fout");             }              //Voor SELL_STOP --------------------------------       OpenPrice = m_symbol.NormalizePrice(Bar1Low - InpAddPrice_pip * Pips2Double);// - NormalizeDouble((acSpread/Pips2Points) * Pips2Double, Digits);          TP_Sell = 0;//Bar1Low - NormalizeDouble(min_sl* Pips2Double, Digits);       SL_Sell = m_symbol.NormalizePrice(OpenPrice + Inpuser_SL * Pips2Double);             if(CheckVolumeValue(lot1)             && CheckOrderForFREEZE_LEVEL(ORDER_TYPE_SELL_STOP, OpenPrice)             && CheckMoneyForTrade(m_symbol.Name(),lot1, ORDER_TYPE_SELL)             && CheckStopLoss(OpenPrice, SL_Sell))          {             if(!m_trade.SellStop(lot1, OpenPrice, m_symbol.Name(), SL_Sell, TP_Sell, ORDER_TIME_GTC, 0, comment))             Print(__FUNCTION__, "--> Verkoop Fout");          }     } 7. Nieuw dag, verwijder alle oude orders //+------------------------------------------------------------------+ //| Verwijder Oude Orders                                                | //+------------------------------------------------------------------+ void DeleteOldOrds()   {    string sep=";";                // Een scheidingsteken als een karakter    ushort u_sep;                  // De code van het scheidingsteken karakter    string result[];               // Een array om strings op te slaan    for(int i = OrdersTotal() - 1; i >= 0; i--)  // retourneert het aantal huidige orders      {       if(m_order.SelectByIndex(i))              // selecteert de openstaande order op index voor verdere toegang tot zijn eigenschappen         {          //--- Verkrijg de code van het scheidingsteken          u_sep = StringGetCharacter(sep, 0);          string Ordcomment = m_order.Comment();          //Splits OrderComment (EAName;Symbool;totaalBar) om Ordersymbool te krijgen          int k = StringSplit(Ordcomment, u_sep, result);          if(k > 2)            {             string sym = m_symbol.Name();             if((m_order.Magic() == InpMagicNumber) && (sym == result[1]))               {                   m_trade.OrderDelete(m_order.Ticket());               }            }         }      }   } 8. EA heeft functie

2022.12.14
Effectieve Mean Reversion Strategie voor MetaTrader 4
MetaTrader4
Effectieve Mean Reversion Strategie voor MetaTrader 4

De Mean Reversion strategie is een populaire aanpak onder traders, vooral als je deze toepast op de dagelijkse tijdsframe van de belangrijkste valutaparen. Laten we samen eens kijken naar hoe je deze strategie het beste kunt implementeren! Belangrijke Tips Probeer het eerst op een demo-account. Deze EA handelt alleen met de openingsprijs van de kaars! Wil je niet met een toenemende lotgrootte handelen bij verlies? Stel dan in: "IncreaseFactor=0". Hieronder vind je de belangrijkste instellingen voor de Mean Reversion EA: Instellingen Use_TP_In_Money - Neem winst in geld (waarden: waar/onwaar). TP_In_Money - Winstdoel in geld (waarden: 10-100). Use_TP_In_percent - Neem winst in procent (waarden: waar/onwaar). TP_In_Percent - Winstdoel in procent (waarden: 10-100). Enable_Trailing - Activeer trailing stop (waarden: waar/onwaar). Take Profit In Money (in huidige valuta) (waarden: 25-200). Stop Loss In Money (in huidige valuta) (waarden: 1-20). Exit - Sluit posities als de trend tegen je in gaat (waarden: waar/onwaar). BarsToCount - Aantal bars om te tellen (waarden: 1-20). Lots - Lotgrootte (waarden: 0.01-1). Stop_Loss - Stop Loss (waarden: 30-500). / stel waarde 600 in voor meerdere trades. TakeProfit - Winstdoel (waarden: 50-200). / stel waarde 600 in voor meerdere trades. FastMA - Snelle Moving Average (waarden: 1-20). SlowMA - Langzame Moving Average (waarden: 50-200). Mom_Sell - Momentum Sell trigger (waarden: 0.1-0.9). Mom_Buy - Momentum Buy trigger (waarden: 0.1-0.9). Max_Trades - Maximaal aantal trades (waarden: 1-12). FractalNum - Aantal high en low (waarden: 1-10). Het is aan te raden om deze EA elke paar maanden te optimaliseren met dezelfde instellingen als hierboven. Je kunt het gebruiken als een hedging grid EA of als een enkele trade EA. Voor een backtest, bekijk deze instructies: Backtest Instructies

2022.10.26
Eerste Vorige 6 7 8 9 10 11 12 13 14 15 16 Volgende Laatste