Systeemhandel

Optimaliseer je Risico met Dual Stop Loss: HIDDEN en REGULAR in MetaTrader 4
MetaTrader4
Optimaliseer je Risico met Dual Stop Loss: HIDDEN en REGULAR in MetaTrader 4

Wanneer je een nieuwe positie opent, is het belangrijk om als trader goed na te denken over je geldbeheer. Een effectieve manier om risico te beheersen en je kapitaal te managen, is door een bepaalde marge verlies in te stellen voor je posities. Veel traders gaan ervan uit dat wanneer ze een Stop Loss (of zelfs Take Profit) voor een positie instellen en deze prijs invoeren in het venster voor het aanpassen van posities, de broker verplicht is om hun positie te sluiten zodra de prijs deze limiet bereikt. Maar dat is niet helemaal waar. Het hangt namelijk af van het type account dat je bij je broker hebt. Bij ECN-accounts sluit de broker je positie tegen de eerst beschikbare prijs nadat deze limiet is bereikt. Als je het daar niet mee eens bent, kijk dan nog eens goed naar je handelsgeschiedenis. Je zult zien dat sommige van je orders zijn gesloten tegen een andere prijs dan je had ingesteld, wat kan leiden tot meer verliezen of zelfs meer winst dan je had verwacht. Dit fenomeen staat bekend als SLIPPAGE. Bovendien denken sommige traders dat de verlieslimiet niet precies moet worden aangegeven aan de broker. Hier komt de HIDDEN Stop Loss om de hoek kijken, ontworpen voor traders die deze strategie hanteren. Met deze robot kun je nu zowel een HIDDEN als een REGULAR Stop Loss tegelijkertijd hebben. Je kunt eenvoudig een REGULAR Stop Loss instellen voor je posities, zoals je dat altijd deed. Het maakt niet uit of je met robots handelt of handmatig. Voer deze robot uit op een nieuwe, aparte grafiek (maakt niet uit welke) om al je posities te beheren. De invoerwaarde bepaalt de afstand tussen de HIDDEN en REGULAR Stop Loss. Let op: deze waarde is gedefinieerd in punten, niet in pips.

2021.04.23
Scalper Assistant v1.0 - De Ultieme Tool voor MetaTrader 4 Traders
MetaTrader4
Scalper Assistant v1.0 - De Ultieme Tool voor MetaTrader 4 Traders

Scalping: Een Populaire HandelsstrategieScalping is een van de meest populaire handelsstrategieën die veel traders minstens één keer hebben geprobeerd. Omdat een scalper meestal meer dan 10 trades per dag uitvoert, kan het instellen van Stop Loss en Take Profit voor elke trade een saai karwei worden. Als jouw strategie is om op verschillende financiële instrumenten te handelen en ook Break Even te gaan, wordt het beheren van al deze orders vaak een vervelende klus, wat kan leiden tot fouten.Bovendien, als je handelt op lagere tijdframes en over meerdere valutaparen, kan er een snelle prijsbeweging plaatsvinden net op het moment dat je even van je bureau weg bent voor een kopje thee. Het is dan goed mogelijk dat je een kans mist om Break Even te gaan. De gedachte dat een snelle prijsomkering een winstgevende trade in een verlies kan veranderen, zal altijd op de achtergrond meespelen.De Oplossing: Scalper AssistantMet behulp van deze expert kun je eenvoudig de juiste bedragen voor Stop Loss en Take Profit bepalen. Zodra je een trade opent, stelt de expert automatisch de initiële waarden in. Als de prijs voldoende in de gewenste richting beweegt, wordt de trade risicoloos of Break Even.Alle invoerwaarden zijn in POINT (niet PiP).extern double WhenToMoveToBE - Hier bepaal je hoeveel punten de prijs van het instapniveau moet afwijken voordat de EA de order op Break Even zet.extern double BEAmount - Hiermee stel je de afstand van de Stop Loss tot het instapniveau in.

