Systemhandel

MaybeAwo EA – dein smarter Trading-Assistent für MetaTrader 4
MetaTrader4
MaybeAwo EA – dein smarter Trading-Assistent für MetaTrader 4

Wichtige Funktionen: Einsteiger mit gleitendem Durchschnitt: Der EA nutzt einen einfachen gleitenden Durchschnitt, um mögliche Einstiegspunkte zu identifizieren. Wenn die Marktbedingungen mit der Crossover-Strategie des gleitenden Durchschnitts übereinstimmen, kann er Kauf- oder Verkaufsaufträge eröffnen. Anpassbare Parameter: Du kannst das Verhalten des EAs mithilfe von Eingabeparametern wie Gleitzeitraum, Lotgröße, Stop-Loss, Take-Profit, Breakeven-Niveaus, gewünschte Breakeven-Distanzen und Handelszeiten feinjustieren. Diese Parameter ermöglichen es dir, den EA an verschiedene Handelsstile und Anlageklassen anzupassen. Breakeven-Funktion: Der EA beinhaltet zwei Breakeven-Niveaus. Sobald ein Trade im Gewinn ist, kann er automatisch den Stop-Loss auf das Breakeven-Niveau verschieben, um deine Gewinne zu sichern. Die gewünschten Breakeven-Distanzen können an deine Präferenzen angepasst werden. Trailing Stop: Der EA kann die Stop-Loss-Niveaus anpassen, während sich der Trade in deine Richtung bewegt, wodurch du Gewinne während starker Trends absichern kannst. Start- und Endzeiten: Du kannst die Stunden festlegen, in denen der EA aktiv traden soll. Diese Funktion ermöglicht es dir, deine Handelsaktivitäten auf bestimmte Marktsitzungen zu konzentrieren. Wichtig! Überprüfe und optimiere die Eingabeparameter sorgfältig, um den EA mit deiner Handelsstrategie in Einklang zu bringen. Teste den EA auf einem Demokonto, bevor du ihn in einer Live-Handelsumgebung verwendest. Beobachte die Leistung des EAs und passe die Parameter nach Bedarf an, um auf sich ändernde Marktbedingungen zu reagieren. # Trading birgt Risiken, und dieser EA ist keine Garantie für Gewinne. Nutze ihn verantwortungsbewusst und sei dir der Risiken des automatisierten Tradings bewusst.

2023.09.10
Neues Konzept: Trailing Take Profit für den MetaTrader 5
MetaTrader5
Neues Konzept: Trailing Take Profit für den MetaTrader 5

In der Welt des Tradings gibt es viele Strategien, die darauf abzielen, Verluste zu minimieren und Gewinne zu maximieren. Eine interessante Neuerung in diesem Bereich ist das Konzept des Trailing Take Profit. Im Gegensatz zum Trailing Stop, der den Stop-Loss nach dem Preis anpasst, sobald dieser steigt, verfolgt der Trailing Take Profit den Preis, wenn eine Position im Minus ist. Letztendlich wird die Position mit einem Verlust geschlossen. Stellt euch vor, eine Position ist im Minus und der aktuelle Preis erreicht den TrailingTPStart (zum Beispiel 500 Punkte). Wenn der Preis 500 Punkte von dem Eröffnungspreis entfernt ist und die Position bei -500 Punkten steht, beginnt der Take Profit, dem Preis zu folgen. Dabei ist der TrailingTPDistance die maximale Entfernung zwischen dem Trailing Take Profit und dem aktuellen Preis. Ob dieses Konzept für euch hilfreich ist, kann ich nicht sagen, aber es kann in einigen Expert Advisors (EAs) ohne Stop-Loss eingesetzt werden, um die Verluste in bestimmten Punkten zu verringern. So setzt ihr den Trailing Take Profit EA ein: Startet den TrailingTakeProfit EA. Wenn TrailingTP_Mode auf true gesetzt ist, wird der EA aktiv. Gebt den Symbolnamen wie GBPUSD im EA ein. Legt den TrailingTPStart fest. Das sind die Punkte vom aktuellen Preis, ab dem der Take Profit startet und dem Preis folgt, wenn die Position im Minus ist. Definiert den TrailingTPDistance. Das ist die maximale Distanz in Punkten zwischen dem Take Profit und dem aktuellen Preis.

