Alert and Repaint Check for Any Indicator
- Utilitys
-
Ayaz
MQL5 developer working on automated trading systems — Expert Advisors, custom indicators, and TradingView-to-MT5 conversions. - Version: 1.0
Wählen Sie einen beliebigen Indikator aus, den Sie bereits haben – einfach über den Dateinamen –, und das Programm benachrichtigt Sie über die Puffer dieses Indikators. Es benötigt keinen Quellcode: Eine kompilierte .ex5-Datei, die Sie heruntergeladen haben, reicht aus. Es kann diesen Indikator auch aus einem höheren Zeitrahmen auslesen und liest abgeschlossene Balken erneut ein, um Ihnen anzuzeigen, ob der Indikator nachzeichnet oder lediglich verzögert.
Das ist kostenlos.
Das Problem, das es löst
Zwei der am längsten laufenden Threads im MQL5-Forum drehen sich um das Einrichten von Benachrichtigungen für Indikatoren und um das Auslesen dieser Indikatoren aus einem höheren Zeitrahmen. Die Antwort war immer dieselbe: Besorge dir den Quellcode, bearbeite ihn und kompiliere ihn neu. Das hilft jedoch nicht, wenn du nur eine .ex5-Datei hast, und es lässt sich nicht skalieren, wenn du mehrere Indikatoren verwendest.
Dieses Tool erledigt die Aufgabe von außen. iCustom kann jeden Indikator anhand seines Namens laden und dessen Puffer ohne den Quellcode auslesen, sodass ein einziges Tool für alle Indikatoren ausreicht.
Der EXPLORE-Modus beantwortet zuerst die schwierige Frage
Der Grund, warum die meisten Trader iCustom nie nutzen, ist, dass es nach einer Puffernummer fragt und nichts darauf hinweist, welche Nummer den Pfeil enthält, den man auf dem Chart sieht. Der Standardmodus gibt also die Antwort darauf. Er durchsucht die Puffer, zählt, was sich in jedem einzelnen befindet, und zeigt die Werte neben den letzten Balken an. Dies ist eine echte Ausführung auf einem Live-Chart, auf dem der Standard-RSI beobachtet wird:
Gefundene Puffer: 3 (geprüft bis 16, auf XAUUSDm PERIOD_H1)
Puffer Werte Nullen leer So sieht es aus Wertebereich
0 12 0 0 eine Linie – ein Wert auf fast jedem Balken 31,47608 .. 55,28984
1 12 0 0 eine Linie – ein Wert auf fast jedem Balken 4,11585 .. 6,11288
2 12 0 0 eine Linie – ein Wert auf fast jedem Balken 3,86003 .. 8,96028
Balken Zeit buf0 buf1 buf2
0 04.09.2026 20:00 45,61107 5,40493 6,44511
1 04.09.2026 19:00 46,88624 5,82069 6,59381
2 04.09.2026 18:00 43,33095 5,42967 7,10102 Alle drei sind dort Linien, was dem RSI entspricht. Bei einem Pfeil- oder Signalindikator sieht die Tabelle anders aus, und genau dieser Unterschied ist der springende Punkt:
Puffer Werte Nullen Leer So sieht es aus Wertebereich
0 0 0 8 hier auf diesen Balken nichts -
11 8 0 0 eine Linie – ein Wert auf fast jedem Balken 16,08798 .. 16,25192
14 7 1 0 spärlich – sieht aus wie ein Signal 4166,06000 .. 4166,06000 Puffer 14 ist hier besonders zu beachten. Er ist bei den meisten Balken leer und enthält nur dann einen Kurs, wenn der Indikator etwas markiert hat; daher ist „ein Wert erscheint“ der Auslöser dafür. Puffer 11 ist eine interne Linie, und Puffer 0 enthält bei diesen Balken überhaupt nichts.
Verspätete Werte und Neuberechnungen werden separat gezählt
Der Wert jedes geschlossenen Balkens wird gespeichert und bei jedem neuen Balken erneut ausgelesen. Wenn sich der Wert eines geschlossenen Balkens geändert hat, gibt es dafür zwei sehr unterschiedliche Gründe.
Ein verspäteter Wert. Der Balken war leer und enthält nun einen Wert, da der Indikator spätere Balken benötigte, bevor er diesen markieren konnte. Fraktale funktionieren von Natur aus so, ebenso wie die meisten Swing- und Strukturmarker. Es handelt sich nicht um eine Täuschung, aber das Signal war auf dem Balken, auf den es verweist, nie sichtbar.
Eine Neudarstellung. Ein Wert, der zuvor vorhanden war, hat sich verschoben oder ist verschwunden. Etwas, auf das Sie hätten reagieren können, ist nicht mehr vorhanden.
Beides wird zusammen mit der Balkenzeit, dem alten und dem neuen Wert gemeldet, und der Chartkommentar führt eine fortlaufende Zählung für jeden einzelnen. Aus dem sich bildenden Balken werden keine Rückschlüsse gezogen, da es normal ist, dass sich der sich bildende Balken verändert.
Getestet statt behauptet. Auf XAUUSD H1, 299 Kerzen, 1. bis 20. August 2026, unter Beobachtung von Puffer 0 jeder Kerze:
| Beobachteter Indikator | Verspätete Werte | Neuzeichnungen |
| Beispiele\Fraktale, markiert eine Kerze zwei Kerzen nach ihrem Schlusskurs | 40 | 0 |
| Beispiele\ZigZag, zeichnet seinen letzten Abschnitt absichtlich neu | 0 | 83 |
| Beispiele\RSI, wird nach Schlusskurs eines Balkens berechnet | 0 | 0 |
Es heißt also „late“ für einen Indikator, der nachläuft, „repaint“ für einen, der sich neu berechnet, und nichts für einen, der beides nicht tut.
Auslöser
Ein Wert erscheint auf einem Balken – sei es auf dem gerade geschlossenen Balken oder auf einem früheren Balken, den ein verzögerter Indikator erst jetzt markiert hat; ein Überschreiten eines Niveaus nach oben oder unten; das Kreuzen eines Puffers durch einen anderen in beliebiger Richtung; oder einfach eine Wertänderung. Benachrichtigungen erfolgen über ein Popup-Fenster, einen Ton, eine Push-Benachrichtigung oder per E-Mail, jeweils eine pro Balken. Standardmäßig werden geschlossene Kerzen ausgewertet; deaktiviert man diese Option, wird die sich bildende Kerze bei jedem Tick ausgewertet, was zu früheren Warnmeldungen führt und eine Umkehrung ermöglichen kann.
Ein höherer Zeitrahmen
Stellen Sie „Auf diesem Zeitrahmen lesen“ ein, und der beobachtete Indikator wird auf diesem Zeitrahmen statt auf dem des Charts geladen. Balken, Auslöser und die Repaint-Prüfung richten sich alle danach. Anhand der Testdaten erzeugte der RSI, der auf einem H1-Chart aus dem H4-Zeitrahmen gelesen wurde, eine Benachrichtigung pro H4-Balken – insgesamt 77, die jeweils mit PERIOD_H4 gekennzeichnet waren.
Zwei Anwendungsbeispiele
Beispiel 1. Sag mir, wenn der RSI den Wert 70 überschreitet. Du kennst diesen Indikator, daher dient EXPLORE hier nur zur Überprüfung.
| Eingabe | Wert |
| Indikator-Datei | Beispiele\RSI |
| Seine Eingaben | 14 |
| In diesem Zeitrahmen auslesen | Aktueller Zeitrahmen |
| Modus | BEOBACHTEN |
| Puffer zum Ansehen | 0 |
| Auslöser | Puffer überschreitet Level nach oben |
| Level | 70 |
| Popup-Warnung | wahr |
Anhand der Testdaten, die vier Warnmeldungen bei 75,04, 76,31, 70,38 und 74,83 erzeugt haben. Um dasselbe Ergebnis aus dem 4-Stunden-Chart zu erhalten, während Sie den 1-Stunden-Chart betrachten, stellen Sie „In diesem Zeitrahmen lesen“ auf H4 ein und ändern Sie nichts anderes.
Beispiel 2: Ein Pfeilindikator, den Sie heruntergeladen haben und für den Sie keine Quelle haben. Hier übernimmt EXPLORE die eigentliche Arbeit.
- Fügen Sie den Indikator im Modus „EXPLORE“ hinzu und setzen Sie „Indikator-Datei“ auf den Namen dieses Indikators. Lassen Sie „Seine Eingaben“ leer, um die eigenen Standardwerte zu verwenden.
- Öffne die Toolbox, gehe auf die Registerkarte „Experten“ und suche den Puffer, der lückenhaft ist: auf den meisten Balken leer, mit einem Wert, bei dem du einen Pfeil im Chart sehen kannst. Nehmen wir an, es ist Puffer 2.
- Fügen Sie ihn erneut hinzu, mit dem Modus auf „WATCH“, dem zu überwachenden Puffer 2, dem Auslöser „Ein Wert erscheint“ und der Push-Benachrichtigung aktiviert.
- Falls EXPLORE den Hinweis angezeigt hat, dass ein Puffer größtenteils aus exakten Nullen besteht, aktivieren Sie „Dieser Indikator schreibt 0, wenn der Wert keine Bedeutung hat“ und lesen Sie die Tabelle noch einmal durch, bevor Sie eine Auswahl treffen.
Was die einzelnen Eingaben bewirken
| Eingabe | Funktion |
| Indikator-Dateipfad | Pfad unter MQL5\Indicators, ohne Dateiendung, zum Beispiel Examples\RSI oder MyFolder\MyArrows. Das Feld ist absichtlich leer, da nicht auf jedem Terminal garantiert ein Indikator vorhanden ist, und es passiert nichts, bis Sie es ausfüllen. |
| Seine Eingaben | Die eigenen Eingaben des überwachten Indikators, durch Kommas getrennt, in der Reihenfolge, in der sie deklariert sind. Ein leeres Feld bedeutet, dass die Standardwerte verwendet werden. Ganzzahlen werden als int übergeben, Zahlen mit einem Dezimalpunkt als double, true und false als bool, alles andere als Text. Das Protokoll gibt die getroffene Entscheidung aus, damit Sie diese überprüfen können. |
| Auf diesem Zeitrahmen lesen | Lade den überwachten Indikator in diesem Zeitrahmen statt in dem des Charts. Der aktuelle Zeitrahmen bezieht sich auf den des Charts. |
| Dieser Indikator schreibt eine 0, wo dies „nichts“ bedeutet | Eine exakte 0 wird als leer behandelt. Dies ist für Indikatoren wie ZigZag erforderlich. EXPLORE zeigt Ihnen an, wann es sich lohnt, diese Funktion zu aktivieren. |
| Modus | „EXPLORE“ listet die Puffer auf und löst keine Warnmeldungen aus. „WATCH“ löst eine Warnmeldung für den von Ihnen gewählten Puffer aus. |
| Wie viele Puffer sollen geprüft werden? | EXPLORE bricht hier ab. Erhöhen Sie den Wert, wenn die Meldung anzeigt, dass das Limit erreicht wurde. |
| Wie viele der letzten Takte sollen angezeigt werden | Wie viele Takte EXPLORE anzeigt und zählt. |
| Zu überwachender Puffer | Die Puffernummer, die Sie der EXPLORE-Tabelle entnehmen. |
| Zweiter Puffer | Wird nur von den beiden Puffer-Cross-Triggern verwendet. |
| Trigger | Ein Wert erscheint, ein Kreuz oberhalb oder unterhalb des Levels, Puffer A kreuzt Puffer B in eine beliebige Richtung oder der Wert ändert sich einfach. |
| Pegel | Wird nur von den beiden Level-Cross-Triggern verwendet. |
| Nur geschlossene Balken bewerten | Standardmäßig aktiviert: Eine Bewertung erfolgt beim Schließen eines Balkens und kann nicht rückgängig gemacht werden. Deaktiviert bedeutet, dass der sich bildende Balken bei jedem Tick bewertet wird, was früher alarmiert, sich aber selbst aufheben kann. |
| Popup, Ton, Push-Benachrichtigung, E-Mail | Wie Sie benachrichtigt werden. Beliebige Kombination. Für Push-Benachrichtigungen muss Ihre MetaQuotes-ID unter „Extras“, „Optionen“, „Benachrichtigungen“ eingestellt sein. |
| Geschlossene Balken erneut lesen und Änderungen melden | Aktiviert die Meldung von verspäteten Werten und Neuberechnungen. |
| Wie viele geschlossene Balken weiterhin überwacht werden sollen | Wie weit zurück die Überprüfung reicht. Eine Änderung, die weiter zurückliegt, wird nicht berücksichtigt. |
| Änderungen, die kleiner als dieser Wert sind, ignorieren | Lassen Sie den Wert auf 0 stehen, um jede Änderung zu erfassen. Erhöhen Sie ihn, wenn ein Indikator bei der letzten Dezimalstelle schwankt. |
Was das Tool nicht tut
Es liest Indikatorpuffer aus. Ein Indikator, der ausschließlich mit Chart-Objekten zeichnet, legt keine Puffer offen, und es gibt hier nichts, was dieses Tool auslesen könnte. Nichts außerhalb des Indikators kann daran etwas ändern.
„Kein Repaint über 200 Balken hinweg festgestellt“ ist eine Beobachtung bezüglich dieser Balken, keine Garantie für jeden Balken, der jemals entstehen wird. Es ist ein Hinweis und besser als die Behauptung, mit der die meisten Indikatoren ausgeliefert werden, aber es ist kein Beweis. Die Überprüfung umfasst die von Ihnen festgelegte Anzahl geschlossener Balken; eine Änderung, die weiter zurückliegt, wird nicht erfasst.
Es kann Ihnen nicht sagen, was ein Puffer bedeutet. Es zeigt Ihnen, dass Puffer 3 bei vierzehn Balken den Wert 1,0 enthält; ob dies ein Kaufsignal ist, müssen Sie selbst entscheiden.
Ein Indikator, der bei einem Wert von genau 0,0 ein Signal ausgibt, löst nicht die Meldung „Ein Wert erscheint“ aus, da es sich dabei um den Wert eines Balkens handelt, den der Indikator noch nicht geschrieben hat. Signalpuffer enthalten einen Kurs oder ein Flag, niemals 0,0; in der Praxis hat dies also keine Auswirkungen, aber es ist eine Regel, die Sie kennen sollten.
Wenn der von Ihnen angegebene Indikator aufgrund eines Tippfehlers oder einer noch nicht kompilierten Datei nicht geladen werden kann, trennt er sich nicht automatisch ab. Dies wird im Chart und im Expertenprotokoll angezeigt, und der Versuch wird alle paar Sekunden wiederholt; es reicht also aus, den Namen zu korrigieren.
So installieren und starten Sie ihn
- Fügen Sie ihn über den Navigator zu einem Chart hinzu.
- Geben Sie unter „Indikator-Datei“ den Pfad des Indikators ein, den Sie beobachten möchten, relativ zu MQL5\Indicators und ohne Dateiendung. „Examples\RSI“ sollten Sie als Erstes ausprobieren. Falls der Indikator Eingabewerte benötigt, listen Sie diese unter „Seine Eingabewerte“ durch Kommas getrennt auf, zum Beispiel 14.
- Lassen Sie den Modus auf „EXPLORE“ eingestellt und klicken Sie auf „OK“.
- Drücken Sie Strg+T, um die Toolbox zu öffnen, und wechseln Sie zur Registerkarte „Experten“. Dort finden Sie die Puffertabelle.
- Lesen Sie die Tabelle aus, legen Sie „Zu beobachtender Puffer“ fest, ändern Sie den Modus auf „WATCH“, wählen Sie einen Auslöser und aktivieren Sie die gewünschten Benachrichtigungen. Um Daten aus einem höheren Zeitrahmen auszulesen, legen Sie zusätzlich „In diesem Zeitrahmen auslesen“ fest.
Verfasst und getestet unter MetaTrader 5 Build 6140. Es werden keine Orders platziert und es werden keine Änderungen an Ihrem Konto vorgenommen.
