Schau, wie man Roboter kostenlos herunterladen kann
Finden Sie uns auf Twitter!
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
Indikatoren

Any Indicator Alert - alerts, push notifications and multi-timeframe for any custom indicator, no source code needed - Indikator für den MetaTrader 5

Ayaz
Ayaz
  • MQL5 Developer / Algorithmic Trading in  Freelance
  • Pakistan
  • 841
5 (2)
MQL5 developer working on automated trading systems — Expert Advisors, custom indicators, and TradingView-to-MT5 conversions.
| German English Русский 中文 Español 日本語 Português 한국어 Français Italiano Türkçe
Ansichten:
16
Rating:
(1)
Veröffentlicht:
MQL5 Freelance Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance

Zwei der größten Threads in diesem Forum sind „Indikatoren mit Warnmeldungen/Signalen“ und „Indikatoren für mehrere Zeitrahmen“. Sie sind auch nach Jahren noch offen, weil die Antwort immer dieselbe war: Besorge dir den Quellcode, bearbeite ihn und kompiliere ihn neu. Das hilft jedoch nicht weiter, wenn man nur eine .ex5-Datei und keinen Quellcode hat, und es lässt sich auch nicht auf mehrere Indikatoren übertragen.

Dieses Tool erledigt das von außen. iCustom kann jeden Indikator anhand seines Namens laden und dessen Puffer auslesen, ohne dass der Quellcode vorhanden sein muss – so kann ein einziges Tool alle Indikatoren bedienen.

Starten Sie im EXPLORE-Modus

Der Grund, warum viele Nutzer iCustom meiden, ist, dass es eine Puffernummer verlangt, und nichts verrät einem, welche Nummer genau das enthält, was man auf dem Chart sieht. Der Standardmodus beantwortet diese Frage also als Erstes. Er durchsucht die Puffer, zählt, was sich in jedem einzelnen befindet, und zeigt die Ergebnisse neben den letzten Balken an.

Ein Puffer, in dem fast jeder Balken einen Wert enthält, stellt eine Linie dar; verwenden Sie daher ein Kreuz oder ein Kreuz in Verbindung mit einem zweiten Puffer. Ein Puffer, der leer ist, außer an den Stellen, an denen der Indikator etwas gezeichnet hat, stellt das Signal dar; verwenden Sie daher „ein Wert erscheint“. Lesen Sie die Nummer aus der Tabelle ab, wechseln Sie in den WATCH-Modus und wählen Sie einen Trigger aus.

Beispiel dafür, was EXPLORE ausgibt

Dies ist eine reale Auswertung auf einem Live-XAUUSDm-H1-Chart, bei der der Standard-RSI beobachtet wird. Jeder Puffer des Indikators wird aufgelistet, zusammen mit der Angabe, wie viele der erfassten Balken einen tatsächlichen Wert enthalten, wie viele genau Null sind und wie viele leer sind, gefolgt von den Werten selbst, Balken für Balken.

Buffers found: 3   (checked up to 16, on XAUUSDm PERIOD_H1)
------------------------------------------------------------------
  buffer  values  zeros  blank  what it looks like                     range of the values
       0      12      0      0  a line - a value on almost every bar   31.47608 .. 55.28984
       1      12      0      0  a line - a value on almost every bar   4.11585 .. 6.11288
       2      12      0      0  a line - a value on almost every bar   3.86003 .. 8.96028
------------------------------------------------------------------
  bar  time               buf0         buf1         buf2
    0  2026.09.04 20:00     45.61107     5.40493     6.44511
    1  2026.09.04 19:00     46.88624     5.82069     6.59381
    2  2026.09.04 18:00     43.33095     5.42967     7.10102
    3  2026.09.04 17:00     40.80179     5.27080     7.64725