2021.04.23
Sluit Orders op Doel of Beperk Verlies - Handige Expert voor MetaTrader 4
MetaTrader4
Sluit Orders op Doel of Beperk Verlies - Handige Expert voor MetaTrader 4

In de wereld van trading is het cruciaal om je verliezen te beperken en je winsten veilig te stellen. Daarom gebruik ik deze Expert Advisor (EA) als een waardevol hulpmiddel in mijn handelsstrategie. Essentiële Instellingen Deze EA vereist drie belangrijke invoerparameters: Winstdoel Verliesbeperking Magic Number extern    double         inTargetProfitMoney     = 10;       // Winstdoel (€) extern    double         inCutLossMoney          = 0.0      // Verliesbeperking (€) extern    int            inMagicNumber           = 0        // Magic Number Wanneer deze EA wordt uitgevoerd, wordt eerst de OnInit() functie aangeroepen. Hier controleren we de invoer en initialiseren we de variabelen. int OnInit()   { //---    if(inTargetProfitMoney <= 0)      {       Alert("Ongeldige invoer");       return(INIT_PARAMETERS_INCORRECT);      }    inCutLossMoney = MathAbs(inCutLossMoney) * -1; //---    return(INIT_SUCCEEDED);   } Bij elke prijsbeweging (tick) wordt de OnTick() functie aangeroepen. void OnTick()   { //---    double   tFloating = 0.0;    int tOrder  = OrdersTotal();    for(int i=tOrder-1; i>=0; i--)      {       if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))         {          if(OrderMagicNumber() == inMagicNumber)            {             tFloating   += OrderProfit()+OrderCommission() + OrderSwap();            }         }      }    if(tFloating >= inTargetProfitMoney || (tFloating <= inCutLossMoney && inCutLossMoney < 0))      {       fCloseAllOrders();      }   } In de OnTick functie berekenen we voortdurend de totale winst of verlies. Vervolgens sluiten we alle orders die aan de voorwaarden voldoen, zoals het behalen van het winstdoel of het overschrijden van de verlieslimiet. void fCloseAllOrders()   {    double   priceClose = 0.0;    int tOrders = OrdersTotal();    for(int i=tOrders-1; i>=0; i--)      {       if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))         {          if(OrderMagicNumber() == inMagicNumber && (OrderType() == OP_BUY || OrderType() == OP_SELL))            {             priceClose = (OrderType()==OP_BUY)?MarketInfo(OrderSymbol(), MODE_BID):MarketInfo(OrderSymbol(), MODE_ASK);             if(!OrderClose(OrderTicket(), OrderLots(), priceClose, slippage, clrGold))               {               Print("WAARSCHUWING: Sluiten mislukt");               }            }         }      }   } Voor meer gedetailleerde informatie en het delen van MQL4-code en educatie, sluit je aan bij onze Telegram-groep: t.me/codeMQL

2021.03.31
Optimaliseer Je Trading met een Trailing Stop in MetaTrader 4
MetaTrader4
Optimaliseer Je Trading met een Trailing Stop in MetaTrader 4

