Schau, wie man Roboter kostenlos herunterladen kann
Finden Sie uns auf Telegram!
und werden Sie Mitglied unserer Fangruppe
Interessantes Skript?
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Hat Ihnen das Skript gefallen?
Bewerten Sie es im Terminal MetaTrader 5
Ansichten:
141
Rating:
(9)
Veröffentlicht:
MQL5 Freelance Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance

Parameter des Expert Advisors (Eingaben)

Der EA bietet mehrere externe Parameter, die der Benutzer ändern kann, um sein Verhalten zu steuern:

Allgemeine Parameter

Parameter Typ Beschreibung
MagischeZahl int Ein eindeutiger Bezeichner für die Geschäfte des EA.
Anfangsbestand doppelt Die anfängliche Losgröße für den ersten Handel in einer Serie.
AllowBuy bool Flagge, die es dem EA erlaubt, Buy-Trades zu eröffnen (Initial und Martingale).
AllowSell bool Flagge, die es dem EA erlaubt, Sell-Trades zu eröffnen (initial und Martingale).
Gewinnmitnahme int Ein fester Take Profit in Punkten/Pips, der bei der Platzierung von Pending Orders verwendet wird (jedoch nicht bei der Marktausführung).
FindHighLowBackBars int Die Anzahl der vorhergehenden Bars, die für die Ermittlung des höchsten Hochs und des niedrigsten Tiefs für die anfängliche Platzierung von Pending Orders herangezogen werden.
ZurücksetzenNachBars int Die Anzahl der Bars, nach denen die anfänglichen schwebenden Orders gelöscht und neu bewertet werden (wenn keine Position geöffnet ist).

Martingale-Strategie

Parameter Typ Beschreibung
UmgekehrtesMartingale bool Wenn true , werden die nachfolgenden Martingale-Trades in die entgegengesetzte Richtung des letzten Trades in der Serie erfolgen (dies wäre normalerweise ein Anti-Martingale- oder Hedging-Ansatz, aber der Code öffnet in dieselbe Richtung, wenn false ). Die aktuelle Logik schlägt vor, in die gleiche Richtung zu öffnen, wenn ReverseMartingale falsch ist.
LotMultiplikator doppelt Der Faktor, mit dem die Losgröße für den nächsten Handel in der verlustbringenden Serie multipliziert wird (z. B. bedeutet 2 .0 eine Verdoppelung des Loses).
SecureProfitMartingaleZiel doppelt Der gleitende Gesamtgewinn (in Kontowährung), bei dem die gesamte Serie offener Trades geschlossen wird.
AbstandMartingalePips int Der Abstand (in Pips), um den sich der Kurs gegenüber dem Eröffnungskurs des letzten Handels bewegen muss, bevor ein neuer Martingale-Handel eröffnet wird.
MaxTradesInSeries int Die maximale Anzahl von Geschäften, die in einer einzelnen Martingale-Serie erlaubt sind.

Zeit Strategie

Parameter Typ Beschreibung
ErlaubeMontag... AllowFriday bool Flags zum Aktivieren oder Deaktivieren des Handels an bestimmten Wochentagen.
VerboteneDaten Zeichenfolge Eine durch Kommata getrennte Liste von Daten (Format JJJJ.MM.TT), an denen der Handel verboten ist.

Übersicht der Kernfunktionen

OnInit() (Initialisierung)

Setzt die MagicNumber des EA, den Margin-Modus und die Abweichung. Setzt die Martingale-Statusvariablen ( s_currentLot , s_totalTradesInSeries , etc.) auf ihre Anfangswerte zurück und bereitet so einen Neustart vor.

OnDeinit() (Deinitialisierung)

Eine einfache Funktion zum Aufräumen, die eine Nachricht ausgibt, wenn der EA gestoppt oder entfernt wird.

IsTradingDateAllowed() und IsTradingDayAllowed() (Handelsfilter)

Diese Funktionen überprüfen den aktuellen Tag und das Datum anhand der benutzerdefinierten Eingaben ( AllowMonday bis AllowFriday und ForbiddenDates ), um festzustellen, ob der Handel erlaubt ist.

OpenTradeLogic(ENUM_ORDER_TYPE type, string tradeComment) (Marktausführung)

Diese Funktion behandelt die Eröffnung neuer Marktpositionen (Kauf oder Verkauf).

  1. Sie validiert und normalisiert die Losgröße anhand der Mindest-, Höchst- und Schrittgröße des Brokers.

  2. Sie prüft mit CheckMargin(), ob eine ausreichende freie Marge vorhanden ist.

  3. Es führt den Handel ohne festen Take Profit oder Stop Loss aus (tp_calculated ist 0).

  4. Es aktualisiert die globalen Martingale-Statusvariablen: s_currentLot , s_lastOpenPrice , s_seriesType und s_totalTradesInSeries .

CloseAllPositions()

Iteriert durch alle derzeit offenen Positionen und schließt alle, die von diesem EA geöffnet wurden (entsprechend der MagicNumber ).

PendingOrders(ENUM_ORDER_TYPE type, double price, double lotSize, string comment) (Pending Order Placement)

Diese Funktion platziert Buy Limit oder Sell Limit Orders:

  1. Sie validiert die Losgröße und prüft, ob die Marge ausreicht.

  2. Sie prüft den Eingabepreis gegen den Mindestabstand des Brokers ( SYMBOL_TRADE_STOPS_LEVEL ).

  3. Er berechnet einen festen Take Profit ( tp ) auf der Grundlage der TakeProfit-Eingabe.

  4. Es sendet die Handelsanfrage. Hinweis: Die Funktion UpdateHighLowAndOrders ruft diese Funktion auf, um erste Buy-Limit- und Sell-Limit-Orders zu platzieren.