2023.07.11
AK-47 Scalper EA: Dein Trading-Assistent für MetaTrader 5
MetaTrader5
AK-47 Scalper EA: Dein Trading-Assistent für MetaTrader 5

Willkommen zu unserem heutigen Artikel über den AK-47 Scalper EA, ein leistungsstarker Expert Advisor für den MetaTrader 5. In diesem Beitrag werden wir die Eingabeparameter, die Initialisierung und die Hauptfunktionen dieses Systems durchgehen. 1. Eingabeparameter #define ExtBotName "AK-47 EA" //Bot Name #define  Version "1.00" //Import inputal class #include <Trade\PositionInfo.mqh> #include <Trade\Trade.mqh> #include <Trade\SymbolInfo.mqh>   #include <Trade\AccountInfo.mqh> #include <Trade\OrderInfo.mqh> //--- Einführung vordefinierter Variablen für die Lesbarkeit des Codes #define Ask    SymbolInfoDouble(_Symbol, SYMBOL_ASK) #define Bid    SymbolInfoDouble(_Symbol, SYMBOL_BID) //--- Eingabeparameter input string  EASettings         = "---------------------------------------------"; //-------- <EA Einstellungen> -------- input int      InpMagicNumber    = 124656;   //Magic Number input string  MoneySettings      = "---------------------------------------------"; //-------- <Geld Einstellungen> -------- input bool     isVolume_Percent  = true;     //Teilvolumen erlauben input double   InpRisk           = 3;        //Risiko in Prozent des Kontos (%) input string  TradingSettings    = "---------------------------------------------"; //-------- <Trading Einstellungen> -------- input double   Inpuser_lot       = 0.01;     //Lots input double   InpSL_Pips        = 3.5      //Stoploss (in Pips) input double   InpTP_Pips        = 7        //TP (in Pips) (0 = kein TP) input int      InpMax_slippage   = 3        //Maximale Slippage erlauben (in Pips) input double   InpMax_spread     = 5        //Maximal erlaubter Spread (in Punkten) (0 = flottierend) input string   TimeSettings      = "---------------------------------------------"; //-------- <Handelszeiten Einstellungen> -------- input bool     InpTimeFilter     = true;     //Handelszeitfilter input int      InpStartHour      = 2;        //Start Stunde input int      InpStartMinute    = 30       //Start Minute input int      InpEndHour        = 21       //End Stunde input int      InpEndMinute      = 0        //End Minute 2. Initialisierung der lokalen Variablen //--- Variablen int      Pips2Points;    // slippage  3 pips    3=punkte    30=punkte double   Pips2Double;    // Stoploss 15 pips    0.015      0.0150 bool     isOrder = false; int      slippage; long     acSpread; string   strComment = ""; CPositionInfo  m_position;                   // Handelspositionsobjekt CTrade         m_trade;                      // Handelsobjekt CSymbolInfo    m_symbol;                     // Symbolinfo-Objekt CAccountInfo   m_account;                    // Kontoinfo-Hülle COrderInfo     m_order;                      // Objekt für ausstehende Aufträge 3. Hauptcode a/ Initialisierungsfunktion des Expert Advisors //+------------------------------------------------------------------+ //| Initialisierungsfunktion des Experten                                   | //+------------------------------------------------------------------+ int OnInit() {    //3 oder 5 Ziffern Erkennung    //Pip und Punkt    if(_Digits % 2 == 1) {       Pips2Double  = _Point*10;       Pips2Points  = 10;       slippage = 10* InpMax_slippage;    }    else {       Pips2Double  = _Point;       Pips2Points  =  1;       slippage = InpMax_slippage;    }         if(!m_symbol.Name(Symbol())) // setzt den Symbolnamen       return(INIT_FAILED);           RefreshRates(); //---    m_trade.SetExpertMagicNumber(InpMagicNumber);    m_trade.SetMarginMode();    m_trade.SetTypeFillingBySymbol(m_symbol.Name());    m_trade.SetDeviationInPoints(slippage); //---    return(INIT_SUCCEEDED); } b/ Tick-Funktion des Expert Advisors //+------------------------------------------------------------------+ //| Tick-Funktion des Expert Advisors                                             | //+------------------------------------------------------------------+ void OnTick() {    if(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED) == false) {       Comment("LazyBot\nHandel nicht erlaubt.");       return;    }         MqlDateTime structTime;    TimeCurrent(structTime);    structTime.sec = 0;       //Setze Startzeit    structTime.hour = InpStartHour;    structTime.min = InpStartMinute;          datetime timeStart = StructToTime(structTime);       //Setze Endzeit    structTime.hour = InpEndHour;    structTime.min = InpEndMinute;    datetime timeEnd = StructToTime(structTime);       acSpread = SymbolInfoInteger(_Symbol, SYMBOL_SPREAD);          strComment = "\n" + ExtBotName + " - v." + (string)Version;    strComment += "\nServerzeit = " + TimeToString(TimeCurrent(),TIME_DATE|TIME_SECONDS) + " - " + DayOfWeekDescription(structTime.day_of_week);    strComment += "\nHandelszeit = [" + (string)InpStartHour + "h" + (string)InpStartMinute + " --> " +  (string)InpEndHour + "h" + (string)InpEndMinute + "]";       strComment += "\nAktueller Spread = " + (string)acSpread + " Punkte";       Comment(strComment);       //Werte aktualisieren    UpdateOrders();       TrailingStop();           //Dieu kien giao dich theo phien My    if(InpTimeFilter) {       if(TimeCurrent() >= timeStart && TimeCurrent() < timeEnd) {          if(!isOrder) OpenOrder();       }    }    else {       if(!isOrder) OpenOrder();    }    } //---Ende der Funktion 3.1 Signalberechnung zur Auftragserteilung //+------------------------------------------------------------------+ //| SIGNAL BERECHNEN UND AUFTRAG SENDEN                                  | //+------------------------------------------------------------------+ void OpenOrder(){       ENUM_ORDER_TYPE OrdType = ORDER_TYPE_SELL;//-1;       double TP = 0;    double SL = 0;    string comment = ExtBotName;       //Berechne Lots    double lot1 = CalculateVolume();       if(OrdType == ORDER_TYPE_SELL) {       double OpenPrice = Bid - NormalizeDouble(InpSL_Pips/2 * Pips2Double, _Digits);              TP = OpenPrice - NormalizeDouble(InpTP_Pips * Pips2Double, _Digits);       SL = Ask + NormalizeDouble(InpSL_Pips/2 * Pips2Double, _Digits);                if(CheckSpreadAllow()                                             //Spread prüfen          && CheckVolumeValue(lot1)                                      //Volumen prüfen          && CheckOrderForFREEZE_LEVEL(ORDER_TYPE_SELL_STOP, OpenPrice)  //Distanz vom OpenPrice zum Bid prüfen          && CheckStopLoss(OpenPrice,  SL, TP)                           //Distanz von SL, TP zum OpenPrice prüfen          && CheckMoneyForTrade(m_symbol.Name(), lot1, ORDER_TYPE_SELL)) //Balance prüfen, wenn der Auftrag ausgeführt wird       {          if(!m_trade.SellStop(lot1, OpenPrice, m_symbol.Name(), SL, TP, ORDER_TIME_GTC, 0, comment))          Print(__FUNCTION__,"--> OrderSend Fehler ", m_trade.ResultComment());       }    }    else if(OrdType == ORDER_TYPE_BUY) {       double OpenPrice = Ask + NormalizeDouble(InpSL_Pips/2 * Pips2Double, _Digits);       SL = Bid - NormalizeDouble(InpSL_Pips/2 * Pips2Double, _Digits);              if(CheckSpreadAllow()                                             //Spread prüfen          && CheckVolumeValue(lot1)                                      //Volumen prüfen          && CheckOrderForFREEZE_LEVEL(ORDER_TYPE_BUY_STOP, OpenPrice)   //Distanz vom OpenPrice zum Bid prüfen          && CheckStopLoss(OpenPrice,  SL, TP)                           //Distanz von SL, TP zum OpenPrice prüfen          && CheckMoneyForTrade(m_symbol.Name(), lot1, ORDER_TYPE_BUY))  //Balance prüfen, wenn der Auftrag ausgeführt wird       {          if(!m_trade.BuyStop(lot1, OpenPrice, m_symbol.Name(), SL, TP, ORDER_TIME_GTC, 0, comment))// verwende "ORDER_TIME_GTC", wenn das Ablaufdatum = 0          Print(__FUNCTION__,"--> OrderSend Fehler ", m_trade.ResultComment());       }    }    } 3.2 Volumenberechnung //+------------------------------------------------------------------+ //| VOLUMEN BERECHNEN                                                 | //+------------------------------------------------------------------+ // Wir definieren die Funktion zur Berechnung der Positionsgröße und geben das Lot zurück, um zu bestellen. double CalculateVolume() {    double LotSize = 0;    if(isVolume_Percent == false) {       LotSize = Inpuser_lot;      }    else {       LotSize = (InpRisk) * m_account.FreeMargin();       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 > m_symbol.LotsMax()) LotSize = m_symbol.LotsMax();       if(LotSize < m_symbol.LotsMin()) LotSize = m_symbol.LotsMin();    }      //---    return(LotSize); }3.3 Der EA hat die Funktion "Trailing Stop", SL wird jedes Mal geändert, wenn der Preis sinkt //+------------------------------------------------------------------+ //| TRAILING STOP                                                    | //+------------------------------------------------------------------+ void TrailingStop() {    double SL_in_Pip = 0;    for(int i = PositionsTotal() - 1; i >= 0; i--) {       if(m_position.SelectByIndex(i)) {    // wählt die Aufträge nach Index für weiteren Zugriff auf seine Eigenschaften                  if((m_position.Magic() == InpMagicNumber) && (m_position.Symbol() == m_symbol.Name())) {             // Für Kaufauftrag             if(m_position.PositionType() == POSITION_TYPE_BUY) {                //--Berechne SL, wenn sich der Preis ändert                SL_in_Pip = NormalizeDouble(Bid - m_position.StopLoss(), _Digits) / Pips2Double;                if(SL_in_Pip > InpSL_Pips) {                   double newSL = NormalizeDouble(Bid - InpSL_Pips * Pips2Double, _Digits);                                      if(!m_trade.PositionModify(m_position.Ticket(), newSL, m_position.TakeProfit())) {                      Print(__FUNCTION__,"--> OrderModify Fehler ", m_trade.ResultComment());                    continue                 }        }             }             // Für Verkaufsauftrag             else if(m_position.PositionType() == POSITION_TYPE_SELL) {                //--Berechne SL, wenn sich der Preis ändert                SL_in_Pip = NormalizeDouble(m_position.StopLoss() - Bid, _Digits) / Pips2Double;                if(SL_in_Pip > InpSL_Pips){                   double newSL = NormalizeDouble(Bid + (InpSL_Pips) * Pips2Double, _Digits);                   if(!m_trade.PositionModify(m_position.Ticket(), newSL, m_position.TakeProfit())) {                      Print(__FUNCTION__,"--> OrderModify Fehler ", m_trade.ResultComment());                      //continue;                     }                }             }       }       }    }       //--- Ausstehende Aufträge ändern      for(int i=OrdersTotal()-1; i>=0; i--) {// gibt die Anzahl der aktuellen Aufträge zurück       if(m_order.SelectByIndex(i)) {      // wählt den ausstehenden Auftrag nach Index für weiteren Zugriff auf seine Eigenschaften          if(m_order.Symbol() == m_symbol.Name() && m_order.Magic()==InpMagicNumber) {             if(m_order.OrderType() == ORDER_TYPE_BUY_STOP) {                SL_in_Pip = NormalizeDouble(Bid - m_order.StopLoss(), _Digits) / Pips2Double;                                   if(SL_in_Pip < InpSL_Pips/2) {                   double newOP = NormalizeDouble(Bid + (InpSL_Pips/2) * Pips2Double, _Digits);                   double newTP =  NormalizeDouble(newOP + InpTP_Pips * Pips2Double, _Digits);                   double newSL = NormalizeDouble(Bid - (InpSL_Pips/2) * Pips2Double, _Digits);                                      if(!m_trade.OrderModify(m_order.Ticket(), newOP, newSL, newTP, ORDER_TIME_GTC,0)) {                      Print(__FUNCTION__,"--> Modify PendingOrder Fehler!", m_trade.ResultComment());                      continue                     }                }             }          else if(m_order.OrderType() == ORDER_TYPE_SELL_STOP) {                SL_in_Pip = NormalizeDouble(m_order.StopLoss() - Ask, _Digits) / Pips2Double;                           if(SL_in_Pip < InpSL_Pips/2){                   double newOP = NormalizeDouble(Ask - (InpSL_Pips/2) * Pips2Double, _Digits);                   double newTP =  NormalizeDouble(newOP - InpTP_Pips * Pips2Double, _Digits);                   double newSL = NormalizeDouble(Ask + (InpSL_Pips/2) * Pips2Double, _Digits);                                      if(!m_trade.OrderModify(m_order.Ticket(), newOP, newSL, newTP, ORDER_TIME_GTC,0)) {                      Print(__FUNCTION__,"--> Modify PendingOrder Fehler!", m_trade.ResultComment());                      //continue;                     }                }             }          }          }       }     } Wir hoffen, dass dir dieser Einblick in den AK-47 Scalper EA und dessen Funktionen geholfen hat, mehr über diesen Expert Advisor zu lernen. Wenn du Fragen hast oder mehr über andere Trading-Tools erfahren möchtest, lass es uns in den Kommentaren wissen!

