Natural Language Processing NLP
- Bibliotheken
- Version: 1.3
📘 Überblick
AlgoNLP.mqh ist eine eigenständige MQL5-Bibliothek, dievon Menschen verfasste Handelsanweisungen in strukturierte Handelsabsichten umwandelt, die Ihr Expert Advisor (EA) oder Ihr Indikator verstehen kann.
Hinterlassen Sie gerne eine Bewertung, wenn es Ihnen gefällt :D
Schauen Sie sich auch meinen neuen Indikator an: ALGOCHAMP v3 Plus
Beispiel-Eingabe:
Buy gold at 2370 with TP 0.3% and SL 1%
Ausgabe-Absicht:
Seite: KAUF | Typ: LIMIT | Symbol: XAUUSD | Einstieg: 2370 | TP: 0,3 % | SL: 1 % | Lot: 0,00
Damit können Siechatgesteuerte oder in Telegram integrierte EAs erstellen, die Befehle in einfachem Englisch interpretieren und strukturierte Trades ausführen können.
“ eingehende Texte stets und überprüft die Felder zur Handelsabsicht.
Ungefilterte Benutzerbefehle können zuunbeabsichtigten Orderplatzierungen,Symbol-Nichtübereinstimmungen oderVerstößen gegen Risikolimits führen.
⚠️ Verwenden Sie Bestätigungsdialoge oder Verifizierungsschichten in Live-Handelsumgebungen.
➡️ In meinen Artikeln finden Sie eine detaillierte Erklärung zur Funktionsweise von NLP und zur Implementierung mithilfe von mq5.
⚙️ Systemanforderungen
| Anforderung | Details |
|---|---|
| Plattform | MetaTrader 5 (Build ≥ 2750) |
| Sprache | MQL5 (Strict-Modus aktiviert) |
| Kodierung | Unicode-sicher |
| Abhängigkeiten | Keine (in sich geschlossen) |
| Ausführungszeit | ≈ 0,2 ms für einen durchschnittlichen Satz (<30 Token) |
| Speicherbedarf | ≈ 20–30 KB pro Instanz |
| Thread-Sicherheit | Single-Thread (EA/Indikator-sicher) |
➡️ Die Benchmark-Ergebnisse können in realen Umgebungen variieren.
🧩 Bibliotheksstruktur
| Komponente | Typ | Beschreibung |
|---|---|---|
| CNLP | Haupt-Manager-Klasse | Übernimmt das Parsen, die Kontextbindung und die Weiterleitung an Listener. |
| CIntentDetector | Kern-Engine | Führt die mehrstufige Zahlenextraktion und Intent-Zuordnung durch. |
| CKeywordExtractor | Dienstprogramm | Extrahiert Schlüsselwörter und filtert Stoppwörter heraus. |
| CLexicon | Dienstprogramm | Speichert semantische Wortgruppen (kaufen/verkaufen, Ordertypen). |
| CContext | Hilfsprogramm | Verwaltet bekannte Symbole und das zuletzt verwendete Wertpapier. |
| INLPListener | Schnittstelle | Callback-Schnittstelle für die ereignisgesteuerte Intent-Verarbeitung. |
| NLPUtil | Namensraum | Hilfsfunktionen für Text und Zeitmessung. |
➡️ Ausführliches Architekturdiagramm anzeigen:
📦 Kern-Datentypen
SNLPIntent – Analysiertes Handelsobjekt
| Feld | Typ | Beschreibung |
|---|---|---|
| valid | bool | Wahr, wenn die Analyse erfolgreich war |
| Seite | ENLPOrderSide | KAUF, VERKAUF oder UNBEKANNT |
| Typ | ENLPOrderType | MARKT, LIMIT, STOP |
| Symbol | Zeichenkette | Aufgelöstes Handelssymbol |
| Preis | double | Einstiegskurs (falls angegeben) |
| TP, SL | doppelt | Take-Profit- und Stop-Loss-Werte |
| tp_is_percent, sl_is_percent | bool | Wahr, wenn prozentbasiert |
| tp_is_pips, sl_is_pips | bool | Wahr, wenn in Pips/Punkten angegeben |
| qty_lots | double | Ermittelte Lotgröße |
| wenn | SNLPWhen | Zeit- oder Ausbruchbedingungen |
| Roh | Zeichenkette | Text der Originalnachricht |
| Grund | Zeichenkette | Feld für Fehlerbehebung oder Erläuterung |
🔍 So funktioniert es
- Normalisierung: Der Text wird in Kleinbuchstaben umgewandelt, bereinigt und Synonyme werden ersetzt (take profit → tp).
- Tokenisierung: Wörter werden getrennt und Stoppwörter herausgefiltert.
- Lexikalischer Abgleich: Erkennt die Absichtsrichtung anhand des Fuzzy-Levenshtein-Abstands ≤ 1.
- Extraktion des Zahlenkontexts: Interpretiert Zahlen anhand einer Einheitenanalyse als Kurs, TP/SL oder Lotgröße.
- Zeitlogik: Erkennt „um 09:15 Uhr“, „in 15 Minuten“ und Auslösebedingungen für Breakouts.
- Symbolauflösung: Leitet Instrumente wieGold → XAUUSD ab .
- Intent-Erstellung: Erstellt SNLPIntent und löst Listener-Callbacks aus.
⚠️ AlgoNLP.mqh nutzt deterministische Textanalyse und kontextbasierte Heuristiken – eskommt weder KI noch maschinelles Lernen zum Einsatz.
Daher können extrem mehrdeutige oder grammatikalisch unvollständige Sätze zu undefiniertem Verhalten oder unvollständigen Absichten führen.
Überprüfen Sie die analysierten Ergebnisse stets, bevor Sie echte Trades ausführen.
🧩 Beispiel für die Integration
Sicherheit
Alle INLPListener-Callbacks (wie z. B. „OnOrderIntent“, „OnError“ usw.) werdensynchron vom Haupt-EA-Thread aus ausgeführt.
Aufwändige Logik, API-Aufrufe oder Order-Operationen innerhalb dieser Methoden könnenden Handelsablauf blockieren oder zu Verzögerungen führen.
Es wird empfohlen,die Handelsausführung an asynchrone oder zeitgesteuerte Funktionen zudelegieren, anstatt sie direkt in Callbacks aufzurufen.
#include <AlgoNLP.mqh>
class CMyListener : public INLPListener
{
public:
void OnOrderIntent(const SNLPIntent &i) override
{
Print("✅ NLP Worked!");
Print("Side: ", EnumToString(i.side));
Print("Type: ", EnumToString(i.type));
Print("Symbol: ", i.symbol);
Print("TP: ", DoubleToString(i.tp, 2), " | SL: ", DoubleToString(i.sl, 2));
}
};
CMyListener listener;
CNLP nlp;
int OnInit()
{
nlp.AddSymbol("XAUUSDm");
nlp.AddListener(listener);
return(INIT_SUCCEEDED);
}
void OnStart()
{
string text="Buy gold at 2370 with TP 0.3% and SL 1%";
nlp.Dispatch(text);
}
🧮 Leistungskennzahlen
| Testfall | Token | Parsing-Zeit | Genauigkeit |
|---|---|---|---|
| Kurzer Befehl („Buy BTC market“) | 5 | 0,09 ms | 100 % |
| Vollständiger Satz („Gold bei 2370 mit TP 0,3 % und SL 1 % kaufen“) | 15 | 0,22 ms | 100 % |
| Unklare Anfrage („Hey Bot, bitte Nasdaq shorten, 0,5 Lot“) | 18 | 0,26 ms | >95 % |
➡️ Benchmark durchgeführt auf Intel i7-9700 / MT5 Build 3820.
🧭 Zusammenfassung
AlgoNLP.mqh wandelt gewöhnlichen Text in MetaTrader in umsetzbare Handelslogik um . Es wurde für Entwickler konzipiert, die möchten, dass ihre EAswie Menschen denken – also Anweisungen in einfachem Englisch verstehen und Trades intelligent ausführen. Dies ist keine Abkürzung, sondern ein vollständiges linguistisches Berechnungssystem, das in nativem MQL5 geschrieben ist.

Der Benutzer hat keinen Kommentar hinterlassen