UpdateHighLowAndOrders() (Einstiegslogik)

Dies ist der anfängliche Einstiegsmechanismus, wenn keine Positionen offen sind:

  1. Es wird auf FindHighLowBackBars zurückgegriffen, um das höchste Hoch und das niedrigste Tief zu finden.

  2. Er berechnet priceSellLimit (Höchstes Hoch + 1 Tick) und priceBuyLimit (Tiefstes Tief - 1 Tick).

  3. Er prüft, ob Buy Limit- und Sell Limit-Orders mit der MagicNumber des EA bereits existieren.

  4. Er platziert eine anfängliche Sell Limit-Order knapp über dem jüngsten Höchststand und eine Buy Limit-Order knapp unter dem jüngsten Tiefststand, jeweils unter Verwendung der InitialLot.

OnTick() (Hauptlogik)

Der Kern der Ausführungslogik des EA:

  1. Zeitprüfung: Verhindert redundante Berechnungen auf demselben Tick.

  2. Filter-Prüfung: Wenn der Handel nach Tag/Datum nicht erlaubt ist, werden alle schwebenden Aufträge gelöscht.

  3. Gewinnziel-Prüfung (Serien-Exit): Wenn eaHasOpenPositions wahr ist UND totalFloatingProfit ist SecureProfitMartingaleTarget , ruft es CloseAllPositions() auf und setzt alle Martingale-Statusvariablen zurück, um eine neue Serie zu starten.

  4. Anfängliche Order-Platzierung: Wenn !eaHasOpenPositions AND Trading erlaubt ist, wird der Martingale-Status zurückgesetzt und geprüft, ob sich ein neuer Balken gebildet hat.

    • Wenn sich ein neuer Balken gebildet hat, wird geprüft, ob barsCount ResetAfterBars ist. Ist dies der Fall, werden die ausstehenden Aufträge gelöscht und UpdateHighLowAndOrders() aufgerufen, um neue Anfangsaufträge zu erteilen. Wenn nicht, wird nur UpdateHighLowAndOrders() aufgerufen.

  5. Martingale Schritt Logik: Wenn eaHasOpenPositions wahr ist UND s_totalTradesInSeries $< MaxTradesInSeries` ist:

    • Es wird geprüft, ob totalFloatingProfit negativ ist UND der Preis sich gegenüber dem letzten offenen Handel um mindestens DistanceMartingalePips bewegt hat.

    • Wenn beide Bedingungen erfüllt sind, wird das nächste Lot berechnet, indem s_currentLot mit LotMultiplier multipliziert wird.

    • Es bestimmt die OrderToOpen-Richtung (entweder die gleiche Richtung wie die Serie oder die umgekehrte, basierend auf ReverseMartingale).

    • Es ruft OpenTradeLogic() auf, um die neue, multiplizierte Position zu öffnen und die Martingale-Serie fortzusetzen.


Zusammenfassung der Strategie

Der EA "Babi Ngepet" implementiert eine risikoreiche, aber potenziell lohnende Martingale-Strategie in Kombination mit einem Breakout/Range-Reversal-Anfangseinstieg:

  1. Ersteinstieg: Der EA platziert ein anfängliches Kauflimit (unter dem letzten Tief) und ein Verkaufslimit (über dem letzten Hoch). Dies deutet auf ein anfängliches Verhalten innerhalb einer Handelsspanne hin - er geht zum Kauf über, wenn der Kurs auf ein Tief fällt, und zum Verkauf, wenn der Kurs auf ein Hoch steigt.

  2. Handelsmanagement: Wenn einer der anfänglichen Trades ausgelöst wird und sich die Position in einen Gesamtverlust bewegt (negativer gleitender Gewinn) und sich der Kurs weiterhin um eine bestimmte Distanz gegen die offenen Positionen bewegt, eröffnet der EA eine neue Position in derselben Richtung mit einer größeren Losgröße (Martingale).

  3. Ausstiegsstrategie: Die Serie von Trades erhöht weiterhin die Losgröße, bis der gesamte schwebende Gewinn aller Trades in der Serie das SecureProfitMartingaleTarget erreicht, woraufhin alle Positionen geschlossen werden und der EA für eine neue Serie zurückgesetzt wird.

Warnung: Die Martingale-Strategie ist für hohe Drawdowns und ein hohes Kapitalverlustrisiko bekannt, da sich die Losgröße nach jedem Verlustschritt erhöht.


Übersetzt aus dem Englischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/en/code/64444

Trap News MT5 Trap News MT5

Skript für Trap News High Impact

KopierMaschineMT5 KopierMaschineMT5

KopierMaschine ist ein lokaler Kopierer von Trades zwischen verschiedenen MetaTrader 4 und MetaTrader 5 Konten in jede Richtung auf einem Computer mit einer intuitiven Schnittstelle.

Wahrscheinlichkeitstheorie Expert Advisor für Forex Wahrscheinlichkeitstheorie Expert Advisor für Forex

Berater für Wahrscheinlichkeitstheorie

Breakout Strategy with Prop Firm Helper Functions Breakout Strategy with Prop Firm Helper Functions

Dies ist ein Update der "Simple Yet Effective Breakout Strategy". In diesem Code habe ich einige Hilfsfunktionen für Prop-Firm-Herausforderungen hinzugefügt.