2023.06.12
Positionen effektiv schließen: Der MetaTrader 5 im Fokus
MetaTrader5
Positionen effektiv schließen: Der MetaTrader 5 im Fokus

Hallo liebe Trader! Heute sprechen wir über ein wichtiges Thema, das oft übersehen wird: das Schließen von Positionen im MetaTrader 5. Wenn ihr eure Trades effektiv managen wollt, dann ist es entscheidend zu wissen, wie und wann man Positionen schließt. Lasst uns gemeinsam einen Blick auf die Funktionen werfen, die der MetaTrader 5 bietet, um dies zu erleichtern.Warum ist das Schließen von Positionen so wichtig?Das Schließen von Positionen ist ein entscheidender Schritt im Trading-Prozess, der oft den Unterschied zwischen Gewinn und Verlust ausmacht. Hier sind einige Punkte, die ihr beachten solltet:Risikomanagement: Wenn der Markt sich gegen euch bewegt, ist es wichtig, rechtzeitig zu handeln.Gewinne realisieren: Schließt eure Positionen, wenn ihr eure Gewinnziele erreicht habt.Emotionen kontrollieren: Lasst nicht zu, dass Emotionen eure Entscheidungen beeinflussen.Wie schließt man Positionen im MetaTrader 5?Im MetaTrader 5 gibt es verschiedene Möglichkeiten, eure Positionen zu schließen. Hier sind die gängigsten Methoden:Manuelle Schließung: Ihr könnt eure Positionen direkt im Handelsfenster schließen, indem ihr auf den „Schließen“-Button klickt.Stop-Loss und Take-Profit: Setzt diese Aufträge, um eure Positionen automatisch zu schließen, wenn bestimmte Preisniveaus erreicht werden.Trailing Stop: Diese Funktion hilft euch, Gewinne zu sichern, während ihr weiterhin von potenziellen Marktbewegungen profitiert.Mit diesen Funktionen im MetaTrader 5 seid ihr bestens gerüstet, eure Positionen effektiv zu schließen. Denkt daran: Ein gutes Risikomanagement ist der Schlüssel zum Erfolg im Trading!

