Astra Breakout EA
- Experten
- Version: 1.32
- Aktivierungen: 20
Dieser EA nutzt eine Zwei-Wege-Breakout-Strategie mit ausstehenden Orders (gleichzeitige Platzierung von Buy-Stop- und Sell-Stop-Orders), die bei jeder Bildung eines neuen Balkens bzw. einer neuen Kerze ausgeführt wird.
-
Auftragsplatzierung:
-
Wenn ein neuer Balken erscheint (IsNewBar()), misst der EA einen durch InpDistancePoints festgelegten Abstand oberhalb des aktuellen Ask-Kurses, um einen Buy-Stop zu platzieren.
-
Gleichzeitig platziert der EA eine Sell-Stop-Order in der Entfernung „InpDistancePoints“ unterhalb des aktuellen Bid-Kurses.
-
-
Verwaltung einzelner Trades (InpOneTradeOnly = true):
-
Wird eine der ausstehenden Orders ausgelöst und zu einer aktiven Position (z. B. wird ein Kauf ausgeführt), erkennt der EA die Position über die Funktion CountPositions().
-
Anschließend löscht er automatisch die verbleibende ausstehende Order (Verkaufs-Stop), um Hedging oder zwei gegensätzliche Positionen zu verhindern.
-
EA v1.32 verfügt über mehrere interne Validierungsprüfungen, bevor Orders an den Broker-Server gesendet werden:
-
Filter für tägliches Rollover / Marktschluss (IsTradeAllowed):
-
Verhindert Probleme mit der Meldung „[Markt geschlossen]“, die häufig während der täglichen Rollover-Zeiten (23:00–00:05) auftreten.
-
Überprüft den Status des Finanzinstruments über SYMBOL_TRADE_MODE_FULL. Ist der Markt deaktiviert oder befindet er sich in einem Rollover-Fenster, pausiert der EA die Ausführung, bis der Markt wieder geöffnet ist.
-
-
Automatische Erkennung des Ausführungsmodus (SetTradingFillingMode):
-
Passt den Ausführungsmodus für Orders (ORDER_FILLING_FOK, ORDER_FILLING_IOC oder ORDER_FILLING_RETURN) dynamisch an die spezifischen Anforderungen des Brokers an, um Ausführungsfehler (ungültiger Ausführungsmodus) zu vermeiden.
-
-
Überprüfung der Stop-Level des Brokers:
-
Stellt sicher, dass die Abstände zwischen Kauf- und Verkaufspreis den vom Broker geforderten Mindestabstand (Stops Level) einhalten.
-
-
Verfallsbeschränkung für ausstehende Orders:
-
Pending-Orders haben eine festgelegte Gültigkeitsdauer, die durch InpPendingExpireMin (in Minuten) definiert ist. Erreicht der Kurs die Pending-Orders nicht innerhalb dieses Zeitraums, storniert der Broker sie automatisch.
-
Die Funktion `ApplyTrailingStop()` wird bei jeder Kursbewegung (Tick) kontinuierlich ausgeführt:
-
Aktivierung des Trailing-Stops (InpTrailStart):
-
Der EA überwacht aktive Trades. Sobald sich ein Trade in gewinnbringender Richtung um mehr als InpTrailStart Punkte vom Eröffnungskurs entfernt, wird der Trailing-Stop aktiviert.
-
-
Gewinnsicherung mit Schrittweite (InpTrailStep):
-
Der Stop-Loss (SL) wird auf „Aktueller Kurs – InpTrailStep“ angepasst.
-
Die SL-Anpassung erfolgt nur, wenn der neue SL-Wert höher als der vorherige SL (bei Kaufpositionen) oder niedriger als der vorherige SL (bei Verkaufspositionen) ist.
-
Bei jedem eingehenden Kurstick führt der EA die folgenden Schritte aus:
-
Trailing-Stop aktualisieren: Überprüft und passt den Stop-Loss aktiver Positionen an, sofern die Bedingungen für den Trail-Start erfüllt sind.
-
Aktive Positionen prüfen: Wenn „InpOneTradeOnly“ auf „true“ gesetzt ist und bereits eine aktive Position besteht, löscht der EA alle verbleibenden ausstehenden Orders und bricht die weitere Verarbeitung in OnTick() ab.
-
Erkennen eines neuen Balkens: Wenn sich noch kein neuer Balken gebildet hat, überspringt der EA die Erstellung neuer Orders.
-
Neue Orders ausführen:
-
Überprüft den Marktstatus über „IsTradeAllowed()“.
-
Löscht alte ausstehende Orders aus dem vorherigen Bar mit „DeletePendings()“.
-
Berechnet die Lotgröße (NormalizeLot), die SL-/TP-Niveaus und platziert neue Buy-Stop- und Sell-Stop-Pending-Orders über PlaceOrders().
-