------------------------------------------------------------------
Read it like this: the buffer that is empty on most bars and carries a value
only where the indicator drew its signal is the one to watch. Put its number
in 'Buffer to watch', set Mode to WATCH, and pick a trigger.
A buffer that has a value on every bar is a line - use a level or buffer cross.
Modus „EXPLORE“ auf der Registerkarte „Experten“: alle Puffer aus „Examples\RSI“ für XAUUSDm H1 und deren jeweilige Inhalte

Hier sind alle drei Puffer Linien, was dem RSI entspricht. Bei einem Pfeil- oder Signalindikator sieht die Tabelle anders aus, und genau dieser Unterschied ist der springende Punkt:

  buffer  values  zeros  blank  what it looks like                     range of the values
       0       0      0      8  nothing here on these bars             -
      11       8      0      0  a line - a value on almost every bar   16.08798 .. 16.25192
      14       7      1      0  sparse - looks like a signal           4166.06000 .. 4166.06000

Puffer 14 ist hier derjenige, auf den man achten muss. Er ist bei den meisten Balken leer und enthält nur dann einen Kurs, wenn der Indikator etwas markiert hat; „ein Wert erscheint“ ist also 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 Repaints sind nicht dasselbe, daher werden sie getrennt gezählt

Der Wert jedes geschlossenen Balkens wird gespeichert und bei jedem neuen Balken erneut gelesen. Wenn sich ein geschlossener Balken geändert hat, gibt es dafür zwei sehr unterschiedliche Gründe.

Ein verspäteter Wert. Die Kerze war zuvor leer und enthält nun einen Wert. Der Indikator benötigte spätere Kerzen, bevor er diese markieren konnte. Fraktale funktionieren von Grund auf so, ebenso wie die meisten Swing- und Strukturmarker. Das ist keine Täuschung, bedeutet aber, dass das Signal auf dem Balken, auf den es zeigt, nie sichtbar war – und das ist von Bedeutung, wenn Sie eine Strategie mit bloßem Auge beurteilen.

Ein Repaint. 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 dem Zeitpunkt des Balkens, dem alten und dem neuen Wert, gemeldet, und der Chartkommentar führt eine fortlaufende Zählung für jeden Wert. Aus dem sich bildenden Balken werden keine Rückschlüsse gezogen, da es normal ist, dass sich der sich bildende Balken verändert.

Diese Unterscheidung wurde getestet und nicht einfach behauptet. Auf dem XAUUSD-H1-Chart, 299 Balken, 1. bis 20. August 2026, unter Beobachtung des Puffers 0 jedes Indikators:

Beobachteter Indikator Verspätete Werte Nachberechnungen
Beispiele\Fraktale: Markiert ein Bar zwei Bars nach dessen Schlusskurs 40 0
Beispiele\ZigZag, zeichnet den letzten Abschnitt absichtlich neu 0 83, jeder Wert ist verschwunden
Beispiele\RSI, wird nach Schließung eines Balkens berechnet 0 0

Es heißt also „late“ bei einem Indikator, der nachläuft, „repaint“ bei einem, der sich neu berechnet, und nichts bei einem, der weder das eine noch das andere tut. Im selben Lauf löste der Level-Trigger zweimal aus, als der RSI unter 30 fiel, und zwar bei 28,38 und 29,21; Die Hauptlinie des MACD kreuzte die Signallinie neunmal nach oben und neunmal nach unten; und der aus dem H4-Chart abgeleitete RSI-Wert auf einem H1-Chart erzeugte pro H4-Balken eine Warnmeldung – insgesamt 77, die jeweils mit „PERIOD_H4“ gekennzeichnet waren. Es wurde außerdem mit einem 157-KB-Indikator des Drittanbieters „Smart Money Concepts“ verglichen, wobei 16 Puffer gefunden und drei interne Linien von zwei spärlichen Signalpuffern getrennt wurden.

Auslöser