2023.05.27
Martingale Levels für effizientes Money Management im MetaTrader 5
MetaTrader5
Martingale Levels für effizientes Money Management im MetaTrader 5

Dieser EA ist ein Algorithmus für das Money Management, der beim Öffnen und Schließen von Positionen die Martingale-Strategie mit einem "Multiplikator" verwendet. Hier sind einige wichtige Schritte zur optimalen Nutzung des "MartingaleEA-5Levels": Führe den EA aus, bevor du Positionen eröffnest, um die besten Ergebnisse zu erzielen. Setze den "MartingaleEA-5Levels" auf ein beliebiges Chart. Aktiviere den "Martingale-Modus". Gib die Symbolnamen ein, z.B. EURUSD oder GBPUSD. Wähle einen Martingale-Multiplikator und gib ihn im Feld "Martingale Volumen Multiplikator" ein. Dieser Wert multipliziert das Volumen der vorherigen Position. Wenn du beispielsweise 2 eingibst und das Volumen der ersten Position 1 Lot beträgt, wird die nächste Position mit 2 Lots und die dritte mit 4 Lots eröffnet. Dieser EA kann maximal 5 Martingale-Positionen eröffnen. Gib eine Zahl zwischen 1 und 5 im Feld "Anzahl der Martingale-Trades" ein. Im Feld für die Abstände (Abstand 1 bis Abstand 5) solltest du Pips oder Punkte zwischen den zu öffnenden Positionen angeben. Im Feld "Alle Positionen schließen, wenn der Gesamt-Take Profit" erreicht ist, gib einen Betrag wie 100 ein. Wenn alle Martingale-Positionen $100 erreichen, werden alle offenen Positionen geschlossen. Im Feld "Alle Positionen schließen, wenn der Gesamt-Stop Loss" erreicht ist, gib einen Betrag wie -500 ein. Wenn alle Martingale-Positionen -$500 erreichen, werden alle offenen Positionen geschlossen.

