Behebung von Barrierefreiheitsproblemen bei MQL5-Handelswerkzeugen (Teil I): Hinzufügen kontextbezogener Sprachnachrichten zu MQL5-Indikatoren
Inhalt:
- Einführung
- Begründung des Problems der Barrierefreiheit
- Umsetzung: Lösung mit MQL5 für eine einfache Crossover-Strategie
- Erweiterung des Systems: Sprachfeedback, Sprachbefehle und zukünftige KI-Integration
- Prüfung und Bewertung
- Schlussfolgerung
- Anlagen
Einführung
MetaTrader 5 und die MQL5-Programmierumgebung bieten eine solide Grundlage für die Entwicklung von Handelssystemen, Benachrichtigungen und automatisierten Arbeitsabläufen. Standardmäßig bietet das Terminal visuelle Warnmeldungen, einfache Warntöne, E-Mail-Benachrichtigungen, Push-Benachrichtigungen an mobile Geräte, Protokollierungsfunktionen sowie Zugriff auf eingebettete Ressourcen wie Dateien und Medien. Diese Funktionen bestätigen zwar, dass ein Ereignis eingetreten ist, lassen jedoch in der Regel kontextbezogene Details vermissen – Standard-Alarmtöne geben keinen Aufschluss darüber, ob das Signal einen Kauf, einen Verkauf oder einen anderen Systemzustand anzeigt. Dies bietet Entwicklern die Möglichkeit, die Plattform im Hinblick auf eine informativere und barrierefreiere Kommunikation weiterzuentwickeln.
Vollautomatische Handelssysteme profitieren erheblich von diesen Funktionen. Sie führen Handelsgeschäfte eigenständig nach einer vordefinierten Logik aus, steuern das Risiko und erzielen Ergebnisse, die später überprüft werden können, ohne dass der Trader die Charts ständig überwachen muss. Diese Autonomie ist für alle Trader von Vorteil, die die Charts nicht ständig im Blick behalten können, darunter sehbehinderte Trader, vielbeschäftigte Nutzer oder Nutzer mit situativen Einschränkungen. Durch die Entkopplung von Beobachtung und Ausführung verringern vollautomatisierte Systeme die Abhängigkeit von visuellem Echtzeit-Feedback.
Halbautomatische Systeme stellen jedoch eine komplexere Herausforderung dar. Obwohl sie die Analyse und die Signalerkennung automatisieren, sind sie oft auf eine Bestätigung oder Entscheidung durch den Menschen angewiesen. In den meisten Implementierungen wird diese Interaktion fast ausschließlich durch visuelle Hinweise wie Pfeile, Farben, Beschriftungen oder Einblendungen im Chart vermittelt. Selbst wenn einfache Signaltöne ertönen, muss der Trader dennoch einen Blick auf das Chart werfen, um zu verstehen, was der Signalton bedeutet. Diese visuelle Abhängigkeit führt zu einer Barriere für sehbehinderte Nutzer und mindert die Effizienz für Trader, die auf akustisches Feedback angewiesen sind.
Eine Sehbeeinträchtigung kann angeboren, fortschreitend oder plötzlich auftreten und durch Erkrankungen, Unfälle oder altersbedingte Degeneration verursacht werden. Ebenso kann es vorkommen, dass manche Trader unter teilweisen oder vorübergehenden Hörbeeinträchtigungen leiden, in lauten Umgebungen arbeiten oder aufgrund von Multitasking eine freihändige Interaktion benötigen. Keine dieser Bedingungen beeinträchtigt das Marktverständnis oder die strategischen Fähigkeiten eines Traders. Es gibt keine rechtlichen oder ethischen Einschränkungen, die Trader mit Beeinträchtigungen daran hindern würden, an den Finanzmärkten teilzunehmen – die Einschränkung liegt in der Schnittstelle, nicht im Markt selbst. Als Entwickler liegt es in unserer Verantwortung, diese Hindernisse zu erkennen und sie programmtechnisch zu beseitigen.
Im Mittelpunkt dieses Artikels steht die Untersuchung barrierefreier Gestaltung im Zusammenhang mit Handelsindikatoren und halbautomatisierten Systemen. In diesem ersten Teil zeigen wir, wie sich die Kommunikation zwischen System und Benutzer verbessern lässt, indem MQL5-Ressourcen genutzt werden, um kontextbezogenes Sprachfeedback bereitzustellen, das erklärt, was die Benachrichtigung bedeutet, anstatt sich allein auf unspezifische Signaltöne zu verlassen. Dieser Ansatz sorgt für mehr Übersichtlichkeit für sehbehinderte Trader und kommt gleichzeitig auch Nutzern zugute, die eine audiobasierte Interaktion bevorzugen. In den nächsten Teilen werden wir uns damit befassen, wie sich diese Grundlage mithilfe von KI-gestützten und generativen Sprachtechnologien über externe APIs erweitern lässt. Am Ende dieses Artikels werden Sie verstehen, wie Verbesserungen der Barrierefreiheit systematisch in Handelstools integriert werden können, ohne dabei die Leistung, die Benutzerfreundlichkeit oder die gestalterische Integrität zu beeinträchtigen.
Begründung des Problems der Barrierefreiheit
Barrierefreiheit in der Technik bezieht sich auf die Gestaltung von Systemen, Schnittstellen und Interaktionen, die von Menschen mit unterschiedlichen körperlichen, sensorischen oder kognitiven Fähigkeiten effektiv genutzt werden können. In der modernen Unterhaltungselektronik ist Barrierefreiheit kein optionales Extra mehr – sie ist ein selbstverständliches Gestaltungsprinzip. Smartphones, Computer und Betriebssysteme verfügen mittlerweile über Screenreader (Bildschirmleseprogramm), Sprachassistenten, Kontrastmodi, adaptive Eingabemethoden, haptisches Feedback und eine anpassbare Textgröße. Diese Funktionen ermöglichen es Nutzern mit Seh- oder Hörbeeinträchtigungen, komplexe Systeme selbstständig zu bedienen, ohne auf visuelle Überprüfung oder externe Hilfe angewiesen zu sein.
Bei Software für den Finanzhandel wurde der Barrierefreiheit jedoch in der Vergangenheit weitaus weniger Aufmerksamkeit geschenkt. Das vorherrschende Interaktionsmodell basiert auf Charts, Kerzencharts, Indikatoren, Pfeilen, Farben und Einblendungen. Dieser Ansatz ist zwar für Nutzer mit normaler Sehkraft effizient, setzt jedoch implizit eine ständige visuelle Wahrnehmung voraus. Für Trader, die sehbehindert sind, vorübergehend keine Charts einsehen können oder unter nicht optimalen Bedingungen arbeiten, stellt dieses Modell unnötige Hindernisse dar. Das Problem tritt bei halbautomatischen Systemen noch deutlicher zutage, bei denen nach der Erkennung eines Signals eine Bestätigung oder ein Eingreifen durch den Menschen erforderlich ist. Ohne alternative Rückmeldungsmechanismen bleiben wichtige Informationen gerade dann unzugänglich, wenn sie am dringendsten benötigt werden.
Die Herausforderungen hinsichtlich der Barrierefreiheit im Handel gehen über dauerhafte Sehbehinderungen hinaus. Bei einigen Tradern können ein teilweiser oder fortschreitender Sehverlust, Hörbeeinträchtigungen oder situationsbedingte Einschränkungen wie Müdigkeit, Krankheit, Multitasking oder laute Umgebungen auftreten. Andere ziehen es vielleicht einfach vor, die Hände frei zu haben, während sie sich auf die Analyse, die Risikobewertung oder andere Aufgaben konzentrieren. Eine auf Barrierefreiheit ausgerichtete Gestaltung kommt nicht nur Nutzern mit Behinderungen zugute, sondern auch vielbeschäftigten Berufstätigen, die Charts oder Benachrichtigungen nicht ständig im Blick behalten können. Eine klare, strukturierte Kommunikation – insbesondere durch kontextbezogenes Audio-Feedback – steigert die Effizienz und verringert die kognitive Belastung für alle Nutzer.
Die Hauptursachen für Einschränkungen der Barrierefreiheit bei Handelstools lassen sich wie folgt zusammenfassen:
- Starke Abhängigkeit von visuellen Elementen in Charts zur Vermittlung wichtiger Informationen
- Allgemeine Warntöne ohne kontextbezogene Bedeutung
- Anforderungen an zeitkritische Interaktionen in halbautomatisierten Systemen
- Begrenzte Nutzung alternativer Rückmeldungskanäle wie strukturierter Audio- oder sprachbasierter Interaktion
Innerhalb der MQL5-Umgebung werden diese Einschränkungen nicht von der Plattform selbst auferlegt. Im Gegenteil: MQL5 bietet einen Zugriff auf Ressourcenverwaltung, Protokollierung, Warnmeldungen, Benachrichtigungen und Medienwiedergabe. Die Barrierefreiheitslücke ergibt sich in erster Linie aus Annahmen bei der Gestaltung – nämlich der Annahme, dass Nutzer Charts stets visuell betrachten. Durch die Nutzung der vorhandenen Funktionen von MQL5 können Entwickler interne Systemzustände in strukturierte Textmeldungen, vorab aufgezeichnete Audioansagen oder kontextbezogenes Sprachfeedback umsetzen, die nicht nur signalisieren, dass ein Ereignis eingetreten ist, sondern auch vermitteln, was genau passiert ist und warum.
Wichtig ist, dass barrierebewusstes Design nicht bedeutet, separate Systeme für eine bestimmte Nutzergruppe zu entwickeln. Stattdessen konzentriert es sich darauf, die Verständlichkeit, Robustheit und Benutzerfreundlichkeit für alle zu verbessern. Ein System, das über mehrere Kanäle effektiv kommuniziert, ist widerstandsfähiger, inklusiver und effizienter. Diese Sichtweise steht in direktem Einklang mit den in der Einleitung dargelegten Zielen und bildet die Grundlage für die im nächsten Abschnitt beschriebene praktische Umsetzung, in der wir aufzeigen, wie Barrierefreiheit in einen einfachen Indikator integriert werden kann, ohne dabei die Funktionalität oder Leistung zu beeinträchtigen.
Umsetzung: Lösung mit MQL5 für eine einfache Crossover-Strategie
Um ein barrierefreies Design zu veranschaulichen, implementieren wir in MQL5 einen einfachen Crossover-Indikator auf Basis des gleitenden Durchschnitts (MA). Diese Strategie basiert auf zwei gleitenden Durchschnitten: einem schnellen und einem langsamen gleitenden Durchschnitt. Wenn der schnelle gleitende Durchschnitt den langsamen gleitenden Durchschnitt nach oben kreuzt, generiert der Indikator ein Kaufsignal. Umgekehrt erzeugt der Indikator ein Verkaufssignal, wenn der schnelle gleitende Durchschnitt den langsamen gleitenden Durchschnitt nach unten kreuzt. Die Strategie an sich ist zwar unkompliziert, doch liegt der Schwerpunkt dieser Umsetzung auf der Kommunikation und nicht auf der Handelsleistung.
MQL5 ermöglicht es Entwicklern, externe Dateien – darunter auch Audioclips – als Ressource direkt in Indikatoren oder Expert Advisors einzubetten. Aus Gründen der Barrierefreiheit können mit einem Programm wie Audacity kurze, vorab aufgezeichnete Audioansagen erstellt werden, beispielsweise „Kaufsignal erkannt“ und „Verkaufssignal erkannt“. Diese Dateien werden dann als eingebettete Ressourcen eingebunden und bei Eintreten eines Crossover-Ereignisses programmgesteuert ausgelöst.
Parallel dazu erzeugt der Indikator mithilfe der Funktionen PrintFormat(), Alert() oder Comment() strukturierte Textausgaben. Jede Benachrichtigung enthält wichtige Angaben, beispielsweise:
- Das zu analysierende Symbol (z. B. EURUSD).
- Den Zeitrahmen (z. B. H1, M15).
- Die Richtung des Signals (KAUF oder VERKAUF).
- Die Werte des schnellen und des langsamen gleitenden Durchschnitts zum Zeitpunkt des Crossovers.
- Der Kurs, bei dem die Kreuzung stattfand.
Eine Benachrichtigung könnte beispielsweise wie folgt lauten:
„MA-Crossover erkannt. KAUF-Signal für EURUSD auf dem 1-Stunden-Chart. Der schnelle gleitende Durchschnitt (MA) von 1,08452 hat den langsamen gleitenden Durchschnitt (MA) von 1,08397 bei einem Kurs von 1,08460 nach oben gekreuzt.“
Die Umsetzung erfolgt in folgenden Schritten:
- Legen Sie die Eingabeparameter für den schnellen und den langsamen gleitenden Durchschnitt fest.
- Berechnen Sie die MA-Werte bei jedem Tick oder jeder abgeschlossenen Kerze.
- Erkennen Sie Crossover-Ereignisse, indem Sie frühere und aktuelle MA-Werte vergleichen.
- Strukturierte Textbenachrichtigungen und die Wiedergabe eingebetteter Audiodateien auslösen.
- Jedes Ereignis zur späteren Überprüfung protokollieren, kompatibel mit Screenreadern.
Dadurch wird sichergestellt, dass jedes Signal über mehrere Kanäle übertragen wird, wodurch die Abhängigkeit von der visuellen Beobachtung verringert wird. Trader, die sehbehindert sind oder den Bildschirm nicht im Blick behalten können, können sich auf Textprotokolle, Audiowiedergaben oder künftige Integrationen wie KI-gestützte Sprachsynthese verlassen, um umfassendes Feedback zu erhalten. Beginnen wir mit den folgenden Schritten.
1. Ein neues Indikatorprojekt in MetaEditor starten
Jedes MQL5-Projekt beginnt mit einer gezielten Einrichtung. Wir öffnen den MetaEditor und erstellen einen benutzerdefinierten Indikator. Wir wählen einen Namen aus: VoiceAlerts_MA_Crossover.
Der Name ist wichtig, da er im Navigator, auf dem Chart und in den Protokollen angezeigt wird. Ein klarer, aussagekräftiger Name sorgt dafür, dass das Tool selbsterklärend ist.
Der Assistent erstellt automatisch eine Standardvorlage mit folgenden Elementen:
- Die Funktionen OnInit(), OnCalculate() und OnDeinit()
- Den Abschnitt der Metadaten (Direktiven mit dem Tag #property)
- Beispielhafte puffer
Derzeit hat der Indikator noch keine Funktion. Das ist ganz normal: Wir werden es Schritt für Schritt aufbauen und dabei die Kontrolle über jede einzelne Funktion behalten.
2. Metadaten und Eigenschaften
Die erste Programmieraufgabe besteht darin, festzulegen, wie MetaTrader diesen Indikator behandeln soll. Mithilfe der Direktive #property legen wir Folgendes fest:
- In welchem Fenster der Indikator angezeigt werden soll (indicator_chart_window)
- Version, Urheberrecht und Link
- Anzahl der Puffer und Plots
Diese Eigenschaften fungieren als Anweisungen zur Kompilierungszeit. Sie sind nicht optional; sie dienen dem MetaTrader als Leitfaden für die Darstellung und die Speicherverwaltung.
#property indicator_chart_window #property version "1.02" #property copyright "Copyright 2025, Clemence Benjamin"
Zum jetzigen Zeitpunkt verfügt der Indikator zwar über eine Struktur, aber noch nicht über eine Logik.
3. Planung der Puffer und Datenspeicherung
Als Nächstes legen wir fest, was der Indikator berechnen und speichern soll. Unser Tool erfordert:
- Werte des schnellen MA
- Werte des langsamen MA
- ATR zur Pfeilpositionierung
Wir deklarieren drei Puffer:
double FastMABuffer[]; double SlowMABuffer[]; double ATRBuffer[];
Anschließend binden wir diese Puffer mithilfe von SetIndexBuffer() an den Indikator und legen sie als Zeitreihen-Arrays fest, sodass der Index 0 immer der aktuellsten Kerze entspricht:
SetIndexBuffer(0, FastMABuffer); SetIndexBuffer(1, SlowMABuffer); SetIndexBuffer(2, ATRBuffer); ArraySetAsSeries(FastMABuffer, true); ArraySetAsSeries(SlowMABuffer, true); ArraySetAsSeries(ATRBuffer, true);
Puffer sind passive Speicher; der Indikator muss sie aktiv füllen.
4. Erstellen der Indikator-Handles
In MQL5 basieren Indikatoren auf Handles. Wir berechnen Werte nicht direkt. Stattdessen:
FastMAHandle = iMA(_Symbol, _Period, FastMAPeriod, 0, MaMethod, PriceType); SlowMAHandle = iMA(_Symbol, _Period, SlowMAPeriod, 0, MaMethod, PriceType); ATRHandle = iATR(_Symbol, _Period, ATRPeriod);
Handles fungieren als Berechnungsmodule, von denen wir später mithilfe von CopyBuffer() Daten abfragen.
Wir überprüfen die Handles sofort. Dadurch wird sichergestellt, dass der Indikator frühzeitig ausfällt, wenn keine Ressourcen verfügbar sind, wodurch unvorhersehbares Verhalten verhindert wird.
5. Initialisierung und Feedback zur Barrierefreiheit
OnInit() ist die Konstruktorphase. Das haben wir nun:
- Binden der Puffer.
- Erstellen der Handles.
- Optional das Abspielen eines Begrüßungstons.
if(EnableWelcomeSound) PlaySound("::Sounds\\welcome.wav");
Dieser erste Ton liefert sehbehinderten Tradern sofortiges Feedback und bestätigt, dass der Indikator erfolgreich geladen wurde, ohne dass eine Überprüfung des Charts erforderlich ist.
6. Persistente Statusvariablen
Wir deklarieren globale Variablen, um Daten über Aufrufe von OnCalculate() hinweg beizubehalten:
datetime LastBarTime = 0; datetime PendingSignalBar = 0; string PendingDirection;
Diese Variablen:
- Erkennung einer neuen Kerze.
- Speichern ausstehender Crossover-Signale
- Stellen sicher, dass pro Kerze ein Signal vorhanden ist.
Das Prinzip dabei: Ein minimaler und fokussierter globaler Zustand beugt Fehlern vor und erleichtert die Wartung der Logik.
7. Neue Kerzen erkennen
Indikatoren werden mehrmals pro Tick aufgerufen. Um mehrere Signale pro Kerze zu vermeiden, implementieren wir eine Erkennung neuer Kerzen:
if(time[0] != LastBarTime) { LastBarTime = time[0]; // execute logic }
Warum das wichtig ist:
- Verhindert wiederholte Warnmeldungen
- Stellt sicher, dass Signale bei bestätigten Kerzen ausgelöst werden
- Unterstützt stabiles Backtesting
8. Indikatorwerte kopieren
Sobald eine neue Kerze erkannt wird, rufen wir die MA- und ATR-Werte ab:
CopyBuffer(FastMAHandle, 0, 0, rates_total, FastMABuffer); CopyBuffer(SlowMAHandle, 0, 0, rates_total, SlowMABuffer); CopyBuffer(ATRHandle, 0, 0, rates_total, ATRBuffer);
MQL5 trennt die Berechnung (Handle) vom Datenzugriff (Puffer). Dieses Muster gilt für jeden auf „Handles“ basierenden Indikator, nicht nur für MA oder ATR.
9. Erkennung von MA-Crossovers
Wir verwenden die Logik der geschlossenen Kerzen, um ein Repainting zu verhindern:
int i = 1; // last closed bar if(FastMABuffer[i+1] < SlowMABuffer[i+1] && FastMABuffer[i] > SlowMABuffer[i]) { PendingSignalBar = time[i]; PendingDirection = "BUY"; }
Dadurch wird sichergestellt, dass die Signale auf vollständigen Daten basieren, was für zuverlässige Warnmeldungen von entscheidender Bedeutung ist – insbesondere für sehbehinderte Nutzer, die auf akustische Hinweise angewiesen sind.
10. Benachrichtigungen bis zum Beginn der nächsten Kerze verzögern
Anstatt das Signal sofort auszulösen, speichern wir es und verarbeiten es bei Eröffnung der nächsten Kerze.
FireSignal(PendingDirection, PendingSignalBar, high, low);
Vorteile:
- Verhindert ein Rauschen in der Mitte der Kerze
- Sorgt für konsistente, gut verständliche Audiohinweise.
- Entspricht den kognitiven Erwartungen an aufeinanderfolgende Warnmeldungen
11. Wingdings-Pfeile zeichnen
Pfeile dienen als visuelle Ergänzung. Durch die Verwendung von ATR-Offsets wird sichergestellt, dass sich die Pfeile nicht mit den Kerzen überschneiden und auch bei großen Rückblickzeiträumen sichtbar bleiben:
double price = direction == "BUY" ? low[bar] - ATRBuffer[bar]*0.6 : high[bar] + ATRBuffer[bar]*0.6; ObjectCreate(0, name, OBJ_ARROW, 0, signal_time, price);
Zur besseren Übersicht sind die Pfeile farblich gekennzeichnet: grün für „Kaufen“, rot für „Verkaufen“.
12. Akustische Warnsignale
Wir vermeiden bewusst die Verwendung von Alert(). Stattdessen verwenden wir PlaySound(), um sicherzustellen, dass:
- Ausschließlich unsere benutzerdefinierten Sounds abgespielt werden.
- Keine Beeinträchtigung durch Standardwarnmeldungen des Terminals.
- Wir die akustische Rückmeldung vollständig kontrollieren können.
Dieses Design ist für die Barrierefreiheit von zentraler Bedeutung und bietet sehbehinderten Tradern verlässliche Orientierungshilfen.
13. Ressourcenbereinigung
Schließlich geben wir in OnDeinit() alle Handles frei, um den Speicher zu bereinigen; dies verhindert Speicherlecks und gewährleistet einen stabilen Chartbetrieb.
IndicatorRelease(FastMAHandle); IndicatorRelease(SlowMAHandle); IndicatorRelease(ATRHandle);
Vorbereitung von Audiodateien für Sprachansagen
Um die Audio-Feedback-Funktion im Indikator „VoiceAlerts_MA_Crossover“ zu aktivieren, müssen Sie Audiodateien bereitstellen, deren Namen mit den im Code genannten Ressourcennamen übereinstimmen. Der Indikator nutzt drei zentrale akustische Signale:
- welcome.wav – wird abgespielt, wenn der Indikator geladen wird.
- buy.wav – wird abgespielt, wenn ein bullisches MA-Crossover auftritt.
- sell.wav – wird abgespielt, wenn ein bärisches MA-Crossover auftritt.
Audio aufnehmen
Sie haben zwei Hauptmöglichkeiten:
1. Aufnahme in Studioqualität (optional)
- Verwenden Sie ein Mikrofon in einer ruhigen Umgebung.
- Nehmen Sie kurze, klare Sätze oder Töne auf, die dem jeweiligen Ereignis entsprechen.
- Halten Sie die Audioaufnahme kurz (1–3 Sekunden reichen aus).
2. Aufnahmen mit geringem Budget/zum Selbermachen
- Verwenden Sie ein Smartphone, ein PC-Mikrofon oder ein Headset.
- Nehmen Sie die Aufnahme an einem ruhigen Ort auf.
- Selbst einfache Sprachaufnahmen reichen für grundlegende Barrierefreiheitszwecke aus.
Audio bearbeiten
Unabhängig von der Aufnahmemethode sollte die Audiodatei
- zugeschnitten werden, um Stille am Anfang und Ende zu entfernen
- Im .wav-Format gespeichert werden (PCM 16 Bit, 44100 Hz empfohlen)
- Genau so benannt, wie sie im Indikator verwendet werden: welcome.wav, buy.wav, sell.wav
Einfache Bearbeitungen lassen sich mit kostenlosen Programmen wie Audacity durchführen:
- Öffnen Sie die aufgenommene Datei in Audacity.
- Verwenden Sie das Trimm-Werkzeug, um überflüssige Stille zu entfernen.
- Als WAV exportieren (Datei → Exportieren → Als WAV exportieren).
- Stellen Sie sicher, dass die Dateinamen genau mit den Verweisen im Code übereinstimmen.
Alternative: Erzeugung von Text-to-Speech (TTS)
Für alle, die synthetische Stimmen bevorzugen:
- Verwenden Sie ein beliebiges Open-Source-TTS-Tool oder einen Online-Dienst.
- Verwenden Sie kurze Sätze: „Indikator geladen“, „Kaufsignal“, „Verkaufssignal“.
- Speichern Sie jede Datei als .wav-Datei unter genau den oben genannten Namen.
Platzierung im MQL5-Terminal
Nachdem Sie die Audiodateien vorbereitet haben:
1. Verwenden Sie den angehängten Ordner „Sounds“ aus diesem Projekt.
2. Kopieren Sie den Ordner in das Verzeichnis Ihres MetaTrader-5-Terminals unter MQL5\Sounds.
3. Stellen Sie sicher, dass die Dateistruktur erhalten bleibt und die Dateinamen korrekt sind.
Hinweis: Wenn die Namen der Audiodateien nicht genau mit dem Code übereinstimmen, kann der Indikator sie nicht finden, und die Kompilierung schlägt möglicherweise fehl.
Wenn Sie diese Schritte befolgen, können Sie zuverlässige Audiobenachrichtigungen sicherstellen, die für sehbehinderte Trader oder alle, die sich statt auf Chartdarstellungen auf Sprachansagen verlassen, unverzichtbar sind.
Erweiterung des Systems: Sprachfeedback, Sprachbefehle und zukünftige KI-Integration
Über die einfache Audiowiedergabe hinaus besteht ein erhebliches Potenzial, die Barrierefreiheit und die Effizienz der Trader durch interaktives Sprachfeedback und Spracherkennung zu verbessern. Für Trader, die hören können, liefern detaillierte Sprachbenachrichtigungen umfassende Signalinformationen, ohne dass sie dabei auf den Chart achten müssen. Im Gegensatz zu den üblichen Plattformtönen oder einfachen Signaltönen enthalten diese Benachrichtigungen Angaben zu Signaltyp, Symbol, Zeitrahmen, Werten des gleitenden Durchschnitts, Kurs und Kontext. Vielbeschäftigte Trader können beispielsweise auch während des Multitaskings oder bei anderen Tätigkeiten den Überblick über das Marktgeschehen behalten.
Die Integration von Sprachbefehlen bietet eine weitere Chance. Da Trader auf Benachrichtigungen mündlich reagieren können, können halbautomatische Systeme Ausführungsgenehmigungen, Parameteranpassungen oder Anfragen entgegennehmen, ohne dass eine Eingabe über Tastatur oder Maus erforderlich ist. Ein Trader könnte beispielsweise sagen: „Genehmige KAUF-Signal für EURUSD H1“, woraufhin das System den Auftrag ausführt oder in die Warteschlange stellt. Diese Funktion bietet sehbehinderten Tradern mehr Unabhängigkeit und erhöht die Effizienz für diejenigen, die viel zu tun haben oder vorübergehend keinen Zugriff auf das Chart haben.
Der Technologie-Stack für solche Erweiterungen kann Folgendes umfassen:
- Lokale Text-to-Speech-Engines (TTS) für sofortiges Feedback.
- Spracherkennungs-APIs zur Befehlsauswertung.
- Generative KI-Modelle zur Bereitstellung kontextbezogener Erklärungen oder zur Signalanalyse.
- Optionale Cloud-Integration für Mehrsprachenunterstützung oder erweiterte prädiktive Analysen.
Durch die Nutzung von MQL5-Ressourcen können diese Interaktionen vom Indikator initiiert werden, wobei die Plattformunabhängigkeit gewahrt bleibt. So kann der Indikator beispielsweise strukturierte Ereignisse in eine Datei oder eine Nachrichtenwarteschlange schreiben, die von einer lokalen Hilfsanwendung zur TTS-Ausgabe oder zur KI-Verarbeitung überwacht wird. Diese Trennung gewährleistet die Einhaltung der Plattform-Sicherheitsvorschriften und sorgt für die Stabilität des Systems.
Ein solcher Ansatz ist nicht nur inklusiv, sondern auch für Trader ohne Behinderungen von Vorteil. Detailliertes, sprachbasiertes Feedback ermöglicht eine schnellere Entscheidungsfindung, verringert verpasste Chancen und verbessert das Situationsbewusstsein während hektischer Handelsphasen. Eine künftige Integration von KI könnte das System weiter verbessern und allen Tradern Erklärungen in natürlicher Sprache, eine vorausschauende Risikobewertung sowie interaktives Lernen bieten.
Prüfung und Bewertung
Die Prüfung des Indikators VoiceAlerts_MA_Crossover umfasst sowohl eine historische als auch eine Echtzeit-Überprüfung. Im Strategietester (Registerkarte „Experten“) haben wir überprüft, dass alle MA-Crossover-Ereignisse korrekt erkannt und in den Textprotokollen aufgezeichnet wurden. Da im Strategietester keine akustischen Warnsignale wiedergegeben wurden, haben wir den Indikator auf einen Live-Chart angewendet, um die Soundfunktion zu testen.
So überprüfen Sie Audiobenachrichtigungen effektiv:
- Verwenden Sie einen 1-Minuten-Zeitrahmen, damit MA-Kreuzungen ohne lange Wartezeiten auftreten.
- Das System sollte nach Erkennung eines Crossover auf die Eröffnung der nächsten Kerze warten; dadurch wird sichergestellt, dass die Audiowiedergabe synchron mit der verzögerten Alarmlogik des Indikators erfolgt.
- Die erfolgreiche Wiedergabe der Begrüßungsansage bei der Initialisierung bestätigt, dass das Audiosystem funktioniert, während die anschließenden Kauf- und Verkaufssignale zeigen, dass die Ereignisbenachrichtigungen ordnungsgemäß funktionieren.
Dieser Ansatz stellt sicher, dass sowohl Textprotokolle als auch akustische Warnsignale wie vorgesehen funktionieren und somit sehbehinderten Nutzern oder Tradern, die auf Sprachansagen angewiesen sind, zuverlässiges Feedback liefern.
Sehen Sie sich das folgende Video an, in dem ich zeige, wie man den Indikator zu einem Chart hinzufügt und die Wiedergabe des Initialisierungssignals überprüft.
Schlussfolgerung
Anhand eines einfachen Indikators für den Crossover eines gleitenden Durchschnitts als Beispiel haben wir erfolgreich gezeigt, wie kontextbezogene Audio-Rückmeldungen in einen MQL5-Indikator integriert werden können, indem die Funktionen der Plattform der Ressourcenverwaltung für die Audiowiedergabe genutzt werden. Der Indikator liefert während der Initialisierung sofortiges Feedback, was durch den im beigefügten Video gezeigten Begrüßungston bestätigt wird, und gibt aussagekräftige Sprachmeldungen aus, die erklären, welches Ereignis eingetreten ist, anstatt sich auf nichtssagende Signaltöne des Terminals zu verlassen. Dieser Ansatz erweitert das standardmäßige Benachrichtigungssystem von MetaTrader 5, ohne es zu ersetzen, und sorgt so für mehr Übersichtlichkeit und Benutzerfreundlichkeit für ein breiteres Spektrum an Tradern.
Um einen korrekten Betrieb zu gewährleisten, müssen Sie alle Projektdateien in den entsprechenden Verzeichnissen ablegen. Die Quelldatei des Indikators muss wie gewohnt im Ordner „Indicators“ gespeichert und kompiliert werden, während der dazugehörige Verzeichnis „Sounds“ genauso, wie er bereitgestellt wird, in das Verzeichnis „MQL5\Sounds“ des MetaTrader 5-Terminals kopiert werden muss. Die Namen der Audiodateien müssen genau mit den im Code genannten Namen übereinstimmen; andernfalls schlägt die Kompilierung oder die Wiedergabe zur Laufzeit fehl. Dieser Schritt ist für eine erfolgreiche Kompilierung und eine korrekte Audiowiedergabe unerlässlich.
Mit diesem grundlegenden Beispiel haben wir einen praktischen Rahmen für barrierefreies Systemdesign in MQL5 geschaffen. In zukünftigen Teilen kann diese Grundlage durch eine tiefere Integration mit Sprachverarbeitungs-Engines, Text-To-Speech“-Systemen und externen APIs erweitert werden, wodurch ein fortschrittlicheres, in Echtzeit funktionierendes und interaktives, assistentenähnliches Verhalten ermöglicht wird, das direkt in die Handelswerkzeuge eingebettet ist.
Letztendlich führt ein auf Barrierefreiheit ausgerichtetes Design zu robusteren, inklusiveren und nutzerorientierteren Systemen. Durch eine klare Kommunikation über verschiedene Kanäle hinweg – visuell, textuell und akustisch – entwickeln wir Handelsinstrumente, die sich an den Trader anpassen, anstatt den Trader zu zwingen, sich an das Instrument anzupassen. Barrierefreiheit ist kein optionales Merkmal, sondern eine Chance, die Kommunikation, die Zuverlässigkeit und das gesamte Handelserlebnis für alle Marktteilnehmer zu verbessern.
Anlagen
| Quelldateiname | Typ | Version | Beschreibung |
|---|---|---|---|
| VoiceAlerts_MA_Crossover | Indikator | 1.0 | Ein auf Barrierefreiheit ausgerichteter Indikator für den Kreuzungspunkt gleitender Durchschnitte, der visuelle Wingdings-Pfeile und benutzerdefinierte akustische Warnsignale für Kauf- und Verkaufssignale bereitstellt. Entwickelt sowohl für sehbehinderte Trader als auch für diejenigen, die Sprachbenachrichtigungen bevorzugen. Enthält verzögerte Benachrichtigungen beim nächsten Bar-Open, um ein Repainting zu verhindern. |
| Sounds | Ordner | K.A. | Enthält alle vom Indikator verwendeten WAV-Audiodateien: welcome.wav, buy.wav und sell.wav. Die Datei muss im Verzeichnis „MQL5\Sounds“ des Terminals abgelegt werden, um eine korrekte Audiowiedergabe zu gewährleisten. Dateien können manuell aufgezeichnet oder per TTS generiert werden, sofern die Namen exakt übereinstimmen. |
Übersetzt aus dem Englischen von MetaQuotes Ltd.
Originalartikel: https://www.mql5.com/en/articles/21189
Warnung: Alle Rechte sind von MetaQuotes Ltd. vorbehalten. Kopieren oder Vervielfältigen untersagt.
Dieser Artikel wurde von einem Nutzer der Website verfasst und gibt dessen persönliche Meinung wieder. MetaQuotes Ltd übernimmt keine Verantwortung für die Richtigkeit der dargestellten Informationen oder für Folgen, die sich aus der Anwendung der beschriebenen Lösungen, Strategien oder Empfehlungen ergeben.
MQL5 und Datenverarbeitungspakete integrieren (Teil 7): Entwicklung von Multi-Agenten-Umgebungen für die symbolübergreifende Zusammenarbeit
MQL5-Handelswerkzeuge (Teil 17): Vektorbasierte abgerundete Rechtecke und Dreiecke
Eine alternative Log-datei mit der Verwendung der HTML und CSS
Die MQL5-Standardbibliothek im Überblick (Teil 8): Ein hybrides Handelsjournal mit CFileTxt
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.