Ein Wert erscheint auf einem Balken – sei es auf dem gerade geschlossenen Balken oder, bei einem nachlaufenden Indikator, auf einem früheren Balken, den er erst jetzt markiert hat; ein Überschreiten oder Unterschreiten eines Niveaus; das Kreuzen eines Puffers mit einem 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 Kerze. Standardmäßig werden nur geschlossene Kerzen ausgewertet. Deaktiviert man diese Option, wird die sich bildende Kerze bei jedem Tick ausgewertet, was zu einer früheren Benachrichtigung führt und eine Umkehrung ermöglichen kann – in jedem Fall erfolgt jedoch weiterhin nur eine Benachrichtigung pro Kerze.

Ein höherer Zeitrahmen

Wenn Sie „In diesem Zeitrahmen anzeigen“ aktivieren, wird der beobachtete Indikator in diesem Zeitrahmen statt im Zeitrahmen des Charts geladen. Balken, Auslöser und die Repaint-Prüfung richten sich alle danach.

Zwei Anwendungsbeispiele

Beispiel 1 – Benachrichtige mich, wenn der RSI den Wert 70 überschreitet. Da du diesen Indikator kennst, dient „EXPLORE“ hier nur zur Überprüfung.

Eingabe Wert
Indikator-Datei Beispiele\RSI
Eingaben 14
In diesem Zeitrahmen auslesen Aktueller Zeitrahmen
Modus BEOBACHTEN
Zu beobachtender Puffer 0
Auslöser Puffer überschreitet Level
Level 70
Popup-Warnung true

Bei den Testdaten, die vier Warnmeldungen bei 75,04, 76,31, 70,38 und 74,83 ausgelöst haben. Um dasselbe Ergebnis aus dem 4-Stunden-Chart zu erhalten, während Sie den 1-Stunden-Chart betrachten, stellen Sie „In diesem Zeitrahmen anzeigen“ 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.

  1. Fügen Sie den Indikator mit dem Modus „EXPLORE“ hinzu und setzen Sie „Indikator-Datei“ auf den Namen dieses Indikators. Lassen Sie „Seine Eingaben“ leer, um die eigenen Standardwerte zu verwenden.
  2. Öffne die Toolbox, gehe auf die Registerkarte „Experts“ und suche den Puffer, der lückenhaft ist – bei den meisten Balken leer, mit einem Wert, bei dem du einen Pfeil im Chart sehen kannst. Nehmen wir an, es ist Puffer 2.
  3. Fügen Sie ihn erneut hinzu, wobei der Modus auf „WATCH“ eingestellt ist, der zu überwachende Puffer 2 ist, der Auslöser „ein Wert erscheint“ und die Push-Benachrichtigung aktiviert ist.
  4. Falls EXPLORE den Hinweis angezeigt hat, dass ein Puffer größtenteils aus exakten Nullen besteht, aktivieren Sie „Dieser Indikator schreibt 0, wo es nichts bedeutet“ und lesen Sie die Tabelle erneut durch, bevor Sie eine Auswahl treffen.

Was die einzelnen Eingaben bewirken

Eingabe Funktion
Indikator-Datei Pfad unter MQL5\Indicators, ohne Dateiendung. Ein Backslash, zum Beispiel Examples\RSI oder MyFolder\MyArrows. Das Feld ist absichtlich leer – es gibt keinen Indikator, über den jedes Terminal zwangsläufig verfügt – 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 Leerzeichen 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, sodass Sie diese überprüfen können.
Auf diesem Zeitrahmen lesen Lade den überwachten Indikator auf diesem Zeitrahmen statt auf 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 Option zu aktivieren.
Modus „EXPLORE“ listet die Puffer auf und gibt keine Warnmeldungen aus. „WATCH“ warnt bei dem von Ihnen gewählten Puffer.
Wie viele Puffer sollen geprüft werden? EXPLORE hört hier auf. Erhöhen Sie den Wert, wenn die Meldung besagt, 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 beliebiger 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 diese 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 Benachrichtigungsart. Beliebige Kombination. Für Push-Benachrichtigungen muss Ihre MetaQuotes-ID unter „Extras“, „Optionen“, „Benachrichtigungen“ eingerichtet sein.
Geschlossene Balken erneut lesen und Änderungen melden Aktiviert die Meldung von verspäteten Werten und Neuberechnungen.
Wie viele geschlossene Balken sollen weiter beobachtet werden 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, um jede Änderung zu erfassen. Erhöhen Sie ihn, wenn ein Indikator bei der letzten Dezimalstelle schwankt.

