und werden Sie Mitglied unserer Fangruppe
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Bewerten Sie es im Terminal MetaTrader 5
- Ansichten:
- 21
- Rating:
- Veröffentlicht:
-
Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance
Dieser Expert Advisor ist ein Multi-Strategie-System, das in vier unabhängige Handelssubsysteme (Zyklus 1 bis Zyklus 4) unterteilt ist. Jeder Zyklus arbeitet mit einer eigenen Magic Number, eigenen Indikatoren, eigenen Einstiegstriggern und eigenen Money-Management-Parametern.
1. Logik von Zyklus 1: Konfluenz mehrerer Indikatoren
Zyklus 1 stützt sich auf einen zusammengesetzten Filter, der bis zu drei gleitende Durchschnitte (MA), einen Relative-Strength-Index (RSI) und den Williams’ Percent Range (WPR) kombiniert.
Einstiegstrigger
Eine Kernvariable „c1_signal“ fungiert als binäres Register, um sicherzustellen, dass sich die Indikatoren nicht widersprechen. Wenn Indikator A ein Kaufsignal gibt, wird „c1_signal“ auf 1 gesetzt. Gibt Indikator B anschließend ein Verkaufssignal, wird „c1_signal“ auf 0 zurückgesetzt, um den Handel ungültig zu machen.
-
Gleitender Durchschnitt 1, 2 und 3:
-
Kaufbedingung: Der vorherige Balken schließt oberhalb des gleitenden Durchschnitts, und der aktuelle Balken eröffnet oberhalb des gleitenden Durchschnitts ($Close[1] > MA$ und $Open[0] > MA$).
-
Verkaufsbedingung: Der vorherige Balken schließt unterhalb des gleitenden Durchschnitts, und der aktuelle Balken eröffnet unterhalb des gleitenden Durchschnitts ($Close[1] < MA$ und $Open[0] < MA$).
-
-
RSI-Filter:
-
Kaufbedingung: Der RSI fällt unter den Überverkauft-Schwellenwert (RSI_Buy_Level, z. B. 30).
-
Verkaufsbedingung: Der RSI steigt über den Überkauf-Schwellenwert (RSI_Sell_Level, z. B. 70).
-
-
WPR-Filter:
-
Kaufbedingung: Der WPR fällt unter den WPR_Buy_Level (z. B. -80).
-
Verkaufsbedingung: Der WPR steigt über den WPR_Sell_Level (z. B. -20).
-
Signalverarbeitung
-
Regel für umgekehrte Signale: Wenn Reverse_Signals = true ist, wird ein endgültiges Kaufsignal (1) in ein Verkaufssignal (2) umgewandelt und umgekehrt.
-
Beschränkung auf einen Trade pro Bar: Der EA prüft, ob der aktuelle Eröffnungskurs mit c1_open_price übereinstimmt. Ist dies der Fall, wurde auf dieser Bar bereits eine Position eröffnet, und weitere Ausführungen werden blockiert, bis eine neue Bar eröffnet wird.
2. Logik von Zyklus 2: Trendfolge mit Envelopes
Zyklus 2 nutzt einen klassischen Dual-Band-Envelopes-Indikator, um strukturelle Markt-Breakouts zu identifizieren.
-
Kauf-Trigger: Der vorherige Balken schließt oberhalb des oberen Envelopes-Bandes, und der aktuelle Balken eröffnet oberhalb davon ($Close[1] > UpperBand$ und $Open[0] > UpperBand$). Dies deutet auf einen starken bullischen Momentum-Ausbruch hin.
-
Verkaufstrigger: Der vorherige Balken schließt unterhalb des unteren Envelope-Bandes, und der aktuelle Balken eröffnet unterhalb davon ($Close[1] < LowerBand$ und $Open[0] < LowerBand$), was auf einen bärischen Durchbruch hindeutet.
-
Signalumkehr: Wenn Reverse_Signals2 = true ist, werden Ausbrüche in Fakeout-Fallen umgewandelt (der Durchbruch/Ausbruch wird abgeschwächt).
3. Logik von Zyklus 3: Mean-Reversion bei Envelopes
Zyklus 3 verfolgt identische Parameter wie Zyklus 2, kehrt jedoch die standardmäßige Ausführungslogik um, um eine Rückkehr zum Mittelwert anzustreben (Abschwächung von Extremen).
-
Kauf-Trigger: Der vorherige Balken schließt oberhalb des oberen Envelope-Bandes, und der aktuelle Balken eröffnet oberhalb davon. Logik: Der Code vergibt hier ein Verkaufssignal, da er davon ausgeht, dass der Vermögenswert überkauft ist und sich wieder innerhalb der Bänder zurückziehen wird.
-
Verkaufsauslöser: Der vorherige Balken schließt unterhalb des unteren Envelope-Bandes, und der aktuelle Balken eröffnet unterhalb davon. Logik: Der Code vergibt hier ein Kaufsignal und setzt auf eine sofortige Erholung aus dem überverkauften Bereich.
4. Logik von Zyklus 4: Ausbruch aus dem Punktabstand der Envelopes
Zyklus 4 führt eine strenge Volatilitäts-/Pip-Distanz-Beschränkung für den Envelopes-Indikator ein, die als aggressives Breakout-System fungiert.
-
Kauf-Trigger: Der Abstand zwischen dem unteren Envelope-Band und dem vorherigen Schlusskurs ist größer als „Distance“ in Punkten, UND der Abstand zwischen dem unteren Envelope-Band und dem aktuellen Geldkurs ist ebenfalls größer als „Distance“ ($LowerBand - Close[1] > Distance$ und $LowerBand - Bid > Distance$).
-
Verkaufstrigger: Sowohl der Abstand zwischen dem vorherigen Schlusskurs und dem oberen Band als auch der Abstand zwischen dem aktuellen Geldkurs und dem oberen Band überschreiten „Distance“ ($Close[1] - UpperBand > Distance$ und $Bid - UpperBand > Distance$).
5. Ausstieg, Korbschließung und Risikologik
Die Architektur des Ausstiegsmanagements verwendet keine standardmäßigen Stop-Loss- (SL) oder Take-Profit- (TP) Orders pro Position. Stattdessen stützt sie sich auf ein zyklusbezogenes globales Konto-Equity-Korb-Tracking-System.
Erfassung von Meilensteinen
Wenn die Positionsanzahl eines Zyklus von 0 auf 1 wechselt (verfolgt über c1_Buycount == 0 oder c1_Sellcount == 0), ermittelt der EA das genaue Ausgangskapital des Handelskontos zu diesem Zeitpunkt:
Anhand dieser Basiswert-Equity legt er statische globale Ziele für diese spezifische Handelsrichtung fest:
-
Take-Profit-Ziel: Wenn „target_amount“ angegeben ist, wird $\text{Baseline} + \text{target\_amount}$ zugewiesen . Andernfalls wird eine prozentuale Formel verwendet:
$$\text{Zielkurs} = \text{Baseline} + \left(\frac{\text{Baseline} \times \text{target\_percent}}{100}\right)$$ -
Stop-Loss-Ziel: Verwendet eine prozentuale Drawdown-Beschränkung relativ zum erfassten Momentaufnahme-Kapital:
$$\text{Risikopreis} = \text{Baseline} - \left(\frac{\text{Baseline} \times \text{Account\_Risk\_percent}}{100}\right)$$
Dynamische Basket-Überprüfung
Bei jedem Tick berechnet der EA die laufende Summe aus dem in Echtzeit ermittelten schwankenden Gewinn/Verlust, Swaps und Provisionen für alle aktiven Positionen, die der Magic Number und dem Handelstyp (MyAccountProfit_Buy oder MyAccountProfit_Sell) des jeweiligen Zyklus entsprechen.
Ausführung des Ausstiegs
Wenn $\text{Aktueller Portfoliowert} \ge \text{Zielkurs}$ (Gewinnziel erreicht) ODER $\text{Aktueller Portfoliowert} \le \text{Risikokurs}$ (Überschreitung der maximalen Risikogrenze):
-
ruft der EA die Funktion `ClosePositions()` auf.
-
Er durchläuft alle Marktpositionen rückwärts und filtert dabei nach übereinstimmender Magic Number und Positionstyp.
-
Jeder einzelne damit verbundene Trade wird sofort über eine Marktorder glattgestellt.
-
Der Richtungszyklus-Tracker wird auf 0 zurückgesetzt, wodurch der EA in die Lage versetzt wird, beim nächsten Signal des Strukturindikators eine völlig neue Benchmark-Momentaufnahme zu erstellen.
6. Logik zur Positionsgrößenbestimmung (Geldmanagement)
Die Volumenberechnungen werden dynamisch durch die Routine `getLots(int cycle)` durchgeführt:
-
Feste Lotgröße: Ist „AutoLots“ auf „false“ gesetzt, wird die fest programmierte Basis-Lotgröße zurückgegeben (z. B. „LotSize = 0,01“).
-
Dynamische Risikoskalierung: Ist „AutoLots“ auf „true“ gesetzt, passt das System das Handelsvolumen automatisch auf Basis der freien Margin an:
-
Es ermittelt mithilfe von „OrderCalcMargin“ die genaue Margin, die für die Abwicklung einer Standardtransaktion mit 1,0 Lot für den aktuellen Vermögenswert erforderlich ist.
-
Es ermittelt die tragbare Investitionskapazität anhand der folgenden Formel:
$$\text{Prognostiziertes Volumen} = \frac{\text{AccountFreeMargin} \times \left(\frac{\text{Lots\_Risk}}{100}\right)}{\text{Margin pro 1,0 Lot}}$$ -
Das Endergebnis wird mithilfe von `MathMin` und `MathMax` an die vom Broker vorgegebenen Beschränkungen angepasst, um sicherzustellen, dass es genau in den gültigen Bereich zwischen `SYMBOL_VOLUME_MIN` und `SYMBOL_VOLUME_MAX` fällt, sauber gerundet auf die nächste Schrittweite des Börsenwerts (`SYMBOL_VOLUME_STEP`).
-
Übersetzt aus dem Englischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/en/code/74818
KCI Volatility Distance
Der KCI Volatility Distance ist ein fortschrittlicher, adaptiver Algorithmus, der sorgfältig entwickelt wurde, um die Marktdynamik und die Trendrichtung mit höchster Präzision abzubilden. Mithilfe einer proprietären, matrixbasierten Berechnung filtert dieses Tool Marktstörungen dynamisch heraus und liefert eine streng quantitative Perspektive auf die Stärke der Trendrichtung. Aufgebaut auf einem hochoptimierten Kern aus objektorientierter Programmierung (OOP) ist es sowohl auf visuelle Klarheit beim Handel als auch auf die nahtlose Integration in Expert Advisors oder Machine-Learning-Module ausgelegt und gewährleistet eine extrem geringe CPU-Belastung bei der Analyse mehrerer Vermögenswerte.
Double Enevlopes (Historical Gauged)
Ein Tool und System zur Verwaltung von Babysitter-Aufträgen :D
MA + Envelope Breakouts
Ausbrüche auf Basis von Envelope-Kanälen oder -Bändern, mehrere EA-Logiken in einem EA
CKS Position Risk Dashboard
Ein schreibgeschütztes MT5-Dashboard für die risikobasierte Lot-Größenbestimmung, den Kontostatus, die Volumenlimits des Brokers und das aktuelle Engagement in einzelnen Wertpapieren.