2023.05.24
Dynamisches Trailing Stop Loss und Gewinnziel-Management für MetaTrader 5
MetaTrader5
Dynamisches Trailing Stop Loss und Gewinnziel-Management für MetaTrader 5

In der Welt des Tradings ist ein effektives Risikomanagement entscheidend. Dieser Code ist eine Strategie für einen Expert Advisor (EA) in MetaTrader 5, die bestehende Trades basierend auf festgelegten Eingabeparametern verwaltet. Der Fokus liegt darauf, Positionen zu schließen, sobald ein Gewinn- oder Verlustschwellenwert erreicht wird. Zudem wird ein Trailing Stop Loss verwendet, um Gewinne zu sichern, während sich der Trade in die gewünschte Richtung bewegt. Hier ist eine kurze Erklärung des Codes: Notwendige Header-Dateien für Handels- und Symbolinformationen werden eingebunden. Eingabeparameter für Risikoanteil, Gewinnanteil und Trailing Stop Punkte werden definiert. Globale Variablen für Handels- und Symbolinformationsobjekte werden deklariert. Die OnInit-Funktion initialisiert das Symbolinformationen-Objekt und prüft auf Fehler. Die OnDeinit-Funktion führt in diesem Fall keine Aktionen durch. Die OnTick-Funktion wird bei jedem neuen Tick aufgerufen und ruft die Funktion CheckTrades auf. Die CheckTrades-Funktion durchläuft alle offenen Positionen und prüft, ob die Position zum aktuellen Symbol gehört. Wenn ja, wird der aktuelle Gewinn berechnet und es wird festgestellt, ob die Gewinn- oder Verlustschwellenwerte erreicht wurden. Bei Erreichen eines Schwellenwertes wird die Position geschlossen. Wenn keiner der Schwellenwerte erreicht wird, überprüft der Code, ob es sich um eine Kauf- oder Verkaufsorder handelt und aktualisiert das Stop Loss-Level mit einem Trailing Stop Loss. Ist das neue Stop Loss-Level vorteilhafter als das aktuelle, wird die Position mit dem neuen Stop Loss-Level modifiziert. Dieser Code bietet eine einfache Risikomanagementstrategie, um bestehende Trades zu verwalten, indem das Stop Loss-Level dynamisch basierend auf einem Trailing Stop Loss angepasst wird und Positionen geschlossen werden, wenn die Gewinn- oder Verlustschwellenwerte erreicht werden.