Een trailing stop is een geweldige manier om je trades te ondersteunen door de stop loss automatisch naar het winstgebied te verschuiven. Op deze manier kun je altijd je winst veiligstellen zonder constant je trades in de gaten te houden. Laten we beginnen met de code door de invoerparameters voor de trailing stop te specificeren: input    bool     isTrailingStop = true;  //Trailing Stop input    int      trailingStart  = 15;    //Trailing Start (pips) input    int      trailingStep   = 5;     //Trailing Step (pips) input    int      MagicNumber = 0;        //Magic Number Hier is de globale variabele die we nodig hebben: //Globale Variabeledouble   myPoint    = 0.0; Wanneer we deze Expert Advisor (EA) uitvoeren, wordt de functie OnInit() voor de eerste keer uitgevoerd. In deze functie controleren en initialiseren we de invoervariabelen: int OnInit()  {    if (isTrailingStop && trailingStart <= 0){      Alert ("Parameters incorrect");      return(INIT_PARAMETERS_INCORRECT);   }     myPoint     = GetPipPoint(Symbol());    return(INIT_SUCCEEDED);  } Elke keer dat er een prijsbeweging (tick) plaatsvindt op de grafiek waar deze EA aan is gekoppeld, wordt de functie OnTick() uitgevoerd. In deze functie roepen we de functie setTrailingStop() aan: void OnTick()  {    //---     setTrailingStop(MagicNumber);  } Hier is de functie setTrailingStop(): void setTrailingStop(int magicNumber=0){   if (isTrailingStop==false) return;    int      tOrder = 0;    string   pair = "";    double   sl = 0.0, tp = 0.0;     pair = Symbol();     tOrder = OrdersTotal();     for (int i=tOrder-1; i>=0; i--){      bool hrsSelect = OrderSelect(i, SELECT_BY_POS, MODE_TRADES);      if (OrderMagicNumber() == magicNumber && StringFind(OrderSymbol(), pair, 0) == 0 ){         if (OrderType() == OP_BUY){            if ( (Bid - (trailingStart * myPoint)) >= OrderOpenPrice()                  && (Bid - ((trailingStart+trailingStep) * myPoint) >= OrderStopLoss() )            ){               sl = NormalizeDouble(Bid - (trailingStart * myPoint), Digits());               if (!OrderModify(OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0, clrBlue)){                  Print ("#", OrderTicket(), " fout bij het updaten van sl");               }            }         }         if (OrderType() == OP_SELL){            if ( (Ask + (trailingStart * myPoint)) <= OrderOpenPrice()                  && ( (Ask + ((trailingStart+trailingStep) * myPoint) <= OrderStopLoss() ) || OrderStopLoss() == 0.0)               )            {               sl = NormalizeDouble(Ask + (trailingStart * myPoint), Digits() );               if (!OrderModify(OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0, clrBlue)){                  Print ("#", OrderTicket(), " fout bij het updaten van sl");               }            }      } //einde als magicNumber   }//einde voor} Andere standaardfuncties die nodig zijn, zijn GetPipPoint(): // Functie GetPipPointdouble GetPipPoint(string pair){   double point= 0.0;   int digits = (int) MarketInfo(pair, MODE_DIGITS);   if(digits == 2 || digits== 3) point= 0.01;   else if(digits== 4 || digits== 5) point= 0.0001;   return(point);} Als je vragen hebt, laat ze dan achter in de reacties of sluit je aan bij onze groepschat (in het Nederlands) t.me/codeMQL. We hebben ook de SignalForex App beschikbaar. Je kunt ons steunen door de SignalForex App te downloaden en deze te blijven gebruiken voor een winstgevender handelsresultaat. Download hier de SignalForex App.

2021.03.30
2 MA Crossing - Een Expert voor MetaTrader 4
MetaTrader4
2 MA Crossing - Een Expert voor MetaTrader 4

