Indicator Test Report MT4
- Utilitys
-
Narayanan Mohanan Mohanan Krishnan
Ich baue Messwerkzeuge für MetaTrader. Sie beschreiben, was der Markt getan hat, und nennen die Grenzen jeder Messung, statt sie zu verschweigen. - Version: 3.10
Indicator Test Report für MetaTrader 4 – ein MT4-Repaint-Checker und Indikatortester, der zeigt, wie sich ein Indikator tatsächlich verhält
Sie können nicht in einen kompilierten Indikator hineinsehen. Der Indikatortestbericht lädt jeden Indikator – gekauft, geschrieben oder in MetaTrader integriert – und beantwortet die Frage, die eine Beschreibung nicht beantworten kann: Wird er neu gezeichnet, wie viel Historie benötigt er und was veröffentlicht er wirklich? Es meldet Verhalten. Es wird nicht bewertet.
Laden Sie einen beliebigen Indikator in den Strategietester und erhalten Sie einen Bericht in einfacher Sprache über zwölf Aspekte seines Verhaltens: wie viele Puffer er veröffentlicht, wie viel Verlauf er benötigt, bevor seine Werte etwas bedeuten, ob sich die Werte geschlossener Balken danach jemals ändern und wie viel das Lesen kostet.
Es gibt keine Punktzahl, keine Mindestpunktzahl und kein Urteil darüber, ob ein Indikator gut ist – nur das, was beobachtet wurde und was das beweist und was nicht.
Was es antwortet
1. Puffer.Wie viele nummerierte Datenreihen der Indikator tatsächlich veröffentlicht und der höchste Index, der reagiert. Das ist oft mehr, als das Diagramm zeigt: Ein zweizeiliger Indikator kann sechs Puffer veröffentlichen, und eine EA-Anzeige nach Index benötigt die tatsächliche Zahl. Wenn die Indizes nicht zusammenhängend sind, heißt es in dem Bericht, dass bei der Indizierung durch Zählen die falschen Reihen angezeigt würden.
2. Berechnungsstatus.Wie viele Balken das Ziel anhand der vorhandenen Anzahl berechnet hat. Null mit gefüllten Puffern ist ein echter, benannter Zustand, kein Fehler.
3. Stabilität bei geschlossener Stange.Der erste für jeden Balken angezeigte Wert wird eingefroren und dann mit jedem späteren Messwert verglichen. Wenn sich ein Wert auf einem bereits geschlossenen Balken nachträglich ändert, gibt der Bericht die Balkenzeit, den Pufferindex und beide Werte an. Ein sich bewegender aktueller Balken ist kein Neubemalen – die Neuberechnung des sich bildenden Balkens ist korrekt und wünschenswert. Entscheidend ist ein geschlossener Balken, dessen Wert sich später ändert.
4. Aufwärmen.Die Anzahl der Balken, die jeder Puffer benötigt, bevor er überhaupt einen Wert hält, gemessen an den ältesten verfügbaren Balken und nicht im aktuellen Fenster, in dem jede Antwort Null wäre. Puffer unterscheiden sich zu Recht: Eine Signalleitung benötigt mehr Verlauf als die Reihe, die sie glättet. Die ersten fünfzig Balken in Ihrem Diagramm sind möglicherweise noch nicht aussagekräftig.
5. Intrabar-Signal flackert.Ob der Formbalken vor dem Schließen zwischen leer und einem numerischen Signal blinkt. Normal für einen Signalindikator; Es ist wichtig, ob Ihr EA auf die Formungsleiste einwirkt.
6. Kosten für den Pufferzugriff.Die Mikrosekundenkosten für das Abrufen von Werten pro Balken, sodass Sie einen EA einplanen können, der mehrere Werte pro Tick liest. Relative Zahlen zum Vergleich von Indikatoren, keine absoluten VPS-Zahlen.
7. Ausgabedomäne.Der kleinste und größte Wert, den jeder Puffer ausgegeben hat, mit einer Genauigkeit von sechzehn Dezimalstellen – zur Größenbestimmung von Schwellenwerten in einem EA. Dabei handelt es sich um den beobachteten Bereich, niemals um den möglichen Bereich.
8. Signalbeständigkeit.Für Pfeile, Punkte und Flaggen: Wenn ein Wert auf dem Formungsbalken erschien, war er am Schluss noch vorhanden? Durchgehende Linien werden konstruktionsbedingt zu 100 % bewertet und als solche gekennzeichnet, da es sich bei dieser Zahl eher um eine Arithmetik als um eine Feststellung handelt.
9. Werte, die keine Zahl sind.Ob ein Puffer einen Wert ausgegeben hat, der keine Zahl ist. Jeder Vergleich mit einem NaN ist falsch – einschließlich größer als und kleiner als –, sodass ein Schwellenwerttest niemals ausgelöst wird und keinen Fehler meldet, und jede arithmetische Berechnung, die einen berührt, erzeugt wiederum NaN. Dies ist ein Defekt im Ziel und für einen Wächter, gegen den es gerichtet ist, unsichtbar EMPTY_VALUE allein.
10. Grundfläche des Diagrammobjekts.Wie viele Kartenobjekte erschienen, während das Ziel ausgeführt wurde, und – auf einer Live-Karte – wie viele waren noch vorhanden, nachdem es entfernt wurde? Panel-, Zonen- und Dashboard-Indikatoren zeichnen mit Objekten und nicht mit Puffern, sodass bei diesen Produkten bei jeder zweiten Prüfung die leere Hälfte gemessen wird. Ein Indikator, der sich nicht entfernen lässt, hinterlässt Rückstände, die Sie von Hand entfernen müssen.
11. Modellabhängigkeit.Zweimal ausführen, wobei nur das Testermodell geändert wurde. Bei jedem Tick und 1-Minuten-OHLC handelt es sich um unterschiedliche simulierte Preispfade, sodass ein Indikator, der absichtlich auf Bewegungen innerhalb eines Balkens reagiert, durchaus unterschiedlich sein kann. Es ist wichtig, wenn das Ziel behauptet, dass die Closed-Balken-Werte endgültig sind.
12. Geschichtsabhängigkeit.Zweimal ausführen, wobei nur der Datumsbereich geändert wird. Ein Unterschied bedeutet, dass das Ziel unterschiedliche Werte für denselben Balken meldet, je nachdem, wie viel Verlauf ihm vorausgegangen ist – der Fehler, der dazu führt, dass ein Backtest nicht mit einem Live-Chart übereinstimmt.
Probieren Sie es an etwas aus, das Sie bereits kennen
Es liest alles, was über ihn erreichbar ist iCustom, einschließlich der eigenen Indikatoren von MetaTrader. Richten Sie es auf ZigZag: Jeder kennt ZigZag-Repainting, und der Bericht zeigt Ihnen die geänderten Balken und beide Werte. Richten Sie es auf Ichimoku und beobachten Sie, wie sich die beiden in die Zukunft verschobenen Spannen anders verhalten als die drei, die dies nicht tun. Wenn Sie das Tool mit einem Indikator vergleichen, dessen Verhalten Sie bereits kennen, können Sie am schnellsten entscheiden, ob Sie ihm bei einem gerade gekauften Tool vertrauen sollten – und es kostet nichts.
Wie dieses Tool getestet wurde
Jede Prüfung wurde anhand speziell entwickelter Indikatoren verifiziert, die sich absichtlich schlecht verhalten: einer, der jeden Balken in seinem Verlauf bei jedem Tick neu schreibt, einer, der Werte ausgibt, die keine Zahl sind, einer, der 399 Balken zum Aufwärmen benötigt, einer, der Diagrammobjekte zurücklässt, wenn er entfernt wird. Die Kontrollen haben sie erwischt, mit den Taktzeiten und den Vorher-Nachher-Werten. Ein Tool, das über die Indikatoren anderer Personen berichtet, sollte in der Lage sein, selbst zu sagen, wie es getestet wurde.
Die Motoren werden auch gegeneinander betrieben. Derselbe Indikator, der auf MetaTrader 4 und MetaTrader 5 gemessen wurde, stimmt bei zehn der zwölf Prüfungen überein; Bei den beiden Unterschieden handelt es sich um Plattformfakten, die im Bericht gekennzeichnet sind – MetaTrader 4 hat keine BarsCalculated und es gibt keine Möglichkeit, einen Indikator frühzeitig zu entladen, daher sagen diese Überprüfungen, was sie nicht messen konnten, anstatt einen komfortablen Nullpunkt zu melden.
Wenn Sie Indikatoren schreiben, anstatt sie zu kaufen
Derselbe Bericht beantwortet eine andere Frage: Was macht mein eigenes Produkt eigentlich und kann ich das in der Beschreibung sagen? Die Behauptung, dass Werte in geschlossenen Balken endgültig sind, ist angesichts der Anzahl der Vergleiche, die dahinter stehen, mehr wert – und es ist besser, selbst ein Repaint zu finden, als es von einem Rezensenten finden zu lassen.
Führen Sie es auf beiden Plattformen aus und das Paar zeigt Ihnen, wo Ihre MT4- und MT5-Builds voneinander abweichen: unterschiedliche Pufferzahlen, eine Aufwärmphase, die sich verschoben hat, ein Wert, der sich auf der einen und nicht auf der anderen ändert. Diese Abweichung erfahren Sie normalerweise als Ein-Stern-Bewertung von jemandem, der beides gekauft hat.
Das generierte Snippet ist die Integrationsdokumentation, die Sie sonst von Hand schreiben würden – jeder benannte Puffer mit seiner Aufwärmphase, seinem Bereich und ob er leer wird. Versenden Sie es oder fügen Sie es in Ihre eigene Beschreibung ein. Es handelt sich um das gemessene Verhalten Ihres Produkts, nicht um einen Anspruch.
Was es nicht tut
Es sagt Ihnen nicht, ob ein Signal einen Vorteil hat, ob ein Indikator den Kauf wert ist oder ob eine Strategie profitabel ist. Es erfolgt keine Benotung, Bewertung oder Rangfolge. Es liest keinen Quellcode, sondern nur beobachtbares Verhalten über die dokumentierte Pufferschnittstelle. Es führt das Ziel über seine eigenen Standardeingaben aus.
Ein Befund ist kein Fehler
Neuanstriche, ein langes Aufwärmen, Intrabar-Bewegungen und Diagrammobjekte sind Designentscheidungen, und viele gute Indikatoren treffen sie bewusst. Dieses Tool misst, was passiert ist; Ob es beabsichtigt war, kann nur die eigene Beschreibung des Verkäufers sagen. Jeder Bericht enthält diesen Satz und noch einen weiteren: Wenn Sie etwas überrascht, fragen Sie den Entwickler. Ein Bericht ist eine gute Frage, die man einem Verkäufer stellen kann. Es handelt sich nicht um Beweise, die man gegen sie veröffentlichen könnte, und es wurde auch nicht dafür gebaut.
Ein sauberes Ergebnis ist kein Beweis
Jeder Indikatortestbericht sagt dies in seinem eigenen Text. Ein Lauf ist ein Symbol, ein Zeitrahmen, eine Periode, ein Testermodell. Der Bericht gibt an, welche Prüfungen ein bestimmter Lauf nicht testen konnte – ein Lauf mit zu wenigen Ticks kann das Intrabar-Verhalten nicht testen, und er sagt dies, anstatt einen komfortablen Nullwert zu melden. Das Fehlen einer Beobachtung ist kein Beweis für das Fehlen.
Jeder Bericht endet mit einer Zusammenfassung aller zwölf Prüfungen auf einem Bildschirm sowie einer Tabelle aller früheren Durchläufe auf demselben Ziel, sodass mehrere Durchläufe unter verschiedenen Bedingungen als Satz gelesen werden können.
Eingaben
- Indikatorname– das Ziel, genau so, wie es im Navigator angezeigt wird, einschließlich seines Ordners. Darunter befindet sich ein Marktprodukt Market\ und sein eigener Name; die MetaTrader-Beispiele unten Examples\. Dies falsch zu machen, ist der einzige Fehler, der den Lauf stoppt, und der Bericht sagt dies im Klartext, anstatt stillschweigend zu scheitern.
- Warten Sie zunächst so viele Takte ab– Der Bericht beginnt erst, wenn das Diagramm so viel Verlauf enthält. Standard 500.
- Geschlossene Balken, die auf Repainting achten müssen– wie weit zurück jeder Tick erneut liest und vergleicht. Dies ist die Prüftiefe 3. Standardmäßig 300.
- Neue Balken, die Sie sich vor der Berichterstattung ansehen sollten — die Stichprobengröße.Der Lauf endet, nachdem so viele Balken geschlossen wurden, eine kleinere Zahl ist also ein schwächerer Test und keine Abkürzung. Standard 200.
- Maximaler Verlauf zum Aufwärmen– wie weit zurück, um in jedem Puffer nach dem ersten echten Wert zu suchen. Standard 10000.
- Toleranz für numerische Repainting-Prüfungen— Darunter wird ein Unterschied als Gleitkomma-Rauschen und nicht als Änderung behandelt. Skaliert mit der Größe der Werte, sodass eine Preisreihe und eine Volumenreihe nach den gleichen Bedingungen beurteilt werden. Standard 0.00000001.
- Grundlinie: Auto / Sperren / Zurücksetzen– entscheidet, womit ein zweiter Lauf verglichen wird. „Auto“ ist das, was die meisten Leute meinen, wenn sie ein Ziel zweimal ausführen: Beim ersten Durchlauf wird die Referenz festgelegt und bei späteren Durchläufen wird verglichen, ohne sie zu ersetzen. Standardmäßig automatisch.
- Etikett ausführen– wie Sie angeben, was Sie zwischen zwei Läufen geändert haben. MetaTrader bietet einem Programm keine Möglichkeit zu sehen, welches Testermodell ausgeführt wird. Daher ist die Bezeichnung die einzige Möglichkeit für den Bericht, eine Modelländerung von einer Wiederholung zu unterscheiden.
- Anzeigename des Ziels– ein lesbarer Name für den Berichtskopf. Der Dateipfad wird weiterhin daneben angezeigt, da ein Anzeigename niemals die Identität dessen, was gemessen wurde, ersetzen darf.
- Schreiben Sie ein gebrauchsfertiges EA-Snippet– standardmäßig aktiviert. Schalten Sie es aus, wenn Sie nur den Bericht möchten.
- Präfix der Ausgabedatei– ermöglicht zwei Läufen auf demselben Ziel, in separate Dateien zu schreiben, anstatt eine Zusammenfassung zu teilen.
Was die Screenshots zeigen
- Der Schnappschuss.Alle zwölf Prüfungen auf einem Bildschirm – jeder Lauf endet mit diesem Block, unabhängig davon, was der Bericht sonst noch enthält.
- Eine Erkenntnis.Ein geschlossener Balken, dessen Wert sich geändert hat, mit der Balkenzeit und beiden Werten. Dafür ist das Tool gedacht. Der Rest ist Kontext.
- Beide Plattformen.Derselbe Indikator wurde auf MetaTrader 4 und MetaTrader 5 gemessen, sodass die beiden Berichte Zeile für Zeile verglichen werden können.
- Eine ehrliche Ablehnung.Ein Lauf, der etwas nicht testen konnte und dies sagt, anstatt eine Null auszugeben, die als bestanden gelten würde.
- Das generierte Snippet.Der .mqh Datei, die der Lauf schreibt, wobei jeder Puffer benannt und eine Lesefunktion bereits geschrieben ist.
Lesen Sie die Screenshots
Bernstein ist nicht rot.Ein bernsteinfarbenes Urteil bedeutetEs wurde ein Verhalten festgestellt und hier sind die Beweise, nichtDieser Indikator ist defekt. Neuzeichnen, ein langes Aufwärmen und Diagrammobjekte sind Designentscheidungen, und viele gute Indikatoren treffen sie bewusst – der Bericht gibt Ihnen die Balkenzeit und beide Werte an, sodass Sie den Entwickler danach fragen können, was Sie auf dieser Seite auch tun sollen.
Es sind die blauen Urteile, die es wert sind, verstanden zu werden. [NOT TESTED] Und [NOT FOUND] bedeutet, dass der Lauf etwas nicht messen konnte – zu wenige Ticks oder ein Scan, der seine Obergrenze erreicht hat. Es handelt sich nicht um Pässe. Die meisten Tools würden dort eine komfortable Null ausgeben; Hier erfahren Sie, dass die Frage nicht beantwortet wurde, was den Unterschied zwischen einer Messung und einer Beruhigung ausmacht.
Das Paritätsbild zeigt den gleichen Indikator, der auf beiden Plattformen gemessen wurde, sodass die beiden Berichte Zeile für Zeile verglichen werden können. Der in den Bildern gezeigte Befund stammt von einem absichtlich kaputten Testindikator, der zu diesem Zweck geschrieben wurde, und nicht von einem Produkt auf dem Markt.
Zu den Screenshots.Jedes Bild wird aus einem echten Lauf erfasst: Die Berichte sind die Dateien, die das Tool schreibt, keine Modelle. Diese Bilder werden auf MetaTrader 4 erfasst, da zwei der zwölf Prüfungen dort legitimerweise unterschiedlich lauten und die Anzeige der MetaTrader 5-Ausgabe in einer MetaTrader 4-Liste diese falsch darstellen würde. Das Paritätsbild zeigt beide Plattformen nebeneinander auf demselben Indikator: Zehn der zwölf Prüfungen sind identisch, und die beiden, die sich unterscheiden, werden im Bericht benannt. Diese beiden Faktoren hängen davon ab, was die PLATTFORM bieten kann, und nicht davon, wie sorgfältig der Port geschrieben wurde: MQL4 hat keine BarsCalculated Funktion und es gibt keine Möglichkeit, einen Indikator vorzeitig zu entladen. Bei der MetaTrader 4-Version wurde nichts ausgelassen – sie meldet alles, was MetaTrader 4 melden kann, und sagt dies auch dort, wo dies nicht der Fall ist. Dieses Tool ist so aufgebaut, dass es angibt, was es nicht messen konnte, und das gilt zunächst für seine eigene Auflistung.
Ausgabe
Ein Textbericht, eine CSV-Basislinie für laufübergreifende Vergleiche und eine akkumulierende Zusammenfassung – eine Zeile pro Lauf – werden in den freigegebenen Dateiordner geschrieben, damit sie zwischen den Läufen erhalten bleiben. Jeder abweichende Wert wird in eine eigene CSV-Datei geschrieben, wenn ein Vergleich einen solchen findet.
Und ein gebrauchsfertiges Code-Snippet: ein kompilierbares .mqh Benennen Sie jeden Live-Puffer, seine Aufwärmphase, seinen beobachteten Bereich und ob er leer wird – mit einer Lesefunktion, die bereits für die Plattform geschrieben wurde, auf der Sie ausgeführt wurden. Es ist das, was ein Anrufer sonst durch einen Versuch herausfinden würde. Wenn der Lauf geschlossene Balkenänderungen oder NaN-Werte gefunden hat, sagt das Snippet dies oben und zeigt sein Beispiel auf einen Puffer, für den kein Ergebnis gefunden wurde.
Kredit, wo er gebührt
Es folgt der PufferleseansatzICustom Indicator Testervon Piotr Latoszynski, seit 2020 kostenlos auf dem Markt. Die Freeze-and-Compare-Methode zur Erkennung geänderter Closed-Bar-Werte wurde von Brahim Ben Abla im mql5.com-Beitrag 772704 (17. Juli 2026) mit reellen Zahlen beschrieben; Die Methode gehört ihm, nur der Versand gehört mir.
Was ist bei MetaTrader 4 anders?
Zehn der zwölf Prüfungen lauten identisch mit dem MetaTrader 5 und basieren auf demselben Indikator. Zwei können nicht: MQL4 hat nein BarsCalculated Der Berechnungsstatus ist also eine empirische Sonde und wird beschriftet[MT4-PROXY]; und MQL4 kann einen Indikator nicht vorzeitig entladen, daher wird die Frage zur Bereinigung des Diagrammobjekts nur auf einem Live-Diagramm beantwortet und lautet:[NICHT GETESTET]im Strategietester. Beide werden im Bericht benannt und nicht ausgeblendet. Weder handelt es sich um eine Einschränkung dieses Tools noch um eine Verknüpfung im Port: Es handelt sich um die Kapazität von MetaTrader 4 selbst, und der Bericht gibt an, welche der beiden er betrachtet, anstatt eine bequeme Null zu melden.
Notizen
- Dies ist ein Expert Advisor, der einen Bericht schreibt. Es wird nie gehandelt.Es erteilt keine Aufträge, eröffnet und schließt keine Positionen und berührt nichts in Ihrem Konto – es liest einen Indikator und schreibt Textdateien.
- AutoTrading muss aktiviert sein.MetaTrader sperrt jeden Expert Advisor hinter dieser Berechtigung, unabhängig davon, ob er handelt oder nicht. Wenn die Schaltfläche ausgeschaltet ist, ruft das Terminal das Programm nicht mehr auf und Sie sehen weder einen Bericht noch einen Fehler. Fügen Sie es einem Demokonto hinzu, wenn Sie es lieber nicht in einem Live-Konto aktivieren möchten; Das Ergebnis ist identisch, da hier nichts vom Konto abhängt.
- Läuft im Strategietester und auf einem Live-Chart, wo für eine Prüfung echte Ticks erforderlich sind. Liest das Ziel durch das Dokumentierte iCustom Schnittstelle.
- Einige Ziele, die intern ihre eigenen Indikator-Handles erstellen, melden nie einen berechneten Zustand. Der Bericht benennt diesen Fall, anstatt eine Null zu melden.
- Die Ausgabe erfolgt im freigegebenen Ordner „Dateien“, sodass die Berichte zwischen den Ausführungen bestehen bleiben und jeweils eine Zusammenfassungszeile ansammeln.
- Es werden mehrere Instanzen unterstützt.Zwei Diagramme können unterschiedliche Symbole gleichzeitig messen, und beide Läufe werden an dieselbe akkumulierende Zusammenfassung angehängt, anstatt sich gegenseitig zu überschreiben – getestet mit zwei Instanzen, die im Abstand von einer Sekunde beendet werden. Geben Sie ihnen unterschiedliche Ausgabepräfixe, wenn Sie die beiden Historien lieber getrennt halten möchten.
- Keine externen Abhängigkeiten. Es ruft keine Bibliothek und keinen anderen Indikator auf.
| Weitere Tools dieses Entwicklers Ich entwickle MetaTrader-Indikatoren und Expert Advisors mit Schwerpunkt auf sauberem, dokumentiertem Code: Closed-Bar-Logik, validierte Puffer und keine Abhängigkeiten von anderen Indikatoren. Dieses Werkzeug existiert, weil ich diese Aussage an meiner eigenen Arbeit prüfen wollte, bevor ich jemanden bitte, sie zu glauben. Alle veröffentlichten Produkte anzeigen → Haben Sie in einem Bericht etwas gefunden, mit dem Sie nicht gerechnet haben, oder möchten Sie eine Prüfung, die die Zwölf nicht abdecken? Schicken Sie mir eine private Nachricht – ich antworte gerne. |
Entwickelt und gepflegt von Narayanan Mohanan, ML/Python/MQL Developer.
Sollten Sie einen Fehler in der Übersetzung dieser Seite finden, teilen Sie mir dies bitte mit — ich korrigiere ihn.