2023.04.28
Multible Kauf- und Verkaufsaufträge im MetaTrader 5 mit einem Expert Advisor
MetaTrader5
Multible Kauf- und Verkaufsaufträge im MetaTrader 5 mit einem Expert Advisor

Wenn du auf der Suche nach einem praktischen Tool bist, um mehrere Kauf- und Verkaufsaufträge im MetaTrader 5 (MT5) zu eröffnen, dann ist dieser Expert Advisor (EA) genau das Richtige für dich. Mit diesem EA kannst du deine Handelsstrategien optimal umsetzen, indem du die Anzahl der Kauf- und Verkaufsaufträge sowie andere Risikoparameter ganz nach deinem Gusto anpasst. Der EA bietet dir verschiedene Eingabevariablen, die es dir ermöglichen, die Anzahl der Kauf- und Verkaufsaufträge, den Risikoprozentsatz pro Trade, Stop-Loss, Take-Profit und Slippage festzulegen. Die benutzerfreundliche Oberfläche mit klaren Kauf- und Verkaufs-Buttons macht die Bedienung zum Kinderspiel. Ein besonderes Feature dieses EAs ist die automatische Berechnung der passenden Lotgröße, basierend auf deinem festgelegten Risikoprozentsatz und dem Stop-Loss. Vor dem Platzieren der Aufträge überprüft der EA zudem die Spanne im Vergleich zur konfigurierten Slippage. Das bedeutet, dass Kaufaufträge eröffnet werden, wenn der Durchschnittspreis über dem aktuellen Ask-Preis liegt, und Verkaufsaufträge, wenn der Durchschnittspreis unter dem aktuellen Bid-Preis liegt. Wenn du auf den Kauf- oder Verkaufs-Button klickst, öffnet der EA die gewünschte Anzahl an Kauf- oder Verkaufsaufträgen mit der berechneten Lotgröße, dem Stop-Loss und dem Take-Profit. Beachte jedoch, dass dieser EA ein einfaches Beispiel ist und möglicherweise nicht für den Live-Handel geeignet ist, ohne zusätzliche Anpassungen und Optimierungen. Es ist unerlässlich, jeden Handelsalgorithmus in einem sicheren Umfeld, wie einem Demokonto, zu testen, bevor du echtes Geld investierst.