In dit artikel gaan we aan de slag met het creëren van een Expert Advisor (EA) door eerst de invoerparameters te definiëren. //--- invoerparameters input    int      period_ma_fast = 8;  // Periode Snelle MA input    int      period_ma_slow = 20;  // Periode Langzame MA input    double  takeProfit  = 20.0;  // Take Profit (pips) input    double  stopLoss    = 20.0;  // Stop Loss (pips) input    double  lotSize     = 0.10;  // Lotgrootte input    double  minEquity   = 100.0;  // Min. Eigenvermogen (€) input    int Slippage = 3;       // Slippage input    int MagicNumber = 889;    // Magic Number Vervolgens definiëren we globale variabelen. Deze variabelen zijn toegankelijk voor alle functies. // Globale variabelen double   myPoint    = 0.0; int      mySlippage = 0; int      BuyTicket   = 0; int      SellTicket  = 0; Wanneer de EA wordt uitgevoerd, is de eerste functie die wordt aangeroepen OnInit(). Deze functie gebruiken we vaak om globale variabelen te valideren en te initialiseren. int OnInit() {    // Validatie van invoer, altijd doen bij initialisatie van invoergegevens    if (period_ma_fast >= period_ma_slow || takeProfit < 0.0 || stopLoss < 0.0 || lotSize < 0.01 || minEquity < 10) {       Alert("WAARSCHUWING - Invoergegevens zijn ongeldig");       return (INIT_PARAMETERS_INCORRECT);    }       double min_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN);    if(lotSize<min_volume) {       string message =StringFormat("Volume is kleiner dan de toegestane limiet van %.2f",min_volume);       Alert (message);       return(INIT_PARAMETERS_INCORRECT);    }       myPoint = GetPipPoint(Symbol());    mySlippage = GetSlippage(Symbol(),Slippage);    return(INIT_SUCCEEDED); } Wanneer de marktprijs beweegt (tick), wordt de functie OnTick() aangeroepen en worden alle instructies in deze functie uitgevoerd. In de OnTick() functie worden verschillende andere functies aangeroepen. We starten met het aanroepen van de functie checkMinEquity() om de toereikendheid van het handelsvermogen te controleren. Als het eigen vermogen voldoende is (boven het minimum), volgt de verklaring van de signaalvariabele en wordt de functie NewCandle() aangeroepen om aan te geven wanneer er een nieuwe candle is gevormd. De functie getSignal() leest de waarden op beide voortschrijdende gemiddelden en retourneert signaalinformatie of er een opwaartse of neerwaartse kruising plaatsvindt als signaal voor een koop- of verkoopmoment. Op basis van deze signaalinformatie wordt het doorgestuurd naar de functie transaction() om open koop- of verkoopposities in te stellen. Daarna wordt de functie setTPSL() aangeroepen, die de take profit en stop loss-prijzen instelt.Als het eigen vermogen niet voldoet aan de minimumvereiste, verschijnt er een waarschuwing en wordt deze EA beëindigd. void OnTick() {    if (cekMinEquity()) {              int signal = -1;       bool isNewCandle = NewCandle(Period(), Symbol());              signal = getSignal(isNewCandle);       transaction(isNewCandle, signal);       setTPSL();                  }else {       // Stop met handelen, omdat het eigen vermogen niet voldoende is       Print("EA wordt stopgezet omdat het eigen vermogen niet voldoende is");    } } De functie setTPSL() instellen: void setTPSL() {    int   tOrder = 0;    string   strMN = "", pair = "";    double sl = 0.0, tp = 0.0;       pair = Symbol();       tOrder = OrdersTotal();    for (int i=tOrder-1; i>=0; i--) {       bool hrsSelect = OrderSelect(i, SELECT_BY_POS, MODE_TRADES);       strMN = IntegerToString(OrderMagicNumber());       if (StringFind(strMN, IntegerToString(MagicNumber), 0) == 0 && StringFind(OrderSymbol(), pair, 0) == 0) {          if (OrderType() == OP_BUY && (OrderTakeProfit() == 0 || OrderStopLoss() == 0)) {             if (takeProfit > 0) {                tp = OrderOpenPrice() + (takeProfit * myPoint);             }else {                tp = OrderOpenPrice();             }             if (stopLoss > 0) {                sl = OrderOpenPrice() - (stopLoss * myPoint);             }else {                sl = OrderStopLoss();             }             if (OrderTakeProfit() != tp || OrderStopLoss() != sl) {                if(OrderModify(OrderTicket(), OrderOpenPrice(), sl, tp, 0, clrBlue)) {                   Print ("Orderwijziging Succesvol");                }             }        }       if (OrderType() == OP_SELL && (OrderTakeProfit() == 0 || OrderStopLoss() == 0)) {             if (takeProfit > 0) {                tp = OrderOpenPrice() - (takeProfit * myPoint);             }else {                tp = OrderOpenPrice();             }             if (stopLoss > 0) {                sl = OrderOpenPrice() + (stopLoss * myPoint);             }else {                sl = OrderStopLoss();             }             if (OrderTakeProfit() != tp || OrderStopLoss() != sl) {                if (OrderModify(OrderTicket(), OrderOpenPrice(), sl, tp, 0, clrRed)) {                   Print ("Orderwijziging Succesvol");                }             }        }              } // einde van if magic number && paar        } // einde van for } Voor educatie en delen in het Nederlands, sluit je aan bij onze Telegramgroep t.me/codeMQL. Als je op zoek bent naar een app ter ondersteuning van je trading, download dan onze SignalForex-app in de Play Store. https://play.google.com/store/apps/details?id=com.autobotfx.signalforex