Drei Dinge, die viele Nutzer überraschen und wie sie behandelt werden

Einige Indikatoren schreiben eine einfache 0, wenn sie „hier nichts“ meinen, anstatt EMPTY_VALUE zu verwenden. ZigZag ist ein Beispiel dafür. Bei einer oberflächlichen Betrachtung sieht ein solcher Puffer wie eine durchgehende Reihe von Nullen aus. Es gibt eine Eingabeoption dafür, und EXPLORE gibt eine Meldung aus, wenn ein Puffer größtenteils aus Nullen besteht, aber einige echte Werte enthält, sodass Sie selbst entscheiden können. Es wird bewusst nicht geraten: Ein Oszillator, der tatsächlich bei Null steht, sieht von außen identisch aus.

Ein Balken, den der Indikator noch nicht geschrieben hat, wird als genau 0,0 gelesen. Das ist der Wert, den das Terminal in einen neu angelegten Puffer einträgt, und ein verzögerter Indikator belässt seine neuesten Balken absichtlich in diesem Zustand, bis er über die benötigten späteren Balken verfügt. Fractals rührt seine letzten drei Balken niemals an. Naiv interpretiert „ändert“ sich später jeder dieser Balken, und die erste Version dieses Tools meldete dreihundert Neuberechnungen für einen Indikator, der gar keine aufweist. Ein Balken, der von dieser 0,0 auf leer wechselt, wird nun als Initialisierung behandelt, und von 0,0 auf einen Wert als verspätete Ankunft.

Die Eingabegruppe belegt einen Platz für einen Positionsparameter. Wenn Sie diesen Indikator aus Ihrem eigenen Code mit `iCustom` oder `IndicatorCreate` aufrufen, müssen die sechs Gruppenbezeichnungen zusammen mit den eigentlichen Eingaben als Zeichenketten gezählt werden, sonst schlägt die Handle-Erstellung mit Fehler 4002 fehl. Dies wurde gemessen, nicht angenommen. Puffer 0 enthält den Wert des überwachten Puffers, sodass Ihr EA diesen auslesen kann, anstatt die Verbindung immer wieder neu herzustellen; dies wurde anhand des überwachten RSI bei 299 von 299 Balken überprüft.

Wenn der von Ihnen benannte Indikator nicht geladen werden kann – etwa aufgrund eines Tippfehlers oder einer noch nicht kompilierten Datei –, trennt er sich nicht automatisch. Dies wird im Chart und im Expertenprotokoll angezeigt, und der Versuch wird alle paar Sekunden wiederholt; es reicht also aus, den Namen zu korrigieren.

Was es nicht tut

Es liest keine Indikatorpuffer aus. Ein Indikator, der ausschließlich mit Chart-Objekten zeichnet, stellt keine Puffer zur Verfügung, und es gibt hier nichts, was dieses Tool auslesen könnte. Nichts außerhalb des Indikators kann daran etwas ändern.

„Über 200 Balken hinweg kein Repaint 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 Anzahl der geschlossenen Balken, die Sie unter „Wie viele geschlossene Balken sollen weiterhin beobachtet werden?“ festgelegt haben; 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 Bars den Wert 1,0 aufweist; 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 „Ein Wert erscheint“ nicht aus, da es sich dabei um den Wert eines noch nicht gezeichneten Balkens handelt. Signalpuffer enthalten entweder einen Kurs oder eine Markierung, niemals 0,0. In der Praxis hat dies also keine Auswirkungen, aber es ist eine Regel, die Sie kennen sollten.

Puffer 0 spiegelt den beobachteten Puffer nur dann wider, wenn der beobachtete Zeitrahmen der des Charts selbst ist. Die Abbildung eines höheren Zeitrahmens auf jeden Chart-Takt ist eine andere Aufgabe und wird nicht versucht.

