In der Welt des Tradings ist es entscheidend, die Kontrolle über unsere Positionen zu behalten. Ein hilfreiches Tool, das dabei unterstützen kann, ist dieser Expert Advisor (EA). Er hilft uns, Orders entweder bei Erreichen des Gewinnziels oder beim Erreichen der Verlustgrenze automatisch zu schließen.
Der EA benötigt drei Eingaben:
- Gewinnziel
- Verlustgrenze
- Magic Number
extern double inTargetProfitMoney = 10; //Gewinnziel in Euro extern double inCutLossMoney = 0.0 //Verlustgrenze in Euro extern int inMagicNumber = 0 //Magic Number
Wenn dieser EA ausgeführt wird, wird zunächst die Funktion OnInit() aufgerufen. Hier überprüfen wir die Eingaben und initialisieren die Variablen.
int OnInit() { //--- if(inTargetProfitMoney <= 0) { Alert("Ungültige Eingabe"); return(INIT_PARAMETERS_INCORRECT); } inCutLossMoney = MathAbs(inCutLossMoney) * -1; //--- return(INIT_SUCCEEDED); }
Bei jeder Preisbewegung (Tick) wird dann die Funktion OnTick() aufgerufen.
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 der OnTick-Funktion wird der gesamte Gewinn oder Verlust berechnet. Wenn das Ziel erreicht oder die Verlustgrenze überschritten wird, schließt der EA alle entsprechenden Orders.
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("WARNUNG: Schließen fehlgeschlagen"); } } } } }
Für detailliertere Informationen und den Austausch von MQL4-Code-Bildungen, schau doch mal in unseren Telegram-Kanal vorbei!
Verwandte Beiträge
- Handelssignale mit MQL5 Wizard: Bullish und Bearish Harami mit CCI bestätigen
- MQL5 Wizard: Trade Signale auf Basis von Kurs-Crossover mit gleitendem Durchschnitt und ADX Bestätigung
- MQL5 Wizard: Handels-Signale mit 3 schwarzen Krähen / 3 weißen Soldaten + CCI für MetaTrader 5
- MQL5 Wizard: Handelssignale durch 3 Schwarze Krähen/3 Weiße Soldaten + RSI
- MQL5 Wizard: Handelssignale mit 3 schwarzen Krähen/3 weißen Soldaten und Stochastik erstellen