1. Enum-Typen (enumJnsSignal, enumOrderType)
enumJnsSignal: Dieser Enum definiert den Signaltyp, der im EA verwendet wird. Es gibt zwei Signaloptionen:
eTypeCrossMA: Verwendet das Signal des Cross 2 MA (das Kreuzen von zwei gleitenden Durchschnitten).eTypeTrend: Folgt dem Trend mithilfe von gleitenden Durchschnitten und dem Stochastic-Indikator.
2. Eingabeparameter
- inMagicNumber: Eine eindeutige Magic-Nummer, um die Aufträge dieses EAs zu unterscheiden.
- inLotSize: Die anfängliche Lotgröße für jeden Auftrag.
- inMultiply: Der Multiplikator für die Lotgrößenstrategie.
- inJarakLayer: Die Pip-Distanz zwischen Handelspositionen in der Gitter-/Layer-Strategie.
- inMAPeriodFast & inMAPeriodSlow: Die Zeiträume für den schnellen und langsamen gleitenden Durchschnitt.
- inSTOKPeriod, inSTODPeriod, inSTOSlowing: Parameter für den Stochastic-Oszillator.
- inTakeProfit & inStopLoss: Die Einstellungen für Take Profit und Stop Loss.
3. Struct dataTrades
Diese Struktur wird verwendet, um Daten zu offenen Handelspositionen zu speichern, wie die Gesamtzahl der Positionen (ttlPos), den durchschnittlichen Preis der Positionen (hargaTA, hargaTB) und das gesamte Volumen (ttlLot).
4. OnInit() Funktion
Diese Funktion kümmert sich um die Initialisierung des EAs, einschließlich der Validierung der Eingabeparameter (z.B. Sicherstellen, dass der schnelle MA-Zeitraum kleiner ist als der langsame MA-Zeitraum) und dem Erstellen von Handles für die MA- und Stochastic-Indikatoren.
5. OnTick() Funktion
Die Hauptfunktion, die jedes Mal ausgeführt wird, wenn sich der Preis bewegt (Tick).
- Sie ruft die Funktion zur Überprüfung auf ein neues Signal mit GetSignal() auf, und wenn ein Signal gefunden wird, wird manageTrading() verwendet, um Trades auszuführen.
- Sie ruft auch setTPSL() auf, um sicherzustellen, dass Take Profit und Stop Loss immer aktualisiert werden.
6. isNewCandle() Funktion
Diese Funktion erkennt, ob eine neue Kerze entstanden ist. Dies ist wichtig, da der EA nur bei neuen Kerzenformationen nach Signalen sucht.
7. GetSignal() Funktion
Diese Funktion bestimmt, ob ein gültiges Handelssignal basierend auf der ausgewählten Strategie existiert:
- Für eTypeCrossMA wird das Signal durch das Kreuzen der schnellen und langsamen gleitenden Durchschnitte bestimmt.
- Für eTypeTrend wird das Signal durch Bestätigung von MA und Stochastic unterstützt.
8. manageTrading() Funktion
Diese Funktion verwaltet die Ausführung von Trades.
- Wenn ein gültiges Signal erkannt wird, öffnet der EA eine Position mit der Lotgröße, die durch die Funktion getLotSize() bestimmt wird.
- Eine Gitter-/Layer-Strategie wird ebenfalls angewendet, um zusätzliche Positionen basierend auf der Preisdistanz (
inJarakLayer) zu eröffnen.
9. updateDataTrades() Funktion
Diese Funktion aktualisiert die Daten zu laufenden Handelspositionen, wie das Berechnen des durchschnittlichen Preises und des gesamten Volumens offener Positionen.
10. openTrade() Funktion
Diese Funktion eröffnet eine neue Handelsposition basierend auf dem generierten Signal und der berechneten Lotgröße. Sie verwendet OrderSend(), um den Auftrag auszuführen.
11. setTPSL() Funktion
Diese Funktion setzt oder aktualisiert das Take Profit und Stop Loss für jede offene Position.
12. modifTPSL() Funktion
Diese Funktion ändert das Take Profit und Stop Loss bestehender Positionen, wenn die Werte von den zuvor festgelegten abweichen.
13. validateLot() Funktion
Diese Funktion stellt sicher, dass die verwendete Lotgröße innerhalb des zulässigen Minimums und Maximums liegt und mit dem minimalen Lot-Schritt (gLotStep) übereinstimmt.
14. getLotSize() Funktion
Diese Funktion berechnet die Lotgröße, die verwendet werden soll, basierend auf der anfänglichen Lotgröße und der Anzahl bereits geöffneter Positionen unter Berücksichtigung des Multiplikationsfaktors (inMultiply).
Dieser Code ist darauf ausgelegt, Markttrends zu erfassen und Handelspositionen automatisch zu verwalten, indem technische Signale von gleitenden Durchschnitten und Stochastic verwendet werden.
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