Schau, wie man Roboter kostenlos herunterladen kann
Finden Sie uns auf Facebook!
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:
21
Rating:
(1)
Veröffentlicht:
MQL5 Freelance Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance

GBPUSD1HRC4-Zyklus – wahr nicht optimierter Backtest


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:

$$\text{Ausgangskapital} = \text{AccountInfoDouble}(\text{ACCOUNT\_EQUITY})$$

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.

$$\text{Aktueller Portfoliowert} = \text{Basis-Eigenkapital} + \text{Unrealisierter Gewinn/Verlust}$$

Ausführung des Ausstiegs

Wenn $\text{Aktueller Portfoliowert} \ge \text{Zielkurs}$ (Gewinnziel erreicht) ODER $\text{Aktueller Portfoliowert} \le \text{Risikokurs}$ (Überschreitung der maximalen Risikogrenze):

  1. ruft der EA die Funktion `ClosePositions()` auf.

  2. Er durchläuft alle Marktpositionen rückwärts und filtert dabei nach übereinstimmender Magic Number und Positionstyp.

  3. Jeder einzelne damit verbundene Trade wird sofort über eine Marktorder glattgestellt.

  4. 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:

    1. 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.

    2. 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}}$$
    3. 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 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) Double Enevlopes (Historical Gauged)

Ein Tool und System zur Verwaltung von Babysitter-Aufträgen :D

MA + Envelope Breakouts MA + Envelope Breakouts

Ausbrüche auf Basis von Envelope-Kanälen oder -Bändern, mehrere EA-Logiken in einem EA

CKS Position Risk Dashboard 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.