2023.04.27
CheckTrades: Ihr Risiko-Management-Tool für MetaTrader 5
MetaTrader5
CheckTrades: Ihr Risiko-Management-Tool für MetaTrader 5

Willkommen zu unserem neuesten Beitrag über CheckTrades, einem nützlichen Expert Advisor (EA) für MetaTrader 5, der speziell für das Risikomanagement Ihrer offenen Positionen entwickelt wurde. Der bereitgestellte Code ist ein MQL5-Skript, das darauf abzielt, offene Positionen zu schließen, sobald ein benutzerdefinierter Gewinn- oder Verlustschwellenwert erreicht wird. Dieser wird als Prozentsatz Ihres Kontostands berechnet. Wichtig zu beachten ist, dass dieser EA keine Einstiegssignale oder Marktzeitregeln bietet; sein Hauptzweck liegt darin, das Risiko bestehender Positionen zu verwalten, indem er diese schließt, sobald ein festgelegter Gewinn- oder Verlustschwellenwert erreicht wird. Externe Variablen im Code RiskPercentage: Diese Variable steht für den maximal zulässigen Verlust pro Trade, ausgedrückt als Prozentsatz des Kontostands. Wenn der aktuelle Verlust einer offenen Position diesen Prozentsatz erreicht, wird die Position geschlossen, um das Risiko zu begrenzen. ProfitPercentage: Diese Variable repräsentiert den gewünschten Gewinn pro Trade als Prozentsatz des Kontostands. Sobald der aktuelle Gewinn einer offenen Position diesen Prozentsatz erreicht, wird die Position geschlossen, um den Gewinn zu sichern. Da dieser EA sich auf das Risikomanagement konzentriert und nicht auf spezifische Marktindikatoren angewiesen ist, kann er auf jedes Symbol oder Zeitrahmen angewendet werden. Es ist jedoch essenziell zu betonen, dass dieser EA idealerweise mit einer Handelsstrategie kombiniert werden sollte, die Einstiegssignale und weitere Handelsmanagementregeln umfasst, um ein vollständiges Handelssystem zu bilden. Wenn Sie diesen Code als Include-Datei verwenden (indem Sie ihn in den MQL5\Include-Ordner legen), dient er hauptsächlich dem Risikomanagement, indem er Positionen basierend auf benutzerdefinierten Gewinn- und Verlustschwellen schließt. Sie können diese Include-Datei mit anderen Include-Dateien kombinieren, die spezifische Zwecke erfüllen, wie z.B. die Berechnung der Positionsgröße basierend auf dem Kontorisiko, Trailing Stop-Loss und mehr. Dazu verwenden Sie die #include-Direktive in Ihrer Haupt-EA-Datei, um diese Datei einzufügen, und rufen dann die CheckTrades()-Funktion auf, wenn Sie die offenen Positionen verwalten möchten.

2023.04.25
Erste Vorherige 4 5 6 7 8 9 10 11 12 13 14 Nächste Letzte