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:
50
Rating:
(4)
Veröffentlicht:
Aktualisiert:
\MQL5\Files\
trend_detector.onnx (6444.66 KB)
MQL5 Freelance Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance

Backtest EURUSD 01/03/2025 - 20/01/2026 Zeitrahmen M5(ONNX AI Training speziell für M5-M15)

Backtest GBPUSD 01/03/2025 - 20/01/2026 Zeitrahmen M5 (ONNX AI Training speziell für M5-M15)


1. Allgemeiner Überblick

SidewaysMartingale ist ein Expert Advisor, der für den Handel mit seitwärts tendierenden Märkten entwickelt wurde. Dabei wird eine Martingale-Erholungsstrategie verwendet, die durch einen AI-basierten Trenddetektor ergänzt wird, der über ein ONNX-Modell implementiert wird.

Der EA kombiniert:

  • KI-Trendklassifizierung (Seitwärts / Bullish / Bearish)

  • Hüllkurven-Indikator für Range-basierte Einstiege

  • Kontrollierte Martingale-Positionsskalierung

  • Gewinnbasierte Korbschließung

  • Margin-basierter Notstopp

Der Kerngedanke ist:

Handeln Sie nur, wenn der Markt statistisch als Seitwärtsbewegung eingestuft wird, und vermeiden Sie das Hinzufügen von Martingale-Positionen, wenn ein starker Trend festgestellt wird.


2. AI-Trend-Detektor (ONNX-Integration)

ONNX-Modellausgabe

Das ONNX-Modell liefert:

  • Ein vorhergesagtes Label (nicht direkt verwendet)

  • Einen Wahrscheinlichkeitsvektor mit drei Wahrscheinlichkeiten:

Variable Bedeutung
prob_side Wahrscheinlichkeit, dass der Markt seitwärts läuft / schwankt
prob_bull Wahrscheinlichkeit, dass sich der Markt in einer Haussephase befindet (Aufwärtstrend)
prob_bear Wahrscheinlichkeit, dass der Markt bärisch ist (Abwärtstrend)

Diese Wahrscheinlichkeiten werden als extrahiert:

float prob_side = prob_data[0].values[0]; float prob_bull = prob_data[0].values[1]; float prob_bear = prob_data[0].values[2];


3. Merkmalstechnik (KI-Eingaben)

Der EA speist 9 konstruierte Merkmale in das ONNX-Modell ein:

Merkmal Index Beschreibung
f[0] EMA200 Steigung (Trendrichtung & Stärke)
f[1] Kursabstand vom EMA200
f[2] ATR-Wert (Volatilität)
f[3] Kerzenbereich normalisiert durch ATR
f[4] Ausbruchsdruck im Vergleich zum vorherigen Hoch
f[5] Dominanz des Kerzenkörpers
f[6] Tag der Woche
f[7] Stunde des Tages
f[8] Vorherige Kerzenrichtung


Mit diesen Merkmalen kann das AI-Modell Folgendes erkennen:

  • Marktvolatilität

  • Trendstärke

  • Zeitbasierte Verhaltensmuster

  • Preisstrukturverhalten


4. Logik zur Erkennung von Seitwärtsmärkten

Ein Markt gilt als Seitwärtsbewegung, wenn:

bool is_sideway = (prob_side >= InpAISidewayThreshold);

Beispiel:

  • Wenn InpAISidewayThreshold = 0,70

  • Dann sind mindestens 70 % Konfidenz erforderlich, um den Markt als Seitwärtsbewegung einzustufen

👉 Es werden keine neuen Trades eröffnet, wenn diese Bedingung nicht erfüllt ist


5. Einstiegslogik (Scalping in Range)

Der EA verwendet Hüllkurven, um Range-Extreme zu erkennen.

Einstieg kaufen

if(price_close <= lower[0] && is_sideway)

  • Der Preis berührt oder durchbricht die untere Hüllkurve

  • AI bestätigt einen Seitwärtsmarkt

  • Eröffnet eine BUY-Position

