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:
- 8
- Rating:
- Veröffentlicht:
-
Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance
Der „Hybrid Microstructure EA“ ist ein fortschrittlicher, auf Hochfrequenz-Scalping ausgerichteter Expert Advisor, der speziell für XAUUSD (Gold) im M1-Zeitrahmen entwickelt wurde. Im Gegensatz zu herkömmlichen Indikatoren, die auf verzögerten OHLC-Berechnungen basieren, arbeitet dieser EA mit der Mikrostrukturdynamik auf Tick-Ebene– er verfolgt die Tick-Geschwindigkeit, Abweichungen vom volumengewichteten Durchschnittspreis (VWAP) sowie von Institutionen ausgeführte Liquiditäts-Sweep-Ablehnungen (Stop-Hunts).
Backtest:
Um die Lücke zwischen deterministischen lokalen Regeln und adaptiver Intelligenz zu schließen, verfügt er über eine „AI Bridge Decision Layer“, die sowohl eine interne, gewichtete Bewertungs-Engine als auch eine externe, OpenAI-kompatible lokale KI-API (über Python/FastAPI) unterstützt und so vor der Orderausführung als abschließender, faktenbasierter Gatekeeper fungiert.
Hauptmerkmale:
- Tick-Mikrostruktur-Engine: Umgeht verzögerte Indikatoren durch die Berechnung von Echtzeit-Tick-Geschwindigkeitsfenstern und Ringpuffer-VWAP-Abweichungen.
- Liquidity Grab & Snapback Guard: Wartet darauf, dass Stop-Loss-Aufträge von Privatanlegern über extreme VWAP-Bänder hinausgeschoben werden, und löst Einstiegssignale erst bei bestätigter Kursrückführung oder -ablehnung aus.
- Dual-Engine-KI-Brücke: Integriert eine deterministische lokale Bewertungsmatrix und einen optionalen lokalen KI-Web-Endpunkt ( /analyze ) zur Validierung von Entscheidungen anhand mehrerer Faktoren.
- Multi-Session- und Volatilitätsfilter: Beschränkt die Ausführung auf aktive Handelssitzungen (Asien, London, Naher Osten) und umgeht dabei gefährliche Rollover-Zeiträume.
- Erweitertes Risiko- und Geldmanagement: Unterstützt die Positionsgrößenbestimmung nach festem Lot oder Risikoprozentsatz (% des Guthabens/Eigenkapitals) mit dynamischem ATR/festem Stop-Loss, Break-Even und Trailing-Stop-Schutz.
1. Codestruktur und Arbeitsablauf:
- OnTick(): Die Kernschleife, die Spread-Prüfungen, Echtzeit-Aktualisierungen des Tick-Puffers, VWAP-Berechnungen und Zustandsmaschinen zur Liquiditätserfassung ausführt.
- CalculateTickVWAP(): Berechnet den volumengewichteten Durchschnittspreis und die Standardabweichungsbänder dynamisch aus einem 500-Tick-Ringpuffer.
- AIBridge_Confirm(): Das Entscheidungsgateway, das als letzter Filter fungiert, indem es Trends über mehrere Zeitrahmen (H1, M15, M5), die M1-Struktur und Geschwindigkeitsmetriken auswertet.
- AIBridge_LocalScore(): Berechnet einen deterministischen gewichteten Score (0,0 bis 1,0) auf der Grundlage gemessener Marktdaten.
- AIBridge_WebCall(): Bündelt Live-Marktdaten in einer streng definierten JSON-Nutzlast und kommuniziert asynchron mit einem lokalen Python/FastAPI-Server.
- SecureProfits(): Verwaltet automatisierte Anpassungen von Break-Even und Trailing Stop sicher mithilfe von MT5-TRADE_ACTION_SLTP-Anfragen.
2. Ausführungsablauf:
- Tick-Erfassung und -Filterung: Überprüft eingehende Ticks anhand des maximal zulässigen Spreads, der aktiven Handelszeiten und der minimalen M1-ATR-Volatilität.
- Mikrostruktur-Tracking: Erstellt kontinuierlich einen Ringpuffer, um die Beschleunigung der Tick-Geschwindigkeit und die Ausdehnung der VWAP-Bänder (+/- StdDev) zu bewerten.
- Auslösung & KI-Validierung: Wenn ein Liquiditäts-Sweep die äußeren Bänder überschreitet und anschließend eine Snapback-Ablehnung erfolgt, wird der Kontext an die AI-Bridge-Ebene gesendet.
- Entscheidung und Ausführung: Wenn das lokale Scoring oder das externe KI-Modell den Handel genehmigt (ALLOW=YES mit hoher Konfidenz), berechnet ExecuteTrade() eine dynamische, risikobasierte Lotgröße und versendet die Order unter Verwendung optimaler Ausführungsmodi (IOC / FOK).
Dieser EA ist darauf ausgelegt, HTTP-POST-Anfragen mit einer JSON-Nutzlast im OpenAI-Stil (enthaltend `messages`, `role: system` und `role: user`) zu senden und erwartet eine JSON-Antwort, die `decision`, `confidence` und `reason` enthält.
Um eine lokale KI-API (lokaler Server) zu erstellen, die innerhalb von Millisekunden auf diese MT5-Anfragen reagieren kann, ist Python in Verbindung mit dem FastAPI-Framework die ideale Programmiersprache. FastAPI ist leichtgewichtig, blitzschnell und perfekt für die Verarbeitung hochfrequenter Daten aus MT5 geeignet.
Nachfolgend finden Sie den vollständigen Python-Servercode. Sie können später ein echtes Machine-Learning-Modell (wie TensorFlow, Scikit-Learn oder sogar Ollama für ein lokales LLM) in diese Engine integrieren.
1. Einrichtung der Python-Umgebung
Stellen Sie sicher, dass Python auf Ihrem Computer installiert ist. Öffnen Sie das Terminal oder die Eingabeaufforderung und installieren Sie diese beiden wichtigen Bibliotheken:
pip install fastapi uvicorn
2. Python-API-Code (local_ai_bridge.py)
Erstellen Sie auf Ihrem Computer eine Datei mit dem Namen „local_ai_bridge.py“ und kopieren Sie den folgenden Code hinein: (Python)
from fastapi import FastAPI, Request from pydantic import BaseModel from typing import List, Optional import json import uvicorn app = FastAPI(title="MT5 AI Microstructure Bridge") # --- DATENMODELLE (kompatibel mit dem MQL5-Datenformat) --- class Message(BaseModel): role: str content: str class AIRequest(BaseModel): model: str temperature: float response_format: Optional[dict] = None messages: List[Message] # --- HAUPT-ENDPUNKT (/analyze) --- @app.post("/analyze") async def analyze_market(payload: AIRequest): """ This endpoint receives tick and microstructure data from MT5, analyzes the data, and returns a BUY/SELL/WAIT decision. """ # 1. JSON-Daten aus der von MT5 gesendeten „user“-Nachricht extrahieren user_content = "{}" for msg in payload.messages: if msg.role == "user": user_content = msg.content break try: facts = json.loads(user_content) except json.JSONDecodeError: return {"decision": "WAIT", "confidence": 0.0, "reason": "Invalid JSON format"} # 2. Marktdaten ermitteln order_type = facts.get("order_type", "WAIT") high_velocity = facts.get("high_velocity", False) snapback_pips = facts.get("snapback_pips", 0.0) min_snapback = facts.get("min_snapback_pips", 2.0) deviation_z = facts.get("deviation_z", 0.0) mtf = facts.get("mtf", {}) m1_structure = facts.get("m1_structure", {}) # 3. KI / ENTSCHEIDUNGSALGORITHMUS (Kann später durch ein ML-Modell ersetzt werden) # Dies ist ein einfaches Beispiel für Entscheidungslogik confidence = 0.0 decision = "WAIT" reason = "" # Die Logik auswerten, wenn der EA eine VERKAUF-Bestätigung anfordert if order_type == "SELL": score = 0 # Snapback und Geschwindigkeit überprüfen if snapback_pips >= min_snapback and high_velocity: score += 0.4 # Extreme Abweichung überprüfen (Überkauf-Situation) if deviation_z > 2.0: score += 0.3 # MTF-Ausrichtung überprüfen (mindestens H1 oder M15 muss bärisch sein) if mtf.get("h1_down") or mtf.get("m15_down"): score += 0.2 # M1-Ablehnung überprüfen (langer oberer Docht) if m1_structure.get("upper_wick_ratio", 0.0) >= 0.2: score += 0.1 confidence = score if confidence >= 0.70: decision = "SELL" reason = "High velocity drop, MTF align, Z-Score high" else: reason = f"Score only {confidence:.2 f}, lacking momentum" # Die Logik auswerten, wenn der EA eine KAUF-Bestätigung anfordert elif order_type == "BUY": score = 0 # Snapback und Geschwindigkeit überprüfen if snapback_pips >= min_snapback and high_velocity: score += 0.4 # Extreme Abweichung überprüfen (deviation_z ist in MQL5 bereits richtungsbereinigt) if deviation_z > 2.0: score += 0.3 # MTF-Ausrichtung überprüfen (mindestens H1 oder M15 muss bullisch sein) if mtf.get("h1_up") or mtf.get("m15_up"): score += 0.2 # M1-Ablehnung bestätigen (langer unterer Docht) if m1_structure.get("lower_wick_ratio", 0.0) >= 0.2: score += 0.1 confidence = score if confidence >= 0.70: decision = "BUY" reason = "High velocity bounce, MTF align, Z-Score high" else: reason = f"Score only {confidence:.2 f}, lacking momentum" # 4. Die JSON-Antwort an MT5 zurücksenden return { "decision": decision, "confidence": round(confidence, 2), "reason": reason[:60] # Begrenze die Begründung bei MT5 auf maximal 60 Zeichen } if __name__ == "__main__": # Starte den lokalen Server auf Port 8787, entsprechend dem Parameter „InpAIEndpoint“ in MQL5 print("AI Bridge Server is running on http://127.0.0.1:8787") uvicorn.run(app, host="127.0.0.1", port=8787)
3. So starten Sie den Server und stellen eine Verbindung zu MT5 her
- Öffnen Sie das Terminal und wechseln Sie in den Ordner, in dem die Python-Datei gespeichert ist.
- Führen Sie den folgenden Befehl aus:
- Der Server wird gestartet und lauscht unter [http://127.0.0.1:8787](http://127.0.0.1:8787).
- Stellen Sie auf der MetaTrader 5-Plattform sicher, dass Sie die URL [http://127.0.0.1](http://127.0.0.1) zur Liste der zulässigen WebRequest-URLs hinzugefügt haben:
- Gehen Sie zu „Extras“ -> „Optionen“ -> „Expert Advisors“.
- Aktivieren Sie das Kontrollkästchen „WebRequest für aufgeführte URLs zulassen“.
- Fügen Sie die URL [http://127.0.0.1](http://127.0.0.1) zur Liste hinzu.
- Starten Sie Ihren EA. Der EA sendet nun Echtzeitdaten an die Python-API; Python analysiert diese anhand der Parameter innerhalb der Python-Funktion und sendet KAUF-/VERKAUF-/WARTEN-Befehle zurück an MT5.
Diese Python-Architektur ist hochgradig skalierbar. Wenn Sie in Zukunft diesen Kursverlauf in einer Datenbank speichern (als Trainingsdaten für maschinelles Lernen) oder mit einem Vorhersagemodell (wie XGBoost oder Random Forest) verknüpfen möchten, müssen Sie lediglich den im obigen Code mit Kommentar Nr. 3 gekennzeichneten Abschnitt – ARTIFICIAL INTELLIGENCE / DECISION ALGORITHM – im obigen Code anzupassen.
Bei erfolgreicher Ausführung wird der Print Expert wie folgt angezeigt:
Creating a Python file (.py) is actually very simple. Essentially, a Python file is just a standard text file (like a .txt file) with its extension changed to .py.
Bei Verwendung von MetaTrader 5 (das in der Regel unter Windows läuft) gibt es drei einfache Möglichkeiten, die Datei „local_ai_bridge.py“ zu erstellen:
Methode 1: Mit Notepad (am schnellsten und ohne Installation zusätzlicher Anwendungen)
Dies ist die schnellste Methode unter dem Windows-Betriebssystem:
- Öffnen Sie die in Windows integrierte Notepad-Anwendung.
- Kopieren Sie den gesamten FastAPI-Python-Code, den ich zuvor (oben) bereitgestellt habe. [2. Python-API-Code (local_ai_bridge.py)]
- Fügen Sie den Code in ein leeres Notepad-Dokument ein.
- Klicken Sie auf das Menü „Datei“ > „Speichern unter...“
- Wählen Sie den Ordner aus, in dem Sie diese Datei speichern möchten (erstellen Sie beispielsweise einen neuen Ordner namens „AI_MT5“ im Ordner „Dokumente“ oder auf dem Desktop).
- SEHR WICHTIG: Ändern Sie im Abschnitt „Dateityp“ die Einstellung von „Textdokumente (*.txt)“ in „Alle Dateien (*.*)“.
- Geben Sie im Feld „Dateiname“ genau Folgendes ein: local_ai_bridge.py
- Klicken Sie auf „Speichern“. Fertig!
Weitere Tipps nach dem Erstellen der Datei:
Um die Datei auszuführen, öffnen Sie die Eingabeaufforderung (CMD) in dem Ordner, in dem sich die Datei `local_ai_bridge.py` befindet, und geben Sie dann den folgenden Befehl ein:
python local_ai_bridge.py
Bei erfolgreicher Ausführung wird in Ihrem CMD-Fenster ein Text angezeigt, der darauf hinweist, dass der Uvicorn/FastAPI-Server läuft.
//-------------------------
Damit Python die Datei `local_ai_bridge.py` ausführen kann, muss sich das Terminal im selben Ordner wie diese Datei befinden. Hier sind die drei einfachsten Möglichkeiten, dies unter Windows zu erreichen (wähle die aus, die dir am besten gefällt):
Methode 1: Trick mit der „Adressleiste“ des Datei-Explorers (einfachste und schnellste Methode)
Dies ist ein beliebter Trick unter Programmierern, da er sehr praktisch ist:
- Öffne den Datei-Explorer (den Bildschirm, auf dem du normalerweise Dateien und Ordner anzeigst).
- Wechseln Sie zu dem Ordner, in dem Sie die Datei `local_ai_bridge.py` zuvor gespeichert haben.
- Klicke einmal mit der linken Maustaste auf die Adressleiste oben (das lange Feld, in dem der Speicherort des Ordners angezeigt wird, z. B. C:\Users\DeinName\Dokumente\AI_MT5).
- Der Adresstext wird blau markiert. Löschen Sie den Text und geben Sie dann Folgendes ein: cmd
- Drücken Sie die Eingabetaste auf der Tastatur.
- Es öffnet sich sofort ein schwarzer Bildschirm (Eingabeaufforderung), der sich genau in diesem Ordner befindet.
Ausführungsschritte (falls das Terminal bereits im richtigen Ordner geöffnet ist)
Sobald sich das schwarze oder blaue Fenster im richtigen Ordner öffnet, müssen Sie lediglich einen Befehl an Python senden, um den KI-Roboter zu starten.
- Geben Sie diesen Befehl ein:
-
python local_ai_bridge.py
- Drücken Sie die Eingabetaste.
Wenn die Installation der Bibliotheken (fastapi und uvicorn) erfolgreich war, erscheint der Text „AI Bridge Server läuft auf http://127.0.0.1:8787“ oder eine Meldung mit dem Hinweis „Uvicorn läuft auf...“
Wie folgt:
AI Bridge Server läuft auf http://127.0.0.1:8787
INFO: Serverprozess [4168] gestartet
INFO: Warten auf den Start der Anwendung.
INFO: Anwendungsstart abgeschlossen.
INFO: Uvicorn läuft auf http://127.0.0.1:8787 (Drücken Sie STRG+C, um das Programm zu beenden)
Der Text besagt Folgendes:
- Initialisierung erfolgreich: Der EA hat das Symbol XAUUSD mit einem Pip-Multiplikator von 10,0 erfolgreich erkannt (korrekte Erkennung eines 3-stelligen/5-stelligen Brokers).
- AI Bridge aktiv: Das Modul „AIBridge v1.1“ wurde erfolgreich im HYBRID-Modus geladen, hat eine Verbindung zum lokalen Endpunkt [http://127.0.0.1:8787/analyze](http://127.0.0.1:8787/analyze) verbunden und festgestellt, dass keine Schlüsselautorisierung erforderlich ist (anonym) – was für unseren lokalen Python-Server geeignet ist.
- Mehrere Zeitrahmen und „Locked“-Struktur: Die unterstützten Trendindikatoren (H1, M15, M5) und die „M1 Closed Candle“-Struktur stehen bereit, um den Markt zu überwachen.
Was bedeutet diese Anzeige?
Das bedeutet, dass der EA und unser lokaler Python-Server nun parallel laufen und bereit sind, miteinander zu interagieren. Der EA ist nicht mehr „blind“ – er verfügt über ein „lokales Gehirn“, das jedes Liquidity-Sweep- und Velocity-Signal im Gold-M1-Zeitrahmen filtert, bevor er entscheidet, ob eine Order ausgeführt oder zurückgestellt wird (WAIT).
Beobachten Sie anschließend einfach die Chartbewegungen oder führen Sie Forward-Tests auf einem Demo- oder Live-Konto durch. Wenn die Sweep-Bedingungen und die Anforderungen an die Tick-Geschwindigkeit erfüllt sind, werden Sie in Echtzeit Entscheidungsprotokolle – wie beispielsweise `[AI] SELL HYBRID ... ALLOW=YES` oder `NO` – im Journal sehen.
Visualisierung im Strategietester:

Übersetzt aus dem Englischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/en/code/76331
Wolfe Wave Dashboard
Professioneller MQL5-Indikator (separates Fenster), der automatisch mehrere Symbole und Zeitrahmen durchsucht, die neuesten gültigen Wolfe-Wave-Muster (bullisch/bärisch) erkennt, diese in einem interaktiven Dashboard anzeigt und das Öffnen von Charts mit nur einem Klick sowie die vollständige Darstellung der Muster ermöglicht.
Dynamic Session Range Sweep Detector with Liquidity Zone Marking
Verfolgt die Handelsspannen der asiatischen, Londoner und New Yorker Handelssitzungen, fixiert jeweils den Schlusskurs und kennzeichnet echte Liquiditätsschwankungen – einen Docht, der ein fixiertes Hoch oder Tief durchbricht und wieder innerhalb dieses Bereichs schließt – mit einem Pfeilsignal und einer schattierten Reaktionszone. Keine Neuanzeige, funktioniert bei jedem Symbol und jedem Zeitrahmen.
Accumulation/Distribution
Der Accumulation/Distribution Indikator wird aus Änderung von Preis und Volumen bestimmt.
Accelerator Oszillator (AC)
Der Acceleration/Deceleration Indikator (AC) misst die Beschleunigung und Verlangsamung des aktuellen Marktimpulses, der Kraft der Kursbewegung.