2021.03.30
De Eenvoudigste Expert Advisor met DeMarker Indicator voor MetaTrader 4
MetaTrader4
De Eenvoudigste Expert Advisor met DeMarker Indicator voor MetaTrader 4

Heb je ooit nagedacht over het gebruik van een Expert Advisor (EA) voor jouw trading? Ik heb dat gedaan, en ik wil mijn ervaring delen over de eenvoudigste EA die ik ooit heb gehad. Neem even de tijd om het te lezen en laat me weten wat je ervan vindt!Deze EA is specifiek ontworpen voor één valutapaar. In de instellingen kun je eenvoudig de tijdsinstelling, lotgrootte, stop loss en take profit aanpassen.extern ENUM_TIMEFRAMES TF = PERIOD_CURRENT;// Selecteer tijdsframe extern int period = 8;// Periode DeMarker extern double lt = 0.01;// Lots extern int sl = 100;// Stop Loss extern int tp = 100;// Take Profit extern double OB = 0.7;// Over Verkocht extern double OS = 0.3;// Over Gekocht extern bool OPENBAR = false;// Handel op nieuwe bar open prijsHet geheim? Ik heb de variabelen verdeeld in drie delen:1. gegevens | tijdsframe2. order3. paar//+------------------------------------------------------------------+ //-- tijdsframe|indicator double dmrk[5]; int signal = -1;//-- 0.koop 1.verkoop int hold = 0; //-- order int ticket = 0; double lot = 0.0; int typ = -1; //-- paar datetime t1 = 0; bool newbar = false; bool entry = false; //+------------------------------------------------------------------+In de functie OnInit() initialiseert de EA de DeMarker-indicator en controleert het de minimale lotgrootte op basis van de vereisten van de specifieke broker.//+------------------------------------------------------------------+ //|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| //+------------------------------------------------------------------+ void OnInit() &nbsp;&nbsp;{ &nbsp;&nbsp; ArrayInitialize(dmrk,0.0); &nbsp;&nbsp;//--- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;const double test_lot = SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(lt < test_lot) lt = test_lot; &nbsp;&nbsp;}In de OnTick() functie berekent de EA de indicator en bepaalt het koop- en verkoopsignalen.//--------------------------------------------------------------------------- &nbsp;&nbsp; signal = -1; //--------------------------------------------------------------------------- //---berekening &nbsp;&nbsp; for(int i = 0; i < ArraySize(dmrk); i++) &nbsp;&nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dmrk[i] = iDeMarker(Symbol(), TF, period, i); &nbsp;&nbsp;&nbsp;&nbsp; } //--- &nbsp;&nbsp; if(dmrk[1] > OB) &nbsp;&nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hold = 1;//instellen &nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp; else &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(dmrk[1] < OS) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hold = -1;//instellen &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hold = 0;//resetten &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp; if(hold == 1) &nbsp;&nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(dmrk[0] < OB &amp;&amp; dmrk[1] > OB) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; signal = OP_SELL; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp; if(hold == -1) &nbsp;&nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(dmrk[0] > OS &amp;&amp; dmrk[1] < OS) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; signal = OP_BUY; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp; }Om een koop- of verkoopsignaal te openen...//--------------------------------------------------------------------------- &nbsp;&nbsp; if(signal != -1) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(newbar == true) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(entry == false)//deur open &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//--- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;entry = true;//instellen &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//--- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(signal == OP_BUY) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ticket = OrderSend(Symbol(), OP_BUY, lt, Ask, (int)((Ask - Bid) / Point), &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sl > 0?Bid - sl * Point:0.0, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tp > 0?Bid + tp * Point:0.0, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EAName + ":signal= " + IntegerToString(signal) + ":hold= " + IntegerToString(hold), &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EANumber, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clrBlue); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;signal = -1; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//hold = 0; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}//reset &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}//reset signal &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} En voor het sluiten van de posities...&nbsp;&nbsp; if(entry == true) // sluiten &nbsp;&nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(OrderSelect(ticket, SELECT_BY_TICKET)) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(OrderCloseTime() == 0)//-- order actieve trade &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;&nbsp;todo voorwaarde om te sluiten&nbsp;&nbsp;*/ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//entry = false; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //else &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(OrderCloseTime() != 0)//--&nbsp;&nbsp;sluiten door 1. handmatig 2. sl/tp 3. ea &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; entry = false;//reset entry &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp; }

