Verhoog je Handel na Breakeven met Deze Handige EA voor MetaTrader 4

Mike 2021.07.13 18:50 15 0 0
Bijlage

Als actieve trader wil je natuurlijk je winsten maximaliseren en je risico's minimaliseren. Vandaag duiken we in een handige Expert Advisor (EA) die een OrdersCount functie bevat. Dit kleine meesterwerkje helpt je om je posities beter te beheren na het bereiken van breakeven.

De OrdersCount Functie

De kracht van deze EA zit in de OrdersCounter functie. Hiermee tellen we alleen de orders die NIET een stoploss hebben die boven het openingsprijs ligt voor een kooporder en onder het openingsprijs voor een verkooporder.

int OrdersCounter()
  {
   int counter=0;
//---
   for(int i=OrdersTotal()-1; i>=0; i--)
      if(OrderSelect(i,SELECT_BY_POS))
         if(OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()) // als de order is geopend door deze EA
           {
//--- als breakeven heeft plaatsgevonden
   /* Voor kooporders alleen wanneer de StopLoss gelijk of boven de Open Prijs is. Let op: deze implementatie is niet goed voor Pending Orders. Geschikt voor koop- en verkooporders alleen.*/
            double XBreakeven = OrderType()==OP_BUY ? OrderStopLoss() >= OrderOpenPrice() : OrderStopLoss() <= OrderOpenPrice();
            if(!XBreakeven) // Als alleen Breakeven en trailing stop nog niet heeft plaatsgevonden
              {
               counter++; // tel de positie
              }
           }
   return counter;
  }

Hiermee tellen we alle orders die niet in breakeven zijn of waarvoor de trailing stop niet het openingsprijs heeft beschermd. Dit helpt ons om het aantal actieve posities te beperken.

Maximale Posities Beheren

Met de OrdersCounter functie kunnen we onze maximale positie instellen. In ons geval hebben we dit ingesteld op één order tegelijk.

   if(OrdersCounter()<MaximumOrders)

Wanneer breakeven plaatsvindt, zal deze functie het tellen negeren. Dit betekent dat als we maar één positie hebben, de functie nul retourneert en we een nieuwe verkoop kunnen openen!

De Breakeven Functie

Dit alles zou niet mogelijk zijn zonder de BreakEvenFunction, die we ook moeten implementeren.

void BreakEvenFunction()
  {
//---
   for(int i=OrdersTotal()-1; i>=0; i--)
      if(OrderSelect(i,SELECT_BY_POS))
         if(OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol())
           {
// voor kooporders als Bid boven Open Prijs + Breakeven pips, vice versa voor verkooporders
            double xHybrid = OrderType()==OP_BUY ? (Bid>OrderOpenPrice()+BreakevenPips*_Point && OrderStopLoss()<OrderOpenPrice()) : (Ask<OrderOpenPrice()-BreakevenPips*_Point && OrderStopLoss()>OrderOpenPrice());
            /* Voor kooporders alleen wanneer de StopLoss gelijk of boven de Open Prijs is, vice versa voor verkooporders */
            if(xHybrid)
              {
               bool modfy = OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,clrNONE);
              }
           }
  }

Wil je deze functie eens uitproberen? Het kan je helpen om je trading strategie naar een hoger niveau te tillen!

Lijst
Reactie 0