Sell Entry

else if(price_close >= upper[0] && is_sideway)

  • Der Kurs berührt oder durchbricht die obere Hüllkurve

  • AI bestätigt einen Seitwärtsmarkt

  • Eröffnet eine SELL-Position

💡 So wird sichergestellt, dass nur an den Extremen der Handelsspanne gehandelt wird, wenn kein Trend vorliegt.


6. Martingale-Erholungslogik

Wenn bereits Positionen bestehen, wendet der EA ein entfernungsbasiertes Martingal an:

  • Eine neue Position wird nur eröffnet, wenn sich der Preis um einen bestimmten Pip-Abstand entfernt.

  • Die Losgröße erhöht sich mit Hilfe eines Multiplikators ( LotMultiplier )

  • Die maximale Anzahl von Trades ist begrenzt ( MaxTradesInSeries )

Abstandsprüfung

if(dist >= reqDist)


7. AI Sicherheitsfilter für Martingale

Dies ist ein wichtiger Mechanismus zur Risikokontrolle.

Bevor eine neue Martingale-Position hinzugefügt wird, prüft der EA:

Wenn die aktuelle Serie KAUFEN ist

if(s_seriesType == POSITION_TYPE_BUY && prob_bear >= InpAISafetyThreshold) return;

Wenn die aktuelle Serie SELL ist

if(s_seriesType == POSITION_TYPE_SELL && prob_bull >= InpAISafetyThreshold) return;

🔒 Bedeutung:

  • Wenn AI einen starken gegenläufigen Trend feststellt

  • und das Vertrauen den InpAISafetyThreshold überschreitet

  • wird die Martingale-Expansion gestoppt

Dies verhindert:

  • Martingale bei starken Ausbrüchen

  • Tiefe Drawdowns durch Trendfortsetzung


8. Gewinnziel & Korbschließung

Der EA überwacht den gesamten schwebenden Gewinn über alle Positionen hinweg:

if(totalProfitUSD >= TakeProfitTargetUSD)

Sobald er erreicht ist:

  • Alle Positionen werden geschlossen

  • Martingale-Serie wird zurückgesetzt

  • EA wartet auf ein neues Seitwärtssetting

Bei diesem Ansatz werden alle Positionen als ein einziger Korbhandel behandelt.


9. Risiko-Management

Margin-basierter Notstopp

if(((bal - eq)/bal)*100.0 >= StopLossByMarginPercent)

Wenn der Equity Drawdown einen bestimmten Prozentsatz überschreitet:

  • Alle Positionen werden sofort geschlossen

  • Verhindert Margin-Call-Szenarien


10. Zusammenfassung der Strategie

Komponente Zweck
AI-Trend-Detektor Klassifiziert Marktregime
prob_side Erlaubt den Handel nur in Bandbreiten
prob_bull / prob_bear Blockiert Martingale während starker Trends
Hüllkurven Definiert die Extremwerte der Spanne
Martingal Erholung in seitwärts tendierenden Märkten
Korb TP Schneller Ausstieg nach Mean Reversion
Gewinnspanne SL Schutz auf Kontoebene

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

nAuftragsänderung nAuftragsänderung

Funktion zum Ändern von offenen Positionen und schwebenden Aufträgen

nGewinn- und Verlustpositionen nGewinn- und Verlustpositionen

Gewinn/Verlust-Rechner für Positionen (offene Aufträge)

VR Breakdown Level - Handelsstrategie auf Basis des Ausbruchs über das vorherige High oder unter das vorherige Low VR Breakdown Level - Handelsstrategie auf Basis des Ausbruchs über das vorherige High oder unter das vorherige Low

Einfache Handelsstrategie auf Basis des Ausbruchs über vorherige High- oder Low-Level

Accelerator Oszillator (AC) Accelerator Oszillator (AC)

Der Acceleration/Deceleration Indikator (AC) misst die Beschleunigung und Verlangsamung des aktuellen Marktimpulses, der Kraft der Kursbewegung.