2020.12.17
CSV-bestand maken met een Expert Advisor voor MetaTrader 4
MetaTrader4
CSV-bestand maken met een Expert Advisor voor MetaTrader 4

Hallo traders, ik ben Lucas! Ik wilde iets bijdragen aan deze geweldige community waar ik zoveel van heb geleerd door informatieve artikelen te lezen. Zelf ben ik een forex- en aandelenbelegger en programmeer ik Experts voor mijn persoonlijke trading. Vandaag deel ik iets dat hopelijk nuttig voor jullie kan zijn! Dit is een voorbeeld van hoe je ordergegevens naar een csv-bestand kunt schrijven. Dit bestand kun je later analyseren en gebruiken voor je eigen statistieken. Deze Expert Advisor is momenteel niet bedoeld om mee te traden, maar het laat zien hoe je deze functie in je eigen Expert kunt implementeren. Je kunt het verder ontwikkelen en aanpassen aan je eigen strategie. Deze Expert opent trades in de geselecteerde richting. Orders worden virtueel gesloten via de instellingen voor Take Profit (TP) en Stop Loss (SL). Als je 'WriteCloseData' op waar (true) zet, wordt er een bestand aangemaakt waarin ordergegevens zoals richting, winst/verlies, prijs, enzovoorts, als csv-bestand in je terminal worden opgeslagen. Wanneer je deze Expert in de strategie tester test, vind je dit bestand in de map OpenDataFolder/tester/CSVexpert/CSVexample. De directory CSVexpert wordt automatisch aangemaakt zodra je met de test begint, en het bestand CSVexample dat alle gegevens opslaat, wordt hierin gemaakt. Als je deze functie in je eigen Expert implementeert of verder bouwt en later op demo- of echte rekeningen draait, vind je het aangemaakte bestand in MQL4/Files/CSVexpert/CSVexample. Je kunt de naam van de directory en het bestand aanpassen naar wat je maar wilt, behalve de .csv-extensie die je moet laten staan. Wees je er wel van bewust dat dit slechts een voorbeeld is van wat je ermee kunt doen en hoe je deze functie kunt gebruiken. Ik wil niet dat je geld verliest door te denken dat het nu al geschikt is voor handelsdoeleinden!

2020.11.14
Eerste Vorige 10 11 12 13 14 15 16 17 18 19 20 Volgende Laatste