Die Alarmkanäle selbst – Popup, Ton, Push und E-Mail – erfordern jeweils einen Aufruf und wurden im Strategietester nicht ausgeführt, da dieser sie nicht bereitstellt. Alles, was das Tool vor diesem Aufruf entscheidet, wurde berücksichtigt.

So installieren Sie das Tool

  1. Kopieren Sie „AnyIndicatorAlert.mq5“ in den Ordner „MQL5\Indicators“ im Datenordner Ihres Terminals. In MetaTrader gelangen Sie dorthin über „Datei“ und dann „Datenordner öffnen“.
  2. Öffnen Sie die Datei im MetaEditor und drücken Sie F7. Es sollten 0 Fehler und 0 Warnungen angezeigt werden.
  3. Zurück im Terminal drücken Sie Strg+N, um den Navigator zu öffnen, wählen Sie „Indikatoren“ und ziehen Sie „AnyIndicatorAlert“ auf ein Chart. Falls es nicht aufgeführt ist, klicken Sie mit der rechten Maustaste in den Navigator und wählen Sie „Aktualisieren“.
  4. Füllen Sie das Feld „Indikator-Datei“ aus – es ist zunächst leer –, belassen Sie den Modus auf „EXPLORE“ und klicken Sie auf „OK“. „Examples\RSI“ sollten Sie als Erstes ausprobieren.
  5. Drücken Sie Strg+T, um die Toolbox zu öffnen, und wählen Sie die Registerkarte „Experten“. Dort finden Sie die Puffertabelle.

Geschrieben und getestet unter MetaTrader 5 Build 6140. Es werden keine Orders platziert und es werden keine Änderungen vorgenommen.

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

SuperTrend TV EA SuperTrend TV EA

Ein Expert Advisor, der den SuperTrend-TV-Indikator über iCustom ausschließlich bei geschlossenen Kerzen handelt und zusammen mit einem Audit geliefert wird, das belegt, dass jeder Trade einem Signal entspricht und kein Signal übersehen wurde

GridCapitalCalculator GridCapitalCalculator

Jeder, der ein Grid-System betreibt, fragt sich: Ist mein Konto groß genug? Die übliche Antwort – der Verlust auf der letzten Grid-Stufe – ist der falsche Wert. Was das Konto tatsächlich zum Erliegen bringt, ist das Erreichen des Stop-out-Wertes des Brokers, während die Position noch offen ist und es noch so aussieht, als wäre eine Erholung möglich. Dieser EA berechnet den tatsächlichen Wert und ermittelt anschließend, wie oft eine derart große Kursbewegung bereits in der M1-Historie des jeweiligen Symbols aufgetreten ist. Drei Fehler, die er behebt, wobei alle in die beruhigende Richtung gehen: Eine Kette aus N Legs schwankt bei Schritt x N(N-1)/2, nicht bei Schritt x N (bei 10 Legs sind es 45 Verlustschritte, nicht 10); offene Positionen binden zudem Margin, solange sie offen sind; und der Stop-out ist ein Prozentsatz, nicht Null – bei 50 % reicht es aus, die Hälfte des Eigenkapitals zu verlieren. „Sie benötigen 86 Dollar Spielraum“ ist eine Abstraktion. „„Eine Bewegung dieser Größenordnung trat 71 Mal in 100 Tagen auf, also einmal alle 1,4“ ist eine Entscheidung. Stellen Sie InpEquity auf einen Wert ein, den Sie noch nicht haben, um zu sehen, was die Konfiguration tatsächlich benötigen würde. Streng schreibgeschützt: Es werden niemals Positionen eröffnet, geschlossen oder geändert.

Accumulation/Distribution Accumulation/Distribution

Der Accumulation/Distribution Indikator wird aus Änderung von Preis und Volumen bestimmt.

Accelerator Oszillator (AC) Accelerator Oszillator (AC)

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